/* ============================================================
   app-ui.css — Global UI Design Tokens & Component Styles
   Projeye özgü, Metronic/Bootstrap üzerine eklenen katman.
   Bootstrap'in kendisini override etmez; sadece app-* namespace.
   ============================================================ */

/* ---- DESIGN TOKENS ----
   Buton kaynağı: soft SaaS (yumuşak radius + hafif gölge).
   Bileşen: AppButton / AppLoadingButton — sınıflar: .app-btn
*/
:root {
    --app-btn-height:        34px;
    --app-btn-sm-height:     28px;
    --app-btn-lg-height:     42px;
    --app-btn-icon-size:     32px;
    --app-btn-radius:        0.7rem;
    --app-btn-padding-x:     0.95rem;
    --app-btn-padding-y:     0.4rem;
    --app-btn-sm-padding-x:  0.7rem;
    --app-btn-sm-padding-y:  0.25rem;
    --app-btn-lg-padding-x:  1.2rem;
    --app-btn-font-size:     0.8125rem;
    --app-btn-sm-font-size:  0.75rem;
    --app-btn-lg-font-size:  0.875rem;
    --app-btn-font-weight:   600;
    --app-btn-gap:           0.5rem;
    --app-btn-border:        1px solid #e5e7eb;
    --app-btn-shadow:        0 1px 2px rgba(16, 24, 40, 0.05), 0 1px 3px rgba(16, 24, 40, 0.08);
    --app-btn-shadow-hover:  0 2px 6px rgba(16, 24, 40, 0.08), 0 4px 12px rgba(16, 24, 40, 0.06);
    --app-btn-shadow-primary: 0 2px 8px rgba(var(--bs-primary-rgb, 0, 158, 247), 0.32);
    --app-btn-shadow-danger: 0 2px 8px rgba(241, 65, 108, 0.28);
    --app-btn-shadow-success: 0 2px 8px rgba(80, 205, 137, 0.28);
    --app-btn-secondary-bg:  #ffffff;
    --app-btn-secondary-color: #111827;
    --app-btn-secondary-hover-bg: #f9fafb;
    --app-btn-transition:    color 0.15s ease, background-color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease, transform 0.12s ease;

    --app-modal-radius:      1.15rem;
    --app-modal-shadow:      0 24px 64px rgba(16, 24, 40, 0.18), 0 8px 20px rgba(16, 24, 40, 0.08);
    --app-modal-overlay-bg:  rgba(15, 23, 42, 0.52);
    --app-modal-header-bg:   linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
    --app-modal-accent:      #009ef7;
    --app-modal-surface:     #f8fafc;
    --app-modal-border:      #e8ecf2;

    --app-input-height:      3rem;
    --app-input-sm-height:   2.25rem;
    --app-input-radius:      0.75rem;
    --app-input-border:      1px solid #dfe3ee;
    --app-input-border-color:#dfe3ee;
    --app-input-focus-border: rgba(var(--bs-primary-rgb), 0.55);
    --app-input-bg:          #fbfcfe;
    --app-input-focus-bg:    #ffffff;
    --app-input-focus-ring:  0 0 0 0.2rem rgba(var(--bs-primary-rgb), 0.12);
    --app-input-inset:       inset 0 1px 0 rgba(255, 255, 255, 0.7);
    --app-input-font-size:   0.9rem;
    --app-input-padding-x:   0.95rem;
    --app-input-padding-y:   0.65rem;
    --app-label-mb:          0.45rem;
    --app-label-size:        0.82rem;
    --app-label-weight:      650;
    --app-label-color:       var(--bs-gray-700);
    --app-hint-size:         0.78rem;
    --app-hint-color:        var(--bs-gray-500);

    --app-form-gap:          1.25rem;
    --app-form-label-mb:     0.45rem;

    --app-toast-radius:      0.625rem;
    --app-toast-shadow:      0 0.25rem 0.75rem rgba(0, 0, 0, 0.12);
    --app-toast-z-index:     9999;

    --app-spacing-xs:        0.25rem;
    --app-spacing-sm:        0.5rem;
    --app-spacing-md:        1rem;
    --app-spacing-lg:        1.5rem;
    --app-spacing-xl:        2rem;

    /*
     * Sayfa boşlukları — tek kaynak.
     * Değiştirince menü↔içerik, sol menü↔kart, kart↔kart (dikey/yatay) hepsi güncellenir.
     */
    --app-page-gap:          20px;
    --app-content-top-gap:   var(--app-page-gap);
    --app-sidebar-gap:       var(--app-page-gap);
    --app-detail-card-gap:   var(--app-page-gap);
    --app-detail-header-py:  0.75rem;
    --app-detail-card-px:    1.5rem;
    --app-detail-page-top:   0;

    --app-page-bg:           #f6f7f9;
    --app-card-bg:           #ffffff;
    --app-card-border:       #eceef2;
    --app-card-shadow:       0 1px 2px rgba(16, 24, 40, 0.03);
    /* Metronic .card = 0.625rem — :root'ta --bs-card-border-radius yok, sabit kullan */
    --app-card-radius:       0.625rem;
    --app-tile-bg:           #fafbfc;

    /* Tek yazı tipi — Inter değişken font (App.razor); Helvetica yalnızca son çare */
    --app-font-family:       "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
    --app-font-display:      "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
    --bs-font-sans-serif:    var(--app-font-family);
    --bs-body-font-family:   var(--app-font-family);

    /* Sticky/fixed üst header elevation — Metronic --bs-app-header-* ile bağlanır */
    --app-header-elevation:  0 4px 12px rgba(0, 0, 0, 0.06);
}

html,
body,
#kt_app_body {
    font-family: var(--app-font-family);
    font-optical-sizing: none; /* opsz şişirmesini kapat */
    font-synthesis: none; /* eksik ağırlıkta tarayıcı kalınlaştırmasın */
    -webkit-font-smoothing: auto;
    -moz-osx-font-smoothing: auto;
    text-rendering: auto;
}

/*
 * Kalın punto: Metronic fw-bolder=700, strong=700, birçok yerde 700/750/800.
 * Inter’de 700+ şişman görünür; uygulamada üst sınır 600.
 */
.fw-bolder {
    font-weight: 600 !important;
}

b,
strong {
    font-weight: 600;
}

/* Ara ağırlık (550/650/750) statik Inter’de sahte kalınlaşma yapmasın */
.fw-semibold {
    font-weight: 500 !important;
}

[data-bs-theme=light] {
    --bs-app-bg-color: #f6f7f9;
    --bs-app-blank-bg-color: #f6f7f9;
    --bs-root-card-border-color: var(--app-card-border);
    --bs-root-card-box-shadow: var(--app-card-shadow);
    /* Üst menü beyaz; yalnızca alt gölge (elevation) */
    --bs-app-header-base-bg-color: #ffffff;
    --bs-app-header-minimize-bg-color: #ffffff;
    --bs-app-header-base-box-shadow: var(--app-header-elevation);
    --bs-app-header-minimize-box-shadow: var(--app-header-elevation);
}

[data-bs-theme=dark] {
    --app-page-bg: #0b0c10;
    --app-card-bg: #171922;
    --app-card-border: #2a2e3a;
    --app-card-shadow: none;
    --app-tile-bg: #1c1f29;
    --app-modal-header-bg: linear-gradient(180deg, #1a1d29 0%, #151824 100%);
    --app-modal-surface: #1a1d28;
    --app-modal-border: #2e3342;
    --app-btn-border: 1px solid #383f53;
    --app-btn-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);
    --app-btn-shadow-hover: 0 2px 8px rgba(0, 0, 0, 0.4);
    --app-btn-secondary-bg: #1f2230;
    --app-btn-secondary-color: #eef2ff;
    --app-btn-secondary-hover-bg: #262a3a;
    --bs-app-bg-color: #0b0c10;
    --bs-app-blank-bg-color: #0b0c10;
    --bs-root-card-border-color: var(--app-card-border);
    --app-header-elevation: 0 4px 14px rgba(0, 0, 0, 0.4);
    --bs-app-header-base-box-shadow: var(--app-header-elevation);
    --bs-app-header-minimize-box-shadow: var(--app-header-elevation);
}

.app-default .card,
.app-blank .card {
    background-color: var(--app-card-bg);
    border-color: var(--app-card-border);
    box-shadow: var(--app-card-shadow);
}

[data-bs-theme=dark] .table-responsive {
    background-color: transparent !important;
}

[data-bs-theme=dark] .table > :not(caption) > * > * {
    --bs-table-bg: transparent;
    --bs-table-color: #d9deeb;
    border-bottom-color: #2e3342;
}

[data-bs-theme=dark] .table thead th,
[data-bs-theme=dark] .table thead td {
    color: #c7cde0;
    background-color: #1f2230;
    border-bottom-color: #31384b;
}

[data-bs-theme=dark] .table tbody td,
[data-bs-theme=dark] .table tbody th {
    color: #e5e9f4;
}

[data-bs-theme=dark] .modal-content {
    background: #171922;
    border-color: #2e3342;
    color: #e5e9f4;
}

[data-bs-theme=dark] .modal-header,
[data-bs-theme=dark] .modal-footer {
    border-color: #2e3342;
    background-color: #171922;
}

[data-bs-theme=dark] .modal-body {
    background-color: #171922;
    color: #e5e9f4;
}

[data-bs-theme=dark] .modal-header .btn-close {
    filter: invert(1) grayscale(1) brightness(1.2);
}

[data-bs-theme=dark] .app-modal-content {
    background: #171922;
    border-color: #2e3342 !important;
}

[data-bs-theme=dark] .app-modal-header__title {
    color: #f5f8ff;
}

[data-bs-theme=dark] .app-modal-header__subtitle,
[data-bs-theme=dark] .app-modal-content .form-label,
[data-bs-theme=dark] .app-modal-content .form-text {
    color: #b4bdd2;
}

[data-bs-theme=dark] .app-modal-body-panel,
[data-bs-theme=dark] .app-modal-footer-bar {
    background: #171922;
}

[data-bs-theme=dark] .app-modal-content .form-control,
[data-bs-theme=dark] .app-modal-content .form-select,
[data-bs-theme=dark] .app-modal-content .form-control-solid,
[data-bs-theme=dark] .app-modal-content .form-select-solid,
[data-bs-theme=dark] .app-modal-content .input-group-text,
[data-bs-theme=dark] .app-dd__menu {
    background-color: #1f2230 !important;
    border-color: #383f53 !important;
    color: #eef2ff !important;
}

[data-bs-theme=dark] .app-dd__search {
    background: #1f2230;
}

[data-bs-theme=dark] .app-modal-content .form-control::placeholder,
[data-bs-theme=dark] .app-modal-content .form-control-solid::placeholder {
    color: #8c93a8;
}

.app-default .card.card-flush > .card-header,
.app-default .card.card-flush > .card-footer,
.app-blank .card.card-flush > .card-header,
.app-blank .card.card-flush > .card-footer {
    background-color: var(--app-card-bg);
}

/*
  mt-5 margin-top parent üzerinden collapse olup başlığı gri zemine taşıyor.
  Global: et-section-card veya card-flush+mt-5 yerine güvenli başlık stili.
*/
:root {
    --app-card-header-content-gap: 1.25rem;
    --app-card-header-divider: var(--app-card-border);
    --app-card-section-header-py: 0.55rem;
}

.app-default .card.et-section-card > .card-header,
.app-blank .card.et-section-card > .card-header {
    margin: 0 !important;
    min-height: 0 !important;
    height: auto !important;
    padding-top: var(--app-card-section-header-py) !important;
    padding-bottom: var(--app-card-section-header-py) !important;
    background-color: var(--app-card-bg) !important;
    border-bottom: 1px solid var(--app-card-header-divider) !important;
}

.app-default .card.et-home-section > .card-header,
.app-blank .card.et-home-section > .card-header {
    margin: 0 !important;
    min-height: 3.25rem !important;
    height: 3.25rem !important;
    /* Sol başlık tablo içeriğiyle aynı hizada, biraz içeriden */
    padding: 0 0.9rem 0 1.85rem !important;
    display: flex !important;
    align-items: center !important;
    background-color: var(--app-card-bg) !important;
    border-bottom: 1px solid var(--app-card-header-divider) !important;
}

.app-default .card.et-classic-side > .card-header,
.app-blank .card.et-classic-side > .card-header {
    margin: 0 !important;
    min-height: 0 !important;
    height: auto !important;
    /* Metronic varsayılan 2.25rem — gövde ile aynı sola hiza */
    padding: 0.65rem 0.75rem !important;
    background-color: var(--app-card-bg) !important;
    border-bottom: 1px solid var(--app-card-header-divider) !important;
}

.app-default .card.et-classic-side > .card-header .card-title,
.app-blank .card.et-classic-side > .card-header .card-title {
    margin: 0 !important;
    padding: 0 !important;
}

.app-default .card.et-section-card > .card-header h3,
.app-blank .card.et-section-card > .card-header h3,
.app-default .card.et-home-section > .card-header h3,
.app-blank .card.et-home-section > .card-header h3 {
    margin: 0 !important;
    font-size: 0.95rem;
    line-height: 1.25;
}

.app-default .card.et-classic-side > .card-header h3,
.app-blank .card.et-classic-side > .card-header h3 {
    margin: 0 !important;
    padding: 0 !important;
    font-size: 0.95rem !important;
    line-height: 1.25 !important;
    font-weight: 700;
    display: inline-flex !important;
    align-items: center;
    gap: 0.45rem;
}

.app-default .card.et-section-card > .card-body,
.app-blank .card.et-section-card > .card-body {
    padding-top: 2.5rem !important;
}

.app-default .card.et-home-section > .card-body,
.app-blank .card.et-home-section > .card-body {
    padding-top: 0 !important;
    padding-bottom: 1rem !important;
}

/* Eski mt-5 pattern: margin collapse’ı kes */
.app-default .card.card-flush > .card-header.mt-5,
.app-blank .card.card-flush > .card-header.mt-5 {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    min-height: 0 !important;
    padding-top: var(--app-card-section-header-py) !important;
    padding-bottom: var(--app-card-section-header-py) !important;
    background-color: var(--app-card-bg) !important;
    border-bottom: 1px solid var(--app-card-header-divider) !important;
}

.app-default .card.card-flush > .card-header.mt-5 + .card-body.pt-0,
.app-blank .card.card-flush > .card-header.mt-5 + .card-body.pt-0 {
    padding-top: var(--app-card-header-content-gap) !important;
}

/* ---- BUTTON BASE (soft SaaS — tüm sayfa / tablo / modal)
   Tek kaynak: --app-btn-* tokenları + .app-btn
   Ham Bootstrap .btn da aynı geometriyi alır (close/flush/dropdown hariç).
*/
.app-btn,
.app-default .btn:not(.btn-flush):not(.btn-close):not(.dropdown-item):not(.app-btn--bare),
.app-blank .btn:not(.btn-flush):not(.btn-close):not(.dropdown-item):not(.app-btn--bare) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--app-btn-gap);
    min-height: var(--app-btn-height);
    padding: var(--app-btn-padding-y) var(--app-btn-padding-x);
    border-radius: var(--app-btn-radius) !important;
    border: var(--app-btn-border);
    font-size: var(--app-btn-font-size);
    font-weight: var(--app-btn-font-weight);
    line-height: 1.25;
    letter-spacing: -0.01em;
    white-space: nowrap;
    box-shadow: var(--app-btn-shadow);
    transition: var(--app-btn-transition);
    vertical-align: middle;
}

.app-btn:hover:not(:disabled):not(.disabled),
.app-default .btn:not(.btn-flush):not(.btn-close):not(.dropdown-item):not(.app-btn--bare):hover:not(:disabled):not(.disabled),
.app-blank .btn:not(.btn-flush):not(.btn-close):not(.dropdown-item):not(.app-btn--bare):hover:not(:disabled):not(.disabled) {
    box-shadow: var(--app-btn-shadow-hover);
}

.app-btn:active:not(:disabled):not(.disabled),
.app-default .btn:not(.btn-flush):not(.btn-close):not(.dropdown-item):not(.app-btn--bare):active:not(:disabled):not(.disabled),
.app-blank .btn:not(.btn-flush):not(.btn-close):not(.dropdown-item):not(.app-btn--bare):active:not(:disabled):not(.disabled) {
    transform: translateY(0.5px) scale(0.985);
}

.app-btn.btn-sm,
.app-default .btn.btn-sm:not(.btn-flush):not(.btn-close):not(.dropdown-item):not(.app-btn--bare),
.app-blank .btn.btn-sm:not(.btn-flush):not(.btn-close):not(.dropdown-item):not(.app-btn--bare) {
    min-height: var(--app-btn-sm-height);
    height: auto;
    padding: var(--app-btn-sm-padding-y) var(--app-btn-sm-padding-x);
    font-size: var(--app-btn-sm-font-size);
    border-radius: calc(var(--app-btn-radius) - 0.15rem) !important;
}

.app-btn.btn-lg,
.app-default .btn.btn-lg:not(.btn-flush):not(.btn-close):not(.dropdown-item):not(.app-btn--bare),
.app-blank .btn.btn-lg:not(.btn-flush):not(.btn-close):not(.dropdown-item):not(.app-btn--bare) {
    min-height: var(--app-btn-lg-height);
    padding: 0.7rem var(--app-btn-lg-padding-x);
    font-size: var(--app-btn-lg-font-size);
    border-radius: calc(var(--app-btn-radius) + 0.1rem) !important;
}

/* Primary — dolu mavi + soft gölge */
.app-btn.btn-primary,
.app-default .btn-primary:not(.app-btn--bare),
.app-blank .btn-primary:not(.app-btn--bare) {
    border-color: transparent !important;
    box-shadow: var(--app-btn-shadow-primary);
}

.app-btn.btn-primary:hover:not(:disabled):not(.disabled),
.app-default .btn-primary:not(.app-btn--bare):hover:not(:disabled):not(.disabled),
.app-blank .btn-primary:not(.app-btn--bare):hover:not(:disabled):not(.disabled) {
    box-shadow: 0 4px 14px rgba(var(--bs-primary-rgb, 0, 158, 247), 0.4);
}

/* Secondary / Light — beyaz zemin + ince kenar (görseldeki Cancel/Login) */
.app-btn.btn-light,
.app-btn.btn-secondary,
.app-btn.app-btn--secondary,
.app-default .btn-light:not(.btn-light-primary):not(.btn-light-success):not(.btn-light-danger):not(.btn-light-warning):not(.btn-light-info):not(.app-btn--bare),
.app-blank .btn-light:not(.btn-light-primary):not(.btn-light-success):not(.btn-light-danger):not(.btn-light-warning):not(.btn-light-info):not(.app-btn--bare),
.app-default .btn-secondary:not(.app-btn--bare),
.app-blank .btn-secondary:not(.app-btn--bare),
.app-default .btn-outline-secondary:not(.app-btn--bare),
.app-blank .btn-outline-secondary:not(.app-btn--bare) {
    --bs-btn-color: var(--app-btn-secondary-color);
    --bs-btn-bg: var(--app-btn-secondary-bg);
    --bs-btn-border-color: #e5e7eb;
    --bs-btn-hover-color: var(--app-btn-secondary-color);
    --bs-btn-hover-bg: var(--app-btn-secondary-hover-bg);
    --bs-btn-hover-border-color: #d1d5db;
    --bs-btn-active-color: var(--app-btn-secondary-color);
    --bs-btn-active-bg: #f3f4f6;
    --bs-btn-active-border-color: #d1d5db;
    color: var(--app-btn-secondary-color) !important;
    background-color: var(--app-btn-secondary-bg) !important;
    border: var(--app-btn-border) !important;
    box-shadow: var(--app-btn-shadow);
}

.app-btn.btn-light:hover:not(:disabled):not(.disabled),
.app-btn.btn-secondary:hover:not(:disabled):not(.disabled),
.app-btn.app-btn--secondary:hover:not(:disabled):not(.disabled),
.app-default .btn-light:not(.btn-light-primary):not(.btn-light-success):not(.btn-light-danger):not(.btn-light-warning):not(.btn-light-info):not(.app-btn--bare):hover:not(:disabled):not(.disabled),
.app-blank .btn-light:not(.btn-light-primary):not(.btn-light-success):not(.btn-light-danger):not(.btn-light-warning):not(.btn-light-info):not(.app-btn--bare):hover:not(:disabled):not(.disabled),
.app-default .btn-secondary:not(.app-btn--bare):hover:not(:disabled):not(.disabled),
.app-blank .btn-secondary:not(.app-btn--bare):hover:not(:disabled):not(.disabled) {
    background-color: var(--app-btn-secondary-hover-bg) !important;
    border-color: #d1d5db !important;
    box-shadow: var(--app-btn-shadow-hover);
}

/* Danger / Success — aynı geometri, renkli soft gölge */
.app-btn.btn-danger,
.app-default .btn-danger:not(.app-btn--bare),
.app-blank .btn-danger:not(.app-btn--bare) {
    border-color: transparent !important;
    box-shadow: var(--app-btn-shadow-danger);
}

.app-btn.btn-success,
.app-default .btn-success:not(.app-btn--bare),
.app-blank .btn-success:not(.app-btn--bare) {
    border-color: transparent !important;
    box-shadow: var(--app-btn-shadow-success);
}

/* İnverter listesi / kart aksiyonları — ekstra kompakt */
.inv-facility-monitor .inv-device-card .btn.btn-sm,
.inv-facility-monitor .inv-mobile-card .btn.btn-sm,
.inv-facility-monitor .inv-table-actions .btn.btn-sm,
.inv-facility-monitor table.table .btn.btn-sm {
    min-height: 1.7rem;
    padding: 0.15rem 0.55rem;
    font-size: 0.72rem;
    border-radius: 0.55rem !important;
}

.app-btn:disabled,
.app-btn.disabled,
.app-default .btn:disabled:not(.btn-close),
.app-blank .btn:disabled:not(.btn-close) {
    pointer-events: none;
    opacity: 0.55;
    box-shadow: none !important;
    transform: none !important;
}

/*
 * Primary / success / danger dolgu butonlarda ikon görünürlüğü.
 * text-primary vb. !important ve duotone path opacity yüzünden kaybolmayı engeller.
 */
.app-btn.btn-primary i,
.app-btn.btn-primary .ki-outline,
.app-btn.btn-primary .ki-duotone,
.app-btn.btn-primary .text-primary,
.app-btn.btn-primary .text-info,
.app-btn.btn-primary .text-warning,
.app-default .btn-primary i,
.app-default .btn-primary .ki-outline,
.app-blank .btn-primary i,
.app-blank .btn-primary .ki-outline {
    color: var(--bs-primary-inverse, #fff) !important;
}

.app-btn.btn-success i,
.app-btn.btn-success .ki-outline,
.app-btn.btn-success .ki-duotone,
.app-default .btn-success i,
.app-blank .btn-success i {
    color: var(--bs-success-inverse, #fff) !important;
}

.app-btn.btn-danger i,
.app-btn.btn-danger .ki-outline,
.app-btn.btn-danger .ki-duotone,
.app-default .btn-danger i,
.app-blank .btn-danger i {
    color: var(--bs-danger-inverse, #fff) !important;
}

.app-btn.btn-primary .ki-duotone [class^="path"]:before,
.app-btn.btn-primary .ki-duotone [class*=" path"]:before,
.app-btn.btn-success .ki-duotone [class^="path"]:before,
.app-btn.btn-success .ki-duotone [class*=" path"]:before,
.app-btn.btn-danger .ki-duotone [class^="path"]:before,
.app-btn.btn-danger .ki-duotone [class*=" path"]:before {
    color: inherit !important;
    opacity: 1 !important;
}

.app-btn.btn-light-primary:hover i,
.app-btn.btn-light-primary:focus i,
.app-btn.btn-light-primary:active i,
.app-btn.btn-light-primary.active i,
.app-btn.btn-light-primary.show i,
.app-btn.btn-light-primary:hover .ki-outline,
.app-btn.btn-light-primary:focus .ki-outline,
.app-btn.btn-light-primary:active .ki-outline,
.app-btn.btn-light-primary.active .ki-outline,
.app-btn.btn-light-primary.show .ki-outline,
.app-btn.btn-light-primary:hover .text-primary,
.app-btn.btn-light-primary:focus .text-primary,
.app-btn.btn-light-primary:active .text-primary,
.app-btn.btn-light-primary.active .text-primary,
.app-btn.btn-light-primary.show .text-primary {
    color: var(--bs-primary-inverse, #fff) !important;
}

.app-btn.btn-light-danger:hover i,
.app-btn.btn-light-danger:focus i,
.app-btn.btn-light-danger:active i,
.app-btn.btn-light-danger.active i,
.app-btn.btn-light-danger:hover .text-danger,
.app-btn.btn-light-danger:focus .text-danger,
.app-btn.btn-light-danger:active .text-danger,
.app-btn.btn-light-danger.active .text-danger {
    color: var(--bs-danger-inverse, #fff) !important;
}

/* Buton içi sayaç / badge (Like 2) */
.app-btn__badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.35rem;
    height: 1.35rem;
    padding: 0 0.4rem;
    margin-left: 0.15rem;
    border-radius: 999px;
    border: 1px solid #e5e7eb;
    background: #fff;
    color: #374151;
    font-size: 0.72rem;
    font-weight: 650;
    line-height: 1;
}

.app-btn.btn-primary .app-btn__badge {
    border-color: rgba(255, 255, 255, 0.35);
    background: rgba(255, 255, 255, 0.18);
    color: #fff;
}

/* Segmented / grup butonlar (Documents | Export) */
.app-btn-group,
.app-default .btn-group:not(.dropdown),
.app-blank .btn-group:not(.dropdown) {
    display: inline-flex;
    box-shadow: var(--app-btn-shadow);
    border-radius: var(--app-btn-radius);
    overflow: hidden;
}

.app-btn-group > .btn,
.app-btn-group > .app-btn,
.app-default .btn-group:not(.dropdown) > .btn,
.app-blank .btn-group:not(.dropdown) > .btn {
    border-radius: 0 !important;
    box-shadow: none !important;
    margin: 0 !important;
    border-right-width: 0 !important;
}

.app-btn-group > .btn:first-child,
.app-btn-group > .app-btn:first-child,
.app-default .btn-group:not(.dropdown) > .btn:first-child,
.app-blank .btn-group:not(.dropdown) > .btn:first-child {
    border-top-left-radius: var(--app-btn-radius) !important;
    border-bottom-left-radius: var(--app-btn-radius) !important;
}

.app-btn-group > .btn:last-child,
.app-btn-group > .app-btn:last-child,
.app-default .btn-group:not(.dropdown) > .btn:last-child,
.app-blank .btn-group:not(.dropdown) > .btn:last-child {
    border-top-right-radius: var(--app-btn-radius) !important;
    border-bottom-right-radius: var(--app-btn-radius) !important;
    border-right-width: 1px !important;
}

/* ---- ICON BUTTON ---- */
.app-icon-btn,
.app-default .btn.btn-icon:not(.btn-flush):not(.btn-close):not(.app-btn--bare),
.app-blank .btn.btn-icon:not(.btn-flush):not(.btn-close):not(.app-btn--bare) {
    width: var(--app-btn-icon-size);
    height: var(--app-btn-icon-size);
    min-height: var(--app-btn-icon-size);
    min-width: var(--app-btn-icon-size);
    padding: 0 !important;
    border-radius: var(--app-btn-radius) !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    gap: 0;
    box-shadow: var(--app-btn-shadow);
    transition: var(--app-btn-transition);
}

.app-icon-btn:not(.btn-primary):not(.btn-success):not(.btn-danger):not(.btn-warning):not(.btn-info),
.app-default .btn.btn-icon:not(.btn-primary):not(.btn-success):not(.btn-danger):not(.btn-warning):not(.btn-info):not(.btn-light-primary):not(.btn-light-danger):not(.app-btn--bare),
.app-blank .btn.btn-icon:not(.btn-primary):not(.btn-success):not(.btn-danger):not(.btn-warning):not(.btn-info):not(.btn-light-primary):not(.btn-light-danger):not(.app-btn--bare) {
    color: var(--app-btn-secondary-color);
    background-color: var(--app-btn-secondary-bg) !important;
    border: var(--app-btn-border) !important;
}

.app-icon-btn:disabled {
    opacity: 0.5;
    pointer-events: none;
}

.app-icon-btn.btn-sm,
.app-default .btn.btn-icon.btn-sm:not(.app-btn--bare),
.app-blank .btn.btn-icon.btn-sm:not(.app-btn--bare) {
    width: var(--app-btn-sm-height);
    height: var(--app-btn-sm-height);
    min-width: var(--app-btn-sm-height);
    min-height: var(--app-btn-sm-height);
    border-radius: calc(var(--app-btn-radius) - 0.15rem) !important;
}

/* ---- MODAL (ortak AppModal yüzeyi) ---- */
.app-modal-content {
    border-radius: var(--app-modal-radius) !important;
    box-shadow: var(--app-modal-shadow) !important;
    border: 1px solid rgba(255, 255, 255, 0.65) !important;
    overflow: hidden;
    background: #fff;
}

.app-modal-content::before {
    content: "";
    display: block;
    height: 3px;
    background: linear-gradient(90deg, #50cd89 0%, #009ef7 55%, #ffc700 100%);
}

.app-modal-overlay {
    animation: app-modal-backdrop-in 0.18s ease-out;
    position: fixed;
    inset: 0;
    display: flex !important;
    align-items: center;
    justify-content: center;
    padding: 0.75rem;
    overflow: hidden;
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
}

.app-modal-overlay .modal-dialog {
    animation: app-modal-slide-in 0.22s cubic-bezier(0.22, 1, 0.36, 1);
    margin: 0 auto;
    width: 100%;
}

/* Uzun modal gövdesi viewport'a sığsın; header/footer sabit, body kaydırılsın */
.app-modal-overlay .modal-dialog.app-modal-dialog--fit,
.app-modal-overlay .modal-dialog.app-modal-dialog--fit.modal-dialog-scrollable {
    max-height: calc(100dvh - 1.5rem) !important;
    height: auto !important;
    margin: 0.75rem auto !important;
}

.app-modal-overlay .modal-dialog.app-modal-dialog--fit .modal-content.app-modal-content {
    max-height: calc(100dvh - 1.5rem) !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
}

.app-modal-overlay .modal-dialog.app-modal-dialog--fit .modal-header,
.app-modal-overlay .modal-dialog.app-modal-dialog--fit .modal-footer {
    flex-shrink: 0 !important;
}

.app-modal-overlay .modal-dialog.app-modal-dialog--fit .modal-body.app-modal-body-panel,
.app-modal-overlay .modal-dialog.modal-dialog-scrollable .modal-body {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
}

.app-modal-header {
    background: var(--app-modal-header-bg);
}

.app-modal-header__title {
    font-size: 1.2rem;
    font-weight: 800;
    letter-spacing: -0.01em;
    color: #0f172a;
    margin: 0;
    line-height: 1.3;
}

.app-modal-header__subtitle {
    margin-top: 0.35rem;
    font-size: 0.8125rem;
    line-height: 1.45;
    color: #64748b;
}

.app-modal-close {
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 0.65rem !important;
    background: var(--app-modal-surface) !important;
    border: 1px solid var(--app-modal-border) !important;
}

.app-modal-close:hover {
    background: #eef2f7 !important;
}

.app-modal-body-panel {
    background: linear-gradient(180deg, #fff 0%, #fbfcfe 100%);
}

/* Bağlantı testi — tek kart + alt akış animasyonu */
.conn-test__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.55rem 0.85rem;
    padding: 0.55rem 0.75rem;
    margin-bottom: 0.75rem;
    border-radius: 0.55rem;
    background: #f5f8fa;
}

.conn-test__card {
    border: 1px solid #eef3f7;
    border-radius: 0.85rem;
    background: #fff;
    overflow: hidden;
}

.conn-test__rows {
    display: flex;
    flex-direction: column;
}

.conn-test__row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.65rem 0.85rem;
    border-bottom: 1px solid #f1f3f8;
}

.conn-test__row:last-child {
    border-bottom: none;
}

.conn-test__row-main {
    display: flex;
    align-items: flex-start;
    gap: 0.55rem;
    min-width: 0;
    flex: 1 1 auto;
}

.conn-test__row-end {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    flex-shrink: 0;
}

.conn-test__dot {
    width: 0.5rem;
    height: 0.5rem;
    margin-top: 0.35rem;
    border-radius: 50%;
    background: #c4cada;
    flex-shrink: 0;
}

.conn-test__dot--success { background: #50cd89; box-shadow: 0 0 0 3px rgba(80, 205, 137, 0.18); }
.conn-test__dot--danger { background: #f1416c; box-shadow: 0 0 0 3px rgba(241, 65, 108, 0.18); }
.conn-test__dot--warning { background: #ffc700; box-shadow: 0 0 0 3px rgba(255, 199, 0, 0.2); }
.conn-test__dot--primary { background: #009ef7; }

.conn-test__title {
    font-size: 0.875rem;
    font-weight: 700;
    color: #181c32;
    line-height: 1.25;
}

.conn-test__detail {
    margin-top: 0.15rem;
    font-size: 0.75rem;
    color: #7e8299;
    line-height: 1.35;
}

.conn-test__ms {
    font-size: 0.7rem;
    color: #a1a5b7;
    white-space: nowrap;
}

.conn-test__flow {
    --conn-flow-green: #50cd89;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    gap: 0;
    padding: 0.95rem 0.75rem 0.85rem;
    border-top: 1px dashed #eef3f7;
    background: linear-gradient(180deg, #f8fafc 0%, #fff 70%);
}

.conn-test__flow-node {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.3rem;
    width: 4.25rem;
    flex: 0 0 4.25rem;
    z-index: 1;
}

.conn-test__flow-glyph {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.35rem;
    height: 2.35rem;
    border-radius: 0.65rem;
    border: 1px solid #e4e6ef;
    background: #fff;
    color: #a1a5b7;
}

.conn-test__flow-glyph > i { font-size: 1.05rem; }

.conn-test__flow-node--success .conn-test__flow-glyph {
    border-color: rgba(80, 205, 137, 0.45);
    color: var(--conn-flow-green);
    background: rgba(80, 205, 137, 0.1);
}

.conn-test__flow-node--danger .conn-test__flow-glyph {
    border-color: rgba(241, 65, 108, 0.4);
    color: #f1416c;
    background: rgba(241, 65, 108, 0.08);
}

.conn-test__flow-node--warning .conn-test__flow-glyph {
    border-color: rgba(255, 199, 0, 0.45);
    color: #ffa800;
    background: rgba(255, 199, 0, 0.1);
}

.conn-test__flow-name {
    font-size: 0.65rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #5e6278;
}

.conn-test__flow-link {
    position: relative;
    flex: 1 1 2.5rem;
    min-width: 1.75rem;
    max-width: 4.5rem;
    height: 2.35rem;
    align-self: flex-start;
}

.conn-test__flow-track {
    position: absolute;
    left: 0;
    right: 0;
    top: 50%;
    height: 2px;
    border-radius: 999px;
    background: #e4e6ef;
    transform: translateY(-50%);
}

.conn-test__flow-link--success .conn-test__flow-track {
    background: rgba(80, 205, 137, 0.28);
}

.conn-test__flow-fill {
    position: absolute;
    left: 0;
    top: 50%;
    height: 2px;
    width: 0;
    border-radius: 999px;
    background: var(--conn-flow-green);
    transform: translateY(-50%);
}

.conn-test__flow--ok .conn-test__flow-link--success .conn-test__flow-fill {
    animation: conn-test-flow-fill 2.8s linear infinite;
}

.conn-test__flow-fill::after {
    content: "";
    position: absolute;
    right: 0;
    top: 50%;
    width: 0.4rem;
    height: 0.4rem;
    margin-top: -0.2rem;
    margin-right: -0.2rem;
    border-radius: 50%;
    background: var(--conn-flow-green);
    box-shadow: 0 0 8px rgba(80, 205, 137, 0.55);
    opacity: 0;
}

.conn-test__flow--ok .conn-test__flow-link--success .conn-test__flow-fill::after {
    animation: conn-test-flow-tip 2.8s linear infinite;
}

@keyframes conn-test-flow-fill {
    0%, 8% { width: 0; }
    55%, 78% { width: 100%; }
    92%, 100% { width: 0; }
}

@keyframes conn-test-flow-tip {
    0%, 8% { opacity: 0; }
    12%, 52% { opacity: 1; }
    58%, 100% { opacity: 0; }
}

.conn-test__probe {
    border: 1px solid #eef3f7;
    border-radius: 0.65rem;
    background: #fbfcfe;
    padding: 0.55rem 0.75rem;
}

.conn-test__probe-summary {
    cursor: pointer;
    font-size: 0.8125rem;
    font-weight: 700;
    color: #5e6278;
    list-style: none;
}

.conn-test__probe-summary::-webkit-details-marker { display: none; }

.conn-test__probe-body {
    margin-top: 0.65rem;
    padding-top: 0.55rem;
    border-top: 1px dashed #e4e6ef;
}

/* İletişim cihazı formu — modal içinde daha kompakt */
#facility-comm-setup .alert.mb-5 {
    margin-bottom: 0.85rem !important;
    padding: 0.75rem !important;
}

#facility-comm-setup .row.g-5 {
    --bs-gutter-y: 0.85rem;
}

.app-modal-footer-bar {
    background: #fbfcfe;
    border-top: 1px solid var(--app-modal-border) !important;
}

/* ---- Modal form alanları: net kenarlık, beyaz zemin, odak halkası ---- */
.app-modal-content .form-label {
    display: block;
    margin-bottom: 0.4rem;
    font-size: 0.8125rem;
    font-weight: 650;
    color: #3f4254;
    letter-spacing: 0.01em;
}

.app-modal-content .form-control,
.app-modal-content .form-select,
.app-modal-content .form-control-solid,
.app-modal-content .form-select-solid,
.app-modal-content .input-group-text {
    min-height: 2.75rem;
    border-radius: 0.7rem !important;
    border: 1px solid #d5dbe8 !important;
    background-color: #ffffff !important;
    color: #181c32;
    font-size: 0.9rem;
    font-weight: 500;
    line-height: 1.35;
    padding: 0.6rem 0.95rem;
    box-shadow: 0 1px 2px rgba(16, 24, 40, 0.04);
    transition: border-color 0.15s ease, box-shadow 0.15s ease, background-color 0.15s ease;
}

.app-modal-content textarea.form-control,
.app-modal-content textarea.form-control-solid {
    min-height: 5.5rem;
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
}

.app-modal-content .form-control::placeholder,
.app-modal-content .form-control-solid::placeholder {
    color: #a1a5b7;
    font-weight: 400;
    opacity: 1;
}

.app-modal-content .form-control:hover:not(:disabled):not([readonly]),
.app-modal-content .form-select:hover:not(:disabled),
.app-modal-content .form-control-solid:hover:not(:disabled):not([readonly]),
.app-modal-content .form-select-solid:hover:not(:disabled) {
    border-color: #b7c0d4 !important;
}

.app-modal-content .form-control:focus,
.app-modal-content .form-select:focus,
.app-modal-content .form-control-solid:focus,
.app-modal-content .form-select-solid:focus,
.app-modal-content .form-control:focus-visible,
.app-modal-content .form-select:focus-visible {
    border-color: #009ef7 !important;
    background-color: #ffffff !important;
    box-shadow: 0 0 0 3px rgba(0, 158, 247, 0.16) !important;
    outline: none;
}

.app-modal-content .form-control:disabled,
.app-modal-content .form-select:disabled,
.app-modal-content .form-control[readonly],
.app-modal-content .form-control-solid:disabled,
.app-modal-content .form-select-solid:disabled,
.app-modal-content .form-control-solid[readonly] {
    background-color: #f3f5f9 !important;
    color: #7e8299 !important;
    border-color: #e4e6ef !important;
    box-shadow: none !important;
    cursor: default;
}

.app-modal-content .form-text {
    margin-top: 0.35rem;
    font-size: 0.75rem;
    color: #7e8299;
    line-height: 1.4;
}

.app-modal-content .input-group .form-control,
.app-modal-content .input-group .form-select {
    box-shadow: none;
}

.app-modal-content .input-group:focus-within {
    box-shadow: 0 0 0 3px rgba(0, 158, 247, 0.16);
    border-radius: 0.7rem;
}

.app-modal-content .input-group:focus-within .form-control,
.app-modal-content .input-group:focus-within .form-select,
.app-modal-content .input-group:focus-within .input-group-text {
    box-shadow: none !important;
}

.app-modal-content .form-select {
    background-position: right 0.85rem center;
    padding-right: 2.35rem;
}

/* ---- AppSelect (özel açılır liste; her zaman alta) ---- */
.app-dd {
    position: relative;
    width: 100%;
}

.app-dd__trigger {
    display: flex;
    align-items: center;
    width: 100%;
    text-align: left;
    cursor: pointer;
}

.app-dd__trigger.form-select {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%237E8299' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right 0.85rem center;
    background-size: 14px 10px;
    padding-right: 2.35rem;
}

.app-dd.is-open .app-dd__trigger.form-select {
    border-color: #009ef7 !important;
    box-shadow: 0 0 0 3px rgba(0, 158, 247, 0.16) !important;
    background-color: #fff !important;
}

.app-dd__value {
    display: block;
    width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: #181c32;
    font-weight: 500;
}

.app-dd__value.is-placeholder {
    color: #a1a5b7;
    font-weight: 400;
}

.app-dd__backdrop {
    position: fixed;
    inset: 0;
    z-index: 3190;
    background: transparent;
}

.app-dd__menu {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    z-index: 3200;
    max-height: 280px;
    overflow-y: auto;
    padding: 0.35rem;
    margin: 0;
    list-style: none;
    background: #ffffff;
    border: 1px solid #d5dbe8;
    border-radius: 0.7rem;
    box-shadow: 0 1px 2px rgba(16, 24, 40, 0.04), 0 12px 28px rgba(16, 24, 40, 0.12);
}

.app-dd__search {
    position: sticky;
    top: 0;
    z-index: 1;
    padding: 0.2rem 0.15rem 0.4rem;
    margin-bottom: 0.15rem;
    background: #ffffff;
}

.app-dd__search-input {
    min-height: 2.25rem !important;
    border-radius: 0.5rem !important;
}

.app-dd__empty {
    padding: 0.65rem 0.75rem;
    font-size: 0.85rem;
    color: #a1a5b7;
}

.app-dd__option {
    display: block;
    width: 100%;
    border: 0;
    background: transparent;
    text-align: left;
    border-radius: 0.5rem;
    padding: 0.55rem 0.75rem;
    font-size: 0.9rem;
    font-weight: 500;
    color: #181c32;
    line-height: 1.35;
    cursor: pointer;
}

.app-dd__option:hover:not(:disabled),
.app-dd__option:focus-visible {
    background: rgba(0, 158, 247, 0.08);
    color: #009ef7;
    outline: none;
}

.app-dd__option.is-selected {
    background: rgba(0, 158, 247, 0.12);
    color: #009ef7;
    font-weight: 650;
}

.app-dd__option:disabled {
    color: #a1a5b7;
    cursor: default;
}

.app-dd.is-disabled .app-dd__trigger {
    cursor: default;
}

.app-modal-content .app-dd__trigger.form-select,
.app-modal-content .app-dd__trigger.form-select-solid {
    min-height: 2.75rem;
}

.app-modal-panel {
    border: 1px solid var(--app-modal-border);
    border-radius: 0.9rem;
    background: var(--app-modal-surface);
    padding: 1rem 1.1rem;
}

.app-modal-panel--soft {
    background: #fff;
    box-shadow: 0 1px 2px rgba(16, 24, 40, 0.04);
}

.app-modal-check-list {
    max-height: 240px;
    overflow: auto;
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    padding: 0.15rem;
}

.app-modal-check {
    display: flex;
    align-items: flex-start;
    gap: 0.7rem;
    padding: 0.7rem 0.85rem;
    border-radius: 0.75rem;
    border: 1px solid var(--app-modal-border);
    background: #fff;
    cursor: pointer;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
    margin: 0;
}

.app-modal-check:hover {
    border-color: rgba(0, 158, 247, 0.35);
    box-shadow: 0 4px 14px rgba(0, 158, 247, 0.08);
}

.app-modal-check.is-on {
    border-color: rgba(0, 158, 247, 0.45);
    background: rgba(0, 158, 247, 0.05);
}

.app-modal-check input {
    margin-top: 0.15rem;
}

.app-modal-check__title {
    font-weight: 700;
    font-size: 0.875rem;
    color: #181c32;
    line-height: 1.25;
}

.app-modal-check__meta {
    font-size: 0.75rem;
    color: #7e8299;
    margin-top: 0.15rem;
}

.app-modal-chip-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.app-modal-chip {
    display: inline-flex;
    align-items: center;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 700;
    background: rgba(80, 205, 137, 0.12);
    color: #0f8a4b;
}

@keyframes app-modal-backdrop-in {
    from { background-color: transparent; backdrop-filter: blur(0); }
    to   { background-color: var(--app-modal-overlay-bg); }
}

@keyframes app-modal-slide-in {
    /* transform kullanma: nested AppModal (Logger Test vb.) containing-block'ta kaybolur. */
    from { opacity: 0; }
    to   { opacity: 1; }
}

/* Anlık endeks sorgu: statik PNG spinner — yalnızca sorgu sürerken döner */
.modal-sorgu-image {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 0;
}

.modal-sorgu-image.is-spinning img {
    animation: modal-sorgu-spin 1.1s linear infinite;
    transform-origin: 50% 50%;
    will-change: transform;
}

@keyframes modal-sorgu-spin {
    from { transform: rotate(0deg); }
    to   { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
    .modal-sorgu-image.is-spinning img {
        animation: none;
    }
}

/*
 * Nested AppModal parent'ın modal-dialog-scrollable overflow'unda kırpılır
 * (Logger Test, Unit Tarama, IEC104 düzenle, RegisterMap vb.).
 * İç overlay açıkken scroll clip'i kaldır.
 */
.app-modal-overlay .modal-dialog-scrollable:has(.app-modal-overlay) {
    overflow: visible !important;
    height: auto !important;
    max-height: none !important;
}

.app-modal-overlay .modal-dialog-scrollable:has(.app-modal-overlay) .modal-content {
    overflow: visible !important;
    max-height: none !important;
}

.app-modal-overlay .modal-dialog-scrollable:has(.app-modal-overlay) .modal-body {
    overflow: visible !important;
    max-height: none !important;
}

/* Footer buton hizalaması — sağa yasla, gap ver */
.modal-footer {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 0.625rem;
    flex-wrap: wrap;
}

/* ---- INPUT / SELECT ----
   Tek kaynak: Yeni Tesis Ekle (İl) stili.
   Bileşenler: AppInput, AppTextArea, AppSelect, AppDateInput, AppFormField
   Sınıflar: .app-input / .cfw-input (eş anlamlı), .app-label / .cfw-label
*/
.app-form-field .form-control,
.app-form-field .form-select {
    border-radius: var(--app-input-radius);
}

.app-form-field .form-label,
.app-form-field .app-label,
.app-form-field .cfw-label {
    margin-bottom: var(--app-form-label-mb);
}

.app-label,
.cfw-label,
.app-form-field > .form-label,
.form-label.app-label,
.form-label.cfw-label {
    display: block;
    margin-bottom: var(--app-label-mb);
    font-size: var(--app-label-size);
    font-weight: var(--app-label-weight);
    color: var(--app-label-color);
}

.app-label.required::after,
.cfw-label.required::after,
.app-form-field > .form-label.required::after,
.form-label.app-label.required::after,
.form-label.cfw-label.required::after {
    content: " *";
    color: #f1416c;
}

.app-hint,
.cfw-hint {
    margin-top: 0.35rem;
    font-size: var(--app-hint-size);
    color: var(--app-hint-color);
}

/* Ortak telefon girişi (AppPhoneInput) — örnek: 05xx xxx xx xx */
.app-phone {
    display: flex;
    align-items: stretch;
    border-radius: var(--app-input-radius, 0.65rem);
    border: 1px solid var(--bs-gray-300, #e1e3ea);
    background: var(--bs-body-bg, #fff);
    overflow: hidden;
    transition: border-color .15s ease, box-shadow .15s ease;
}

.app-phone:focus-within {
    border-color: var(--bs-primary, #009ef7);
    box-shadow: 0 0 0 0.2rem rgba(0, 158, 247, 0.15);
}

.app-phone.is-invalid {
    border-color: #f1416c;
}

.app-phone.is-disabled {
    opacity: 0.65;
    pointer-events: none;
}

.app-phone__prefix {
    display: grid;
    place-items: center;
    padding: 0 0.85rem;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    color: #5e6278;
    background: #f5f8fa;
    border-right: 1px solid var(--bs-gray-300, #e1e3ea);
    white-space: nowrap;
    user-select: none;
}

.app-phone__control {
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
    min-height: var(--app-input-height, 42px);
    letter-spacing: 0.04em;
}

.app-phone__control:focus {
    box-shadow: none !important;
}

.app-phone--compact .app-phone__prefix {
    padding: 0 0.65rem;
    font-size: 0.72rem;
}

.app-phone--compact .app-phone__control {
    min-height: 36px;
    font-size: 0.9rem;
}

.app-phone--auth {
    border-color: #dbe4f0;
    background: #fff;
    border-radius: 12px;
    overflow: hidden;
}

.app-phone--auth .app-phone__prefix {
    color: #4b5d76;
    background: #f4f8fc;
    border-right-color: #dbe4f0;
}

.app-phone--auth .app-phone__control {
    color: #152238 !important;
    -webkit-text-fill-color: #152238 !important;
    caret-color: #152238;
    background: #fff !important;
}

.app-phone--auth .app-phone__control::placeholder {
    color: #8a9bb0 !important;
    -webkit-text-fill-color: #8a9bb0 !important;
}

.app-phone--auth:focus-within {
    border-color: rgba(14, 165, 233, 0.75);
    box-shadow: 0 0 0 3px rgba(14, 165, 233, 0.15);
}

/* Proje geneli standart input yüzeyi (sm / bare hariç) */
.form-control:not(.form-control-sm):not(.app-input--bare):not(.app-dd__search-input),
.form-select:not(.form-select-sm):not(.app-input--bare),
.app-dd__trigger.form-select:not(.form-select-sm),
.app-input,
.cfw-input {
    min-height: var(--app-input-height);
    padding: var(--app-input-padding-y) var(--app-input-padding-x);
    font-size: var(--app-input-font-size);
    font-weight: 500;
    line-height: 1.4;
    color: #181c32;
    border-radius: var(--app-input-radius) !important;
    border-color: var(--app-input-border-color) !important;
    background-color: var(--app-input-bg) !important;
    box-shadow: var(--app-input-inset);
    transition: border-color 0.15s ease, box-shadow 0.15s ease, background-color 0.15s ease;
}

.form-control:not(.form-control-sm):not(.app-input--bare):not(.app-dd__search-input):focus,
.form-select:not(.form-select-sm):not(.app-input--bare):focus,
.app-dd__trigger.form-select:not(.form-select-sm):focus,
.app-dd.is-open .app-dd__trigger.form-select:not(.form-select-sm),
.app-input:focus,
.cfw-input:focus {
    background-color: var(--app-input-focus-bg) !important;
    border-color: var(--app-input-focus-border) !important;
    box-shadow: var(--app-input-focus-ring) !important;
}

textarea.form-control:not(.form-control-sm):not(.app-input--bare),
textarea.app-input,
textarea.cfw-input {
    min-height: 5.5rem;
    padding-top: 0.75rem;
}

.form-control:disabled:not(.app-input--bare),
.form-select:disabled:not(.app-input--bare),
.app-input:disabled,
.cfw-input:disabled {
    opacity: 0.7;
    cursor: not-allowed;
}

[data-bs-theme=dark] .form-control:not(.form-control-sm):not(.app-input--bare):not(.app-dd__search-input),
[data-bs-theme=dark] .form-select:not(.form-select-sm):not(.app-input--bare),
[data-bs-theme=dark] .app-dd__trigger.form-select:not(.form-select-sm),
[data-bs-theme=dark] .app-input,
[data-bs-theme=dark] .cfw-input {
    background-color: #1b1f2a !important;
    border-color: #383f53 !important;
    color: #eef2ff;
    box-shadow: none;
}

[data-bs-theme=dark] .form-control:not(.form-control-sm):not(.app-input--bare):not(.app-dd__search-input):focus,
[data-bs-theme=dark] .form-select:not(.form-select-sm):not(.app-input--bare):focus,
[data-bs-theme=dark] .app-input:focus,
[data-bs-theme=dark] .cfw-input:focus,
[data-bs-theme=dark] .app-dd.is-open .app-dd__trigger.form-select:not(.form-select-sm) {
    background-color: #222636 !important;
}

.app-form-field .form-label.required::after {
    content: " *";
    color: #f1416c;
}

/* ---- TOAST CONTAINER ---- */
.app-toast-container {
    position: fixed;
    top: 1rem;
    right: 1rem;
    z-index: 10050; /* modal (2000–2100) üstünde görünsün */
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
    max-width: 360px;
    width: 100%;
    pointer-events: none;
}

.app-toast-container > * {
    pointer-events: auto;
}

/* ---- TOAST ITEM ---- */
.app-toast {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    padding: 0.85rem 1rem;
    border-radius: 0.55rem;
    box-shadow: 0 0.25rem 0.85rem rgba(0, 0, 0, 0.12);
    background: #ffffff;
    border-left: 4px solid #009ef7;
    font-size: 0.875rem;
    animation: app-toast-in 0.25s ease-out;
}

.app-toast.toast-success  { border-color: #50cd89; }
.app-toast.toast-error    { border-color: #f1416c; }
.app-toast.toast-warning  { border-color: #f1416c; }
.app-toast.toast-info     { border-color: #009ef7; }
.app-toast.toast-loading  { border-color: #7239ea; }

/* ---- Metronic toastr: okunabilir boyut ---- */
#toastr-container {
    width: 360px !important;
    max-width: calc(100vw - 1.5rem) !important;
}

#toastr-container.toastr-top-right,
#toastr-container.toastr-top-right-nav-margin,
#toastr-container.toastr-bottom-right {
    right: 1rem !important;
    top: 1rem !important;
}

#toastr-container > div {
    width: 360px !important;
    max-width: 100% !important;
    margin: 0 0 0.55rem !important;
    padding: 0.85rem 2.25rem 0.85rem 3.25rem !important;
    border-radius: 0.55rem !important;
    font-size: 0.875rem !important;
    line-height: 1.4 !important;
    box-shadow: 0 0.25rem 0.85rem rgba(15, 23, 42, 0.16) !important;
    opacity: 1 !important;
    background-size: 1.35rem 1.35rem !important;
    background-position: 0.85rem center !important;
}

#toastr-container > div.rtl {
    padding: 0.85rem 3.25rem 0.85rem 2.25rem !important;
    background-position: right 0.85rem center !important;
}

#toastr-container .toastr-title {
    font-size: 0.95rem !important;
    font-weight: 700 !important;
    margin-bottom: 0.2rem !important;
    line-height: 1.3 !important;
}

#toastr-container .toastr-message {
    font-size: 0.875rem !important;
    line-height: 1.4 !important;
}

#toastr-container .toastr-close-button {
    font-size: 18px !important;
    top: 0.35rem !important;
    right: 0.35rem !important;
    width: 1.35rem;
    height: 1.35rem;
    line-height: 1 !important;
}

#toastr-container .toastr-progress {
    height: 3px !important;
}

/* Toastr warning: sarı + beyaz metin okunmuyor → turuncu-kırmızı, yüksek kontrast */
.toastr.toastr-warning,
#toastr-container > .toastr-warning {
    background-color: #f1416c !important;
    color: #ffffff !important;
    opacity: 1 !important;
}

.toastr.toastr-warning .toastr-title,
.toastr.toastr-warning .toastr-message,
#toastr-container > .toastr-warning .toastr-title,
#toastr-container > .toastr-warning .toastr-message {
    color: #ffffff !important;
}

.toastr.toastr-warning .toastr-close-button,
#toastr-container > .toastr-warning .toastr-close-button {
    background-color: transparent !important;
    color: #ffffff !important;
    opacity: 0.85;
}

.app-toast-icon {
    flex-shrink: 0;
    font-size: 1.15rem;
    line-height: 1.35;
}

.app-toast-icon.success-icon { color: #50cd89; }
.app-toast-icon.error-icon   { color: #f1416c; }
.app-toast-icon.warning-icon { color: #f1416c; }
.app-toast-icon.info-icon    { color: #009ef7; }
.app-toast-icon.loading-icon { color: #7239ea; }

.app-toast-body {
    flex: 1;
    min-width: 0;
}

.app-toast-title {
    font-weight: 700;
    font-size: 0.95rem;
    margin-bottom: 0.15rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.app-toast-message {
    color: #5e6278;
    font-size: 0.875rem;
    line-height: 1.4;
    word-break: break-word;
}

.app-toast-close {
    flex-shrink: 0;
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    color: #a1a5b7;
    font-size: 1rem;
    line-height: 1;
    opacity: 0.7;
    transition: opacity 0.15s;
}

.app-toast-close:hover { opacity: 1; }

@keyframes app-toast-in {
    from { transform: translateX(30px); opacity: 0; }
    to   { transform: translateX(0);    opacity: 1; }
}

@keyframes app-toast-out {
    from { transform: translateX(0);    opacity: 1; max-height: 120px; margin-bottom: 0.625rem; }
    to   { transform: translateX(30px); opacity: 0; max-height: 0;    margin-bottom: 0; }
}

.app-toast.toast-leaving {
    animation: app-toast-out 0.25s ease-in forwards;
    overflow: hidden;
}

/* ---- RESPONSIVE ---- */
@media (max-width: 576px) {
    .app-toast-container {
        right: 0.5rem;
        left: 0.5rem;
        max-width: none;
    }

    .app-modal-overlay .modal-dialog {
        margin: 0.5rem;
    }
}

/* ---- GLOBAL HEADER LOCK ----
   Page-level SCADA/detail CSS must never restyle Metronic #kt_app_header.
   Keep logo/nav in the existing layout and pin theme/profile to the far right.
   Elevation: --bs-app-header-base/minimize-box-shadow (theme tokens above). */
/*
 * Üst menü köşeleri: Metronic .card ile aynı yarıçap.
 * Arka plan ::before ile çizilir — böylece sol alt köşe gerçekten yuvarlanır
 * ve bildirim dropdown'u (overflow:visible) kesilmez.
 */
#kt_app_header.app-header {
    display: flex;
    align-items: stretch;
    /* position'a dokunma — Metronic fixed/sticky kalsın; ::before fixed altında da çalışır */
    background-color: transparent !important;
    background-image: none !important;
    box-shadow: none !important;
    border-bottom: 0 !important;
    overflow: visible !important;
}

#kt_app_header.app-header::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    border-radius: var(--app-card-radius, 0.625rem);
    background-color: var(--bs-app-header-base-bg-color, #ffffff);
    box-shadow: var(--bs-app-header-base-box-shadow, var(--app-header-elevation));
}

[data-kt-app-header-minimize=on] #kt_app_header.app-header::before {
    background-color: var(--bs-app-header-minimize-bg-color, #ffffff);
    box-shadow: var(--bs-app-header-minimize-box-shadow, var(--app-header-elevation));
}

#kt_app_header.app-header > * {
    position: relative;
    z-index: 1;
}

#kt_app_header_container,
#kt_app_header_wrapper,
#kt_app_header .app-header-menu {
    background: transparent !important;
    background-color: transparent !important;
}

@media (min-width: 992px) {
    [data-kt-app-sidebar-fixed=true] #kt_app_header.app-header,
    [data-kt-app-sidebar-sticky=on] #kt_app_header.app-header {
        right: var(--app-sidebar-gap) !important;
    }

    [data-kt-app-sidebar-fixed=true] #kt_app_header.app-header::before,
    [data-kt-app-sidebar-sticky=on] #kt_app_header.app-header::before {
        border-radius: var(--app-card-radius, 0.625rem);
    }
}

#kt_app_header_container {
    display: flex;
    align-items: stretch;
    justify-content: space-between;
}

#kt_app_header_wrapper {
    display: flex;
    align-items: stretch;
    justify-content: space-between;
    flex: 1 1 auto;
    min-width: 0;
    width: auto;
    max-width: none;
}

#kt_app_header_wrapper > .app-header-menu {
    flex: 1 1 auto;
    width: auto;
    max-width: none;
    min-width: 0;
}

#kt_app_header_wrapper > .app-navbar {
    flex: 0 0 auto;
    margin-left: auto;
    width: auto;
    max-width: none;
}

/*
 * Mobil: Metronic drawer açıkken body overflow:hidden.
 * SPA/Blazor sonrası drawer kapalı kalıp attribute/overlay takılırsa scroll ölür.
 * Görünür .drawer-on yokken kaydırmayı zorla aç.
 */
@media (max-width: 991.98px) {
    body.app-default:not(:has(.drawer.drawer-on)):not(:has([data-kt-drawer="true"].drawer-on)) {
        overflow-x: hidden !important;
        overflow-y: auto !important;
    }

    /*
     * Üst menü (avatar yanındaki 4 kare buton): Metronic drawer z-index:110,
     * sayfa kartları / sticky (1020+) altında kalıyordu. Açıkken header + drawer
     * + overlay’i modal’ın (≈1055) altına, içeriğin üstüne al.
     */
    body:has(.app-header-menu.drawer-on) #kt_app_header.app-header,
    body:has(.app-header-menu.drawer.drawer-on) #kt_app_header.app-header {
        z-index: 1050 !important;
    }

    #kt_app_header .app-header-menu.drawer,
    #kt_app_header .app-header-menu.drawer.drawer-on {
        position: fixed !important;
        z-index: 1052 !important;
        top: 0 !important;
        bottom: 0 !important;
        background: var(--bs-body-bg, #fff) !important;
    }

    body:has(.app-header-menu.drawer-on) .drawer-overlay,
    body:has(.app-header-menu.drawer.drawer-on) .drawer-overlay {
        z-index: 1051 !important;
    }

    /* Header içi stacking (>::before / >* z-index:1) drawer’ı kilitlemesin */
    body:has(.app-header-menu.drawer-on) #kt_app_header.app-header > *,
    body:has(.app-header-menu.drawer.drawer-on) #kt_app_header.app-header > * {
        z-index: auto;
    }

    /* Bildirim / avatar ikonları açık drawer’ın üstüne binmesin */
    body:has(.app-header-menu.drawer-on) #kt_app_header .app-navbar,
    body:has(.app-header-menu.drawer.drawer-on) #kt_app_header .app-navbar {
        z-index: 0 !important;
        pointer-events: none;
    }

    body:has(.app-header-menu.drawer-on) #kt_app_header_menu_toggle,
    body:has(.app-header-menu.drawer.drawer-on) #kt_app_header_menu_toggle {
        pointer-events: auto;
        position: relative;
        z-index: 1053 !important;
    }
}

/* Desktop: SPA nav sonrası KTDrawer'ın sidebar'a eklediği off-canvas class'ları
   translateX(-100%) ile menüyü tamamen gizlemesin (Metronic mobile drawer kalıntısı). */
@media (min-width: 992px) {
    #kt_app_sidebar.drawer,
    #kt_app_sidebar.drawer-start,
    #kt_app_sidebar.drawer-end {
        position: fixed !important;
        top: 0 !important;
        bottom: 0 !important;
        left: 0 !important;
        transform: none !important;
        width: var(--bs-app-sidebar-width) !important;
        z-index: 105 !important;
    }
}

/* Üst menü: SPA navigasyonda drawer/swapper kalıntısı menüyü gizlemesin */
@media (min-width: 992px) {
    #kt_app_header_wrapper > .app-header-menu {
        display: flex !important;
        position: relative !important;
        transform: none !important;
        visibility: visible !important;
        opacity: 1 !important;
        width: auto !important;
        height: auto !important;
        z-index: auto !important;
    }

    #kt_app_header_menu.menu {
        display: flex !important;
        flex-direction: row;
        align-items: stretch;
    }
}

/* Üst menü ikonları: kutu / kenar / gölge yok — yalnızca ikon */
#kt_app_header .app-navbar .btn.btn-icon,
#kt_app_header .app-navbar .btn.btn-custom,
#kt_app_header .app-navbar .et-notif__btn,
#kt_app_header .app-navbar .et-alarm-hdr__btn {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    min-height: 0 !important;
    min-width: 0 !important;
    width: 35px !important;
    height: 35px !important;
    padding: 0 !important;
    border-radius: 0.5rem !important;
    transform: none !important;
}

#kt_app_header .app-navbar .btn.btn-icon:hover,
#kt_app_header .app-navbar .btn.btn-custom:hover,
#kt_app_header .app-navbar .et-notif__btn:hover,
#kt_app_header .app-navbar .et-alarm-hdr__btn:hover,
#kt_app_header .app-navbar .btn.btn-icon:focus,
#kt_app_header .app-navbar .btn.btn-custom:focus,
#kt_app_header .app-navbar .et-notif__btn:focus,
#kt_app_header .app-navbar .et-alarm-hdr__btn:focus,
#kt_app_header .app-navbar .btn.btn-icon.active,
#kt_app_header .app-navbar .et-notif__btn.active {
    background: rgba(var(--bs-gray-200-rgb, 239, 242, 245), 0.65) !important;
    box-shadow: none !important;
    border: 0 !important;
}

#kt_app_header .app-navbar .btn.btn-icon i,
#kt_app_header .app-navbar .btn.btn-custom i {
    color: var(--bs-gray-600) !important;
}

#kt_app_header .app-navbar .btn.btn-icon:hover i,
#kt_app_header .app-navbar .btn.btn-custom:hover i {
    color: var(--bs-primary) !important;
}

#kt_app_header .app-navbar .et-alarm-hdr__btn.is-alerting i {
    color: #f1416c !important;
}

/* Avatar: dış beyaz daire yok; komşu ikonlarla uyumlu küçük boyut */
#kt_header_user_menu_toggle > .symbol,
#kt_header_user_menu_toggle > .symbol.symbol-circle {
    width: 24px !important;
    height: 24px !important;
    min-width: 24px !important;
    min-height: 24px !important;
    max-width: 24px !important;
    max-height: 24px !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    overflow: hidden;
}

#kt_header_user_menu_toggle > .symbol img,
#kt_header_user_menu_toggle > .symbol.symbol-circle img,
#kt_header_user_menu_toggle > .symbol .et-header-avatar {
    width: 24px !important;
    height: 24px !important;
    max-width: 24px !important;
    max-height: 24px !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 50% !important;
    box-shadow: none !important;
    background: transparent !important;
    background-color: transparent !important;
    object-fit: cover !important;
    object-position: center !important;
    transform: none !important;
    display: block !important;
}

#kt_header_user_menu_toggle .menu .symbol.et-header-avatar-wrap {
    width: 50px !important;
    height: 50px !important;
    max-width: 50px !important;
    max-height: 50px !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    padding: 0 !important;
    border: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
    background-color: transparent !important;
    overflow: hidden;
}

#kt_header_user_menu_toggle .menu .symbol img {
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    padding: 0 !important;
    border-radius: 50% !important;
    background: transparent !important;
    object-fit: cover !important;
    transform: none !important;
}

/* İç içe app-content / app-container (eski sayfa sarmalayıcıları) boşluğu ikiye katlamasın */
#kt_app_content #kt_app_content,
.app-content .app-content {
    padding-top: 0 !important;
}

#kt_app_content_container #kt_app_content_container,
.app-container .app-container {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* Sayfa kökündeki ekstra mt-5 (Settings vb.) */
#kt_app_content_container > .row.mt-5 {
    margin-top: 0 !important;
}

/* Sol menü ↔ içerik / üst header */
@media (min-width: 992px) {
    /*
     * Üst header sol menüye yapışmasın: Metronic left = sidebar genişliği;
     * araya --app-sidebar-gap (20px) ekle. İçerik padding'i aynı hizada kalsın.
     */
    [data-kt-app-header-fixed=true][data-kt-app-sidebar-fixed=true][data-kt-app-sidebar-push-header=true] #kt_app_header.app-header,
    [data-kt-app-header-fixed=true][data-kt-app-sidebar-sticky=on][data-kt-app-sidebar-push-header=true] #kt_app_header.app-header {
        left: calc(var(--bs-app-sidebar-width) + var(--app-sidebar-gap)) !important;
    }

    body:not([data-kt-app-header-fixed=true])[data-kt-app-sidebar-fixed=true][data-kt-app-sidebar-push-header=true] #kt_app_header.app-header,
    body:not([data-kt-app-header-fixed=true])[data-kt-app-sidebar-sticky=on][data-kt-app-sidebar-push-header=true] #kt_app_header.app-header {
        margin-left: calc(var(--bs-app-sidebar-width) + var(--app-sidebar-gap)) !important;
    }

    /* Gap left offset'te; header container'da ekstra padding olmasın (çift boşluk) */
    #kt_app_header_container.app-container,
    .app-header .app-container {
        padding-left: 0 !important;
    }

    #kt_app_content_container.app-container,
    .app-main .app-container {
        padding-left: var(--app-sidebar-gap) !important;
    }
}

/* Üst menü ↔ ilk içerik (Metronic toolbar yokken padding-top:0 oluyor) */
@media (min-width: 992px) {
    [data-kt-app-toolbar-enabled=true]:not([data-kt-app-toolbar-fixed=true]) .app-content {
        padding-top: var(--app-content-top-gap) !important;
    }
}

@media (max-width: 991.98px) {
    [data-kt-app-toolbar-enabled=true]:not([data-kt-app-toolbar-fixed-mobile=true]) .app-content {
        padding-top: var(--app-content-top-gap) !important;
    }
}

/* Yatay / dikey kolon boşlukları (Bootstrap gutter) */
.app-content .row.g-3,
.app-content .row.g-4,
.app-content .row.g-5,
.app-content .row.g-6,
.app-content .row.g-xl-9,
.app-content .row.g-xl-10,
.app-content .row.mb-5.mb-xl-10,
#kt_app_content_container > .row {
    --bs-gutter-x: var(--app-page-gap);
    --bs-gutter-y: var(--app-page-gap);
}

/* Kartlar / sayfa bölümleri arası dikey mesafe → tek token */
.app-content .card.mb-4,
.app-content .card.mb-5,
.app-content .card.mb-6,
.app-content .card.mb-7,
.app-content .card.mb-8,
.app-content .card.mb-9,
.app-content .card.mb-10,
.app-content .card.mb-xl-9,
.app-content .card.mb-xl-10,
.app-content .card.mb-5.mb-xl-10 {
    margin-bottom: var(--app-page-gap) !important;
}

#kt_app_content_container > .mb-5,
#kt_app_content_container > .mb-6,
#kt_app_content_container > .mb-8,
#kt_app_content_container > .mb-10,
#kt_app_content_container > .row.mb-5,
#kt_app_content_container > .row.mb-6,
#kt_app_content_container > .row.mb-8 {
    margin-bottom: var(--app-page-gap) !important;
}

/* Flex stack sayfalarında gap zaten var — mb-* çift boşluk yapmasın */
.monitoring-detail-page > .card.mb-4,
.monitoring-detail-page > .card.mb-5,
.monitoring-detail-page > .card.mb-6,
.monitoring-detail-page > .card.mb-xl-10,
.monitoring-detail-page > .card.mb-5.mb-xl-10,
.monitoring-detail-page > .row.mb-5,
.monitoring-detail-page > .mb-5 {
    margin-bottom: 0 !important;
}

/* Bootstrap row negatif margin-top flex gap’i yutmasın */
.monitoring-detail-page .row {
    margin-top: 0 !important;
}

/* SCADA / monitoring flex stack + layout */
.monitoring-detail-page {
    display: flex;
    flex-direction: column;
    gap: var(--app-detail-card-gap);
    width: 100%;
    max-width: 100%;
    min-width: 0;
    padding-top: var(--app-detail-page-top);
}

.monitoring-page-section {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: var(--app-page-gap, 20px);
}

.monitoring-page-section:has(.et-energy-hub) {
    gap: 0;
    margin-bottom: 0;
    min-height: 0;
    overflow: hidden;
}

.monitoring-page-section > .card,
.monitoring-page-section > .alert,
.monitoring-page-section > .inv-facility-monitor,
.monitoring-page-section > .inverter-facility-body {
    width: 100%;
    max-width: 100%;
    margin-top: 0;
    margin-bottom: 0;
}

.monitoring-detail-page > .monitoring-detail-stack-item {
    display: contents;
}

.monitoring-detail-page > * {
    width: 100%;
    max-width: 100%;
    margin-bottom: 0;
    min-width: 0;
}

.monitoring-detail-page > .card,
.monitoring-detail-page > .alert {
    width: 100%;
    max-width: 100%;
}

.monitoring-detail-page > .row {
    width: 100%;
    max-width: 100%;
    margin-left: 0;
    margin-right: 0;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

.monitoring-detail-page > .card > .card-header {
    min-height: 0;
}

.scada-detail-page.monitoring-detail-page {
    padding-top: 0;
    gap: var(--app-page-gap);
}

.scada-action-header.monitoring-detail-action-header .scada-action-header__title {
    font-size: 1.375rem;
    font-weight: 700;
    color: #181c32;
    line-height: 1.3;
}

.scada-action-header.monitoring-detail-action-header .card-title .text-muted {
    font-size: 0.9375rem !important;
}

.monitoring-detail-action-header.card {
    width: 100%;
    max-width: 100%;
}

.monitoring-detail-action-header.card .card-header {
    min-height: 0;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.75rem;
    padding-top: var(--app-detail-header-py);
    padding-bottom: var(--app-detail-header-py);
    padding-left: var(--app-detail-card-px);
    padding-right: var(--app-detail-card-px);
}

.monitoring-detail-action-header.card .card-header .card-title {
    margin: 0;
    padding: 0;
}

.monitoring-detail-action-header.card .card-header .card-toolbar {
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0.5rem;
}

@media (max-width: 991.98px) {
    .monitoring-detail-action-header.card .card-header .card-toolbar {
        margin-left: 0;
    }
}

@media (max-width: 767.98px) {
    .monitoring-detail-page {
        padding-top: 0;
        gap: var(--app-spacing-md);
    }

    .monitoring-detail-action-header.card .card-header .card-toolbar {
        width: 100%;
        justify-content: stretch;
    }

    .monitoring-detail-action-header.card .card-header .card-toolbar .btn {
        flex: 1 1 calc(50% - 0.5rem);
        min-width: 0;
    }
}

.scada-nav-overlay {
    position: fixed;
    inset: 0;
    z-index: 1080;
    display: none;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.72);
    backdrop-filter: blur(2px);
}

.scada-nav-overlay.is-visible {
    display: flex;
}

/* İçerik padding zaten --app-content-top-gap; ekstra üst boşluk yok */
.scada-ops-page {
    padding-top: 0;
}

.scada-ops-hero > .card-header {
    min-height: 0;
    align-items: flex-start;
    padding-top: 2.1rem;
    padding-bottom: 0.65rem;
}

.scada-ops-hero__title {
    padding-top: 0.2rem;
}

.scada-ops-hero__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 2.75rem;
    height: 2.75rem;
    margin-top: 0.1rem;
    border-radius: 0.65rem;
    background: rgba(241, 65, 108, 0.08);
}

.scada-ops-hero > .card-header .card-title {
    margin: 0;
}

.scada-ops-hero > .card-header .card-toolbar {
    padding-top: 0.35rem;
}

.scada-ops-hero > .card-body {
    padding-top: 0.65rem !important;
}

.scada-facilities-card > .card-header {
    padding-top: 1.35rem;
    padding-bottom: 0.85rem;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem 1rem;
}

.scada-facilities-card > .card-header .card-toolbar.scada-ops-toolbar {
    flex: 1 1 auto;
    justify-content: flex-end;
    min-width: 0;
}

.scada-ops-toolbar__search {
    width: min(240px, 100%);
    flex: 0 1 240px;
}

.license-mgmt-hero.scada-hero > .card-body {
    padding: 1.85rem 1.9rem 1.75rem !important;
    min-height: 8.5rem;
}

.license-mgmt-hero .scada-hero__title {
    margin: 0;
    font-size: 1.35rem;
    font-weight: 700;
    line-height: 1.3;
    color: #181c32;
}

.license-mgmt-hero .scada-hero__license-row {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 0.85rem 1.25rem;
}

.license-mgmt-hero .license-mgmt-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    justify-content: flex-end;
}

.license-mgmt-hero .license-mgmt-tabs .btn {
    font-size: 0.8125rem;
    font-weight: 600;
    padding: 0.45rem 0.75rem;
    white-space: nowrap;
}

/* Ödeme / fatura bekleyen sekmeler — dikkat çekici nabız */
.license-mgmt-hero .license-mgmt-tabs .btn.is-attention {
    animation: license-mgmt-tab-pulse 1.35s ease-in-out infinite;
}

.license-mgmt-hero .license-mgmt-tabs .btn.is-attention--payment:not(.btn-primary) {
    background: rgba(255, 199, 0, 0.22) !important;
    border-color: rgba(255, 168, 0, 0.55) !important;
    color: #7a4f00 !important;
}

.license-mgmt-hero .license-mgmt-tabs .btn.is-attention--invoice:not(.btn-primary) {
    background: rgba(255, 199, 0, 0.18) !important;
    border-color: rgba(245, 165, 36, 0.5) !important;
    color: #7a4f00 !important;
}

@keyframes license-mgmt-tab-pulse {
    0%, 100% {
        transform: scale(1);
        box-shadow: 0 0 0 0 rgba(245, 165, 36, 0.45);
        opacity: 1;
    }
    50% {
        transform: scale(1.03);
        box-shadow: 0 0 0 6px rgba(245, 165, 36, 0);
        opacity: 0.88;
    }
}

@media (prefers-reduced-motion: reduce) {
    .license-mgmt-hero .license-mgmt-tabs .btn.is-attention {
        animation: none;
    }
}

.license-filter-select {
    min-width: 8rem;
    max-width: 12rem;
    width: auto;
    flex: 0 1 auto;
}

.license-mgmt-card > .card-header {
    border-bottom: 0;
}

.license-mgmt-card .license-mgmt-toolbar {
    flex-wrap: nowrap;
    max-width: 100%;
}

.license-mgmt-card .license-mgmt-toolbar .btn {
    flex-shrink: 0;
}

@media (max-width: 991.98px) {
    .license-mgmt-card .license-mgmt-toolbar {
        flex-wrap: wrap;
        width: 100%;
        justify-content: flex-start;
    }

    .license-mgmt-card > .card-header.mt-5 {
        margin-top: 0 !important;
    }

    .license-mgmt-card > .card-header {
        flex-direction: column;
        align-items: stretch;
        gap: 0.65rem;
    }

    .license-mgmt-card > .card-header .card-toolbar.ms-auto {
        margin-left: 0 !important;
        width: 100%;
    }

    .license-mgmt-card .btn-group:not(.dropdown) {
        display: inline-flex;
        flex-wrap: wrap;
        gap: 0.35rem;
    }

    .license-mgmt-card .btn-group:not(.dropdown) > .btn {
        border-radius: 0.4rem !important;
        margin-left: 0 !important;
    }

    .license-mgmt-card.app-mobile-scroll-host .card-body > .table-responsive,
    .license-mgmt-card .card-body .table-responsive {
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch;
        max-width: 100%;
    }

    .license-mgmt-card .table-responsive > .license-mgmt-table {
        width: max-content;
        min-width: 100%;
    }
}

.license-kpi-tile {
    border: 1px solid #e8edf5;
    border-radius: 0.85rem;
    background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
    padding: 1rem 1.1rem;
    box-shadow: 0 4px 14px rgba(24, 28, 50, 0.04);
}

.license-kpi-tile__label {
    font-size: 0.72rem;
    font-weight: 650;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #7e8299;
    margin-bottom: 0.35rem;
}

.license-kpi-tile__value {
    font-size: 1.35rem;
    font-weight: 750;
    color: #181c32;
    line-height: 1.2;
}

.license-kpi-tile--primary { border-color: rgba(62, 151, 255, 0.28); }
.license-kpi-tile--info { border-color: rgba(80, 205, 237, 0.35); }
.license-kpi-tile--success { border-color: rgba(80, 205, 137, 0.35); }
.license-kpi-tile--warning { border-color: rgba(255, 199, 0, 0.4); }
.license-kpi-tile--danger { border-color: rgba(241, 65, 108, 0.3); }

/* Lisans dönemi merdiven */
.license-stair {
    display: flex;
    flex-direction: column;
    gap: 1.15rem;
}

.license-stair__period {
    border: 1px solid #e4e6ef;
    border-radius: 0.75rem;
    background: #fafbfc;
    padding: 0.95rem 1.1rem 1rem;
}

.license-stair__period-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 0.75rem;
    margin-bottom: 0.85rem;
}

.license-stair__year {
    font-size: 1.1rem;
    font-weight: 700;
    color: #181c32;
}

.license-stair__track {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 0;
}

.license-stair__step {
    flex: 1 1 10rem;
    min-width: 9.5rem;
    display: flex;
    gap: 0.65rem;
    padding: 0.75rem 0.85rem;
    border-radius: 0.65rem;
    background: #fff;
    border: 1px solid #e4e6ef;
}

.license-stair__step.is-done {
    border-color: #a4e5c4;
    background: #f3fbf7;
}

.license-stair__step.is-current {
    border-color: #f1c40f;
    background: #fffbeb;
    box-shadow: 0 0 0 1px rgba(241, 196, 15, 0.25);
}

.license-stair__step.is-todo {
    opacity: 0.72;
}

.license-stair__node {
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.75rem;
    font-weight: 700;
    flex-shrink: 0;
    background: #eef0f4;
    color: #5e6278;
}

.license-stair__step.is-done .license-stair__node {
    background: #50cd89;
    color: #fff;
}

.license-stair__step.is-current .license-stair__node {
    background: #ffc700;
    color: #3f4254;
}

.license-stair__title {
    font-size: 0.85rem;
    font-weight: 700;
    color: #181c32;
}

.license-stair__hint {
    font-size: 0.72rem;
    color: #7e8299;
    margin: 0.15rem 0 0.35rem;
}

.license-stair__break {
    width: 1.25rem;
    align-self: center;
    height: 2px;
    background: repeating-linear-gradient(90deg, #cbd5e1 0 4px, transparent 4px 8px);
    margin: 0 0.15rem;
    flex: 0 0 1.25rem;
}

.license-stair__actions {
    display: flex;
    gap: 0.4rem;
    margin-top: 0.75rem;
    justify-content: flex-end;
}

.license-stair__payments {
    margin-top: 0.65rem;
    padding-top: 0.55rem;
    border-top: 1px dashed #e4e6ef;
}

.license-stair__payment-row {
    display: flex;
    justify-content: space-between;
    gap: 0.75rem;
    font-size: 0.78rem;
    color: #5e6278;
    padding: 0.25rem 0;
}

@media (max-width: 991.98px) {
    .license-stair__break {
        display: none;
    }

    .license-stair__track {
        flex-direction: column;
        gap: 0.5rem;
    }
}

/* Lisans Hareketleri modal */
.lm-section__title {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #7e8299;
    margin-bottom: 0.65rem;
}

.lm-card {
    border: 1px solid #e4e6ef;
    border-radius: 0.65rem;
    padding: 0.9rem 1rem;
    margin-bottom: 0.75rem;
    background: #fff;
}

.lm-card--current {
    border-color: #b5d4ff;
    background: #f5f9ff;
}

.lm-card__head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem 1rem;
}

.lm-card__year {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.75rem;
    height: 1.75rem;
    padding: 0 0.4rem;
    border-radius: 0.4rem;
    background: #1b84ff;
    color: #fff;
    font-size: 0.8rem;
    font-weight: 700;
}

.lm-card__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-top: 0.75rem;
}

.lm-card__meta {
    border-top: 1px dashed #e4e6ef;
    padding-top: 0.65rem;
}

.license-payment-pending-card {
    border: 1px dashed #ffc700 !important;
    background: rgba(255, 199, 0, 0.06);
}

.license-payment-pending-card .btn-warning {
    font-weight: 600;
}

.license-payment-modal {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.license-payment-modal__hero {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem 1.5rem;
    padding: 1.1rem 1.25rem;
    border-radius: 0.85rem;
    border: 1px solid #e8edf5;
    background: linear-gradient(135deg, #f8fafc 0%, #f1f6ff 100%);
}

.license-payment-modal__facility {
    font-size: 1.15rem;
    font-weight: 700;
    color: #181c32;
}

.license-payment-modal__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 0.75rem;
    margin-top: 0.35rem;
    font-size: 0.85rem;
}

.license-payment-modal__amount {
    text-align: right;
    min-width: 9rem;
}

.license-payment-modal__amount-label {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #7e8299;
    margin-bottom: 0.15rem;
}

.license-payment-modal__amount-value {
    font-size: 1.35rem;
    font-weight: 700;
    color: #009ef7;
    line-height: 1.2;
}

.license-payment-modal__amount-value span {
    font-size: 0.95rem;
    font-weight: 600;
    color: #5e6278;
}

.license-payment-modal__section {
    border: 1px solid #eef0f4;
    border-radius: 0.85rem;
    background: #fff;
    padding: 1.15rem 1.25rem 1.25rem;
}

.license-payment-modal__section-title {
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #7e8299;
    margin-bottom: 1rem;
}

.license-payment-modal .form-control-solid,
.license-payment-modal .form-select-solid {
    background-color: #f9f9f9;
    border-color: #e4e6ef;
}

.license-payment-modal .form-control-solid:focus,
.license-payment-modal .form-select-solid:focus {
    background-color: #fff;
    border-color: #009ef7;
    box-shadow: 0 0 0 0.2rem rgba(0, 158, 247, 0.12);
}

.btn-light-info {
    color: #7239ea;
    background-color: #f8f5ff;
    border-color: #e9e0ff;
}

.btn-light-info:hover {
    color: #5014d0;
    background-color: #eee5ff;
    border-color: #d5c4ff;
}

.license-detail-hero {
    border: 1px solid var(--bs-gray-200, #eff2f5);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
}

.license-detail-hero .badge {
    font-weight: 600;
}

.license-history-table thead th {
    letter-spacing: 0.02em;
    border-bottom-width: 1px !important;
}

.license-history-table tbody tr td {
    vertical-align: middle;
    padding-top: 0.85rem;
    padding-bottom: 0.85rem;
}

.license-mgmt-tabs .nav-link {
    font-size: 1rem;
    padding: 0.85rem 1.15rem;
}

.license-mgmt-table {
    font-size: 0.875rem;
    border-collapse: separate;
    border-spacing: 0;
}

.license-mgmt-table .license-facility-group td {
    background: #f4f7fb;
    border-top: none;
    padding-top: 0.95rem !important;
    padding-bottom: 0.95rem !important;
}

.license-mgmt-table .license-facility-group:hover td {
    background: #eef4fb;
}

.license-mgmt-table td,
.license-mgmt-table th {
    padding-top: 1rem;
    padding-bottom: 1rem;
    font-size: 0.9rem;
    vertical-align: middle;
    border-bottom: 1px solid transparent;
}

.license-mgmt-table thead th {
    background: transparent;
    letter-spacing: 0.05em;
    border-bottom: none !important;
    color: #7e8299;
    font-weight: 700;
}

.license-mgmt-table--modern tbody tr.license-mgmt-row td {
    background: #fff;
    border-top: 1px solid #eef1f6;
    border-bottom: 1px solid #eef1f6;
}

.license-mgmt-table--modern tbody tr.license-mgmt-row td:first-child {
    border-left: 1px solid #eef1f6;
    border-radius: 0.75rem 0 0 0.75rem;
}

.license-mgmt-table--modern tbody tr.license-mgmt-row td:last-child {
    border-right: 1px solid #eef1f6;
    border-radius: 0 0.75rem 0.75rem 0;
}

.license-mgmt-table--modern tbody tr.license-mgmt-row + tr.license-mgmt-row td {
    border-top-color: transparent;
}

.license-mgmt-table--modern {
    border-spacing: 0 0.45rem;
}

.license-mgmt-table--striped tbody tr.license-mgmt-row:nth-child(even) {
    background: transparent;
}

.license-mgmt-table tbody tr.license-mgmt-row:hover td {
    background: #f7fbff !important;
    box-shadow: 0 4px 14px rgba(62, 151, 255, 0.08);
}

.license-mgmt-table .badge {
    font-weight: 600;
    letter-spacing: 0.01em;
}

.license-invoice-info-btn {
    white-space: nowrap;
    font-size: 0.78rem;
    padding: 0.35rem 0.65rem;
}

.license-mgmt-table .table-warning {
    --bs-table-bg: rgba(255, 199, 0, 0.08);
}

.license-right-card {
    min-height: 8.5rem;
}

.facility-license-chip {
    border: 1px solid var(--app-card-border, #e4e6ef);
    border-radius: 0.85rem;
    padding: 0.85rem 1.1rem;
    min-width: 11rem;
    background: var(--app-tile-bg, #fff);
}

.facility-license-dot {
    width: 0.7rem;
    height: 0.7rem;
    border-radius: 50%;
    display: inline-block;
}

.facility-license-dot.is-on {
    background: #50cd89;
}

.facility-license-dot.is-off {
    background: #a1a5b7;
}

.facility-license-dot.is-warning {
    background: #f6b84d;
}

.facility-license-dot.is-danger {
    background: #e64c67;
}

/* ---- License Strip (FacilityLicenseBadges yeni tasarım) ---- */
.license-strip {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.65rem;
}

.license-strip__facility-row,
.license-strip__modules-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 0.75rem;
    width: 100%;
}

.license-strip__modules-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    margin-left: auto;
    flex: 0 1 auto;
    min-width: 0;
}

.license-strip__modules {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.25rem 0.15rem;
}

.license-strip__section-title {
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #a1a5b7;
    line-height: 1.2;
}

.license-strip__section-title--inline {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: #a1a5b7;
    white-space: nowrap;
}

.license-strip__inline-sep {
    color: #d8d8e5;
    font-size: 0.875rem;
    line-height: 1;
    user-select: none;
}

.license-strip__chip--facility {
    background: transparent;
    padding-left: 0;
    padding-right: 0;
}

.license-strip__chip--summary {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    background: #f9f9fb;
    border: 1px solid #eef0f6;
    box-shadow: none;
    min-height: 2.15rem;
    padding: 0.4rem 0.9rem;
}

/* Özet satırı: etiket / durum / tarih / gün — aynı boy, yatay hizalı */
.license-strip__chip--summary .license-strip__label,
.license-strip__chip--summary .license-strip__value,
.license-strip__chip--summary .license-strip__sub,
.license-strip__chip--summary .license-strip__sub-date {
    font-size: 0.8125rem;
    line-height: 1.2;
    font-weight: 600;
    letter-spacing: 0.01em;
}

.license-strip__chip--summary .license-strip__label {
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #7e8299;
}

.license-strip__chip--summary .license-strip__value {
    font-weight: 700;
    color: #3f4254;
}

.license-strip__chip--summary .license-strip__sub {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    border-left: 1px solid #e4e6ef;
    padding-left: 0.55rem;
    margin-left: 0;
    color: #5e6278;
}

.license-strip__chip--summary .license-strip__sub-date {
    color: #5e6278;
}

.license-strip__chip--summary .license-strip__days {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.12rem 0.5rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0.01em;
    color: #5e6278;
    background: #eef0f6;
    border: 1px solid #e4e6ef;
}

.license-strip__chip--summary .license-strip__dot {
    width: 0.55rem;
    height: 0.55rem;
}

.license-strip__label--lg {
    font-size: 0.9rem;
}

.license-strip__value--lg {
    font-size: 1.0625rem;
    font-weight: 700;
    color: #3f4254;
}

.license-strip__sub--lg {
    font-size: 0.875rem;
    color: #7e8299;
}

.license-strip__chip {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.45rem 0.95rem;
    border-radius: 2.15rem;
    background: rgba(0, 0, 0, 0.035);
    font-size: 0.875rem;
    line-height: 1.25;
    white-space: nowrap;
}

.license-strip__chip--renewal {
    background: rgba(0, 158, 247, 0.08);
}

.license-strip__label {
    color: #a1a5b7;
    font-size: 0.75rem;
    font-weight: 500;
}

.license-strip__module {
    font-weight: 600;
    color: #3f4254;
    font-size: 0.875rem;
}

.license-strip__value {
    color: #5e6278;
    font-size: 0.875rem;
}

.license-strip__sub {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    color: #a1a5b7;
    font-size: 0.8125rem;
    line-height: 1.2;
    border-left: 1px solid #e4e6ef;
    padding-left: 0.5rem;
    margin-left: 0.1rem;
}

.license-strip__sub-date {
    font-size: inherit;
    font-weight: 600;
    color: #5e6278;
}

.license-strip__days {
    display: inline-flex;
    align-items: center;
    padding: 0.1rem 0.45rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 700;
    line-height: 1.2;
    color: #5e6278;
    background: #eef0f6;
    border: 1px solid #e4e6ef;
}

.license-strip__dot {
    width: 0.65rem;
    height: 0.65rem;
    border-radius: 50%;
    display: inline-block;
    flex-shrink: 0;
}

.license-strip__dot.is-on    { background: #50cd89; }
.license-strip__dot.is-off   { background: #a1a5b7; }
.license-strip__dot.is-warning { background: #f6b84d; }
.license-strip__dot.is-danger  { background: #e64c67; }

/* ---- scada-hero layout rows ---- */
.scada-hero__license-row {
    margin-top: 0.9rem;
}

.scada-hero__license-row .scada-hero__licenses,
.scada-hero__license-row .license-strip {
    align-items: flex-start;
}

.scada-hero__license-row .license-strip__facility-row {
    justify-content: flex-start;
}

.scada-hero__license-row .license-strip__modules-row {
    justify-content: space-between;
    align-items: center;
    gap: 0.75rem 1rem;
}

.scada-hero__license-row .license-strip__modules-actions {
    margin-left: auto;
}

.scada-hero__license-row .license-strip__modules-actions .scada-hero__actions,
.scada-hero__license-row .license-strip__modules-actions .scada-toolbar-bar {
    margin-left: 0;
}

.ekk-scada {
    --ekk-border: #e4e6ef;
    --ekk-muted: #a1a5b7;
    --ekk-text: #181c32;
    --ekk-soft: #f9f9fb;
    --ekk-ok: #50cd89;
    --ekk-bad: #f1416c;
    overflow: hidden;
}

.ekk-scada--fullscreen {
    border-radius: 0;
    width: 100%;
    height: 100%;
    background: #f0f2f5;
    padding: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

/* ---- Fullscreen SCADA / HMI ---- */
.ekk-hmi__header {
    display: grid;
    grid-template-columns: minmax(16rem, 24rem) minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.75rem 1.1rem;
    padding: 1.15rem 1.25rem;
    min-height: 5.25rem;
    background: #fff;
    border-bottom: 1px solid #e4e6ef;
    flex: 0 0 auto;
}

.ekk-hmi__brand {
    display: flex;
    align-items: center;
    gap: 0.85rem;
}

.ekk-hmi__title {
    font-size: 1.35rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    color: #181c32;
    text-transform: uppercase;
    line-height: 1.2;
}

.ekk-hmi__subtitle {
    font-size: 0.95rem;
    font-weight: 600;
    color: #5e6278;
    margin-top: 0.2rem;
}

.ekk-hmi__status-line {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.3rem 0.55rem;
    font-size: 0.95rem;
    font-weight: 650;
    color: #3f4254;
}

.ekk-hmi__sep { color: #c4cbe0; }

.ekk-hmi__pill {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 1rem;
    font-weight: 800;
    letter-spacing: 0.04em;
}

.ekk-hmi__pill.is-ok { color: #1a7a4a; }
.ekk-hmi__pill.is-bad { color: #c0294a; }

.ekk-hmi__actions {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    flex-shrink: 0;
}

.ekk-hmi__mode-group {
    display: inline-flex;
    align-items: stretch;
    border: 1px solid #e1e3ea;
    border-radius: 0.45rem;
    overflow: hidden;
    background: #f5f8fa;
}

.ekk-hmi__mode-btn {
    appearance: none;
    border: 0;
    background: transparent;
    color: #5e6278;
    font-size: 0.9rem;
    font-weight: 750;
    letter-spacing: 0.03em;
    padding: 0.55rem 0.9rem;
    line-height: 1.1;
    cursor: pointer;
    transition: background-color 0.15s ease, color 0.15s ease;
}

.ekk-hmi__mode-btn + .ekk-hmi__mode-btn {
    border-left: 1px solid #e1e3ea;
}

.ekk-hmi__mode-btn:hover {
    background: #eef3f7;
    color: #181c32;
}

.ekk-hmi__mode-btn.is-active {
    background: #3e97ff;
    color: #fff;
}

.ekk-hmi__alert { margin: 0.35rem 0.75rem 0; flex: 0 0 auto; }

.ekk-hmi__body {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
    padding: 0.65rem 0.85rem 0.75rem;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.ekk-hmi__block {
    background: #fff;
    border: 1px solid #e4e6ef;
    border-radius: 0.45rem;
    box-shadow: 0 1px 3px rgba(24, 28, 50, 0.05);
    padding: 0.7rem 0.55rem 0.5rem;
    min-width: 0;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

.ekk-hmi__heading {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    min-height: 1.85rem;
    margin: 0.1rem 0 20px;
    padding: 0.35rem 0.55rem;
    border: 1px solid #e8eaef;
    border-radius: 0.35rem;
    background: #f5f8fa;
    flex: 0 0 auto;
}

.ekk-hmi__heading-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #3e97ff;
    font-size: 1.1rem;
    line-height: 1;
    flex-shrink: 0;
}

.ekk-hmi__heading-text {
    font-size: 0.92rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    color: #181c32;
}

.ekk-hmi__row--power {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
    margin-top: 0;
    flex: 1.05 1 0;
    min-height: 0;
    align-items: stretch;
}

.ekk-hmi__gauge-grid {
    display: grid;
    gap: 20px;
    flex: 1 1 auto;
    min-height: 0;
    align-content: stretch;
}

.ekk-hmi__gauge-grid--3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.ekk-hmi__gauge-grid--mt {
    margin-top: 20px;
}

.ekk-hmi__gauge-card {
    border: 1px solid #e4e6ef;
    border-radius: 0.45rem;
    background: linear-gradient(180deg, #ffffff 0%, #fafbfd 100%);
    box-shadow: 0 1px 4px rgba(24, 28, 50, 0.04);
    padding: 0.3rem 0.4rem 0.55rem;
    min-width: 0;
    min-height: 0;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: stretch;
    gap: 0.1rem;
}

.ekk-hmi__gauge-card--sm {
    min-height: 0;
}

.ekk-hmi__gauge-card-head {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    min-height: 1.9rem;
    margin: 0;
    padding: 0.28rem 0.45rem;
    border: 1px solid #e1e3ea;
    border-radius: 0.35rem;
    background: #f5f8fa;
    font-size: 0.86rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    color: #181c32;
    flex: 0 0 auto;
}

.ekk-hmi__gauge-card-label {
    display: inline-flex;
    align-self: center;
    align-items: center;
    justify-content: center;
    min-width: 3.25rem;
    margin: 0 auto;
    padding: 0.18rem 0.6rem;
    border: 1.5px solid #d8dce8;
    border-radius: 0.35rem;
    background: #f8f9fb;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85);
    font-size: 0.86rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    color: #181c32;
    line-height: 1.1;
    flex: 0 0 auto;
}

.ekk-hmi__tiles {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
}

.ekk-hmi__tiles--mt { margin-top: 20px; }

.ekk-hmi__tile {
    border: 1px solid #e4e6ef;
    border-radius: 0.4rem;
    background: #fff;
    box-shadow: 0 1px 3px rgba(24, 28, 50, 0.04);
    padding: 0.55rem 0.7rem 0.6rem;
    transition: border-color 0.2s ease;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 0;
    height: 100%;
}

.ekk-hmi__tile--wide { background: #fff; }

.ekk-hmi__tile--total .ekk-hmi__tile-number {
    font-size: 1.55rem;
}

.ekk-hmi__tile--changed .ekk-hmi__tile-number {
    animation: ekk-value-flash 2s ease-out forwards;
}

.ekk-hmi__tile-label {
    font-size: 0.95rem;
    font-weight: 750;
    color: #5e6278;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.ekk-hmi__tile-value {
    display: flex;
    align-items: baseline;
    gap: 0.4rem;
    margin-top: 0.2rem;
}

.ekk-hmi__tile-number {
    font-size: 1.45rem;
    font-weight: 800;
    color: #181c32;
    font-variant-numeric: tabular-nums;
    line-height: 1.15;
}

.ekk-hmi__tile-unit {
    font-size: 1rem;
    font-weight: 700;
    color: #7e8299;
}

.ekk-hmi__tile-footer {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    margin-top: 0.2rem;
    font-size: 0.75rem;
    color: #a1a5b7;
}

.ekk-hmi__row--mid {
    display: grid;
    grid-template-columns: minmax(0, 2.2fr) minmax(10rem, 0.85fr);
    gap: 20px;
    flex: 1.25 1 0;
    min-height: 0;
    align-items: stretch;
}

.ekk-hmi__row--mid .ekk-hmi__block {
    min-height: 0;
    height: 100%;
}

.ekk-hmi__row--mid .ekk-hmi__gauge-grid,
.ekk-hmi__row--mid .ekk-hmi__gauge-card {
    min-height: 0;
}

.ekk-hmi__row--bottom {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
    flex: 0.65 1 0;
    min-height: 0;
    align-items: stretch;
}

.ekk-hmi__row--bottom .ekk-hmi__block {
    padding: 0.55rem 0.45rem 0.45rem;
    height: 100%;
    min-height: 0;
}

.ekk-hmi__row--bottom .ekk-hmi__heading {
    min-height: 1.7rem;
    margin: 0.1rem 0 20px;
    padding: 0.3rem 0.5rem;
}

.ekk-hmi__energy-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
    flex: 1 1 auto;
    min-height: 0;
    align-items: stretch;
    align-content: stretch;
}

.ekk-hmi__block--voltages {
    flex: 1.25 1 0;
    min-height: 0;
}

.ekk-scada--fullscreen > .ekk-hmi__body > .ekk-hmi__row--mid {
    flex: 1.25 1 0;
}

/* ---- SVG Gauge (value BELOW arc) ---- */
.ekk-gauge {
    display: flex;
    flex-direction: column;
    align-items: center;
    min-width: 0;
    width: 100%;
    flex: 1 1 auto;
    min-height: 0;
    height: 100%;
    justify-content: flex-start;
}

.ekk-gauge--lg,
.ekk-gauge--md,
.ekk-gauge--sm {
    max-width: 100%;
    margin: 0 auto;
}

.ekk-gauge__title {
    width: 100%;
    text-align: center;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    color: #3f4254;
    margin-bottom: 0.05rem;
}

.ekk-gauge__stage {
    position: relative;
    width: 100%;
    max-width: 13.5rem;
    margin: 0 auto;
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.ekk-gauge--sm .ekk-gauge__stage { max-width: 10.25rem; }

.ekk-gauge__svg {
    width: 100%;
    height: auto;
    max-height: 100%;
    display: block;
    filter: drop-shadow(0 1px 2px rgba(24, 28, 50, 0.05));
}

.ekk-gauge__track { stroke: #e8ebf2; }
.ekk-gauge__zone--neg { stroke: rgba(62, 151, 255, 0.22); }
.ekk-gauge__zone--pos { stroke: rgba(62, 151, 255, 0.18); }
.ekk-gauge__zone--ok { stroke: rgba(80, 205, 137, 0.4); }
.ekk-gauge__value { transition: d 0.45s ease; }

.ekk-gauge__tick {
    stroke: #c4c8d6;
    stroke-width: 1.2;
}

.ekk-gauge__tick.is-major {
    stroke: #8a90a5;
    stroke-width: 1.65;
}

.ekk-gauge__needle {
    stroke: #1b1f33;
    stroke-width: 2.6;
    stroke-linecap: round;
    transition: x2 0.45s ease, y2 0.45s ease;
    filter: drop-shadow(0 1px 1px rgba(24, 28, 50, 0.25));
}

.ekk-gauge__hub-ring {
    fill: #fff;
    stroke: #3e97ff;
    stroke-width: 2;
}

.ekk-gauge__hub {
    fill: #1b1f33;
    stroke: none;
}

.ekk-gauge__scale {
    width: 100%;
    display: flex;
    justify-content: space-between;
    margin-top: 0;
    padding: 0 0.55rem;
    font-size: 0.6rem;
    font-weight: 600;
    color: #a1a5b7;
    font-variant-numeric: tabular-nums;
}

.ekk-gauge__readout {
    text-align: center;
    margin-top: 0.2rem;
    padding-top: 0.25rem;
    padding-bottom: 0.15rem;
    border-top: 1px dashed #e4e6ef;
    width: 100%;
    flex: 0 0 auto;
}

.ekk-gauge__value-line {
    display: inline-flex;
    align-items: baseline;
    justify-content: center;
    gap: 0.35rem;
    padding: 0.2rem 0.55rem;
    border-radius: 0.4rem;
    line-height: 1.15;
}

.ekk-gauge__number {
    font-size: 1.35rem;
    font-weight: 800;
    color: #181c32;
    font-variant-numeric: tabular-nums;
    line-height: 1.1;
}

.ekk-gauge--sm .ekk-gauge__number { font-size: 1.15rem; }
.ekk-gauge--md .ekk-gauge__number { font-size: 1.32rem; }

.ekk-gauge__unit {
    font-size: 0.88rem;
    font-weight: 700;
    color: #7e8299;
    letter-spacing: 0.02em;
}

.ekk-gauge--sm .ekk-gauge__unit { font-size: 0.78rem; }

.ekk-gauge__footer {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.25rem;
    margin-top: 0.28rem;
    margin-bottom: 0.1rem;
    font-size: 0.6rem;
    color: #a1a5b7;
}

.ekk-gauge__value-line--changed {
    animation: ekk-value-flash 2s ease-out forwards;
}

.ekk-gauge__value-line--changed .ekk-gauge__number,
.ekk-gauge__value-line--changed .ekk-gauge__unit {
    color: inherit;
}

@media (max-width: 1199.98px) {
    .ekk-hmi__header {
        grid-template-columns: 1fr;
    }

    .ekk-hmi__row--power,
    .ekk-hmi__row--mid,
    .ekk-hmi__row--bottom,
    .ekk-hmi__gauge-grid--3 {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767.98px) {
    .ekk-hmi__tiles,
    .ekk-hmi__current-grid,
    .ekk-hmi__energy-row {
        grid-template-columns: 1fr;
    }
}

.ekk-scada__statusbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.95rem 1.35rem;
    /* Metronic .card-header yatay padding (2.25rem) ile ikon soldan hizalı */
    padding: 1.25rem 2.25rem 1.15rem;
    border-bottom: 1px solid var(--ekk-border);
    background: linear-gradient(180deg, #fff 0%, #fbfcfe 100%);
    min-height: 5.35rem;
}

.ekk-scada__brand {
    display: flex;
    align-items: center;
    gap: 1rem; /* SCADA Haberleşme: gap-3 */
    min-width: 14rem;
    flex: 0 0 auto;
    margin-right: 1.5rem;
}

.ekk-scada__brand-text {
    min-width: 0;
}

.ekk-scada__title {
    font-size: 1.05rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    color: var(--ekk-text);
    line-height: 1.3;
}

.ekk-scada__subtitle {
    font-size: 0.88rem;
    color: var(--ekk-muted);
    margin-top: 0.2rem;
}

.ekk-scada__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem 0.85rem;
    flex: 1 1 auto;
    min-width: 0;
    margin-left: 0.75rem;
}

.ekk-scada__meta-item {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    min-width: 4.25rem;
}

.ekk-scada__meta-label {
    font-size: 0.68rem;
    color: var(--ekk-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.ekk-scada__meta-value {
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--ekk-text);
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.ekk-scada__meta-value.is-ok { color: #1a7a4a; }
.ekk-scada__meta-value.is-bad { color: #c0294a; }

.ekk-scada__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-left: auto;
    flex: 0 0 auto;
}

.ekk-scada__alert {
    margin: 0.75rem 1rem 0;
    padding: 0.65rem 0.85rem;
    border: 1px solid rgba(241, 65, 108, 0.25);
    border-radius: 0.45rem;
    background: rgba(241, 65, 108, 0.06);
    color: #c0294a;
}

.ekk-scada__body {
    padding: 1.25rem 1rem 1.1rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.ekk-scada__columns {
    display: grid;
    grid-template-columns: repeat(9, minmax(0, 1fr));
    align-items: start;
    gap: 0.75rem 0.85rem;
    width: 100%;
}

.ekk-scada__group {
    border: 1px solid var(--ekk-border);
    border-radius: 0.5rem;
    background: #fff;
    padding: 0.55rem 0.6rem 0.65rem;
    min-width: 0;
}

.ekk-scada__group--column {
    width: auto;
    max-width: none;
    flex: unset;
}

.ekk-scada__group-title {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.9rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    color: #5e6278;
    min-height: 2.15rem;
    padding-top: 0.2rem;
    padding-bottom: 0.6rem;
    margin-bottom: 0.7rem;
    border-bottom: 1px dashed #b5b5c3;
}

.ekk-scada__group-title-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    color: #3e97ff;
    font-size: 1.05rem;
    line-height: 1;
}

.ekk-scada__grid {
    display: grid;
    gap: 0.45rem;
}

.ekk-scada__grid--stack {
    grid-template-columns: 1fr;
    gap: 0.5rem;
}

.ekk-scada__metric {
    border: 1px solid var(--ekk-border);
    border-radius: 0.45rem;
    background: #fff;
    box-shadow: 0 2px 8px rgba(24, 28, 50, 0.07);
    padding: 0.5rem 0.6rem 0.55rem;
    min-width: 0;
    transition: border-color 0.25s ease, background-color 0.25s ease, box-shadow 0.25s ease;
}

.ekk-scada__metric--total {
    border-color: #c4cbe0;
    background: #f1f3f9;
}

.ekk-scada__metric--emphasize .ekk-scada__metric-number {
    font-size: 1.55rem;
}

.ekk-scada__metric--changed {
    border-color: rgba(80, 205, 137, 0.85);
    background: rgba(80, 205, 137, 0.14);
    box-shadow: 0 0 0 2px rgba(80, 205, 137, 0.18);
    animation: ekk-metric-flash 700ms ease-out;
}

.ekk-scada__metric--changed .ekk-scada__metric-number {
    color: #0f7a45;
}

.ekk-scada__metric-label {
    font-size: 0.82rem;
    font-weight: 700;
    color: #7e8299;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    padding-bottom: 0.4rem;
    margin-bottom: 0.4rem;
    border-bottom: 1px dashed #cfd3e0;
}

.ekk-scada__metric-value {
    display: flex;
    align-items: baseline;
    gap: 0.3rem;
    min-width: 0;
}

.ekk-scada__metric-number {
    font-size: 1.2rem;
    font-weight: 800;
    color: var(--ekk-text);
    font-variant-numeric: tabular-nums;
    line-height: 1.2;
    white-space: normal;
    overflow: visible;
    word-break: break-word;
}

.ekk-scada__metric-unit {
    font-size: 0.86rem;
    font-weight: 600;
    color: var(--ekk-muted);
}

.ekk-scada__metric-footer {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    margin-top: 0.35rem;
    font-size: 0.72rem;
    color: var(--ekk-muted);
}

.ekk-scada__metric-addr {
    color: #b5b5c3;
}

.ekk-scada__led {
    width: 0.45rem;
    height: 0.45rem;
    border-radius: 50%;
    display: inline-block;
    background: #b5b5c3;
    flex-shrink: 0;
}

.ekk-scada__led.is-ok { background: var(--ekk-ok); }
.ekk-scada__led.is-bad { background: var(--ekk-bad); }

@keyframes ekk-metric-flash {
    0% { background-color: rgba(80, 205, 137, 0.32); }
    100% { background-color: rgba(80, 205, 137, 0.14); }
}

@keyframes ekk-value-flash {
    0% {
        color: #ffffff;
        background-color: #12b76a;
        box-shadow: 0 0 0 3px rgba(18, 183, 106, 0.5), 0 0 16px rgba(18, 183, 106, 0.55);
    }
    18% {
        color: #ffffff;
        background-color: #12b76a;
        box-shadow: 0 0 0 3px rgba(18, 183, 106, 0.4), 0 0 12px rgba(18, 183, 106, 0.4);
    }
    55% {
        color: #0f7a45;
        background-color: rgba(18, 183, 106, 0.22);
        box-shadow: 0 0 0 2px rgba(18, 183, 106, 0.18);
    }
    100% {
        color: #181c32;
        background-color: transparent;
        box-shadow: none;
    }
}

@media (max-width: 1399.98px) {
    .ekk-scada__columns {
        grid-template-columns: repeat(5, minmax(0, 1fr));
        gap: 0.7rem 0.75rem;
    }
}

@media (max-width: 991.98px) {
    .ekk-scada__columns {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 0.65rem 0.7rem;
    }

    .ekk-scada__meta {
        flex: 1 1 18rem;
    }
}

@media (max-width: 575.98px) {
    .ekk-scada__columns {
        grid-template-columns: 1fr;
        gap: 0.6rem;
    }

    .ekk-scada__actions {
        margin-left: 0;
        width: 100%;
    }
}

/* legacy aliases kept for safety */
.ekk-modbus-monitor__section-title { display: none; }
.ekk-modbus-monitor__point { display: none; }

.scada-hero__meta-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.25rem 1.25rem;
    margin-top: 0.55rem;
}

.scada-hero__meta-item {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.8125rem;
    color: #a1a5b7;
}

.scada-hero__meta-item strong {
    color: #5e6278;
    font-weight: 500;
}

.scada-hero__subtitle {
    font-size: 0.8125rem;
    color: #a1a5b7;
    margin: 0.2rem 0 0;
    line-height: 1.3;
}

.scada-hero__toolbar-row {
    margin-top: 1rem;
    display: flex;
    justify-content: flex-start;
}

/* ---- Hero Connectivity Badge ---- */
.hero-connectivity-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.28rem 0.7rem;
    border-radius: 2rem;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    white-space: nowrap;
    flex-shrink: 0;
    line-height: 1.2;
}

.hero-connectivity-badge__led {
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 50%;
    display: inline-block;
    flex-shrink: 0;
}

/* Hero: Görev Oluştur / Görevi Görüntüle — hafif küçük */
.offline-task-btn {
    padding: 0.28rem 0.7rem !important;
    font-size: 0.78rem !important;
    font-weight: 650 !important;
    line-height: 1.2 !important;
    min-height: 0 !important;
    gap: 0.3rem;
    display: inline-flex;
    align-items: center;
}

.offline-task-btn .spinner-border-sm {
    width: 0.75rem;
    height: 0.75rem;
    border-width: 0.12em;
}

/* Hero: Lisans kalan gün badge */
.resource-license-hero__badge {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.28rem 0.65rem;
    border-radius: 2rem;
    font-size: 0.75rem;
    font-weight: 650;
    line-height: 1.2;
    border: 1px solid transparent;
    white-space: nowrap;
}

.resource-license-hero__label {
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-size: 0.68rem;
    font-weight: 700;
    opacity: 0.85;
}

.resource-license-hero__date {
    font-weight: 700;
}

.resource-license-hero__days {
    padding: 0.12rem 0.45rem;
    border-radius: 999px;
    font-size: 0.7rem;
    font-weight: 700;
    background: #fff;
    border: 1px solid transparent;
}

.resource-license-hero__badge--ok {
    background: rgba(80, 205, 137, 0.14);
    color: #0f7a45;
    border-color: rgba(80, 205, 137, 0.28);
}

.resource-license-hero__badge--ok .resource-license-hero__days {
    background: #fff;
    color: #0f7a45;
    border-color: rgba(80, 205, 137, 0.35);
}

.resource-license-hero__badge--warning {
    background: rgba(255, 199, 0, 0.16);
    color: #9a6700;
    border-color: rgba(255, 199, 0, 0.35);
}

.resource-license-hero__badge--warning .resource-license-hero__days {
    background: #fff;
    color: #9a6700;
    border-color: rgba(255, 199, 0, 0.45);
}

.resource-license-hero__badge--danger {
    background: rgba(241, 65, 108, 0.12);
    color: #c0294a;
    border-color: rgba(241, 65, 108, 0.28);
}

.resource-license-hero__badge--danger .resource-license-hero__days {
    background: #fff;
    color: #c0294a;
    border-color: rgba(241, 65, 108, 0.35);
}

.resource-license-hero__warn {
    font-size: 0.72rem;
    padding: 0.25rem 0.55rem;
}

/* Healthy — yeşil, sabit */
.hero-connectivity-badge--healthy {
    background: rgba(80, 205, 137, 0.12);
    color: #1a7a4a;
}
.hero-connectivity-badge--healthy .hero-connectivity-badge__led {
    background: #50cd89;
    box-shadow: 0 0 0 3px rgba(80, 205, 137, 0.25);
    animation: none;
}

/* Critical — kırmızı, yumuşak pulse (aktif problem) */
.hero-connectivity-badge--critical {
    background: rgba(230, 76, 103, 0.1);
    color: #c0294a;
}
.hero-connectivity-badge--critical .hero-connectivity-badge__led {
    background: #e64c67;
    box-shadow: 0 0 0 3px rgba(230, 76, 103, 0.25);
    animation: hero-led-danger 1.8s ease-in-out infinite;
}

/* Unknown — sarı, sabit */
.hero-connectivity-badge--unknown {
    background: rgba(246, 184, 77, 0.12);
    color: #9a6700;
}
.hero-connectivity-badge--unknown .hero-connectivity-badge__led {
    background: #f6b84d;
    box-shadow: 0 0 0 3px rgba(246, 184, 77, 0.2);
    animation: none;
}

/* NotConfigured — gri, animasyonsuz */
.hero-connectivity-badge--notconfigured {
    background: rgba(161, 165, 183, 0.12);
    color: #5e6278;
}
.hero-connectivity-badge--notconfigured .hero-connectivity-badge__led {
    background: #a1a5b7;
    box-shadow: none;
    animation: none;
}

@keyframes hero-led-ok {
    0%, 100% { opacity: 1; box-shadow: 0 0 0 3px rgba(80, 205, 137, 0.25), 0 0 8px rgba(80, 205, 137, 0.35); }
    50%       { opacity: 0.88; box-shadow: 0 0 0 4px rgba(80, 205, 137, 0.14), 0 0 10px rgba(80, 205, 137, 0.45); }
}

@keyframes hero-led-danger {
    0%, 100% {
        opacity: 1;
        transform: scale(1);
        box-shadow: 0 0 0 0 rgba(230, 76, 103, 0.28), 0 0 0 3px rgba(230, 76, 103, 0.25);
    }
    50% {
        opacity: 0.78;
        transform: scale(1.12);
        box-shadow: 0 0 0 5px rgba(230, 76, 103, 0.10), 0 0 10px rgba(230, 76, 103, 0.35);
    }
}

@keyframes hero-led-warn {
    0%, 100% { opacity: 1; box-shadow: 0 0 0 3px rgba(246, 184, 77, 0.2), 0 0 7px rgba(246, 184, 77, 0.3); }
    50%       { opacity: 0.9; box-shadow: 0 0 0 4px rgba(246, 184, 77, 0.12), 0 0 9px rgba(246, 184, 77, 0.4); }
}

.license-source-panel .btn {
    min-height: 6.5rem;
}

.license-commercial-panel .nav-pills .nav-link {
    border-radius: 0.475rem;
    margin-right: 0.5rem;
}

/* nav-pills-custom aktif: Metronic şeffaf bg + Bootstrap beyaz yazı → okunmaz.
   Seçili durumda net kontrast zorunlu (tesis oluştur / lisans yenileme). */
.license-commercial-panel .nav.nav-pills.nav-pills-custom .nav-link,
.nav.nav-pills.nav-pills-custom > button.nav-link {
    color: var(--bs-primary);
    background-color: #fff;
    border: 1px solid var(--bs-primary);
    border-radius: 0.475rem;
    margin-right: 0.5rem;
}

.license-commercial-panel .nav.nav-pills.nav-pills-custom .nav-link:hover,
.nav.nav-pills.nav-pills-custom > button.nav-link:hover {
    color: var(--bs-primary);
    background-color: rgba(var(--bs-primary-rgb), 0.08);
}

.license-commercial-panel .nav.nav-pills.nav-pills-custom .nav-link.active,
.license-commercial-panel .nav.nav-pills.nav-pills-custom .nav-link.active:hover,
.license-commercial-panel .nav.nav-pills.nav-pills-custom .nav-link.active:focus,
.nav.nav-pills.nav-pills-custom > button.nav-link.active,
.nav.nav-pills.nav-pills-custom > button.nav-link.active:hover,
.nav.nav-pills.nav-pills-custom > button.nav-link.active:focus {
    color: #fff !important;
    background-color: var(--bs-primary) !important;
    border-color: var(--bs-primary) !important;
}

.scada-ops-toolbar .form-control,
.scada-ops-toolbar .form-select {
    min-height: 2.15rem;
}

@media (max-width: 991.98px) {
    .scada-facilities-card > .card-header .card-toolbar.scada-ops-toolbar {
        width: 100%;
        justify-content: stretch;
    }

    .scada-ops-toolbar__search {
        flex: 1 1 100%;
        width: 100%;
    }
}

.scada-ops-table tbody tr.scada-ops-row {
    cursor: pointer;
}

.scada-ops-table tbody tr.scada-ops-row:hover {
    background-color: var(--bs-gray-100);
}

.scada-ops-table > :not(caption) > * > * {
    border-left: 0 !important;
}

.scada-ops-table .scada-ops-col-detail {
    text-align: left !important;
    white-space: nowrap;
    vertical-align: middle;
}

.scada-ops-table .scada-ops-col-detail .app-btn {
    display: inline-flex;
    align-items: center;
    margin: 0;
}

.scada-ops-row {
    cursor: pointer;
}

.scada-ops-row-success,
.scada-ops-row-warning,
.scada-ops-row-danger,
.scada-ops-row-muted {
    border-left: 0;
}

.scada-led-wrap {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    flex-shrink: 0;
}

.scada-led-caption {
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    color: #5e6278;
    white-space: nowrap;
}

.scada-led {
    display: inline-block;
    width: 0.85rem;
    height: 0.85rem;
    border-radius: 50%;
    flex-shrink: 0;
    background-color: var(--bs-gray-400);
    vertical-align: middle;
    transform: none;
}

.scada-led--lg {
    width: 14px;
    height: 14px;
}

.scada-led--sm {
    width: 8px;
    height: 8px;
}

.scada-led-wrap--sm {
    gap: 0.35rem;
}

.scada-led-success {
    background-color: var(--bs-success);
    box-shadow: 0 0 0 4px rgba(80, 205, 137, 0.18), 0 0 10px rgba(80, 205, 137, 0.35);
    animation: none;
}

.scada-led-warning {
    background-color: var(--bs-warning);
    box-shadow: 0 0 0 4px rgba(255, 199, 0, 0.18), 0 0 8px rgba(255, 199, 0, 0.22);
    animation: none;
}

/* Aktif problem — yumuşak opacity + glow pulse (~1.8s) */
.scada-led-danger {
    background-color: var(--bs-danger);
    box-shadow: 0 0 0 4px rgba(241, 65, 108, 0.2), 0 0 8px rgba(241, 65, 108, 0.28);
    animation: scada-led-pulse-down 1.8s ease-in-out infinite;
    will-change: transform, opacity, box-shadow;
}

.scada-led--sm.scada-led-success {
    box-shadow: 0 0 0 2px rgba(80, 205, 137, 0.18);
    animation: none;
}

.scada-led--sm.scada-led-warning {
    box-shadow: 0 0 0 2px rgba(255, 199, 0, 0.2);
    animation: none;
}

.scada-led--sm.scada-led-danger {
    box-shadow: 0 0 0 2px rgba(241, 65, 108, 0.2);
    animation: scada-led-pulse-down-sm 1.8s ease-in-out infinite;
}

.scada-led-muted {
    background-color: var(--bs-gray-400);
    animation: none;
    box-shadow: none;
}

/* Accent süresi danger pulse'ı hızlandırmasın */
.scada-led--accent:not(.scada-led-danger) {
    animation-duration: 0.7s;
}

.scada-led-danger.scada-led--accent {
    animation-duration: 1.8s;
}

@keyframes scada-led-pulse-ok {
    0%, 100% {
        opacity: 1;
        box-shadow: 0 0 0 4px rgba(80, 205, 137, 0.18), 0 0 10px rgba(80, 205, 137, 0.35);
    }
    50% {
        opacity: 0.88;
        box-shadow: 0 0 0 5px rgba(80, 205, 137, 0.12), 0 0 12px rgba(80, 205, 137, 0.42);
    }
}

@keyframes scada-led-pulse-warn {
    0%, 100% {
        opacity: 1;
        box-shadow: 0 0 0 4px rgba(255, 199, 0, 0.18), 0 0 8px rgba(255, 199, 0, 0.22);
    }
    50% {
        opacity: 0.9;
        box-shadow: 0 0 0 5px rgba(255, 199, 0, 0.12), 0 0 10px rgba(255, 199, 0, 0.3);
    }
}

@keyframes scada-led-pulse-down {
    0%, 100% {
        opacity: 1;
        transform: scale(1);
        box-shadow: 0 0 0 0 rgba(241, 65, 108, 0.22), 0 0 0 4px rgba(241, 65, 108, 0.2), 0 0 8px rgba(241, 65, 108, 0.28);
    }
    50% {
        opacity: 0.75;
        transform: scale(1.12);
        box-shadow: 0 0 0 5px rgba(241, 65, 108, 0.10), 0 0 0 4px rgba(241, 65, 108, 0.14), 0 0 12px rgba(241, 65, 108, 0.36);
    }
}

@keyframes scada-led-pulse-down-sm {
    0%, 100% {
        opacity: 1;
        transform: scale(1);
        box-shadow: 0 0 0 0 rgba(241, 65, 108, 0.18), 0 0 0 2px rgba(241, 65, 108, 0.2);
    }
    50% {
        opacity: 0.75;
        transform: scale(1.12);
        box-shadow: 0 0 0 4px rgba(241, 65, 108, 0.10), 0 0 0 2px rgba(241, 65, 108, 0.16);
    }
}

.scada-live-flash {
    border-radius: 0.3rem;
    box-decoration-break: clone;
    -webkit-box-decoration-break: clone;
    animation: scada-live-flash 850ms ease-out;
}

@keyframes scada-live-flash {
    0% { background-color: rgba(80, 205, 137, 0.42); }
    100% { background-color: transparent; }
}

@media (prefers-reduced-motion: reduce) {
    .scada-led-success,
    .scada-led-warning,
    .scada-led-danger,
    .scada-led--sm.scada-led-danger,
    .scada-led--accent,
    .scada-live-flash,
    .hero-connectivity-badge--critical .hero-connectivity-badge__led {
        animation: none;
    }
}

.scada-hero {
    overflow: visible;
}

/* SCADA tesis kimlik kartı — raporlarda da sabit kalsın */
.scada-hero.scada-hero--sticky {
    position: sticky;
    top: var(--bs-app-header-height, 70px);
    z-index: 95;
    background: var(--bs-body-bg, #fff);
    box-shadow: 0 1px 0 rgba(0, 0, 0, 0.04);
}

.scada-history-page > .scada-hero.scada-hero--sticky {
    margin-bottom: 0;
}

.inverter-facility-body {
    min-height: 12rem;
    /* Menü↔ATAKPAR kartı ile aynı dikey boşluk (--app-page-gap = 20px) */
    --inv-section-gap: var(--app-page-gap, 20px);
    width: 100%;
    max-width: 100%;
    margin: 0;
}

.inverter-facility-body__loading {
    min-height: 16rem;
}

/* Tüm inverter tesis sekmelerinde kart aralığı eşit (= üst menü boşluğu) */
.inv-section-stack {
    display: flex;
    flex-direction: column;
    gap: var(--inv-section-gap, var(--app-page-gap, 20px));
}

.inv-section-stack > .mb-5,
.inv-section-stack > .card.mb-5,
.soluna-performance-page.inv-section-stack > .card,
.soluna-performance-page.inv-section-stack > .soluna-section {
    margin-bottom: 0 !important;
}

.inv-section-heading {
    margin: 0;
}

.inverter-facility-body .inv-facility-monitor {
    --inv-card-gap: var(--inv-section-gap, var(--app-page-gap, 20px));
    margin: 0;
}

.inverter-facility-body .soluna-performance-page {
    --soluna-section-gap: var(--inv-section-gap, var(--app-page-gap, 20px));
}

.facility-alarms-page {
    --inv-section-gap: var(--app-page-gap, 20px);
}

/* —— İnverter Alarmlar (yeniden tasarım) —— */
.inv-alarms {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.inv-alarms__toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.1rem 1.25rem;
    background: #fff;
    border: 1px solid #e4e6ef;
    border-radius: 0.85rem;
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.04);
}

.inv-alarms__toolbar-left {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem 1.35rem;
    min-width: 0;
}

.inv-alarms__title-block {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    min-width: 0;
}

.inv-alarms__title-icon {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 0.7rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(241, 65, 108, 0.1);
    color: #f1416c;
    flex-shrink: 0;
}

.inv-alarms__title-icon .ki-duotone { font-size: 1.25rem; }

.inv-alarms__title {
    margin: 0;
    font-size: 1.15rem;
    font-weight: 750;
    color: #181c32;
    line-height: 1.25;
}

.inv-alarms__subtitle {
    margin: 0.15rem 0 0;
    font-size: 0.82rem;
    color: #7e8299;
    line-height: 1.35;
}

.inv-alarms__seg {
    display: inline-flex;
    padding: 0.18rem;
    gap: 0.12rem;
    background: #f5f8fa;
    border: 1px solid #e4e6ef;
    border-radius: 0.65rem;
}

.inv-alarms__seg-btn {
    appearance: none;
    border: 0;
    background: transparent;
    color: #7e8299;
    font-size: 0.84rem;
    font-weight: 700;
    padding: 0.4rem 0.9rem;
    border-radius: 0.5rem;
    cursor: pointer;
    line-height: 1.2;
}

.inv-alarms__seg-btn.is-active {
    background: #fff;
    color: #181c32;
    box-shadow: 0 1px 4px rgba(15, 23, 42, 0.08);
}

.inv-alarms__kpis {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 0.55rem;
}

.inv-alarms__kpi {
    display: flex;
    flex-direction: column;
    min-width: 4.5rem;
    padding: 0.45rem 0.75rem;
    border-radius: 0.65rem;
    border: 1px solid #eef0f4;
    background: #fafbfc;
    line-height: 1.15;
}

.inv-alarms__kpi-label {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #7e8299;
}

.inv-alarms__kpi-value {
    font-size: 1.15rem;
    font-weight: 750;
    color: #3f4254;
    font-variant-numeric: tabular-nums;
}

.inv-alarms__kpi--active {
    border-color: rgba(241, 65, 108, 0.28);
    background: rgba(241, 65, 108, 0.05);
}
.inv-alarms__kpi--active .inv-alarms__kpi-value { color: #f1416c; }

.inv-alarms__kpi--resolved {
    border-color: rgba(80, 205, 137, 0.28);
    background: rgba(80, 205, 137, 0.05);
}
.inv-alarms__kpi--resolved .inv-alarms__kpi-value { color: #1a7a4a; }

.inv-alarms__kpi--listed {
    border-color: rgba(0, 158, 247, 0.25);
    background: rgba(0, 158, 247, 0.05);
}
.inv-alarms__kpi--listed .inv-alarms__kpi-value { color: #009ef7; }

.inv-alarms__state,
.inv-alarms__empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.55rem;
    min-height: 12rem;
    padding: 2.5rem 1.5rem;
    text-align: center;
    background: #fff;
    border: 1px solid #e4e6ef;
    border-radius: 0.85rem;
    color: #7e8299;
}

.inv-alarms__state--error {
    color: #f1416c;
    border-color: rgba(241, 65, 108, 0.3);
    background: rgba(241, 65, 108, 0.04);
}

.inv-alarms__empty-icon {
    width: 3.25rem;
    height: 3.25rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(80, 205, 137, 0.12);
    color: #50cd89;
    margin-bottom: 0.35rem;
}

.inv-alarms__empty-icon .ki-duotone { font-size: 1.55rem; }

.inv-alarms__empty-title {
    font-size: 1rem;
    font-weight: 700;
    color: #181c32;
}

.inv-alarms__empty-text {
    max-width: 28rem;
    font-size: 0.8rem;
    color: #a1a5b7;
    line-height: 1.45;
}

.inv-alarms__list-card .inv-table__row {
    cursor: pointer;
}

.inv-alarms__list-card .inv-alarms-table__row--open {
    background-color: rgba(62, 151, 255, 0.04);
}

.inv-alarms__list-card .inv-table-actions {
    flex-wrap: nowrap;
}

/* Başlıklar daha belirgin; inverter / alarm adları biraz daha küçük */
.inv-alarms__list-card .inv-table thead tr th {
    font-size: 0.9rem !important;
    font-weight: 750 !important;
    letter-spacing: 0.03em;
    color: #5e6278 !important;
    padding-top: 0.95rem !important;
    padding-bottom: 0.75rem !important;
}

.inv-alarms__list-card .inv-table tbody td {
    font-size: 0.88rem;
}

.inv-alarms__list-card .inv-table tbody td .fw-semibold.text-gray-900 {
    font-size: 0.9rem;
    font-weight: 650;
    line-height: 1.35;
}

.inv-alarms__list-card .inv-table tbody td .text-muted.fs-8 {
    font-size: 0.8rem !important;
}

.inv-alarms__list-card .inv-mobile-card .fw-bold.text-gray-900 {
    font-size: 0.95rem;
}

.inv-alarms__list-card .inv-mobile-card .fw-semibold {
    font-size: 0.9rem;
}

.inv-alarms-table__detail-row > td {
    cursor: default;
    background: #f8fafc;
    border-bottom: 1px solid #e4e6ef !important;
    padding: 0 !important;
}

.inv-alarm-detail {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(14rem, 0.9fr);
    gap: 1.15rem 1.5rem;
    padding: 1.1rem 1.15rem 1rem;
}

.inv-alarm-detail__block { margin-bottom: 0.9rem; }
.inv-alarm-detail__block:last-child { margin-bottom: 0; }

.inv-alarm-detail__block h4 {
    margin: 0 0 0.4rem;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #7e8299;
}

.inv-alarm-detail__block p,
.inv-alarm-detail__block li {
    margin: 0;
    font-size: 0.9rem;
    color: #3f4254;
    line-height: 1.5;
}

.inv-alarm-detail__block ul {
    margin: 0;
    padding-left: 1.1rem;
}

.inv-alarm-detail__block li + li { margin-top: 0.3rem; }

.inv-alarm-detail__block--tip {
    padding: 0.75rem 0.85rem;
    border-radius: 0.55rem;
    background: rgba(255, 199, 0, 0.1);
    border: 1px solid rgba(255, 199, 0, 0.28);
}

.inv-alarm-detail__facts {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.65rem;
    margin-bottom: 0.9rem;
}

.inv-alarm-detail__facts > div {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    padding: 0.6rem 0.7rem;
    border-radius: 0.55rem;
    background: #fff;
    border: 1px solid #eef0f4;
}

.inv-alarm-detail__facts span {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #7e8299;
}

.inv-alarm-detail__facts strong {
    font-size: 0.92rem;
    font-weight: 700;
    color: #181c32;
}

@media (max-width: 991.98px) {
    .inv-alarm-detail { grid-template-columns: 1fr; }
    .inv-alarms__list-card .inv-table-actions { flex-wrap: wrap; }
}

/* —— Alarm detay sayfası —— */
.inv-alarm-page {
    display: flex;
    flex-direction: column;
    gap: 1.15rem;
}

.inv-alarm-page__nav {
    display: flex;
    align-items: center;
}

.inv-alarm-page__back {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.86rem;
    font-weight: 600;
    color: #5e6278;
    text-decoration: none;
}

.inv-alarm-page__back:hover {
    color: #009ef7;
}

.inv-alarm-page__state {
    padding: 2.5rem 1rem;
    text-align: center;
}

.inv-alarm-page__state--error {
    color: #f1416c;
    font-weight: 600;
}

.inv-alarm-hero {
    position: relative;
    overflow: hidden;
    border-radius: 1rem;
    padding: 1.35rem 1.5rem 1.25rem;
    background: linear-gradient(135deg, #1a2332 0%, #243447 48%, #1e3a4c 100%);
    color: #f5f8fa;
    box-shadow: 0 10px 28px rgba(26, 35, 50, 0.18);
}

.inv-alarm-hero--resolved {
    background: linear-gradient(135deg, #1b2e28 0%, #234038 55%, #1c3d32 100%);
}

.inv-alarm-hero__glow {
    position: absolute;
    inset: auto -20% -60% auto;
    width: 55%;
    height: 140%;
    background: radial-gradient(circle, rgba(241, 65, 108, 0.28) 0%, transparent 68%);
    pointer-events: none;
}

.inv-alarm-hero--warning .inv-alarm-hero__glow,
.inv-alarm-hero--major .inv-alarm-hero__glow {
    background: radial-gradient(circle, rgba(255, 168, 0, 0.3) 0%, transparent 68%);
}

.inv-alarm-hero--resolved .inv-alarm-hero__glow {
    background: radial-gradient(circle, rgba(80, 205, 137, 0.28) 0%, transparent 68%);
}

.inv-alarm-hero__top {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.85rem;
}

.inv-alarm-hero__code-wrap {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.inv-alarm-hero__code-label {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: rgba(245, 248, 250, 0.55);
}

.inv-alarm-hero__code {
    font-size: 2.15rem;
    font-weight: 800;
    line-height: 1;
    letter-spacing: -0.03em;
    font-variant-numeric: tabular-nums;
}

.inv-alarm-hero__badges {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.inv-alarm-pill {
    display: inline-flex;
    align-items: center;
    padding: 0.22rem 0.55rem;
    border-radius: 0.4rem;
    font-size: 0.72rem;
    font-weight: 700;
    background: rgba(255, 255, 255, 0.1);
    color: #fff;
}

.inv-alarm-pill--danger { background: rgba(241, 65, 108, 0.92); }
.inv-alarm-pill--ok { background: rgba(80, 205, 137, 0.92); color: #0b2a1a; }
.inv-alarm-pill--mute { background: rgba(255, 255, 255, 0.12); color: rgba(255, 255, 255, 0.85); }
.inv-alarm-pill--tone-critical,
.inv-alarm-pill--tone-major { background: rgba(241, 65, 108, 0.35); }
.inv-alarm-pill--tone-warning { background: rgba(255, 168, 0, 0.35); }
.inv-alarm-pill--tone-minor,
.inv-alarm-pill--tone-info { background: rgba(0, 158, 247, 0.3); }

.inv-alarm-hero__title {
    position: relative;
    margin: 0 0 0.25rem;
    font-size: 1.35rem;
    font-weight: 750;
    line-height: 1.25;
    color: #fff;
}

.inv-alarm-hero__device {
    position: relative;
    margin: 0 0 1.1rem;
    font-size: 0.9rem;
    color: rgba(245, 248, 250, 0.72);
}

.inv-alarm-hero__metrics {
    position: relative;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.65rem;
}

.inv-alarm-metric {
    padding: 0.65rem 0.75rem;
    border-radius: 0.65rem;
    background: rgba(255, 255, 255, 0.07);
    border: 1px solid rgba(255, 255, 255, 0.08);
}

.inv-alarm-metric__label {
    display: block;
    font-size: 0.65rem;
    font-weight: 650;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: rgba(245, 248, 250, 0.55);
    margin-bottom: 0.2rem;
}

.inv-alarm-metric__value {
    font-size: 1.2rem;
    font-weight: 800;
    color: #fff;
    font-variant-numeric: tabular-nums;
}

.inv-alarm-page__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(260px, 320px);
    gap: 1rem;
    align-items: start;
}

.inv-alarm-page__main,
.inv-alarm-page__aside {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.inv-alarm-panel {
    background: #fff;
    border: 1px solid #e4e6ef;
    border-radius: 0.85rem;
    padding: 1.15rem 1.25rem;
    box-shadow: 0 1px 2px rgba(24, 28, 50, 0.04);
}

.inv-alarm-panel__title {
    margin: 0 0 0.65rem;
    font-size: 0.95rem;
    font-weight: 750;
    color: #181c32;
}

.inv-alarm-panel__lead {
    margin: 0;
    font-size: 1.02rem;
    line-height: 1.5;
    color: #3f4254;
    font-weight: 550;
}

.inv-alarm-panel__body {
    margin: 0;
    font-size: 0.9rem;
    line-height: 1.55;
    color: #3f4254;
}

.inv-alarm-panel__hint {
    margin: 0 0 1rem;
    font-size: 0.78rem;
    color: #a1a5b7;
    line-height: 1.4;
}

.inv-alarm-panel__head-row {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.35rem;
}

.inv-alarm-panel__count {
    font-size: 0.75rem;
    font-weight: 700;
    color: #009ef7;
}

.inv-alarm-panel--resolve-tip {
    display: flex;
    gap: 0.85rem;
    align-items: flex-start;
    background: linear-gradient(135deg, #f3faf6 0%, #eef8f3 100%);
    border-color: #c9e9d6;
}

.inv-alarm-panel__tip-icon {
    flex-shrink: 0;
    width: 2.4rem;
    height: 2.4rem;
    border-radius: 0.65rem;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(80, 205, 137, 0.18);
    color: #1a7a4a;
}

.inv-alarm-panel__tip-icon .ki-duotone { font-size: 1.25rem; }

.inv-alarm-panel--mfg {
    background: #f8fafc;
    border-style: dashed;
}

.inv-alarm-checklist {
    margin: 0;
    padding: 0;
    list-style: none;
}

.inv-alarm-checklist li {
    position: relative;
    padding: 0.45rem 0 0.45rem 1.35rem;
    font-size: 0.88rem;
    line-height: 1.45;
    color: #3f4254;
    border-bottom: 1px solid #f1f1f4;
}

.inv-alarm-checklist li:last-child { border-bottom: 0; }

.inv-alarm-checklist li::before {
    content: "";
    position: absolute;
    left: 0.15rem;
    top: 0.75rem;
    width: 0.45rem;
    height: 0.45rem;
    border-radius: 50%;
    background: #009ef7;
}

.inv-alarm-checklist--evidence li::before { background: #a1a5b7; }

.inv-alarm-facts {
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.inv-alarm-facts > div {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.inv-alarm-facts dt {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: #a1a5b7;
}

.inv-alarm-facts dd {
    margin: 0;
    font-size: 0.9rem;
    font-weight: 650;
    color: #181c32;
}

.inv-alarm-facts__mono {
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 0.78rem !important;
    word-break: break-all;
}

.inv-alarm-timeline {
    list-style: none;
    margin: 0;
    padding: 0 0 0 0.35rem;
    border-left: 2px solid #e4e6ef;
}

.inv-alarm-timeline__item {
    position: relative;
    padding: 0 0 1rem 1.1rem;
}

.inv-alarm-timeline__item:last-child { padding-bottom: 0; }

.inv-alarm-timeline__dot {
    position: absolute;
    left: -0.42rem;
    top: 0.35rem;
    width: 0.7rem;
    height: 0.7rem;
    border-radius: 50%;
    background: #a1a5b7;
    border: 2px solid #fff;
    box-shadow: 0 0 0 1px #e4e6ef;
}

.inv-alarm-timeline__item.is-active .inv-alarm-timeline__dot {
    background: #f1416c;
}

.inv-alarm-timeline__item.is-resolved .inv-alarm-timeline__dot {
    background: #50cd89;
}

.inv-alarm-timeline__item.is-current .inv-alarm-timeline__card {
    border-color: #009ef7;
    background: #f5fbff;
}

.inv-alarm-timeline__card {
    border: 1px solid #e4e6ef;
    border-radius: 0.65rem;
    padding: 0.7rem 0.85rem;
    background: #fafbfc;
}

.inv-alarm-timeline__row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
    margin-bottom: 0.35rem;
}

.inv-alarm-timeline__when {
    font-size: 0.86rem;
    font-weight: 700;
    color: #181c32;
}

.inv-alarm-timeline__meta {
    font-size: 0.78rem;
    color: #7e8299;
    line-height: 1.4;
}

.inv-alarm-timeline__link {
    display: inline-block;
    margin-top: 0.4rem;
    font-size: 0.78rem;
    font-weight: 700;
    color: #009ef7;
    text-decoration: none;
}

.inv-alarm-timeline__link:hover { text-decoration: underline; }

.inv-alarm-page__actions {
    position: sticky;
    top: 0.75rem;
}

.inv-alarm-page__actions-hint {
    margin: 0.55rem 0 0;
    font-size: 0.72rem;
    color: #a1a5b7;
    text-align: center;
    line-height: 1.35;
}

.inv-alarms-table__row--link { cursor: pointer; }
.inv-alarms-table__row--link:hover { background: rgba(0, 158, 247, 0.04); }
.inv-alarms-mobile-card:hover { border-color: #009ef7 !important; }

@media (max-width: 991.98px) {
    .inv-alarm-page__grid { grid-template-columns: 1fr; }
    .inv-alarm-hero__metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .inv-alarm-page__actions { position: static; }
}

.facility-alarms-page__filters {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
}

.facility-alarms-page__stats-inline {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
}

.facility-alarms-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.35rem 0.7rem;
    border-radius: 0.475rem;
    border: 1px solid var(--bs-gray-200, #eff2f5);
    background: #f9fafb;
    line-height: 1.2;
    min-height: var(--app-btn-sm-height, 30px);
}

.facility-alarms-chip__label {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: var(--bs-gray-500, #a1a5b7);
}

.facility-alarms-chip__value {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--bs-gray-800, #3f4254);
}

.facility-alarms-chip--active {
    border-color: rgba(241, 65, 108, 0.35);
    background: rgba(241, 65, 108, 0.06);
}

.facility-alarms-chip--active .facility-alarms-chip__label { color: #f1416c; }
.facility-alarms-chip--active .facility-alarms-chip__value { color: #f1416c; }

.facility-alarms-chip--resolved {
    border-color: rgba(80, 205, 137, 0.35);
    background: rgba(80, 205, 137, 0.06);
}

.facility-alarms-chip--resolved .facility-alarms-chip__label { color: #50cd89; }
.facility-alarms-chip--resolved .facility-alarms-chip__value { color: #1a7a4a; }

.facility-alarms-chip--listed {
    border-color: rgba(0, 158, 247, 0.3);
    background: rgba(0, 158, 247, 0.06);
}

.facility-alarms-chip--listed .facility-alarms-chip__label { color: #009ef7; }
.facility-alarms-chip--listed .facility-alarms-chip__value { color: #009ef7; }

.facility-alarms-table-card {
    border: 1px solid var(--bs-gray-200, #eff2f5);
    overflow: hidden;
}

.facility-alarms-table {
    --bs-table-bg: transparent;
}

.facility-alarms-table > thead > tr > th {
    background: transparent !important;
    border-bottom: 1px solid var(--bs-gray-300, #e4e6ef) !important;
    box-shadow: none !important;
    padding-top: 0.85rem;
    padding-bottom: 0.65rem;
    white-space: nowrap;
}

.facility-alarms-table > tbody > tr > td {
    padding-top: 0.7rem;
    padding-bottom: 0.7rem;
    vertical-align: middle;
    border-bottom-color: var(--bs-gray-200, #eff2f5) !important;
}

.facility-alarms-table__row {
    cursor: pointer;
    transition: background-color 0.12s ease;
}

.facility-alarms-table__row:hover {
    background: rgba(245, 248, 250, 0.9);
}

.facility-alarms-table__row--active > td:first-child {
    box-shadow: inset 3px 0 0 #f1416c;
}

.facility-alarms-table__row--resolved > td:first-child {
    box-shadow: inset 3px 0 0 #50cd89;
}

.facility-alarms-table__row--open {
    background: rgba(0, 158, 247, 0.04);
}

.facility-alarms-table__row--open:hover {
    background: rgba(0, 158, 247, 0.06);
}

.facility-alarms-table__actions .btn.btn-sm {
    min-height: 1.55rem;
    padding: 0.12rem 0.5rem;
    font-size: 0.72rem;
    font-weight: 600;
    line-height: 1.25;
}

.facility-alarms-table__detail-row > td {
    cursor: default;
    background: #f8fafc;
    border-bottom: 1px solid var(--bs-gray-200, #eff2f5) !important;
    padding: 0 !important;
}

.facility-alarms-page .alarm-detail {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
    padding: 1rem 1.35rem 1.15rem;
    border-top: 1px solid rgba(0, 158, 247, 0.18);
    background: linear-gradient(180deg, rgba(0, 158, 247, 0.03), #f8fafc 40%);
}

.facility-alarms-page .alarm-detail__block {
    margin-bottom: 0.85rem;
}

.facility-alarms-page .alarm-detail__block:last-child {
    margin-bottom: 0;
}

.facility-alarms-page .alarm-detail__label {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: var(--bs-gray-500, #a1a5b7);
    margin-bottom: 0.3rem;
}

.facility-alarms-page .alarm-detail__text {
    font-size: 0.82rem;
    line-height: 1.5;
    color: var(--bs-gray-800, #3f4254);
}

.facility-alarms-page .alarm-detail__list {
    padding-left: 1.05rem;
    margin: 0;
    font-size: 0.8rem;
    line-height: 1.5;
    color: var(--bs-gray-800, #3f4254);
}

.facility-alarms-page .alarm-detail__list li + li {
    margin-top: 0.3rem;
}

.facility-alarms-page .alarm-detail__block--tip {
    background: rgba(80, 205, 137, 0.1);
    border: 1px solid rgba(80, 205, 137, 0.28);
    border-radius: 0.55rem;
    padding: 0.65rem 0.8rem;
}

.facility-alarms-page .alarm-detail__meta-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.75rem 1rem;
    padding: 0.85rem 0.95rem;
    border-radius: 0.65rem;
    background: #fff;
    border: 1px solid var(--bs-gray-200, #eff2f5);
}

.facility-alarms-page .alarm-history-table {
    font-size: 0.8rem;
}

.facility-alarms-page .alarm-history-table__row--bad {
    background: rgba(241, 65, 108, 0.04);
}

@media (max-width: 991.98px) {
    .facility-alarms-table__actions {
        justify-content: flex-start !important;
    }
}

.scada-hero .card-body {
    padding: 1.85rem 1.9rem 1.75rem;
    min-height: 8.5rem;
    overflow: visible;
}

.scada-hero__identity {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.85rem 1.25rem;
    flex-wrap: wrap;
    margin-top: 1.1rem;
}

.scada-hero__identity .scada-hero__facts {
    margin-top: 0;
    flex: 1 1 16rem;
    min-width: 0;
}

.scada-hero__actions {
    display: flex;
    justify-content: flex-end;
    width: auto;
    max-width: 100%;
    margin-top: 0;
    margin-left: auto;
    padding: 0;
    flex: 0 1 auto;
}

.scada-toolbar-bar {
    justify-content: flex-end;
    margin-top: 0;
    padding: 0;
}

.scada-hero__actions .scada-setup-actions,
.scada-toolbar-bar .scada-setup-actions,
.scada-hero .scada-setup-actions {
    justify-content: flex-end;
}

.scada-setup-actions__split {
    width: 1px;
    align-self: stretch;
    min-height: 1.75rem;
    margin: 0 0.15rem;
    background: #e4e6ef;
}

.scada-hero__row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1.25rem;
    flex-wrap: wrap;
}

.scada-hero__title {
    font-size: 1.1875rem;
    font-weight: 600;
    color: #3f4254;
    margin: 0;
    line-height: 1.35;
}

.scada-hero__consumption-pill {
    display: inline-flex;
    align-items: center;
    padding: 0.2rem 0.55rem;
    border-radius: 0.4rem;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    line-height: 1.25;
    white-space: nowrap;
}

.scada-hero__consumption-pill--neutral {
    color: #5e6278;
    background: #eef0f4;
}

.scada-hero__consumption-pill--info {
    color: #009ef7;
    background: rgba(0, 158, 247, 0.12);
}

.scada-hero__facts {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.85rem 1.75rem;
    margin-top: 1.1rem;
}

.scada-hero__fact {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    color: #5e6278;
    font-size: 0.9375rem;
    line-height: 1.3;
}

.scada-hero__fact--facility {
    font-size: 1.2rem;
    font-weight: 700;
    color: #181c32;
}

.scada-hero__meta {
    color: #7e8299;
    font-size: 0.9375rem;
    line-height: 1.5;
}

.scada-icon-badge {
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 0.65rem;
    background: #f1faff;
    border: 1px solid #e1f0ff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.scada-icon-badge--lg {
    width: 3.5rem;
    height: 3.5rem;
}

.scada-icon-badge--sm {
    width: 2.25rem;
    height: 2.25rem;
}

.scada-empty-note {
    border: 1px dashed #e4e6ef;
    border-radius: 0.55rem;
    padding: 0.9rem 1rem;
    background: #f9f9fb;
}

.scada-notice {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    flex-wrap: wrap;
    padding: 0.85rem 1rem;
    border: 1px solid #fff4de;
    background: #fff9ee;
    border-radius: 0.55rem;
}

.scada-notice__icon {
    flex-shrink: 0;
}

.scada-notice__body {
    flex: 1 1 12rem;
    min-width: 0;
    font-size: 0.9375rem;
}

.scada-notice__body .fw-bold {
    font-size: 1.0625rem;
}

.scada-notice__body .fs-8 {
    font-size: 0.875rem !important;
}

.scada-setup-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0.5rem;
    overflow: visible;
}

.meter-detail-hero-actions {
    align-items: stretch;
    gap: 0.75rem;
}

.meter-detail-hero-tabs {
    flex-wrap: wrap;
    align-items: center;
    margin: 0;
    min-width: 0;
}

.meter-detail-hero-tabs .nav-link {
    white-space: nowrap;
    font-size: 0.875rem !important;
}

.meter-detail-hero-tabs .nav-link.active {
    border-bottom-color: var(--bs-primary) !important;
    color: var(--bs-primary) !important;
}

.scada-setup-actions .app-btn {
    height: 28px;
    padding-left: 0.65rem;
    padding-right: 0.65rem;
    font-size: 0.75rem;
    font-weight: 600;
    line-height: 1.2;
}

.inverter-detail-page .scada-setup-actions .app-btn,
.inverter-detail-page .scada-setup-actions .scada-reports-dropdown .app-btn,
.inverter-detail-page .scada-setup-actions .btn.btn-sm {
    height: 28px;
    padding: 0 0.65rem;
    font-size: 0.75rem;
    font-weight: 600;
    line-height: 1.2;
}

/* Üst menü ↔ ATAKPAR = ATAKPAR ↔ alt kartlar (aynı --app-page-gap) */
.app-content:has(.inverter-detail-page) {
    padding-top: var(--app-page-gap, 20px) !important;
}

.inverter-detail-page.monitoring-detail-page {
    gap: 0 !important;
    padding-top: 0 !important;
}

.inverter-detail-page .monitoring-page-section {
    gap: var(--app-page-gap, 20px) !important;
}

.inverter-detail-page .inverter-facility-body {
    --inv-section-gap: var(--app-page-gap, 20px);
    margin: 0 !important;
    padding: 0 !important;
}

.inverter-detail-page .inv-inverter-detail.inv-section-stack,
.inverter-detail-page .inv-inverter-detail {
    --inv-detail-gap: 12px;
    --inv-section-gap: 12px;
    gap: 12px !important;
    margin: 0 !important;
}

.inverter-detail-page .monitoring-page-section > .card,
.inverter-detail-page .inv-inverter-detail > .card {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

/* —— İnverter Raporlar: segment / tarih / toplam / grafik —— */
.inv-report {
    --inv-report-accent: var(--bs-primary, #1b84ff);
    --inv-report-surface: #f4f6fa;
    --inv-report-border: #e1e5ef;
    --inv-report-text: #181c32;
    --inv-report-muted: #7e8299;
}

.inv-report__card {
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.inv-report--onepage .inv-report__card {
    min-height: 0;
    max-height: none;
}

.inv-report__body {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
}

.inv-report-controls {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.65rem 0.75rem;
}

.inv-report-controls--top {
    width: 100%;
    padding-top: 0.15rem;
    border-top: 1px solid rgba(15, 23, 42, 0.06);
}

.inv-report-seg {
    display: inline-flex;
    align-items: stretch;
    padding: 0.2rem;
    gap: 0.15rem;
    border-radius: 0.75rem;
    background: var(--inv-report-surface);
    border: 1px solid var(--inv-report-border);
}

.inv-report-seg__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    min-height: 2.15rem;
    padding: 0.35rem 0.9rem;
    border: 0;
    border-radius: 0.6rem;
    background: transparent;
    color: var(--inv-report-muted);
    font-size: 0.8125rem;
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
    transition: background 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}

.inv-report-seg__btn i {
    font-size: 1rem;
    line-height: 1;
}

.inv-report-seg__btn:hover:not(:disabled):not(.is-active) {
    color: var(--inv-report-text);
    background: rgba(255, 255, 255, 0.7);
}

.inv-report-seg__btn.is-active {
    background: #fff;
    color: var(--inv-report-accent);
    box-shadow: 0 1px 3px rgba(24, 28, 50, 0.1);
}

.inv-report-seg__btn:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}

.inv-report-seg--period .inv-report-seg__btn {
    min-width: 4.25rem;
    min-height: 2.55rem;
    padding: 0.5rem 1.15rem;
    font-size: 0.9rem;
}

.inv-report-seg--period .inv-report-seg__btn.is-active {
    background: #e8f1ff;
    color: #1b84ff;
    box-shadow: inset 0 0 0 1px rgba(27, 132, 255, 0.35);
}

/* Analiz paneli: Dönem tarih satırı daha küçük */
.mar-meta-card__value--period {
    font-size: 0.78rem;
    font-weight: 600;
    color: #4b5675;
}

.inv-report-filter-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    min-height: 2.35rem;
    padding: 0.4rem 0.95rem;
    border-radius: 0.75rem;
    border: 1px solid rgba(27, 132, 255, 0.28);
    background: rgba(27, 132, 255, 0.08);
    color: var(--inv-report-accent);
    font-size: 0.8125rem;
    font-weight: 700;
    line-height: 1.2;
}

.inv-report-filter-btn i {
    font-size: 1.05rem;
}

.inv-report-filter-btn:hover {
    background: rgba(27, 132, 255, 0.14);
}

.inv-report-filter-btn__badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.25rem;
    height: 1.25rem;
    padding: 0 0.35rem;
    border-radius: 999px;
    background: var(--inv-report-accent);
    color: #fff;
    font-size: 0.68rem;
    font-weight: 800;
}

.inv-report-field {
    display: inline-flex;
    flex-direction: column;
    gap: 0.2rem;
    min-width: 0;
}

.inv-report-field--inline {
    flex-direction: row;
    align-items: center;
    gap: 0.45rem;
}

.inv-report-field--inline .inv-report-field__label {
    text-transform: none;
    letter-spacing: 0.01em;
    font-size: 0.75rem;
    font-weight: 600;
    white-space: nowrap;
    margin: 0;
}

.inv-report-field__label {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--inv-report-muted);
    line-height: 1;
}

.inv-report-date {
    display: inline-flex;
    align-items: stretch;
    border: 1px solid var(--inv-report-border);
    border-radius: 0.75rem;
    background: #fff;
    overflow: hidden;
}

.inv-report-date__nav {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.35rem;
    border: 0;
    background: transparent;
    color: var(--inv-report-text);
    transition: background 0.15s ease;
}

.inv-report-date__nav:hover:not(:disabled) {
    background: var(--inv-report-surface);
}

.inv-report-date__nav:disabled {
    opacity: 0.35;
    cursor: not-allowed;
}

.inv-report-date__nav i {
    font-size: 1.05rem;
}

.inv-report-date__picker {
    position: relative;
    display: inline-flex;
    align-items: stretch;
    border-left: 1px solid var(--inv-report-border);
    border-right: 1px solid var(--inv-report-border);
    min-width: 7.5rem;
}

.inv-report-date__value {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.35rem;
    padding: 0.35rem 0.85rem;
    border: 0;
    background: transparent;
    color: var(--inv-report-text);
    font-size: 0.875rem;
    font-weight: 700;
    white-space: nowrap;
}

.inv-report-res-select {
    appearance: auto;
    -webkit-appearance: menulist;
    border: 1px solid var(--inv-report-border);
    border-radius: 0.75rem;
    background: #fff;
    min-width: 6.5rem;
    cursor: pointer;
}

.inv-report-field .inv-report-inv-dd__toggle.inv-report-date__value {
    border: 1px solid var(--inv-report-border);
    border-radius: 0.75rem;
    background: #fff;
    justify-content: flex-start;
    min-width: 10rem;
    max-width: 16rem;
}

.inv-report-custom-range {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 0.65rem;
}

.inv-report-custom-range .inv-report-date__value {
    border: 1px solid var(--inv-report-border);
    border-radius: 0.75rem;
    background: #fff;
    min-width: 9rem;
}

.inv-report-total {
    display: flex;
    align-items: center;
    gap: 0.85rem 1.25rem;
    flex-wrap: wrap;
    margin-bottom: 0.85rem;
    padding: 0.7rem 1rem;
    border: 1px solid var(--inv-report-border);
    border-radius: 0.85rem;
    background: linear-gradient(100deg, rgba(27, 132, 255, 0.07), #fff 42%);
}

.inv-report-total__left {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    min-width: 0;
}

.inv-report-total__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.35rem;
    height: 2.35rem;
    border-radius: 0.7rem;
    background: rgba(27, 132, 255, 0.12);
    color: var(--inv-report-accent);
    flex-shrink: 0;
}

.inv-report-total__icon i {
    font-size: 1.2rem;
}

.inv-report-total__meta {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    min-width: 0;
}

.inv-report-total__title {
    font-size: 0.78rem;
    font-weight: 800;
    color: var(--inv-report-text);
    line-height: 1.2;
}

.inv-report-total__range {
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--inv-report-muted);
    line-height: 1.2;
}

.inv-report-total__value {
    margin-left: auto;
    flex: 0 0 auto;
    font-size: 1.35rem;
    font-weight: 800;
    color: var(--inv-report-text);
    line-height: 1.1;
    white-space: nowrap;
}

.inv-report-filter-item.is-selected {
    padding: 0.35rem 0.5rem;
    margin: 0 -0.5rem;
    border-radius: 0.5rem;
    background: rgba(27, 132, 255, 0.07);
}

.inv-report .btn-group-sm > .btn,
.inv-report .btn.btn-sm,
.inv-report-controls .btn {
    min-height: 28px;
    padding: 0.2rem 0.55rem;
    font-size: 0.75rem;
    font-weight: 600;
    line-height: 1.2;
}

.inv-report .form-select-sm,
.inv-report-controls .form-select-sm {
    min-height: 28px;
    padding-top: 0.2rem;
    padding-bottom: 0.2rem;
    font-size: 0.75rem;
}

.scada-setup-actions .btn-primary.is-nav-active,
.scada-setup-actions .btn-primary {
    box-shadow: none;
}

/* Aktif hero nav / SCADA setup: primary dolgu; ikonlar beyaz kalsın (outline + duotone) */
.scada-setup-actions .btn-primary i,
.scada-setup-actions .btn-primary .ki-outline,
.scada-setup-actions .btn-primary .ki-duotone,
.scada-setup-actions .btn-primary .text-primary,
.scada-setup-actions .btn-primary .text-info,
.scada-setup-actions .btn-primary .text-warning,
.scada-setup-actions .btn-success i,
.scada-setup-actions .btn-warning i {
    color: var(--bs-primary-inverse, #fff) !important;
}

.scada-setup-actions .btn-primary .ki-duotone [class^="path"]:before,
.scada-setup-actions .btn-primary .ki-duotone [class*=" path"]:before {
    color: var(--bs-primary-inverse, #fff) !important;
    opacity: 1 !important;
}

/*
 * Ghost (btn-light-*) hover/focus/active solid renk olur.
 * Bootstrap .text-primary/.text-danger !important yüzünden ikonlar kayboluyordu.
 */
.scada-setup-actions .btn-light-primary:hover i,
.scada-setup-actions .btn-light-primary:focus i,
.scada-setup-actions .btn-light-primary:active i,
.scada-setup-actions .btn-light-primary.active i,
.scada-setup-actions .btn-light-primary.show i,
.scada-setup-actions .btn-light-primary:hover .ki-outline,
.scada-setup-actions .btn-light-primary:focus .ki-outline,
.scada-setup-actions .btn-light-primary:active .ki-outline,
.scada-setup-actions .btn-light-primary.active .ki-outline,
.scada-setup-actions .btn-light-primary.show .ki-outline,
.scada-setup-actions .btn-light-primary:hover .text-primary,
.scada-setup-actions .btn-light-primary:focus .text-primary,
.scada-setup-actions .btn-light-primary:active .text-primary,
.scada-setup-actions .btn-light-primary.active .text-primary,
.scada-setup-actions .btn-light-primary.show .text-primary {
    color: var(--bs-primary-inverse, #fff) !important;
}

.scada-setup-actions .btn-light-danger:hover i,
.scada-setup-actions .btn-light-danger:focus i,
.scada-setup-actions .btn-light-danger:active i,
.scada-setup-actions .btn-light-danger.active i,
.scada-setup-actions .btn-light-danger:hover .text-danger,
.scada-setup-actions .btn-light-danger:focus .text-danger,
.scada-setup-actions .btn-light-danger:active .text-danger,
.scada-setup-actions .btn-light-danger.active .text-danger {
    color: var(--bs-danger-inverse, #fff) !important;
}

.scada-setup-actions .btn-success {
    box-shadow: 0 0.25rem 0.65rem rgba(80, 205, 137, 0.28);
}

.scada-reports-dropdown {
    position: relative;
}

.scada-reports-dropdown .dropdown-toggle {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
}

.scada-reports-backdrop {
    position: fixed;
    inset: 0;
    z-index: 1020;
}

.inv-facility-monitor .card-header .card-toolbar {
    overflow: visible;
}

.inv-ops-dropdown {
    position: relative;
}

.inv-ops-backdrop {
    position: fixed;
    inset: 0;
    z-index: 1020;
}

.inv-ops-menu {
    position: absolute !important;
    top: 100% !important;
    right: 0 !important;
    left: auto !important;
    z-index: 1025;
    min-width: 15.5rem;
    max-width: min(18rem, calc(100vw - 1.5rem));
    margin-top: 0.35rem;
    padding: 0.35rem 0 0.5rem;
    overflow: hidden;
}

.inv-ops-menu__item {
    display: flex;
    align-items: center;
    gap: 0.15rem;
    font-size: 0.875rem;
    font-weight: 600;
    color: #181c32;
    padding: 0.55rem 1rem;
}

.inv-ops-menu__item:hover,
.inv-ops-menu__item:focus {
    background: #f1f3f7;
    color: #181c32;
}

.inv-ops-menu__item:disabled,
.inv-ops-menu__item.disabled {
    opacity: 0.45;
    pointer-events: none;
}

.inv-report-chart {
    width: 100% !important;
    max-width: 100%;
    flex: 0 0 auto;
    height: 420px !important;
    min-height: 420px !important;
    max-height: 420px !important;
    resize: none;
    overflow: hidden;
    padding-bottom: 0;
}

.inv-report-day-total {
    background: linear-gradient(90deg, rgba(62, 151, 255, 0.06), #fff 55%);
    border-radius: 0.85rem;
}

.inv-report-day-total__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 0.75rem;
    background: rgba(62, 151, 255, 0.12);
    flex-shrink: 0;
}

/* ApexCharts çizgileri — fill.opacity:0 seri grubunu da siler; zorla görünür tut */
.apexcharts-canvas .apexcharts-line-series,
.apexcharts-canvas .apexcharts-area-series,
.apexcharts-canvas .apexcharts-line-series .apexcharts-series,
.apexcharts-canvas .apexcharts-area-series .apexcharts-series {
    opacity: 1 !important;
}

.apexcharts-canvas .apexcharts-line-series .apexcharts-line path,
.apexcharts-canvas .apexcharts-area-series .apexcharts-line path,
.apexcharts-canvas .apexcharts-area-series .apexcharts-area path {
    stroke-opacity: 1 !important;
    opacity: 1 !important;
}

.soluna-production-chart .apexcharts-line path,
.inv-energy-chart .apexcharts-line path,
.inv-report-chart .apexcharts-line path,
.inv-report-chart .apexcharts-area path {
    stroke-width: 3px !important;
}

.inv-report-inv-dd {
    max-width: 28rem;
}

.inv-report-inv-dd--header {
    width: min(16rem, 70vw);
    max-width: 16rem;
}

.inv-report-inv-dd__wrap {
    position: relative;
}

.inv-report-inv-dd__toggle {
    cursor: pointer;
    background-image: none;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    padding-right: 2rem;
    position: relative;
}

.inv-report-inv-dd__toggle::after {
    content: "";
    position: absolute;
    right: 0.85rem;
    top: 50%;
    width: 0.45rem;
    height: 0.45rem;
    border-right: 2px solid #a1a5b7;
    border-bottom: 2px solid #a1a5b7;
    transform: translateY(-60%) rotate(45deg);
    pointer-events: none;
}

.inv-report-inv-dd__backdrop {
    position: fixed;
    inset: 0;
    z-index: 1040;
}

.inv-report-inv-dd__menu {
    position: absolute;
    left: 0;
    right: 0;
    top: calc(100% + 0.25rem);
    z-index: 1045;
    background: #fff;
    border: 1px solid var(--bs-gray-300, #e4e6ef);
    border-radius: 0.55rem;
    box-shadow: 0 0.5rem 1.25rem rgba(24, 28, 50, 0.12);
    max-height: 18rem;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    min-width: 14rem;
}

.inv-report-inv-dd__menu--end {
    left: auto;
    right: 0;
}

.inv-report-inv-dd__actions {
    display: flex;
    gap: 0.4rem;
    padding: 0.55rem 0.65rem;
    border-bottom: 1px solid var(--bs-gray-200, #eff2f5);
}

.inv-report-inv-dd__items {
    overflow: auto;
    padding: 0.35rem 0;
}

.inv-report-inv-dd__item {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    margin: 0;
    padding: 0.45rem 0.75rem;
    cursor: pointer;
    font-size: 0.875rem;
    font-weight: 600;
    color: #3f4254;
}

.inv-report-inv-dd__item:hover {
    background: rgba(0, 158, 247, 0.06);
}

.inv-report-inv-dd__item .form-check-input {
    margin-top: 0;
    cursor: pointer;
}

.inv-report-viewport {
    flex: 0 1 auto;
    display: flex;
    flex-direction: column;
    min-height: 0;
    height: auto;
}

.inv-facility-monitor .inv-dev-toolbar-btn {
    padding: 0.25rem 0.55rem;
    font-size: 0.75rem;
    line-height: 1.3;
    font-weight: 600;
}

.inv-prod-compare__commentary {
    padding: 1rem 1.1rem;
    border-radius: 0.65rem;
    background: #f9f9f9;
    border: 1px solid var(--bs-gray-200, #eff2f5);
}

.inv-prod-compare__modes .nav-link {
    color: var(--bs-gray-700, #4b5675);
    border: 0;
}

.inv-prod-compare__modes .nav-link.active {
    background-color: var(--bs-primary, #1B84FF);
    color: #fff;
}

.inv-prod-compare__card {
    position: relative;
    background: #fff;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, background-color 0.15s ease;
}

.inv-prod-compare__card--winner {
    border-color: #1B84FF !important;
    border-width: 2px !important;
    background: linear-gradient(180deg, #f3f8ff 0%, #ffffff 48%);
    box-shadow: 0 0.35rem 1rem rgba(27, 132, 255, 0.12);
}

.inv-prod-compare__winner-badge {
    position: absolute;
    top: 0.85rem;
    right: 0.85rem;
    padding: 0.2rem 0.55rem;
    border-radius: 0.375rem;
    background: #1B84FF;
    color: #fff;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.inv-prod-compare__info {
    background: #f8fafc;
}

.inv-prod-compare__table-wrap {
    border: 1px solid var(--bs-gray-200, #eff2f5);
    border-radius: 0.65rem;
    padding: 0.35rem 0.75rem 0.5rem;
    background: #fff;
}

.inv-prod-compare__table th,
.inv-prod-compare__table td {
    vertical-align: top;
}

/* Raporlar / Üretim Kıyası — başlık + kontroller aynı satırda (Alarmlar / Performans stili) */
.inv-report > .card.card-flush > .card-header,
.inv-prod-compare-shell > .card-header {
    min-height: 4.25rem;
    align-items: center !important;
}

.inv-report > .card.card-flush > .card-header .card-title,
.inv-prod-compare-shell > .card-header .card-title {
    padding: 0;
    margin: 0;
}

.inv-report > .card.card-flush > .card-header .card-toolbar,
.inv-prod-compare-shell > .card-header .card-toolbar {
    align-self: center;
    margin: 0 !important;
}

.inv-report > .card.card-flush > .card-header h4,
.inv-prod-compare-shell > .card-header h4 {
    margin: 0;
    font-size: 1.15rem;
    line-height: 1.3;
}

.inv-prod-compare-shell .inv-prod-compare {
    border: 0;
    padding: 0;
    margin-bottom: 0;
    background: transparent;
}

.inv-report-filter-backdrop {
    position: fixed;
    inset: 0;
    z-index: 1040;
    background: rgba(24, 28, 50, 0.35);
}

.inv-report-filter-drawer {
    position: fixed;
    top: 0;
    right: 0;
    z-index: 1045;
    width: min(32rem, 100vw);
    height: 100vh;
    background: #fff;
    box-shadow: -0.5rem 0 1.5rem rgba(24, 28, 50, 0.12);
    display: flex;
    flex-direction: column;
}

.inv-report-filter-drawer__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 1.1rem 1.15rem;
    border-bottom: 1px solid var(--bs-gray-200, #eff2f5);
}

.inv-report-filter-drawer__body {
    flex: 1 1 auto;
    overflow: auto;
    padding: 1rem 1.15rem;
}

.inv-report-filter-drawer__footer {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
    padding: 0.9rem 1.15rem;
    border-top: 1px solid var(--bs-gray-200, #eff2f5);
}

.inv-report-filter-group__toggle {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    border: 0;
    background: transparent;
    padding: 0.35rem 0;
    color: #181c32;
}

@media (max-width: 575.98px) {
    .inv-report-filter-drawer {
        width: 100vw;
    }
}


.scada-reports-menu {
    /* Manuel .show (Popper yok): dropdown-menu-end tek başına yetmez — sağa hizala */
    position: absolute !important;
    top: 100% !important;
    right: 0 !important;
    left: auto !important;
    z-index: 1025;
    min-width: 16.75rem;
    max-width: min(18.5rem, calc(100vw - 1.5rem));
    padding: 0.4rem 0;
    margin-top: 0.35rem;
}

.scada-reports-menu .dropdown-item {
    font-size: 0.875rem;
    font-weight: 600;
}

.scada-reports-menu .dropdown-item.disabled {
    opacity: 0.55;
}

.scada-comm-stack {
    display: flex;
    flex-direction: column;
    gap: var(--app-page-gap);
    margin-top: 0;
}

/* Detay sayfaları: bölümler arası dikey boşluk --app-page-gap ile eşit */
.monitoring-detail-page .scada-comm-board > .card-body {
    display: flex;
    flex-direction: column;
    gap: var(--app-page-gap);
}

.monitoring-detail-page .scada-comm-board > .card-body > .row.mb-5,
.monitoring-detail-page .scada-comm-board > .card-body > .mt-5,
.monitoring-detail-page .scada-comm-board > .card-body > .scada-layer-flow,
.monitoring-detail-page .scada-comm-board > .card-body > .scada-pipeline,
.monitoring-detail-page .scada-comm-board > .card-body > .scada-flow-rail {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

.monitoring-detail-page .row.g-4 {
    --bs-gutter-x: var(--app-page-gap);
    --bs-gutter-y: var(--app-page-gap);
}

.monitoring-detail-page .monitoring-page-section > .row.mb-4:not(:last-child),
.monitoring-detail-page .monitoring-page-section > .mb-4:not(:last-child) {
    margin-bottom: var(--app-page-gap) !important;
}

.monitoring-detail-page .monitoring-page-section > .row.mb-4:last-child,
.monitoring-detail-page .monitoring-page-section > .mb-4:last-child {
    margin-bottom: 0 !important;
}

.scada-health-strip {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.55rem 1rem;
    padding: 0.7rem 1rem;
    border: 1px solid #e4e6ef;
    border-radius: 0.55rem;
    background: #fff;
}

.scada-health-strip--success {
    border-color: #c8e6c9;
    background: linear-gradient(90deg, #f3faf4 0%, #fff 55%);
}

.scada-health-strip--danger {
    border-color: #f5c6cb;
    background: linear-gradient(90deg, #fff5f6 0%, #fff 55%);
}

.scada-health-strip--warning {
    border-color: #ffe0a3;
    background: linear-gradient(90deg, #fffaf0 0%, #fff 55%);
}

.scada-health-strip--neutral {
    border-color: #e4e6ef;
    background: #fbfcfe;
}

.scada-health-strip__main {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.65rem 0.85rem;
    flex: 1 1 auto;
    min-width: 0;
}

.scada-health-strip__badge {
    flex-shrink: 0;
}

.scada-health-strip__summary {
    font-size: 0.9375rem;
    font-weight: 700;
    color: #181c32;
    line-height: 1.35;
}

.scada-health-strip__actions {
    margin-left: auto;
    flex-shrink: 0;
}

.scada-health-strip__detail-btn {
    white-space: nowrap;
}

.scada-health-strip__detail {
    flex: 1 0 100%;
    margin-top: 0.15rem;
    padding-top: 0.55rem;
    border-top: 1px dashed #e4e6ef;
    font-size: 0.875rem;
    color: #5e6278;
    line-height: 1.45;
    word-break: break-word;
}

.scada-comm-board__header.card-header {
    padding-top: 1.15rem;
    padding-bottom: 0.55rem;
    align-items: flex-end !important;
}

/* Başlık ile NETWORK şeridi arası — hafif daraltıldı */
.scada-comm-board > .card-header + .card-body.pt-0 {
    padding-top: 0.75rem !important;
}

.scada-comm-board__header .card-title h3 {
    font-size: 1.25rem;
}

.scada-comm-board__header .fs-8 {
    font-size: 0.875rem !important;
}

.scada-comm-board__header .fs-7 {
    font-size: 0.9375rem !important;
}

.scada-comm-board__meta {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0;
    text-align: left;
    /* "Katmanlı canlı izleme" satırına göre hafif aşağı */
    margin-top: 0.45rem;
    padding-bottom: 0.1rem;
    max-width: 100%;
    overflow-x: auto;
}

.scada-comm-board__meta-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex: 0 0 auto;
    min-width: 0;
    padding: 0.1rem 1.35rem;
}

.scada-comm-board__meta-item:first-child {
    padding-left: 0.25rem;
}

.scada-comm-board__meta-item:last-child {
    padding-right: 0;
}

.scada-comm-board__meta-item:not(:first-child) {
    border-left: 1px solid #e4e6ef;
}

.scada-comm-board__meta-icon {
    flex-shrink: 0;
    width: 1.15rem;
    height: 1.15rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}

.scada-comm-board__meta-text {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
    gap: 0.1rem;
}

.scada-comm-board__meta-label {
    color: #7e8299;
    font-size: 0.8125rem;
    line-height: 1.25;
    margin-bottom: 0;
    white-space: nowrap;
}

.scada-comm-board__meta-value {
    font-weight: 700;
    font-size: 0.9375rem;
    color: #181c32;
    line-height: 1.3;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

/* Analizör adresi — label yanındaki info (hover) */
.analyzer-address-info {
    position: relative;
    display: inline-flex;
    align-items: center;
    vertical-align: middle;
}

.analyzer-address-info__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.35rem;
    height: 1.35rem;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: var(--bs-primary);
    cursor: help;
    line-height: 1;
}

.analyzer-address-info__btn:hover,
.analyzer-address-info:focus-within .analyzer-address-info__btn {
    background: rgba(var(--bs-primary-rgb), 0.08);
}

.analyzer-address-info__panel {
    left: auto;
    right: 0;
    min-width: 17.5rem;
    max-width: 20rem;
}

.analyzer-address-info__title {
    font-size: 0.8rem;
    font-weight: 700;
    color: #181c32;
    margin-bottom: 0.35rem;
}

.analyzer-address-info__hint,
.analyzer-address-info__foot {
    font-size: 0.72rem;
    color: #7e8299;
    line-height: 1.35;
}

/* Sayaç Bilgileri — hover bilgi paneli */
.meter-info-hover {
    position: relative;
    display: inline-flex;
    align-items: center;
}

/* Hover paneli taşabilsin diye yatay kaydırma yerine satır kaydırma. */
.scada-comm-board__meta--popover {
    flex-wrap: wrap;
    row-gap: 0.5rem;
    overflow: visible;
}

.scada-comm-board__meta-item.meter-info-hover {
    cursor: help;
    outline: none;
}

.scada-comm-board__meta-item.meter-info-hover:hover .scada-comm-board__meta-value,
.scada-comm-board__meta-item.meter-info-hover:focus-visible .scada-comm-board__meta-value {
    color: var(--bs-primary);
}

.meter-info-hover__panel {
    position: absolute;
    top: calc(100% + 0.45rem);
    left: 0;
    z-index: 30;
    min-width: 16.5rem;
    padding: 0.75rem 0.9rem;
    border-radius: 0.75rem;
    border: 1px solid #e4e6ef;
    background: #fff;
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.12);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-4px);
    pointer-events: none;
    transition: opacity 0.15s ease, transform 0.15s ease, visibility 0.15s ease;
}

.meter-info-hover:hover .meter-info-hover__panel,
.meter-info-hover:focus-within .meter-info-hover__panel {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    pointer-events: auto;
}

.meter-info-hover__row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.35rem 0;
}

.meter-info-hover__row + .meter-info-hover__row {
    border-top: 1px solid #f1f1f4;
}

.meter-info-hover__label {
    font-size: 0.78rem;
    color: #7e8299;
    white-space: nowrap;
}

.meter-info-hover__value {
    font-size: 0.85rem;
    font-weight: 700;
    color: #181c32;
    text-align: right;
    word-break: break-word;
}

.scada-layer-flow {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem 0.55rem;
    margin-bottom: 0.85rem;
    padding: 0.55rem 0.85rem;
    background: #f5f8fa;
    border: 1px solid #eef3f7;
    border-radius: 0.5rem;
    color: #5e6278;
    font-size: 0.8125rem;
    font-weight: 700;
    letter-spacing: 0.06em;
}

.scada-layer-flow__arrow {
    width: 1.35rem;
    height: 1px;
    background: #b5b5c3;
    position: relative;
}

.scada-layer-flow__arrow::after {
    content: "";
    position: absolute;
    right: 0;
    top: -3px;
    border: 4px solid transparent;
    border-left-color: #b5b5c3;
}

/* SCADA görsel akış: Modem → Port → VPN → Sunucu (durum renkli, yavaş kayma) */
.scada-flow-rail {
    --scada-flow-cycle: 14s;
    --scada-flow-green: #50cd89;
    --scada-flow-red: #f1416c;
    --scada-flow-glyph: 4.85rem;
    --scada-flow-node-w: 6.25rem;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    margin: 0 0 0.9rem;
    padding: 1rem 1.5rem 1.1rem;
    min-height: 0;
    border: 1px solid #eef3f7;
    border-radius: 0.95rem;
    background: linear-gradient(180deg, #f7fafc 0%, #ffffff 60%);
}

/* Sağlık şeridi animasyon alanının içinde, ikonların hemen üstünde */
.scada-flow-rail .scada-health-strip--in-rail {
    width: 100%;
    margin: 0 0 0.35rem;
    flex-shrink: 0;
    padding: 0.45rem 0.85rem;
}

.scada-flow-rail__row {
    /* Kartın büyük kısmını kaplar; bağlantılar esner → aralık görünür açılır */
    display: flex;
    flex-wrap: nowrap;
    align-items: flex-start;
    justify-content: space-between;
    width: 100%;
    max-width: 62rem;
    margin: 0 auto;
    min-height: 0;
    padding: 3.15rem 1.25rem 0.55rem;
    gap: 0;
    box-sizing: border-box;
}

.scada-flow-rail__node {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 0.3rem;
    z-index: 2;
    position: relative;
    flex: 0 0 var(--scada-flow-node-w);
    width: var(--scada-flow-node-w);
}

.scada-flow-rail__glyph {
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    width: var(--scada-flow-glyph);
    height: var(--scada-flow-glyph);
    margin-bottom: 0.65rem; /* ikon kutusu ↔ Modem/Port yazıları arası */
    border-radius: 1.05rem;
    border: 1px solid #e4e6ef;
    background: linear-gradient(165deg, #fff 0%, #f5f8fa 100%);
    color: #a1a5b7;
    box-shadow: 0 8px 16px rgba(24, 28, 50, 0.04);
    transition: color 0.3s ease, border-color 0.3s ease, background 0.3s ease, box-shadow 0.3s ease;
}

/* İkon kutusu sağ üst köşe durum lambası */
.scada-flow-rail__lamp {
    position: absolute;
    top: 0.32rem;
    right: 0.32rem;
    width: 0.55rem;
    height: 0.55rem;
    border-radius: 50%;
    background: #c4cada;
    box-shadow: 0 0 0 2px rgba(196, 202, 218, 0.35);
    z-index: 2;
    pointer-events: none;
}

.scada-flow-rail__node--success .scada-flow-rail__lamp,
.scada-flow-rail__node--ok .scada-flow-rail__lamp {
    background: var(--scada-flow-green);
    box-shadow:
        0 0 0 2px rgba(80, 205, 137, 0.28),
        0 0 8px 1px rgba(80, 205, 137, 0.55);
}

.scada-flow-rail__node--danger .scada-flow-rail__lamp,
.scada-flow-rail__node--bad .scada-flow-rail__lamp {
    background: var(--scada-flow-red);
    box-shadow:
        0 0 0 2px rgba(241, 65, 108, 0.28),
        0 0 8px 1px rgba(241, 65, 108, 0.5);
}

.scada-flow-rail__node--warning .scada-flow-rail__lamp {
    background: #ffc700;
    box-shadow:
        0 0 0 2px rgba(255, 199, 0, 0.3),
        0 0 8px 1px rgba(255, 199, 0, 0.45);
}

.scada-flow-rail__glyph > i {
    font-size: 2.05rem;
    line-height: 1;
}

.scada-flow-rail__glyph--server {
    width: calc(var(--scada-flow-glyph) + 0.35rem);
    height: calc(var(--scada-flow-glyph) + 0.35rem);
    border-radius: 1.15rem;
}

.scada-flow-rail__server-svg {
    width: 2.15rem;
    height: 2.15rem;
    display: block;
}

.scada-flow-rail__node--success .scada-flow-rail__glyph,
.scada-flow-rail__node--ok .scada-flow-rail__glyph {
    border-color: rgba(80, 205, 137, 0.45);
    color: var(--scada-flow-green);
    background: linear-gradient(165deg, rgba(80, 205, 137, 0.14) 0%, #fff 72%);
    box-shadow: 0 0 0 4px rgba(80, 205, 137, 0.08);
}

.scada-flow-rail__node--danger .scada-flow-rail__glyph,
.scada-flow-rail__node--bad .scada-flow-rail__glyph {
    border-color: rgba(241, 65, 108, 0.45);
    color: var(--scada-flow-red);
    background: linear-gradient(165deg, rgba(241, 65, 108, 0.12) 0%, #fff 72%);
    box-shadow: 0 0 0 4px rgba(241, 65, 108, 0.07);
}

.scada-flow-rail__name {
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #3f4254;
}

.scada-flow-rail__status {
    font-size: 0.75rem;
    font-weight: 600;
    color: #7e8299;
    line-height: 1.25;
    max-width: 7.5rem;
}

.scada-flow-rail__node--success .scada-flow-rail__status,
.scada-flow-rail__node--ok .scada-flow-rail__status { color: var(--scada-flow-green); }
.scada-flow-rail__node--danger .scada-flow-rail__status,
.scada-flow-rail__node--bad .scada-flow-rail__status { color: var(--scada-flow-red); }

.scada-flow-rail__link {
    position: relative;
    flex: 1 1 0;
    width: auto;
    min-width: 5.5rem;
    height: var(--scada-flow-glyph);
    margin: 0;
    z-index: 1;
    align-self: start;
    overflow: visible;
}

.scada-flow-rail__track {
    position: absolute;
    left: 0.15rem;
    right: 0.15rem;
    top: calc(var(--scada-flow-glyph) / 2);
    height: 2px;
    border-radius: 999px;
    background: #e4e6ef;
    transform: translateY(-50%);
}

.scada-flow-rail__link--success .scada-flow-rail__track,
.scada-flow-rail__link--ok .scada-flow-rail__track {
    background: rgba(80, 205, 137, 0.32);
}

.scada-flow-rail__link--danger .scada-flow-rail__track,
.scada-flow-rail__link--bad .scada-flow-rail__track {
    background: rgba(241, 65, 108, 0.22);
}

/* Düz koyu yeşil dolgu — uç gidince çizgi soluklaşmasın */
.scada-flow-rail__fill {
    position: absolute;
    left: 0.15rem;
    top: calc(var(--scada-flow-glyph) / 2);
    height: 2.5px;
    width: 0;
    max-width: calc(100% - 0.3rem);
    border-radius: 999px;
    background: var(--scada-flow-green);
    box-shadow: 0 0 6px rgba(80, 205, 137, 0.4);
    transform: translateY(-50%);
    transform-origin: left center;
}

.scada-flow-rail__fill::after {
    content: "";
    position: absolute;
    right: 0;
    top: 50%;
    width: 0.55rem;
    height: 0.55rem;
    margin-right: -0.275rem;
    margin-top: -0.275rem;
    border-radius: 50%;
    background: radial-gradient(circle at 35% 35%, #b6f0d0 0%, var(--scada-flow-green) 45%, #2fb871 100%);
    box-shadow:
        0 0 0 3px rgba(80, 205, 137, 0.18),
        0 0 12px 2px rgba(80, 205, 137, 0.55);
    opacity: 0;
    pointer-events: none;
}

.scada-flow-rail__link--danger .scada-flow-rail__fill,
.scada-flow-rail__link--bad .scada-flow-rail__fill {
    display: none;
}

.scada-flow-proto-leds {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.55rem 1.25rem;
    margin-top: 0.85rem;
    padding-top: 0.8rem;
    width: 100%;
    border-top: 1px dashed #eef3f7;
}

.scada-flow-proto-led {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.75rem;
    font-weight: 600;
    color: #7e8299;
}

.scada-flow-proto-led__dot {
    width: 0.55rem;
    height: 0.55rem;
    border-radius: 50%;
    background: #c4cada;
    box-shadow: 0 0 0 3px rgba(196, 202, 218, 0.25);
}

.scada-flow-proto-led__label {
    letter-spacing: 0.04em;
    text-transform: uppercase;
    font-weight: 700;
    color: #5e6278;
}

.scada-flow-proto-led__state {
    color: #a1a5b7;
}

.scada-flow-proto-led--success .scada-flow-proto-led__dot {
    background: var(--scada-flow-green);
    box-shadow: 0 0 0 3px rgba(80, 205, 137, 0.2);
}

.scada-flow-proto-led--success .scada-flow-proto-led__state {
    color: var(--scada-flow-green);
}

.scada-flow-proto-led--warning .scada-flow-proto-led__dot {
    background: #ffc700;
    box-shadow: 0 0 0 3px rgba(255, 199, 0, 0.22);
}

.scada-flow-proto-led--warning .scada-flow-proto-led__state {
    color: #ffa800;
}

.scada-flow-proto-led--danger .scada-flow-proto-led__dot {
    background: var(--scada-flow-red);
    box-shadow: 0 0 0 3px rgba(241, 65, 108, 0.2);
}

.scada-flow-proto-led--danger .scada-flow-proto-led__state {
    color: var(--scada-flow-red);
}

.scada-flow-proto-led--muted .scada-flow-proto-led__dot {
    background: #c4cada;
}

.scada-flow-proto-led--muted .scada-flow-proto-led__label,
.scada-flow-proto-led--muted .scada-flow-proto-led__state {
    color: #b5b5c3;
}

.scada-flow-rail__ingest {
    position: absolute;
    left: -0.3rem;
    top: 50%;
    width: 0.35rem;
    height: 0.35rem;
    margin-top: -0.175rem;
    border-radius: 50%;
    background: var(--scada-flow-green);
    opacity: 0;
    pointer-events: none;
}

/* Dolgu genişler; uç nokta yalnızca ilerlerken görünür (beklemede ikon kenarında kalmaz) */
.scada-flow-rail--flowing .scada-flow-rail__link--success.scada-flow-rail__link--step1 .scada-flow-rail__fill,
.scada-flow-rail--flowing .scada-flow-rail__link--ok.scada-flow-rail__link--step1 .scada-flow-rail__fill {
    animation: scada-flow-slide-1 var(--scada-flow-cycle) linear infinite;
}

.scada-flow-rail--flowing .scada-flow-rail__link--success.scada-flow-rail__link--step1 .scada-flow-rail__fill::after,
.scada-flow-rail--flowing .scada-flow-rail__link--ok.scada-flow-rail__link--step1 .scada-flow-rail__fill::after {
    animation: scada-flow-tip-1 var(--scada-flow-cycle) linear infinite;
}

.scada-flow-rail--flowing .scada-flow-rail__link--success.scada-flow-rail__link--step2 .scada-flow-rail__fill,
.scada-flow-rail--flowing .scada-flow-rail__link--ok.scada-flow-rail__link--step2 .scada-flow-rail__fill {
    animation: scada-flow-slide-2 var(--scada-flow-cycle) linear infinite;
}

.scada-flow-rail--flowing .scada-flow-rail__link--success.scada-flow-rail__link--step2 .scada-flow-rail__fill::after,
.scada-flow-rail--flowing .scada-flow-rail__link--ok.scada-flow-rail__link--step2 .scada-flow-rail__fill::after {
    animation: scada-flow-tip-2 var(--scada-flow-cycle) linear infinite;
}

.scada-flow-rail--flowing .scada-flow-rail__link--success.scada-flow-rail__link--step3 .scada-flow-rail__fill,
.scada-flow-rail--flowing .scada-flow-rail__link--ok.scada-flow-rail__link--step3 .scada-flow-rail__fill {
    animation: scada-flow-slide-3 var(--scada-flow-cycle) linear infinite;
}

.scada-flow-rail--flowing .scada-flow-rail__link--success.scada-flow-rail__link--step3 .scada-flow-rail__fill::after,
.scada-flow-rail--flowing .scada-flow-rail__link--ok.scada-flow-rail__link--step3 .scada-flow-rail__fill::after {
    animation: scada-flow-tip-3 var(--scada-flow-cycle) linear infinite;
}

.scada-flow-rail--flowing.scada-flow-rail--reach-3 .scada-flow-rail__ingest {
    animation: scada-flow-ingest-slow var(--scada-flow-cycle) ease-in-out infinite;
}

.scada-flow-rail--flowing .scada-flow-rail__node--success .scada-flow-rail__glyph,
.scada-flow-rail--flowing .scada-flow-rail__node--ok .scada-flow-rail__glyph {
    animation: scada-flow-ok-pulse 3.2s ease-in-out infinite;
}

/*
 * Sıralı akış: bir adım bitmeden diğeri başlamaz.
 * 1: %4–24  | 2: %28–48  | 3: %52–72  | tut: %72–88  | reset: %92–100
 */
@keyframes scada-flow-slide-1 {
    0%,
    3% { width: 0; opacity: 1; }
    24%,
    88% { width: calc(100% - 0.3rem); opacity: 1; }
    94%,
    100% { width: 0; opacity: 0; }
}

@keyframes scada-flow-slide-2 {
    0%,
    27% { width: 0; opacity: 1; }
    48%,
    88% { width: calc(100% - 0.3rem); opacity: 1; }
    94%,
    100% { width: 0; opacity: 0; }
}

@keyframes scada-flow-slide-3 {
    0%,
    51% { width: 0; opacity: 1; }
    72%,
    88% { width: calc(100% - 0.3rem); opacity: 1; }
    94%,
    100% { width: 0; opacity: 0; }
}

/* Uç nokta yalnızca kendi adımında; bir sonraki adımdan önce söner */
@keyframes scada-flow-tip-1 {
    0%,
    3% { opacity: 0; }
    5%,
    23% { opacity: 1; }
    25%,
    100% { opacity: 0; }
}

@keyframes scada-flow-tip-2 {
    0%,
    27% { opacity: 0; }
    29%,
    47% { opacity: 1; }
    49%,
    100% { opacity: 0; }
}

@keyframes scada-flow-tip-3 {
    0%,
    51% { opacity: 0; }
    53%,
    71% { opacity: 1; }
    73%,
    100% { opacity: 0; }
}

@keyframes scada-flow-ingest-slow {
    0%,
    73% {
        left: -0.35rem;
        opacity: 0;
        transform: scale(0.5);
    }
    75% {
        opacity: 1;
        transform: scale(1);
    }
    86% {
        left: 46%;
        opacity: 0;
        transform: scale(0.35);
    }
    87%,
    100% {
        opacity: 0;
    }
}

@keyframes scada-flow-ok-pulse {
    0%,
    100% {
        box-shadow: 0 0 0 4px rgba(80, 205, 137, 0.08);
    }
    50% {
        box-shadow: 0 0 0 7px rgba(80, 205, 137, 0.14);
    }
}

@media (max-width: 1199.98px) {
    .scada-flow-rail__row {
        padding: 2.5rem 0.5rem 0.4rem;
        max-width: 100%;
    }

    .scada-flow-rail__link {
        min-width: 3.5rem;
    }
}

@media (max-width: 991.98px) {
    .scada-flow-rail {
        min-height: 0;
        padding: 1.15rem 1rem 1.25rem;
    }

    .scada-flow-rail__row {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        gap: 1rem 1.25rem;
        width: 100%;
        min-height: 0;
        max-width: none;
        padding: 1rem 0 0;
    }

    .scada-flow-rail__node {
        flex: 0 0 auto;
        width: 5.75rem;
    }

    .scada-flow-rail__link {
        display: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .scada-flow-rail--flowing .scada-flow-rail__fill,
    .scada-flow-rail--flowing .scada-flow-rail__ingest,
    .scada-flow-rail--flowing .scada-flow-rail__node--success .scada-flow-rail__glyph,
    .scada-flow-rail--flowing .scada-flow-rail__node--ok .scada-flow-rail__glyph {
        animation: none !important;
    }

    .scada-flow-rail--flowing .scada-flow-rail__link--success .scada-flow-rail__fill,
    .scada-flow-rail--flowing .scada-flow-rail__link--ok .scada-flow-rail__fill {
        width: calc(100% - 0.3rem);
        opacity: 1;
        display: block;
    }

    .scada-flow-rail--flowing .scada-flow-rail__link--success .scada-flow-rail__fill::after,
    .scada-flow-rail--flowing .scada-flow-rail__link--ok .scada-flow-rail__fill::after {
        opacity: 0;
        animation: none !important;
    }
}

.scada-live-tile {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 11.25rem;
    padding: 0.9rem 0.9rem 0.85rem;
    border: 1px solid #e4e6ef;
    border-radius: 0.55rem;
    background: #fff;
    border-top: 3px solid #e4e6ef;
}

.scada-live-tile--success { border-top-color: var(--bs-success); }
.scada-live-tile--warning { border-top-color: var(--bs-warning); }
.scada-live-tile--danger { border-top-color: var(--bs-danger); }
.scada-live-tile--muted { border-top-color: #d8d8e5; }

.scada-live-tile__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.55rem;
}

.scada-live-tile__kicker {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    color: #7e8299;
}

.scada-live-tile__kicker > i {
    font-size: 0.95rem !important;
}

.scada-live-tile__label {
    font-size: 0.75rem;
    color: #7e8299;
    margin-bottom: 0.15rem;
}

.scada-live-tile__value {
    font-size: 1.05rem;
    font-weight: 800;
    color: #181c32;
    line-height: 1.25;
    overflow-wrap: anywhere;
}

.scada-live-tile__hint,
.scada-live-tile__reason {
    margin-top: 0.3rem;
    font-size: 0.75rem;
    color: #5e6278;
    line-height: 1.35;
}

.scada-live-tile__hint {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.scada-live-tile__schedule {
    margin-top: auto;
    padding-top: 0;
    border-top: none;
}

.scada-live-tile__schedule::before {
    content: "";
    display: block;
    border-top: 1px dashed #e4e6ef;
    margin: 0.7rem 0 0.7rem;
}

.scada-live-tile__schedule-line {
    font-size: 0.6875rem;
    color: #7e8299;
    line-height: 1.35;
    min-height: calc(0.6875rem * 1.35);
}

.scada-live-tile__schedule-line--countdown {
    white-space: nowrap;
}

.scada-live-tile__countdown-value {
    display: inline-block;
    min-width: 11.75rem;
    font-variant-numeric: tabular-nums;
}

.scada-live-tile__check-footer {
    margin-top: 0.5rem;
    min-height: 1.65rem;
}

.scada-live-tile__reason {
    font-weight: 600;
    color: #181c32;
}

.scada-iec-panel {
    border: 1px solid #e4e6ef;
    border-radius: 0.65rem;
    padding: 1rem 1rem 0.85rem;
    background: linear-gradient(180deg, #fbfcfe 0%, #fff 42%);
}

.scada-iec-panel__head {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 0.95rem;
}

.scada-iec-panel__head .fw-bold {
    font-size: 1.125rem;
}

.scada-iec-panel__head .fs-8,
.scada-live-tile .fs-8 {
    font-size: 0.875rem !important;
}

.scada-iec-cell {
    height: 100%;
    padding: 0.85rem 0.9rem;
    border: 1px solid #eef3f7;
    border-radius: 0.5rem;
    background: #fff;
}

@media (max-width: 767.98px) {
    .scada-hero__fact--facility {
        font-size: 1.0625rem;
    }

    .scada-hero__title {
        font-size: 1.0625rem;
    }

    .scada-hero__license-row .license-strip__modules-actions {
        width: 100%;
        margin-left: 0;
        justify-content: flex-end;
    }

    .scada-hero__actions {
        width: 100%;
        margin-top: 0.15rem;
        justify-content: flex-end;
    }

    .scada-hero__actions .scada-setup-actions {
        width: 100%;
        justify-content: flex-end;
    }

    .meter-detail-hero-actions {
        width: 100%;
        justify-content: flex-start;
    }

    .meter-detail-hero-tabs {
        width: 100%;
    }

    .scada-setup-actions {
        width: 100%;
        justify-content: stretch;
    }

    /* Yalnızca masaüstü şeritteki butonlar (mobil dropdown ayrı) */
    .scada-setup-actions--desktop .app-btn {
        flex: 1 1 calc(50% - 0.5rem);
        min-width: 0;
    }

    .scada-setup-actions--desktop .scada-reports-dropdown {
        flex: 1 1 calc(50% - 0.5rem);
        min-width: 0;
    }

    .scada-setup-actions--desktop .scada-reports-dropdown .app-btn {
        width: 100%;
        flex: 1 1 auto;
    }

    .scada-setup-actions--mobile .app-btn {
        flex: 1 1 auto;
        min-width: 0;
    }

    .scada-hero .scada-setup-actions {
        width: auto;
        max-width: 100%;
        justify-content: flex-end;
    }

    .scada-hero .scada-setup-actions .app-btn,
    .scada-hero .scada-setup-actions .scada-reports-dropdown {
        flex: 0 1 auto;
    }

    .scada-layer-flow__arrow {
        display: none;
    }
}

.scada-history-strip {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.85rem 1.25rem;
    padding: 0.9rem 1.05rem;
    border: 1px solid #e4e6ef;
    border-radius: 0.55rem;
    background: #f9fbfd;
}

.scada-history-strip--embedded {
    background: #f9fbfd;
}

.scada-history-strip__title {
    font-weight: 700;
    color: #181c32;
}

.scada-history-strip__kpis {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1.35rem;
    flex: 1 1 18rem;
}

.scada-history-strip__kpi-label {
    font-size: 0.75rem;
    font-weight: 600;
    color: #7e8299;
    letter-spacing: 0.02em;
}

.scada-history-strip__kpi-value {
    font-size: 0.9375rem;
    font-weight: 700;
    color: #181c32;
    line-height: 1.3;
}

.scada-history-strip__stats {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem 1.25rem;
    color: #5e6278;
    font-size: 0.875rem;
}

.scada-report-breadcrumb {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.75rem;
    font-weight: 600;
    margin-bottom: 0;
    line-height: 1.3;
}

.scada-report-breadcrumb .btn-link {
    font-weight: 700;
}

.scada-report-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.scada-report-custom-range {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: var(--app-page-gap);
    margin-top: var(--app-page-gap);
}

/* ---- SCADA Haberleşme Raporu: hizalı kart / başlık düzeni ---- */
.scada-history-page {
    --scada-report-pad-x: 1.5rem;
    --scada-report-pad-y: 1.15rem;
}

.scada-history-page > .card.scada-report-section > .card-header {
    min-height: 0 !important;
    align-items: center !important;
    padding: var(--scada-report-pad-y) var(--scada-report-pad-x) !important;
    border-bottom: 1px solid var(--app-card-border) !important;
}

.scada-history-page > .card.scada-report-section > .card-body {
    padding: var(--scada-report-pad-y) var(--scada-report-pad-x) !important;
}

.scada-history-page > .card.scada-report-section > .card-header + .card-body.pt-0 {
    padding-top: var(--scada-report-pad-y) !important;
}

.scada-history-page .scada-ops-hero > .card-header {
    align-items: center !important;
    padding-top: var(--scada-report-pad-y) !important;
    padding-bottom: 0.85rem !important;
    padding-left: var(--scada-report-pad-x) !important;
    padding-right: var(--scada-report-pad-x) !important;
}

.scada-history-page .scada-ops-hero > .card-header .card-toolbar {
    padding-top: 0;
    align-self: center;
}

.scada-history-page .scada-ops-hero .card-title {
    gap: 0.35rem;
}

.scada-report-title {
    font-size: 1.25rem;
    line-height: 1.3;
}

.scada-report-subtitle,
.scada-report-section-subtitle {
    line-height: 1.35;
}

.scada-report-section-heading {
    display: flex;
    align-items: flex-start;
    gap: 0.55rem;
    margin: 0;
    width: 100%;
}

.scada-report-section-icon {
    flex-shrink: 0;
    margin-top: 0.15rem;
    line-height: 1;
}

.scada-report-section-text {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    min-width: 0;
}

.scada-report-section-title {
    font-size: 1.1rem;
    line-height: 1.3;
}

.scada-report-section .card-title {
    gap: 0;
    margin: 0;
}

.scada-report-kpi-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--app-page-gap);
    width: 100%;
}

.scada-report-kpi-grid--compact {
    margin-top: 0.85rem;
}

@media (max-width: 1199.98px) {
    .scada-report-kpi-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767.98px) {
    .scada-report-kpi-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

.scada-kpi-card {
    height: auto;
    margin-bottom: 0 !important;
}

.scada-kpi-card .card-body {
    height: auto;
    padding: 1.1rem 1.15rem !important;
}

/* /scada üst KPI: etiket + badge solda, büyük sayı sağda (aynı kart genişliği) */
.scada-ops-kpi {
    display: flex;
    align-items: center;
    min-height: 6.5rem;
    padding: 1.15rem 1.1rem !important;
}

.scada-ops-kpi__main {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.65rem;
    width: 100%;
    min-width: 0;
}

.scada-ops-kpi__left {
    min-width: 0;
    flex: 1 1 auto;
}

.scada-ops-kpi__label {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    min-width: 0;
}

.scada-ops-kpi__label > span {
    line-height: 1.25;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.scada-ops-kpi__label > i {
    flex-shrink: 0;
    line-height: 1;
}

.scada-ops-kpi__value {
    flex: 0 0 auto;
    font-weight: 700;
    font-size: 1.85rem;
    line-height: 1;
    letter-spacing: -0.02em;
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.scada-ops-kpi .badge {
    max-width: 100%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    opacity: 0.72;
    font-weight: 500;
}

.scada-kpi-card__row {
    display: flex;
    align-items: flex-start;
    gap: 0.55rem;
}

.scada-kpi-card__icon {
    flex-shrink: 0;
    margin-top: 0.1rem;
    line-height: 1;
}

.scada-kpi-card__content {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    min-width: 0;
}

.scada-kpi-card__kicker {
    line-height: 1.3;
}

.scada-kpi-card__value {
    line-height: 1.2;
}

.scada-kpi-card__meta {
    color: #5e6278;
}

.scada-kpi-card__footer {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    margin-top: 0.45rem;
    padding-top: 0.55rem;
    border-top: 1px dashed #e4e6ef;
}

.scada-timeline-stack {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.scada-timeline-row {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 0;
}

.scada-timeline-row:last-child {
    margin-bottom: 0;
}

.scada-timeline-row__label {
    width: 4.75rem;
    flex-shrink: 0;
    font-size: 0.8125rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    color: #7e8299;
}

.scada-timeline-row__bars {
    display: flex;
    flex: 1 1 auto;
    width: 100%;
    min-width: 0;
    height: 16px;
    gap: 1px;
    border-radius: 4px;
    overflow: hidden;
    background: #eef3f7;
}

.scada-timeline-bar {
    flex: 1;
    min-width: 2px;
    height: 100%;
    background: #d8d8e5;
}

.scada-timeline-bar--ok { background: var(--bs-success); }
.scada-timeline-bar--warning { background: var(--bs-warning); }
.scada-timeline-bar--down { background: var(--bs-danger); }
.scada-timeline-bar--notconfigured { background: #d8d8e5; }

/* Geçiş Detayları — timeline ile aynı durum semantiği */
.scada-event-status-legend {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 1.1rem;
}

.scada-event-status-legend__title {
    font-weight: 600;
    margin-right: 0.15rem;
}

.scada-event-status-legend__item {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
}

.scada-event-status {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.45rem 0.5rem;
}

.scada-status-led {
    display: inline-block;
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 50%;
    flex-shrink: 0;
    box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.04);
}

.scada-status-led--ok { background: var(--bs-success); }
.scada-status-led--warning { background: var(--bs-warning); }
.scada-status-led--down { background: var(--bs-danger); }
.scada-status-led--notconfigured { background: #d8d8e5; }

.scada-event-status__badge {
    font-weight: 600;
}

.scada-status-led--pulse {
    animation: scada-status-led-pulse 1.85s ease-in-out infinite;
}

@keyframes scada-status-led-pulse {
    0%, 100% {
        opacity: 1;
        transform: scale(1);
        box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.04);
    }
    50% {
        opacity: 0.55;
        transform: scale(0.88);
        box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.06);
    }
}

@media (prefers-reduced-motion: reduce) {
    .scada-status-led--pulse {
        animation: none;
    }
}

.scada-report-table > :not(caption) > * > * {
    padding-left: 0.75rem;
    padding-right: 0.75rem;
}

.scada-report-table thead th:first-child,
.scada-report-table tbody td:first-child {
    padding-left: 0;
}

.scada-daily-list {
    display: flex;
    flex-direction: column;
    gap: var(--app-page-gap);
}

.scada-daily-block {
    border: 1px solid var(--app-card-border);
    border-radius: 0.625rem;
    background: #fafbfc;
    padding: 1.1rem 1.15rem;
}

.scada-daily-block__head {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.scada-daily-tile {
    border: 1px solid #e4e6ef;
    border-radius: 0.55rem;
    background: #fff;
    padding: 0.9rem 1rem;
}

.scada-daily-tile .card-body {
    height: auto;
}

/* Header nav — Windows’ta ClearType ile net; soluk gri / aşırı sıkı harf aralığı yok */
#kt_app_header_menu.menu {
    padding-left: 1.1rem !important;
    font-family: var(--app-font-family) !important;
    /* antialiased küçük UI metnini Windows’ta soluklaştırır */
    -webkit-font-smoothing: auto;
    -moz-osx-font-smoothing: auto;
    font-synthesis: none;
    text-rendering: auto;
}

#kt_app_header_menu > .menu-item > .menu-link {
    transition: color 0.16s ease, background-color 0.16s ease;
    font-size: 0.84rem !important;
    font-weight: 500 !important;
    letter-spacing: 0.005em;
    color: #1e2129 !important;
    border-radius: 0.5rem;
    padding: 0.42rem 0.7rem !important;
    background-color: transparent !important;
    gap: 0.2rem;
    column-gap: 0.2rem;
}

#kt_app_header_menu > .menu-item > .menu-link .menu-title {
    font-size: 0.84rem !important;
    font-weight: 500 !important;
    letter-spacing: 0.005em;
    color: #1e2129 !important;
    line-height: 1.3;
}

#kt_app_header_menu > .menu-item > .menu-link:hover:not(.active):not(.here) {
    color: #0095e8 !important;
    background-color: rgba(0, 158, 247, 0.08) !important;
    box-shadow: none !important;
}

#kt_app_header_menu > .menu-item > .menu-link:hover:not(.active):not(.here) .menu-title {
    color: #0095e8 !important;
}

/* Aktif: açık mavi zemin + koyu yazı (mavi-üzerine-mavi okunmaz) */
#kt_app_header_menu > .menu-item > .menu-link.active,
#kt_app_header_menu > .menu-item.here > .menu-link,
#kt_app_header_menu > .menu-item > .menu-link.here,
.menu-here-bg #kt_app_header_menu > .menu-item.here > .menu-link,
.menu-here-bg-light-primary #kt_app_header_menu > .menu-item.here > .menu-link {
    color: #0b2e4a !important;
    background-color: #dceefc !important;
    font-weight: 600 !important;
    box-shadow: none !important;
    border-radius: 0.5rem;
}

#kt_app_header_menu > .menu-item > .menu-link.active .menu-title,
#kt_app_header_menu > .menu-item.here > .menu-link .menu-title,
#kt_app_header_menu > .menu-item > .menu-link.here .menu-title,
.menu-here-bg #kt_app_header_menu > .menu-item.here > .menu-link .menu-title,
.menu-here-bg-light-primary #kt_app_header_menu > .menu-item.here > .menu-link .menu-title {
    color: #0b2e4a !important;
    font-weight: 600 !important;
}

/* Aktif ikonlar beyaza dönmesin */
#kt_app_header_menu > .menu-item > .menu-link.active .menu-icon,
#kt_app_header_menu > .menu-item > .menu-link.active .menu-icon i,
#kt_app_header_menu > .menu-item.here > .menu-link .menu-icon,
#kt_app_header_menu > .menu-item.here > .menu-link .menu-icon i {
    color: inherit;
}

#kt_app_header_menu > .menu-item > .menu-link .menu-icon {
    margin-right: 0.28rem !important;
    margin-left: 0 !important;
    width: auto !important;
    min-width: 0 !important;
    flex: 0 0 auto !important;
    justify-content: center;
    padding: 0 !important;
}

#kt_app_header_menu > .menu-item > .menu-link .menu-icon i {
    font-size: 1rem !important;
    line-height: 1;
    padding: 0 !important;
}

#kt_app_header_menu > .menu-item > .menu-link .menu-icon i.text-primary {
    color: var(--bs-primary) !important;
}

#kt_app_header_menu > .menu-item > .menu-link .menu-icon i.text-success {
    color: var(--bs-success) !important;
}

#kt_app_header_menu > .menu-item > .menu-link .menu-icon i.text-warning {
    color: var(--bs-warning) !important;
}

#kt_app_header_menu > .menu-item > .menu-link .menu-icon i.text-info {
    color: var(--bs-info) !important;
}

#kt_app_header_menu > .menu-item > .menu-link .menu-icon i.text-danger {
    color: var(--bs-danger) !important;
}

@media (min-width: 992px) {
    #kt_app_header_menu > .menu-item > .menu-link {
        white-space: nowrap;
    }
}

/* IEC104 canlı veri tablosu — kompakt satır + düşme animasyonu */
.iec104-live-table.table > :not(caption) > * > * {
    padding-top: 0.2rem;
    padding-bottom: 0.2rem;
    line-height: 1.25;
}

.iec104-live-table thead th {
    padding-top: 0.35rem;
    padding-bottom: 0.35rem;
    font-size: 0.78rem;
}

.iec104-live-badge {
    font-size: 0.7rem;
    font-weight: 600;
    padding: 0.15rem 0.4rem;
}

.iec104-live-map-btn {
    --bs-btn-padding-y: 0.1rem;
    --bs-btn-padding-x: 0.45rem;
    --bs-btn-font-size: 0.72rem;
    line-height: 1.2;
}

.iec104-live-row--drop-in {
    animation: iec104-live-row-drop 0.42s cubic-bezier(0.22, 1, 0.36, 1);
}

@keyframes iec104-live-row-drop {
    0% {
        opacity: 0;
        transform: translateY(-10px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (prefers-reduced-motion: reduce) {
    .iec104-live-row--drop-in {
        animation: none;
    }
}

/* Modem list filter menu */
.modem-filter-menu .nav-link,
.facility-filter-menu .nav-link {
    color: var(--bs-gray-600);
    border-radius: 0.475rem;
    transition: color 0.15s ease, background-color 0.15s ease;
}

.modem-filter-menu .nav-link:hover,
.facility-filter-menu .nav-link:hover {
    color: var(--bs-gray-800);
    background-color: rgba(0, 0, 0, 0.04);
}

.modem-filter-menu .nav-link.active,
.facility-filter-menu .nav-link.active {
    color: #fff;
    background-color: var(--bs-primary);
}

/* Cihaz listesi başlık kartı — /scada üst kartı (scada-ops-hero) ölçüleri */
.device-list-hero > .card-header {
    min-height: 0;
    align-items: flex-start;
    padding-top: 2.1rem;
    padding-bottom: 0.65rem;
}

.device-list-hero > .card-header .card-title {
    margin: 0;
    padding-top: 0.2rem;
}

.device-list-hero > .card-header .card-toolbar {
    padding-top: 0.35rem;
}

.device-list-hero__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 2.75rem;
    height: 2.75rem;
    margin-top: 0.1rem;
    border-radius: 0.65rem;
    background: rgba(var(--bs-primary-rgb), 0.08);
}

.device-list-hero__icon--success { background: rgba(var(--bs-success-rgb), 0.1); }
.device-list-hero__icon--warning { background: rgba(var(--bs-warning-rgb), 0.12); }
.device-list-hero__icon--info { background: rgba(var(--bs-info-rgb), 0.1); }
.device-list-hero__icon--danger { background: rgba(var(--bs-danger-rgb), 0.08); }

/* Modem detay özet kutucukları */
.modem-kpi {
    height: 100%;
    padding: 0.75rem 1rem;
    border: 1px dashed var(--bs-gray-300);
    border-radius: 0.65rem;
    min-width: 0;
}

.modem-kpi__label {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--bs-gray-500);
    margin-bottom: 0.25rem;
}

.modem-kpi__value {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--bs-gray-800);
    line-height: 1.4;
}

.modem-kpi--with-icon {
    display: flex;
    align-items: center;
    gap: 0.65rem;
}

.modem-kpi__icon {
    flex: 0 0 auto;
    font-size: 1.35rem;
    line-height: 1;
}

.modem-kpi--with-icon .modem-kpi__body {
    min-width: 0;
    flex: 1 1 auto;
}

.modem-settings-input.is-read-flash {
    border-color: #50cd89 !important;
    background-color: rgba(80, 205, 137, 0.14) !important;
    color: #0f5132;
    box-shadow: 0 0 0 0.2rem rgba(80, 205, 137, 0.25);
    animation: modem-settings-read-flash 2.5s ease;
}

@keyframes modem-settings-read-flash {
    0% {
        background-color: rgba(80, 205, 137, 0.38);
        box-shadow: 0 0 0 0.35rem rgba(80, 205, 137, 0.35);
    }
    40% {
        background-color: rgba(80, 205, 137, 0.18);
        box-shadow: 0 0 0 0.2rem rgba(80, 205, 137, 0.22);
    }
    100% {
        background-color: rgba(80, 205, 137, 0.06);
        box-shadow: 0 0 0 0 rgba(80, 205, 137, 0);
    }
}

.modem-settings-success {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    padding: 0.9rem 1rem;
    border-radius: 0.85rem;
    border: 1px solid rgba(80, 205, 137, 0.45);
    background: rgba(80, 205, 137, 0.12);
    animation: modem-settings-success-in 0.45s ease-out;
}

.modem-settings-success__tick {
    display: inline-flex;
    animation: modem-settings-success-tick 0.55s ease-out;
}

.modem-settings-success__title {
    font-size: 1rem;
    font-weight: 700;
    color: #0f5132;
    line-height: 1.2;
}

.modem-settings-success__sub {
    font-size: 0.78rem;
    color: #198754;
    line-height: 1.35;
}

@keyframes modem-settings-success-in {
    0% { opacity: 0; transform: translateY(6px); }
    100% { opacity: 1; transform: translateY(0); }
}

@keyframes modem-settings-success-tick {
    0% { transform: scale(0.4); opacity: 0; }
    60% { transform: scale(1.15); opacity: 1; }
    100% { transform: scale(1); }
}

[data-bs-theme=dark] .modem-settings-success {
    background: rgba(80, 205, 137, 0.16);
}

[data-bs-theme=dark] .modem-settings-success__title {
    color: #a9f5c8;
}

[data-bs-theme=dark] .modem-settings-success__sub {
    color: #75e0a5;
}

.modem-last-op__ok-tick {
    display: inline-flex;
    animation: modem-settings-success-tick 0.5s ease-out;
}

.modem-write-confirm {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.modem-write-confirm__banner {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    padding: 0.95rem 1rem;
    border-radius: 0.85rem;
    background: linear-gradient(135deg, rgba(54, 153, 255, 0.12), rgba(80, 205, 137, 0.1));
    border: 1px solid rgba(54, 153, 255, 0.18);
}

.modem-write-confirm__rows {
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
}

.modem-write-confirm__row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.85rem 1rem;
    border-radius: 0.75rem;
    background: var(--bs-gray-100, #f5f8fa);
    border: 1px solid var(--app-card-border, rgba(0, 0, 0, 0.06));
}

.modem-write-confirm__label {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--bs-gray-600, #7e8299);
}

.modem-write-confirm__value {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--bs-gray-900, #181c32);
    font-variant-numeric: tabular-nums;
}

.modem-write-confirm__warn {
    font-size: 0.78rem;
    line-height: 1.4;
    color: #b78103;
    background: rgba(255, 199, 0, 0.12);
    border: 1px solid rgba(255, 199, 0, 0.28);
    border-radius: 0.65rem;
    padding: 0.7rem 0.85rem;
}

[data-bs-theme=dark] .modem-write-confirm__row {
    background: rgba(255, 255, 255, 0.04);
}

[data-bs-theme=dark] .modem-write-confirm__value {
    color: #fff;
}

.modem-last-op {
    position: relative;
    border-radius: 0.75rem;
    padding: 0.85rem 1rem;
    border: 1px solid transparent;
    background: transparent;
    transition: border-color 0.25s ease, background-color 0.25s ease, box-shadow 0.25s ease;
}

.modem-last-op--running {
    border-color: rgba(54, 153, 255, 0.35);
    background: rgba(54, 153, 255, 0.06);
}

.modem-last-op--attention {
    animation: modem-last-op-attention 1.6s ease-out 1;
}

.modem-last-op__pulse-dot {
    width: 0.65rem;
    height: 0.65rem;
    border-radius: 50%;
    background: #3699ff;
    box-shadow: 0 0 0 0 rgba(54, 153, 255, 0.55);
    animation: modem-last-op-dot 1.2s ease-out infinite;
}

@keyframes modem-last-op-attention {
    0% {
        transform: scale(0.98);
        border-color: rgba(54, 153, 255, 0.15);
        background: rgba(54, 153, 255, 0.04);
        box-shadow: 0 0 0 0 rgba(54, 153, 255, 0.45);
    }
    35% {
        transform: scale(1.02);
        border-color: rgba(54, 153, 255, 0.65);
        background: rgba(54, 153, 255, 0.12);
        box-shadow: 0 0 0 10px rgba(54, 153, 255, 0);
    }
    100% {
        transform: scale(1);
        border-color: rgba(54, 153, 255, 0.35);
        background: rgba(54, 153, 255, 0.06);
        box-shadow: 0 0 0 0 rgba(54, 153, 255, 0);
    }
}

@keyframes modem-last-op-dot {
    0% { box-shadow: 0 0 0 0 rgba(54, 153, 255, 0.55); }
    70% { box-shadow: 0 0 0 8px rgba(54, 153, 255, 0); }
    100% { box-shadow: 0 0 0 0 rgba(54, 153, 255, 0); }
}

[data-bs-theme=dark] .modem-last-op--running,
[data-bs-theme=dark] .modem-last-op--attention {
    background: rgba(54, 153, 255, 0.14);
}

.modem-restart__serial {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.65rem 0.85rem;
    padding: 0.9rem 1.1rem;
    border-radius: 0.9rem;
    border: 1px solid #e8ecf2;
    background: linear-gradient(135deg, rgba(0, 158, 247, 0.08), rgba(80, 205, 137, 0.05));
}

.modem-restart__serial-label {
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #a1a5b7;
}

.modem-restart__serial-value {
    font-size: 1.15rem;
    font-weight: 800;
    color: #181c32;
    letter-spacing: 0.02em;
    font-variant-numeric: tabular-nums;
}

.modem-restart-status {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    padding: 0.95rem 1.1rem;
    border-radius: 0.9rem;
    border: 1px solid transparent;
}

.modem-restart-status--info {
    border-color: rgba(0, 158, 247, 0.28);
    background: linear-gradient(135deg, rgba(0, 158, 247, 0.1), rgba(0, 158, 247, 0.03));
}

.modem-restart-status--success {
    border-color: rgba(80, 205, 137, 0.35);
    background: linear-gradient(135deg, rgba(80, 205, 137, 0.14), rgba(80, 205, 137, 0.04));
}

.modem-restart-status--danger {
    border-color: rgba(241, 65, 108, 0.3);
    background: linear-gradient(135deg, rgba(241, 65, 108, 0.12), rgba(241, 65, 108, 0.04));
}

.modem-restart-status__icon {
    width: 2rem;
    height: 2rem;
    flex: 0 0 2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.modem-restart-status__label {
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: #a1a5b7;
    margin-bottom: 0.15rem;
}

.modem-restart-status__text {
    font-size: 0.88rem;
    font-weight: 600;
    color: #181c32;
    line-height: 1.4;
}

[data-bs-theme=dark] .modem-restart__serial {
    border-color: #2b2b40;
    background: linear-gradient(135deg, rgba(0, 158, 247, 0.12), rgba(80, 205, 137, 0.06));
}

[data-bs-theme=dark] .modem-restart__serial-value,
[data-bs-theme=dark] .modem-restart-status__text {
    color: #f5f8fa;
}

.modem-restart-steps {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.modem-restart-step {
    display: flex;
    gap: 0.85rem;
    align-items: flex-start;
    padding: 0.75rem 0.9rem;
    border-radius: 0.75rem;
    border: 1px solid #eff2f5;
    background: #f9fafb;
    opacity: 0.55;
    transition: opacity 0.25s ease, border-color 0.25s ease, background 0.25s ease, transform 0.25s ease;
}

.modem-restart-step--active {
    opacity: 1;
    border-color: rgba(0, 158, 247, 0.35);
    background: linear-gradient(135deg, rgba(0, 158, 247, 0.08), rgba(80, 205, 137, 0.05));
    transform: translateX(2px);
}

.modem-restart-step--done {
    opacity: 1;
    border-color: rgba(80, 205, 137, 0.35);
    background: rgba(80, 205, 137, 0.06);
}

.modem-restart-step--failed {
    opacity: 1;
    border-color: rgba(241, 65, 108, 0.35);
    background: rgba(241, 65, 108, 0.06);
}

.modem-restart-step__marker {
    width: 1.75rem;
    height: 1.75rem;
    flex: 0 0 1.75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.modem-restart-step__spin {
    width: 1.1rem;
    height: 1.1rem;
    border-width: 0.15rem;
}

.modem-restart-step__dot {
    width: 0.55rem;
    height: 0.55rem;
    border-radius: 50%;
    background: #b5b5c3;
}

.modem-restart-step__title {
    font-size: 0.9rem;
    font-weight: 700;
    color: #181c32;
    line-height: 1.3;
}

.modem-restart-step__desc {
    margin-top: 0.15rem;
    font-size: 0.78rem;
    color: #7e8299;
    line-height: 1.4;
}

[data-bs-theme=dark] .modem-restart-step {
    border-color: #2b2b40;
    background: #1e1e2d;
}

[data-bs-theme=dark] .modem-restart-step__title {
    color: #f5f8fa;
}

/* Modem detay — Yeniden başlat / Yazılım Güncelleme kartları */
.modem-action-card__head {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
}

.modem-action-card__icon {
    flex: 0 0 auto;
    width: 3rem;
    height: 3rem;
    border-radius: 0.85rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.modem-action-card__icon--restart {
    color: #009ef7;
    background: rgba(0, 158, 247, 0.1);
}

.modem-action-card__icon--firmware {
    color: #f1a40e;
    background: rgba(241, 164, 14, 0.12);
}

.modem-action-card__icon--settings {
    color: #7239ea;
    background: rgba(114, 57, 234, 0.1);
}

.modem-action-card__icon--lastop {
    color: #50cd89;
    background: rgba(80, 205, 137, 0.12);
}

.modem-settings-meta {
    display: inline;
    margin-left: 0.35rem;
    color: var(--bs-gray-600, #7e8299);
}

.modem-settings-meta strong {
    color: var(--bs-gray-800, #3f4254);
    font-weight: 600;
}

.modem-settings-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.95rem 1rem;
}

.modem-settings-field__with-unit {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.modem-settings-unit {
    flex: 0 0 auto;
    min-width: 3.5rem;
    padding: 0.35rem 0.55rem;
    border-radius: 0.5rem;
    background: var(--bs-gray-100, #f5f8fa);
    color: var(--bs-gray-600, #7e8299);
    font-size: 0.75rem;
    font-weight: 700;
    text-align: center;
    white-space: nowrap;
}

.modem-last-op__empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 0.35rem;
    min-height: 9.5rem;
    padding: 1.25rem 1rem;
    border-radius: 0.85rem;
    border: 1px dashed var(--bs-gray-300, #e4e6ef);
    background: var(--bs-gray-100, #f9fafb);
}

.modem-last-op__empty-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3rem;
    height: 3rem;
    margin-bottom: 0.35rem;
    border-radius: 0.85rem;
    background: rgba(0, 158, 247, 0.1);
}

.modem-last-op__list {
    border: 1px solid var(--bs-gray-200, #eff2f5);
    border-radius: 0.75rem;
    padding: 0.15rem 0.85rem;
    background: var(--bs-gray-100, #f9fafb);
}

.modem-last-op__row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.65rem 0;
    border-bottom: 1px solid var(--bs-gray-200, #eff2f5);
}

.modem-last-op__row:last-child {
    border-bottom: 0;
}

@media (max-width: 767.98px) {
    .modem-settings-grid {
        grid-template-columns: 1fr;
    }
}

[data-bs-theme=dark] .modem-settings-unit,
[data-bs-theme=dark] .modem-last-op__empty,
[data-bs-theme=dark] .modem-last-op__list {
    background: #1e1e2d;
    border-color: #2b2b40;
    color: #a1a5b7;
}

[data-bs-theme=dark] .modem-settings-meta strong {
    color: #f5f8fa;
}

[data-bs-theme=dark] .modem-action-card__icon--settings {
    background: rgba(114, 57, 234, 0.18);
}

[data-bs-theme=dark] .modem-action-card__icon--lastop {
    background: rgba(80, 205, 137, 0.18);
}

[data-bs-theme=dark] .modem-last-op__empty-icon {
    background: rgba(0, 158, 247, 0.18);
}

[data-bs-theme=dark] .modem-last-op__row {
    border-bottom-color: #2b2b40;
}

.modem-action-card__hint {
    margin: 1.15rem 0 1.35rem;
}

.modem-action-card__hint-row {
    display: flex;
    align-items: flex-start;
    gap: 0.55rem;
    padding: 0.85rem 1rem;
    border-radius: 0.75rem;
    background: var(--bs-gray-100, #f5f8fa);
    color: var(--bs-gray-700, #5e6278);
    font-size: 0.8rem;
    line-height: 1.45;
}

.modem-fw-progress {
    padding: 0.9rem 1rem;
    border-radius: 0.75rem;
    border: 1px solid var(--bs-gray-200, #eff2f5);
    background: var(--bs-gray-100, #f5f8fa);
}

.modem-fw-step {
    display: inline-flex;
    align-items: center;
    transition: transform 0.35s ease, background-color 0.35s ease, color 0.35s ease, box-shadow 0.35s ease;
}

.modem-fw-step--current {
    animation: modem-fw-step-pulse 1.1s ease-in-out infinite;
}

.modem-fw-step--done {
    animation: modem-fw-step-pop 0.45s ease-out;
}

.modem-fw-step__spin {
    width: 0.65rem;
    height: 0.65rem;
    border-width: 0.12em;
}

@keyframes modem-fw-step-pulse {
    0%, 100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(0, 158, 247, 0.35); }
    50% { transform: scale(1.04); box-shadow: 0 0 0 4px rgba(0, 158, 247, 0); }
}

@keyframes modem-fw-step-pop {
    0% { transform: scale(0.92); opacity: 0.65; }
    60% { transform: scale(1.06); }
    100% { transform: scale(1); opacity: 1; }
}

.modem-fw-serial {
    padding: 0.85rem 1rem;
    border-radius: 0.75rem;
    border: 1px solid var(--bs-gray-200, #eff2f5);
    background: #fff;
}

.modem-fw-serial--compact {
    padding: 0.75rem 0.9rem;
}

.modem-fw-serial__title {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--bs-gray-700, #5e6278);
    margin-bottom: 0.55rem;
}

.modem-fw-serial__options {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    margin-bottom: 0.45rem;
}

.modem-fw-serial__option {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--bs-gray-800, #3f4254);
    cursor: pointer;
    margin: 0;
}

.modem-fw-serial__hint {
    font-size: 0.8rem;
    color: var(--bs-gray-600, #7e8299);
}

.modem-fw-serial__hint strong {
    color: var(--bs-primary, #009ef7);
}

.modem-fw-fields {
    display: grid;
    grid-template-columns: minmax(7rem, 0.85fr) minmax(8rem, 1fr) minmax(12rem, 1.6fr);
    gap: 0.85rem 1rem;
    align-items: end;
}

.modem-fw-field__label {
    display: block;
    margin-bottom: 0.35rem;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: var(--bs-gray-500, #a1a5b7);
}

.modem-fw-field__value {
    display: inline-flex;
    align-items: center;
    min-height: 2.15rem;
    padding: 0.35rem 0.75rem;
    border-radius: 0.55rem;
    background: var(--bs-gray-100, #f5f8fa);
    border: 1px solid transparent;
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--bs-gray-800, #3f4254);
}

.modem-fw-protocol {
    border: 1px solid var(--bs-gray-200, #eff2f5);
    border-radius: 0.75rem;
    background: var(--bs-gray-100, #f9fafb);
    padding: 0.55rem 0.85rem;
}

.modem-fw-protocol > summary {
    cursor: pointer;
    list-style: none;
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--bs-gray-600, #7e8299);
    user-select: none;
}

.modem-fw-protocol > summary::-webkit-details-marker {
    display: none;
}

.modem-fw-protocol > summary::after {
    content: "▾";
    float: right;
    opacity: 0.65;
}

.modem-fw-protocol[open] > summary::after {
    content: "▴";
}

.modem-fw-protocol__body {
    margin-top: 0.55rem;
    padding-top: 0.55rem;
    border-top: 1px dashed var(--bs-gray-300, #e4e6ef);
    font-size: 0.75rem;
    line-height: 1.55;
    word-break: break-word;
}

.modem-fw-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    padding-top: 0.15rem;
}

@media (max-width: 991.98px) {
    .modem-fw-fields {
        grid-template-columns: 1fr 1fr;
    }

    .modem-fw-field--wide {
        grid-column: 1 / -1;
    }
}

@media (max-width: 575.98px) {
    .modem-fw-fields {
        grid-template-columns: 1fr;
    }
}

[data-bs-theme=dark] .modem-action-card__hint-row,
[data-bs-theme=dark] .modem-fw-progress,
[data-bs-theme=dark] .modem-fw-field__value,
[data-bs-theme=dark] .modem-fw-protocol,
[data-bs-theme=dark] .modem-fw-serial {
    background: #1e1e2d;
    border-color: #2b2b40;
    color: #a1a5b7;
}

[data-bs-theme=dark] .modem-fw-serial__option,
[data-bs-theme=dark] .modem-fw-serial__title {
    color: #f5f8fa;
}

[data-bs-theme=dark] .modem-fw-field__value {
    color: #f5f8fa;
}

[data-bs-theme=dark] .modem-action-card__icon--restart {
    background: rgba(0, 158, 247, 0.18);
}

[data-bs-theme=dark] .modem-action-card__icon--firmware {
    background: rgba(241, 164, 14, 0.18);
}

/* Cihaz listesi / modem detay — ortak görünüm sekme çubuğu */
.device-list-tabs-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 0.75rem 1.25rem;
    margin-top: 0.15rem;
    padding-top: 0.35rem;
    border-top: 1px solid var(--app-card-border, var(--bs-gray-200));
}

.device-list-tabs-bar__label {
    flex: 0 0 auto;
    align-self: center;
    min-width: 4.5rem;
    padding: 0.35rem 0;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--bs-gray-500);
}

.device-list-tabs {
    flex: 1 1 auto;
    border-bottom: 0;
    margin: 0;
    gap: 0.15rem;
}

.device-list-tabs .nav-item .nav-link {
    display: inline-flex;
    align-items: center;
    padding: 0.7rem 0.85rem;
    line-height: 1.35;
    border: 0;
    border-bottom: 2px solid transparent;
    border-radius: 0.45rem 0.45rem 0 0;
    background: transparent;
    white-space: nowrap;
}

.device-list-tabs .nav-item .nav-link:hover {
    background: rgba(var(--bs-primary-rgb), 0.04);
}

.device-list-tabs .nav-item .nav-link.active {
    color: var(--bs-primary) !important;
    border-bottom-color: var(--bs-primary);
    background: rgba(var(--bs-primary-rgb), 0.06);
    font-weight: 700;
}

.device-list-tabs .nav-item .nav-link .badge {
    min-width: 1.35rem;
}

[data-bs-theme=dark] .device-list-tabs-bar {
    border-top-color: rgba(255, 255, 255, 0.08);
}

[data-bs-theme=dark] .device-list-tabs .nav-item .nav-link.active {
    background: rgba(var(--bs-primary-rgb), 0.14);
}

/* Cihaz kartı "Detaya Git" — ortak soft buton (Secondary) */
.btn.device-card-detail-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--app-btn-gap);
    line-height: 1.2;
    min-height: var(--app-btn-sm-height);
    padding: var(--app-btn-sm-padding-y) var(--app-btn-sm-padding-x);
    border-radius: calc(var(--app-btn-radius) - 0.1rem) !important;
    font-size: var(--app-btn-sm-font-size);
    font-weight: var(--app-btn-font-weight);
    color: var(--app-btn-secondary-color) !important;
    background-color: var(--app-btn-secondary-bg) !important;
    border: var(--app-btn-border) !important;
    box-shadow: var(--app-btn-shadow);
    transition: var(--app-btn-transition);
}

.btn.device-card-detail-btn i {
    padding-right: 0;
    line-height: 1;
    vertical-align: 0;
    color: #6b7280 !important;
}

.btn.device-card-detail-btn:hover,
.btn.device-card-detail-btn:focus {
    color: var(--app-btn-secondary-color) !important;
    background-color: var(--app-btn-secondary-hover-bg) !important;
    border-color: #d1d5db !important;
    box-shadow: var(--app-btn-shadow-hover);
}

.btn.device-card-detail-btn:hover i,
.btn.device-card-detail-btn:focus i {
    color: #4b5563 !important;
}

/* Sayaç / analizör kart tablosu: yatay kaydırma yok; dar kartta yazılar küçülür ve alt satıra geçer. */
.device-card-table-wrap {
    width: 100%;
    overflow: hidden;
}

.device-card-table {
    width: 100%;
    table-layout: fixed;
}

.device-card-table td {
    font-size: 0.78rem;
    overflow-wrap: anywhere;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

.device-card-table td:first-child {
    width: 42%;
    padding-right: 0.5rem !important;
}

.device-card-table td .badge {
    max-width: 100%;
    white-space: normal;
    overflow-wrap: anywhere;
    text-align: right;
    font-size: 0.72rem !important;
}

.device-card-table .device-card-reaktif > div {
    white-space: nowrap;
    font-size: 0.72rem !important;
}

.device-card-table .device-card-reaktif .badge {
    white-space: nowrap;
}

@media (max-width: 991.98px) {
    .card.card-flush .device-card-table-wrap {
        overflow-x: auto;
        max-width: 100%;
        -webkit-overflow-scrolling: touch;
    }

    .card.card-flush .device-card-table-wrap > .table-responsive {
        overflow-x: auto;
        max-width: 100%;
    }

    .card.card-flush .device-card-table-wrap .device-card-table,
    .card.card-flush .device-card-table-wrap .min-w-300px {
        width: 100%;
        min-width: 260px;
    }
}

/* Tüm Tesisler — modern SaaS dashboard board */
.tum-tesisler-page {
    --et-board-stack-gap: 1.15rem;
    --et-board-radius: 1rem;
    --et-board-shadow: 0 10px 28px rgba(24, 28, 50, 0.06);
    --et-board-border: 1px solid rgba(24, 28, 50, 0.06);
    display: flex;
    flex-direction: column;
    gap: var(--et-board-stack-gap);
    margin-bottom: 2rem;
}

.tum-tesisler-page .et-board-hero,
.tum-tesisler-page .et-board-toolbar,
.tum-tesisler-page .et-board-panel,
.tum-tesisler-page .et-board-kpi {
    background: #fff;
    border: var(--et-board-border);
    border-radius: var(--et-board-radius);
    box-shadow: var(--et-board-shadow);
}

.tum-tesisler-page .et-board-hero .card-body,
.tum-tesisler-page .et-board-toolbar .card-body {
    padding: 1.15rem 1.35rem;
}

.tum-tesisler-page .et-board-hero__row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.tum-tesisler-page .et-board-hero__title {
    margin: 0;
    font-size: 1.55rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: #181c32;
    line-height: 1.2;
}

.tum-tesisler-page .et-board-hero__subtitle {
    margin-top: 0.35rem;
    font-size: 0.9rem;
    color: #7e8299;
}

.tum-tesisler-page .et-board-hero__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
}

.tum-tesisler-page .et-board-hero__btn {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    border-radius: 0.55rem;
    font-weight: 650;
    font-size: 0.8125rem;
    padding: 0.35rem 0.7rem;
    line-height: 1.25;
}

.tum-tesisler-page .et-board-hero__btn i {
    font-size: 1rem;
}

.tum-tesisler-page .et-board-hero__btn--primary {
    box-shadow: 0 0.35rem 0.85rem rgba(0, 158, 247, 0.28);
}

/* KPI grid */
.tum-tesisler-page .et-board-kpi-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0.85rem;
}

.tum-tesisler-page .et-board-kpi {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    padding: 1.05rem 1.15rem;
    min-height: 5.5rem;
    width: 100%;
    text-align: left;
    color: inherit;
    transition: box-shadow 0.18s ease;
    animation: et-board-fade-up 0.45s ease both;
}

.tum-tesisler-page .et-board-kpi:nth-child(2) { animation-delay: 0.04s; }
.tum-tesisler-page .et-board-kpi:nth-child(3) { animation-delay: 0.08s; }
.tum-tesisler-page .et-board-kpi:nth-child(4) { animation-delay: 0.12s; }
.tum-tesisler-page .et-board-kpi:nth-child(5) { animation-delay: 0.16s; }

.tum-tesisler-page .et-board-kpi__icon {
    width: 2.55rem;
    height: 2.55rem;
    border-radius: 0.85rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.tum-tesisler-page .et-board-kpi__value {
    font-size: 1.65rem;
    font-weight: 800;
    line-height: 1.1;
    letter-spacing: -0.03em;
    color: #181c32;
}

.tum-tesisler-page .et-board-kpi__label {
    margin-top: 0.2rem;
    font-size: 0.8rem;
    font-weight: 650;
    color: #7e8299;
}

.tum-tesisler-page .et-board-kpi__pct {
    margin-top: 0.15rem;
    font-size: 0.75rem;
    font-weight: 700;
    color: #a1a5b7;
}

.tum-tesisler-page .et-board-kpi--total .et-board-kpi__icon {
    background: rgba(0, 158, 247, 0.12);
    color: #009ef7;
}
.tum-tesisler-page .et-board-kpi--ok .et-board-kpi__icon {
    background: rgba(80, 205, 137, 0.14);
    color: #17c653;
}
.tum-tesisler-page .et-board-kpi--warn .et-board-kpi__icon {
    background: rgba(255, 199, 0, 0.16);
    color: #c99000;
}
.tum-tesisler-page .et-board-kpi--danger .et-board-kpi__icon {
    background: rgba(241, 65, 108, 0.12);
    color: #f1416c;
}
.tum-tesisler-page .et-board-kpi--offline .et-board-kpi__icon {
    background: rgba(161, 165, 183, 0.16);
    color: #7e8299;
}

/* Toolbar / tabs */
.tum-tesisler-page .et-board-toolbar__row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem 1rem;
}

.tum-tesisler-page .et-board-tabs {
    background: #f4f6fa !important;
    flex: 1 1 auto;
    min-width: 0;
    flex-wrap: wrap;
}

.tum-tesisler-page .et-board-tabs .nav-link {
    border: 0;
    border-radius: 0.55rem;
    padding: 0.45rem 0.75rem;
    font-size: 0.78rem;
    font-weight: 650;
    color: #5e6278;
    background: transparent;
}

.tum-tesisler-page .et-board-tabs .nav-link:hover {
    color: #181c32;
    background: rgba(255, 255, 255, 0.7);
}

.tum-tesisler-page .et-board-tabs .nav-link.active {
    color: #fff;
    background: var(--bs-primary);
    box-shadow: 0 0.25rem 0.65rem rgba(0, 158, 247, 0.28);
}

.tum-tesisler-page .et-board-toolbar__modules {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem 0.65rem;
    flex: 1 1 auto;
    min-width: 0;
}

.tum-tesisler-page .et-board-toolbar__modules-label {
    font-size: 0.72rem;
    font-weight: 750;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #a1a5b7;
    margin-right: 0.15rem;
}

.tum-tesisler-page .et-board-mod-filters {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem;
}

.tum-tesisler-page .et-board-mod-filter {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.32rem 0.7rem;
    border-radius: 999px;
    border: 1px solid #e4e6ef;
    background: #f9fafb;
    color: #5e6278;
    font-size: 0.78rem;
    font-weight: 650;
    line-height: 1.2;
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.tum-tesisler-page .et-board-mod-filter:hover {
    border-color: #cfd3e0;
    background: #fff;
    color: #181c32;
}

.tum-tesisler-page .et-board-mod-filter__count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.25rem;
    height: 1.25rem;
    padding: 0 0.28rem;
    border-radius: 999px;
    background: #eef0f4;
    color: #5e6278;
    font-size: 0.7rem;
    font-weight: 800;
}

.tum-tesisler-page .et-board-mod-filter.is-active {
    background: #fff;
    color: #181c32;
    border-color: currentColor;
}

.tum-tesisler-page .et-board-mod-filter--meter.is-active { color: #009ef7; border-color: rgba(0, 158, 247, 0.45); background: rgba(0, 158, 247, 0.08); }
.tum-tesisler-page .et-board-mod-filter--analyzer.is-active { color: #7239ea; border-color: rgba(114, 57, 234, 0.4); background: rgba(114, 57, 234, 0.08); }
.tum-tesisler-page .et-board-mod-filter--scada.is-active { color: #009ef7; border-color: rgba(0, 158, 247, 0.45); background: rgba(0, 158, 247, 0.08); }
.tum-tesisler-page .et-board-mod-filter--inverter.is-active { color: #0f8a4b; border-color: rgba(80, 205, 137, 0.5); background: rgba(80, 205, 137, 0.1); }

.tum-tesisler-page .et-board-mod-filter--meter.is-active .et-board-mod-filter__count { background: rgba(0, 158, 247, 0.16); color: #009ef7; }
.tum-tesisler-page .et-board-mod-filter--analyzer.is-active .et-board-mod-filter__count { background: rgba(114, 57, 234, 0.14); color: #7239ea; }
.tum-tesisler-page .et-board-mod-filter--scada.is-active .et-board-mod-filter__count { background: rgba(0, 158, 247, 0.16); color: #009ef7; }
.tum-tesisler-page .et-board-mod-filter--inverter.is-active .et-board-mod-filter__count { background: rgba(80, 205, 137, 0.18); color: #0f8a4b; }

.tum-tesisler-page .et-board-mod-filter--clear {
    border-style: dashed;
    color: #7e8299;
}

.tum-tesisler-page .et-board-toolbar__tools {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem;
    flex-shrink: 0;
}

.tum-tesisler-page .et-board-search {
    position: relative;
    min-width: 13rem;
}

.tum-tesisler-page .et-board-search > i {
    position: absolute;
    left: 0.7rem;
    top: 50%;
    transform: translateY(-50%);
    pointer-events: none;
}

.tum-tesisler-page .et-board-search .form-control {
    padding-left: 2.1rem;
    border-radius: 0.65rem;
    border-color: rgba(24, 28, 50, 0.08);
    background: #f9fafc;
    min-height: 2.15rem;
}

.tum-tesisler-page .et-board-toolbar__tools .btn {
    border-radius: 0.65rem;
    font-weight: 650;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.tum-tesisler-page .et-board-tool-dropdown {
    position: relative;
}

.tum-tesisler-page .et-board-menu-backdrop {
    position: fixed;
    inset: 0;
    z-index: 1020;
}

.tum-tesisler-page .et-board-tool-menu {
    position: absolute !important;
    top: 100% !important;
    right: 0 !important;
    left: auto !important;
    z-index: 1025;
    min-width: 14rem;
    margin-top: 0.35rem;
    padding: 0.45rem 0;
    border-radius: 0.85rem;
    border: 1px solid rgba(24, 28, 50, 0.08);
    box-shadow: 0 14px 36px rgba(24, 28, 50, 0.12);
}

.tum-tesisler-page .et-board-tool-menu__title {
    padding: 0.35rem 1rem 0.55rem;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #a1a5b7;
}

.tum-tesisler-page .et-board-tool-menu__check {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.4rem 1rem;
    font-size: 0.875rem;
    font-weight: 600;
    color: #181c32;
    cursor: pointer;
    margin: 0;
}

.tum-tesisler-page .et-board-tool-menu__check:hover {
    background: #f4f6fa;
}

.tum-tesisler-page .et-board-tool-menu__foot {
    padding: 0.45rem 1rem 0.25rem;
    border-top: 1px solid rgba(24, 28, 50, 0.06);
    margin-top: 0.25rem;
}

.tum-tesisler-page .et-board-tool-menu .dropdown-item.active {
    background: rgba(0, 158, 247, 0.1);
    color: var(--bs-primary);
    font-weight: 700;
}

/* Panel / table */
.tum-tesisler-page .et-board-panel {
    overflow: hidden;
    animation: et-board-fade-up 0.4s ease both;
    animation-delay: 0.08s;
}

.tum-tesisler-page .et-board-panel--table {
    display: flex;
    flex-direction: column;
}

.tum-tesisler-page .et-board-table-wrap {
    background: #fff;
}

.tum-tesisler-page .tum-tesisler-table {
    --et-board-pad-x: 1.05rem;
    --et-board-line: #e8eaef;
    --et-board-line-strong: #d5d8e0;
    --et-board-head-bg: #f7f8fa;
    width: 100%;
    table-layout: fixed;
    margin: 0;
    background: #fff;
    color: #181c32;
    font-size: 0.875rem;
    border-collapse: separate;
    border-spacing: 0;
}

.tum-tesisler-page .et-board-col-name { width: 22%; }
.tum-tesisler-page .et-board-col-status { width: 10%; }
.tum-tesisler-page .et-board-col-warn { width: 9%; }
.tum-tesisler-page .et-board-col-mods { width: 20%; }
.tum-tesisler-page .et-board-col-comm { width: 13%; }
.tum-tesisler-page .et-board-col-alarm { width: 11%; }
.tum-tesisler-page .et-board-col-action { width: 11%; }
.tum-tesisler-page .et-board-col-idx { width: 3.25rem; }

/* BS5/Metronic hücre box-shadow çizgiyi örter — kapat */
.tum-tesisler-page .tum-tesisler-table.table > :not(caption) > * > * {
    box-shadow: none !important;
    --bs-table-bg: transparent;
    --bs-table-bg-type: transparent;
    --bs-table-bg-state: transparent;
}

.tum-tesisler-page .tum-tesisler-table thead th {
    background: var(--et-board-head-bg) !important;
    color: #7e8299;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    border: 0 !important;
    border-bottom: 1px solid var(--et-board-line-strong) !important;
    padding: 1.2rem var(--et-board-pad-x);
    white-space: nowrap;
    vertical-align: middle;
}

.tum-tesisler-page .tum-tesisler-table thead {
    box-shadow: inset 0 -1px 0 var(--et-board-line-strong);
}

.tum-tesisler-page .tum-tesisler-table thead th:first-child {
    text-align: center;
    padding-left: 0.85rem;
    padding-right: 0.85rem;
}

.tum-tesisler-page .tum-tesisler-table thead th:last-child {
    text-align: left;
}

.tum-tesisler-page .tum-tesisler-table tbody td {
    background: #fff;
    border: 0;
    border-bottom: 1px solid var(--et-board-line);
    padding: 0.95rem var(--et-board-pad-x);
    vertical-align: middle;
    height: 4.5rem;
    transition: background-color 0.15s ease;
}

.tum-tesisler-page .tum-tesisler-table tbody td:first-child {
    text-align: center;
    padding-left: 0.85rem;
    padding-right: 0.85rem;
    box-shadow: inset 3px 0 0 transparent;
    transition: box-shadow 0.15s ease, background-color 0.15s ease;
}

.tum-tesisler-page .tum-tesisler-table tbody td:last-child {
    text-align: left;
}

.tum-tesisler-page .tum-tesisler-table tbody tr:last-child td {
    border-bottom: 0;
}

.tum-tesisler-page .tum-tesisler-facility-row {
    transition: background-color 0.15s ease;
}

.tum-tesisler-page .tum-tesisler-facility-row:hover > td {
    background: #f5f8fc;
}

.tum-tesisler-page .tum-tesisler-facility-row:hover > td:first-child {
    box-shadow: inset 3px 0 0 #009ef7;
}

.tum-tesisler-page .et-board-idx {
    font-size: 0.75rem;
    font-weight: 600;
    color: #b5b5c3;
    font-variant-numeric: tabular-nums;
    display: inline-block;
    min-width: 1.5rem;
    text-align: center;
}

.tum-tesisler-page .et-board-cell {
    display: flex;
    align-items: center;
    min-width: 0;
}

.tum-tesisler-page .et-board-cell--facility {
    gap: 0.75rem;
}

.tum-tesisler-page .et-board-cell--stack {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.15rem;
}

.tum-tesisler-page .et-board-cell--action {
    gap: 0.45rem;
    justify-content: flex-start;
}

.tum-tesisler-page .et-board-facility-icon {
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 0.7rem;
    background: linear-gradient(180deg, #f8f9fb 0%, #eef1f6 100%);
    border: 1px solid rgba(24, 28, 50, 0.05);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.tum-tesisler-page .et-board-facility-icon img {
    opacity: 0.9;
}

.tum-tesisler-page .et-board-facility-meta {
    display: flex;
    flex-direction: column;
    gap: 0.12rem;
    min-width: 0;
}

.tum-tesisler-page .et-board-facility-name {
    font-size: 0.9rem;
    font-weight: 700;
    color: #181c32;
    text-decoration: none;
    line-height: 1.3;
    letter-spacing: -0.01em;
}

.tum-tesisler-page .et-board-facility-name:hover {
    color: #009ef7;
}

.tum-tesisler-page .et-board-facility-loc {
    font-size: 0.72rem;
    color: #a1a5b7;
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
}

.tum-tesisler-page .et-board-status {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0;
    border-radius: 0;
    font-size: 0.8125rem;
    font-weight: 600;
    line-height: 1.2;
    white-space: nowrap;
    background: transparent;
    color: #3f4254;
}

.tum-tesisler-page .et-board-status__dot {
    width: 0.42rem;
    height: 0.42rem;
    border-radius: 50%;
    background: currentColor;
    flex-shrink: 0;
    box-shadow: 0 0 0 3px rgba(24, 28, 50, 0.06);
}

.tum-tesisler-page .et-board-status--ok .et-board-status__dot {
    box-shadow: 0 0 0 3px rgba(15, 138, 75, 0.16);
}
.tum-tesisler-page .et-board-status--warn .et-board-status__dot {
    box-shadow: 0 0 0 3px rgba(201, 144, 0, 0.16);
}
.tum-tesisler-page .et-board-status--danger .et-board-status__dot {
    box-shadow: 0 0 0 3px rgba(217, 33, 78, 0.14);
}

.tum-tesisler-page .et-board-status--ok { color: #0f8a4b; }
.tum-tesisler-page .et-board-status--warn { color: #c99000; }
.tum-tesisler-page .et-board-status--danger { color: #d9214e; }
.tum-tesisler-page .et-board-status--info { color: #0095e8; }
.tum-tesisler-page .et-board-status--offline,
.tum-tesisler-page .et-board-status--neutral { color: #7e8299; }

.tum-tesisler-page .et-board-incomplete {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 600;
    line-height: 1.2;
    white-space: nowrap;
    color: #b07d00;
    background: #fff8dd;
    border: 1px solid #f6e3a1;
}
.tum-tesisler-page .et-board-incomplete:hover {
    color: #8a6200;
    background: #fff1c2;
}

.tum-tesisler-page .et-board-chip-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.3rem;
}

.tum-tesisler-page .et-board-empty {
    color: #c4c8d4;
    font-weight: 500;
    font-size: 0.85rem;
}

.tum-tesisler-page .et-board-mod,
.tum-tesisler-page .et-board-comm,
.tum-tesisler-page .et-board-alarm {
    display: inline-flex;
    align-items: center;
    padding: 0;
    border-radius: 0;
    font-size: 0.8rem;
    font-weight: 600;
    line-height: 1.25;
    white-space: nowrap;
    background: transparent;
    color: #5e6278;
}

.tum-tesisler-page .et-board-mod {
    gap: 0.28rem;
    padding: 0.18rem 0.48rem;
    border-radius: 0.4rem;
    background: #f3f5f8;
    color: #5e6278;
    font-size: 0.74rem;
    font-weight: 650;
}

.tum-tesisler-page .et-board-mod__label {
    color: #7e8299;
}

.tum-tesisler-page .et-board-mod__count {
    display: inline;
    min-width: 0;
    padding: 0;
    border-radius: 0;
    font-size: inherit;
    font-weight: 750;
    line-height: inherit;
    background: transparent;
    color: #181c32;
    font-variant-numeric: tabular-nums;
}

.tum-tesisler-page .et-board-mod--meter,
.tum-tesisler-page .et-board-mod--analyzer,
.tum-tesisler-page .et-board-mod--scada,
.tum-tesisler-page .et-board-mod--inverter {
    background: #f3f5f8;
    color: #5e6278;
}

.tum-tesisler-page .et-board-mod--meter .et-board-mod__count,
.tum-tesisler-page .et-board-mod--analyzer .et-board-mod__count,
.tum-tesisler-page .et-board-mod--scada .et-board-mod__count,
.tum-tesisler-page .et-board-mod--inverter .et-board-mod__count {
    background: transparent;
    color: #181c32;
}

.tum-tesisler-page .et-board-comm {
    font-variant-numeric: tabular-nums;
    font-size: 0.8rem;
    font-weight: 600;
}

.tum-tesisler-page .et-board-comm--ok {
    background: transparent;
    color: #5e6278;
}

.tum-tesisler-page .et-board-comm--warn {
    background: transparent;
    color: #c99000;
}

.tum-tesisler-page .et-board-comm--danger {
    background: transparent;
    color: #d9214e;
}

.tum-tesisler-page .et-board-comm--neutral {
    background: transparent;
    color: #b5b5c3;
}

.tum-tesisler-page .et-board-alarm--ok {
    background: transparent;
    color: #b5b5c3;
    font-weight: 500;
}

.tum-tesisler-page .et-board-alarm--hit {
    background: transparent;
    color: #d9214e;
    font-weight: 700;
}

.tum-tesisler-page .et-board-open {
    display: inline-flex;
    align-items: center;
    gap: 0.28rem;
    padding: 0.2rem 0;
    border-radius: 0;
    font-size: 0.8rem;
    font-weight: 650;
    color: #009ef7;
    background: transparent;
    text-decoration: none;
    transition: color 0.15s ease, gap 0.15s ease;
}

.tum-tesisler-page .et-board-open i {
    font-size: 0.85rem;
    transition: transform 0.15s ease;
}

.tum-tesisler-page .et-board-open:hover {
    background: transparent;
    color: #0077c0;
    text-decoration: none;
    transform: none;
    gap: 0.4rem;
}

.tum-tesisler-page .et-board-open:hover i {
    transform: translateX(2px);
}

.tum-tesisler-page .et-board-more {
    width: 1.85rem;
    height: 1.85rem;
    border-radius: 0.5rem;
    color: #a1a5b7;
    border: 1px solid transparent;
    background: transparent;
}

.tum-tesisler-page .et-board-more:hover {
    color: #5e6278;
    background: #f1f3f7;
    border-color: rgba(24, 28, 50, 0.06);
}

.tum-tesisler-page .et-board-row-menu {
    position: relative;
}

/* Footer / pager */
.tum-tesisler-page .et-board-footer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.85rem 1.15rem;
    border-top: 1px solid rgba(24, 28, 50, 0.06);
    background: #fafbfc;
}

.tum-tesisler-page .et-board-footer__meta {
    font-size: 0.8rem;
    font-weight: 650;
    color: #7e8299;
}

.tum-tesisler-page .et-board-footer__pager {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.55rem;
}

.tum-tesisler-page .et-board-page-size .form-select {
    width: auto;
    min-width: 7.5rem;
    border-radius: 0.55rem;
    font-size: 0.8rem;
    font-weight: 650;
}

.tum-tesisler-page .et-board-pager {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
}

.tum-tesisler-page .et-board-pager .btn {
    min-width: 2rem;
    border-radius: 0.45rem;
    font-weight: 700;
}

/* Empty / error / skeleton */
.tum-tesisler-page .et-board-state {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 0.55rem;
    padding: 3.25rem 1.5rem;
}

.tum-tesisler-page .et-board-state__title {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 750;
    color: #181c32;
}

.tum-tesisler-page .et-board-state__text {
    margin: 0;
    max-width: 28rem;
    font-size: 0.875rem;
    color: #7e8299;
}

.tum-tesisler-page .et-board-skel {
    background: linear-gradient(90deg, #eef0f4 25%, #f7f8fa 50%, #eef0f4 75%);
    background-size: 200% 100%;
    animation: et-board-skel 1.2s ease-in-out infinite;
    border-radius: 0.45rem;
}

.tum-tesisler-page .et-board-skel--circle {
    width: 2.55rem;
    height: 2.55rem;
    border-radius: 0.85rem;
    flex-shrink: 0;
}

.tum-tesisler-page .et-board-skel--lg {
    width: 3.5rem;
    height: 1.35rem;
}

.tum-tesisler-page .et-board-skel--sm {
    width: 5rem;
    height: 0.7rem;
}

.tum-tesisler-page .et-board-skel--row {
    height: 1.1rem;
    width: 100%;
}

.tum-tesisler-page .et-board-kpi--skeleton {
    pointer-events: none;
}

@keyframes et-board-fade-up {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes et-board-skel {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

@media (prefers-reduced-motion: reduce) {
    .tum-tesisler-page .et-board-kpi,
    .tum-tesisler-page .et-board-panel,
    .tum-tesisler-page .et-board-skel,
    .tum-tesisler-page .et-board-open,
    .tum-tesisler-page .tum-tesisler-facility-row {
        animation: none !important;
        transition: none !important;
    }
}

@media (max-width: 1199.98px) {
    .tum-tesisler-page .et-board-kpi-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 991.98px) {
    .tum-tesisler-page .et-board-kpi-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.75rem;
    }

    .tum-tesisler-page .et-board-kpi {
        min-height: 0;
        padding: 0.8rem 0.9rem;
        gap: 0.65rem;
    }

    .tum-tesisler-page .et-board-kpi__icon {
        width: 2.1rem;
        height: 2.1rem;
        border-radius: 0.65rem;
    }

    .tum-tesisler-page .et-board-kpi__value {
        font-size: 1.35rem;
    }

    .tum-tesisler-page .et-board-hero__actions {
        width: 100%;
        flex-direction: column;
        align-items: stretch;
        gap: 0.5rem;
    }

    .tum-tesisler-page .et-board-hero__btn {
        width: 100%;
        justify-content: center;
        min-height: 2.35rem;
        padding: 0.45rem 0.85rem;
        font-size: 0.8125rem;
    }

    .tum-tesisler-page .tum-tesisler-table {
        table-layout: auto;
        min-width: 920px;
    }

    .tum-tesisler-page .et-board-col-idx,
    .tum-tesisler-page .et-board-col-name,
    .tum-tesisler-page .et-board-col-status,
    .tum-tesisler-page .et-board-col-warn,
    .tum-tesisler-page .et-board-col-mods,
    .tum-tesisler-page .et-board-col-comm,
    .tum-tesisler-page .et-board-col-alarm,
    .tum-tesisler-page .et-board-col-action {
        width: auto;
    }
}

@media (max-width: 575.98px) {
    .tum-tesisler-page .et-board-kpi-grid {
        grid-template-columns: 1fr;
        gap: 0.7rem;
    }

    .tum-tesisler-page .et-board-search {
        min-width: 100%;
        width: 100%;
    }

    .tum-tesisler-page .et-board-toolbar__tools {
        width: 100%;
    }
}


/* Tesis onboarding — iki seçim kartı */
.et-onboard-choice {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    padding: 1.35rem 1.4rem;
    border-radius: 1rem;
    border: 1px solid rgba(24, 28, 50, 0.08);
    background: #fff;
    box-shadow: 0 8px 24px rgba(24, 28, 50, 0.05);
    transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
    cursor: pointer;
}

.et-onboard-choice:hover {
    transform: translateY(-3px);
    box-shadow: 0 14px 32px rgba(24, 28, 50, 0.1);
    border-color: rgba(0, 158, 247, 0.35);
}

.et-onboard-choice__icon {
    width: 48px;
    height: 48px;
    border-radius: 0.85rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 158, 247, 0.1);
    color: var(--bs-primary);
}

.et-onboard-choice--module .et-onboard-choice__icon {
    background: rgba(80, 205, 137, 0.14);
    color: #0f8a4b;
}

.et-onboard-choice__title {
    font-size: 1.05rem;
    font-weight: 700;
    color: #181c32;
}

.et-onboard-choice__desc {
    font-size: 0.84rem;
    color: #7e8299;
    line-height: 1.45;
}

/* ---- Tesis listesi: derinlikli kart ızgarası (legacy / hub kartları) ---- */
.tum-tesisler-page .et-facility-board {
    perspective: 1400px;
}

.tum-tesisler-page .et-facility-card {
    --et-card-accent: var(--bs-primary);
    display: block;
    text-decoration: none;
    color: inherit;
    border: 0;
    border-radius: 1.15rem;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, #f7f9fc 100%);
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.95) inset,
        0 14px 34px rgba(24, 28, 50, 0.09),
        0 3px 8px rgba(24, 28, 50, 0.04);
    transform: translate3d(0, 0, 0);
    transition: transform 0.24s ease, box-shadow 0.24s ease;
    height: 100%;
    position: relative;
    overflow: hidden;
    isolation: isolate;
}

.tum-tesisler-page .et-facility-card::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 5px;
    background: var(--et-card-accent);
    border-radius: 1.15rem 0 0 1.15rem;
}

.tum-tesisler-page .et-facility-card--ok { --et-card-accent: #50cd89; }
.tum-tesisler-page .et-facility-card--warn { --et-card-accent: #ffc700; }
.tum-tesisler-page .et-facility-card--danger { --et-card-accent: #f1416c; }
.tum-tesisler-page .et-facility-card--offline { --et-card-accent: #a1a5b7; }

.tum-tesisler-page .et-facility-card__shine {
    position: absolute;
    inset: -40% -30% auto auto;
    width: 180px;
    height: 180px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(var(--bs-primary-rgb), 0.12) 0%, transparent 70%);
    pointer-events: none;
    z-index: 0;
}

.tum-tesisler-page .et-facility-card:hover {
    transform: translate3d(0, -8px, 0) rotateX(2.5deg);
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 1) inset,
        0 22px 48px rgba(24, 28, 50, 0.16),
        0 6px 14px rgba(24, 28, 50, 0.07);
    color: inherit;
}

.tum-tesisler-page .et-facility-card:hover .et-facility-card__cta {
    gap: 0.45rem;
}

.tum-tesisler-page .et-facility-card__body {
    position: relative;
    z-index: 1;
    padding: 1.35rem 1.25rem 1.15rem 1.45rem;
    display: flex;
    flex-direction: column;
    min-height: 100%;
}

.tum-tesisler-page .et-facility-card__top {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
}

.tum-tesisler-page .et-facility-card__icon {
    width: 48px;
    height: 48px;
    border-radius: 0.9rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    background: #fff;
    box-shadow:
        0 8px 18px rgba(24, 28, 50, 0.08),
        0 0 0 1px rgba(24, 28, 50, 0.04);
}

.tum-tesisler-page .et-facility-card__name {
    font-size: 1.05rem;
    font-weight: 800;
    letter-spacing: 0.01em;
    color: var(--bs-gray-900);
    line-height: 1.25;
}

.tum-tesisler-page .et-facility-card__badges {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-top: 0.45rem;
}

.tum-tesisler-page .et-facility-card__modules {
    margin-top: 1.05rem;
}

.tum-tesisler-page .et-facility-card__modules-label {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--bs-gray-500);
    margin-bottom: 0.45rem;
}

.tum-tesisler-page .et-facility-card__modules-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.tum-tesisler-page .et-mod-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    min-height: 1.85rem;
    padding: 0.25rem 0.65rem;
    border-radius: 0.55rem;
    font-size: 0.74rem;
    font-weight: 600;
    border: 1px solid transparent;
    background: var(--bs-gray-100);
    color: var(--bs-gray-600);
}

.tum-tesisler-page .et-mod-chip__dot {
    width: 0.45rem;
    height: 0.45rem;
    border-radius: 50%;
    background: currentColor;
    opacity: 0.55;
    flex-shrink: 0;
}

.tum-tesisler-page .et-mod-chip--on {
    background: rgba(80, 205, 137, 0.12);
    border-color: rgba(80, 205, 137, 0.28);
    color: #0d8a4f;
}

.tum-tesisler-page .et-mod-chip--on .et-mod-chip__dot {
    opacity: 1;
    background: #50cd89;
    box-shadow: 0 0 0 3px rgba(80, 205, 137, 0.18);
}

.tum-tesisler-page .et-facility-card__summary {
    margin-top: 1rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    min-height: 2.6rem;
    align-content: flex-start;
}

.tum-tesisler-page .et-facility-card__chip {
    display: inline-flex;
    align-items: center;
    padding: 0.3rem 0.55rem;
    border-radius: 0.5rem;
    background: #fff;
    border: 1px solid var(--bs-gray-200);
    color: var(--bs-gray-800);
    font-size: 0.74rem;
    font-weight: 600;
    box-shadow: 0 4px 10px rgba(24, 28, 50, 0.04);
}

.tum-tesisler-page .et-facility-card__summary-empty {
    color: var(--bs-gray-500);
    font-size: 0.78rem;
}

.tum-tesisler-page .et-facility-card__foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-top: auto;
    padding-top: 1rem;
    border-top: 1px solid rgba(24, 28, 50, 0.06);
}

.tum-tesisler-page .et-facility-card__foot-label {
    font-size: 0.75rem;
    color: var(--bs-gray-500);
    font-weight: 600;
}

.tum-tesisler-page .et-facility-card__cta {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.8rem;
    font-weight: 800;
    color: var(--bs-primary);
    letter-spacing: 0.02em;
    transition: gap 0.2s ease;
}

/* ---- Tesis hub: modül kart ızgarası (viewport-fit) ---- */
.et-facility-hub {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.et-facility-hub--board .et-hub-board {
    border: 0;
    border-radius: 1.25rem;
    flex: 1 1 auto;
    min-height: 0;
    max-height: calc(100dvh - 9.25rem);
    background:
        radial-gradient(ellipse 55% 48% at 8% 0%, rgba(0, 158, 247, 0.1) 0%, transparent 62%),
        radial-gradient(ellipse 42% 40% at 92% 8%, rgba(80, 205, 137, 0.08) 0%, transparent 58%),
        linear-gradient(168deg, #f7fafc 0%, #eef3f8 52%, #e8eef5 100%);
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.9) inset,
        0 12px 32px rgba(15, 23, 42, 0.07);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.et-hub-orbit__identity {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.85rem 1.5rem;
    min-height: 5.5rem;
    padding: 1.2rem 1.45rem;
    border-bottom: 1px solid rgba(24, 28, 50, 0.07);
    background:
        linear-gradient(90deg, rgba(0, 158, 247, 0.06) 0%, rgba(255, 255, 255, 0.92) 28%, rgba(255, 255, 255, 0.88) 100%);
    backdrop-filter: blur(10px);
    flex-shrink: 0;
    position: relative;
}

.et-hub-orbit__identity::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.85rem;
    bottom: 0.85rem;
    width: 3px;
    border-radius: 0 4px 4px 0;
    background: linear-gradient(180deg, #009ef7, #50cd89);
}

.et-hub-orbit__identity-main {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    min-width: 0;
    flex: 1 1 200px;
}

.et-hub-orbit__identity-avatar {
    width: 48px;
    height: 48px;
    border-radius: 0.85rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(145deg, #fff 0%, #f0f7ff 100%);
    border: 1px solid rgba(0, 158, 247, 0.12);
    box-shadow: 0 6px 16px rgba(24, 28, 50, 0.08);
    flex-shrink: 0;
}

.et-hub-orbit__identity-title {
    font-size: 1.1875rem;
    font-weight: 700;
    letter-spacing: -0.015em;
    color: #181c32;
    line-height: 1.3;
    max-width: min(420px, 52vw);
}

.et-hub-orbit__identity-licenses {
    flex: 0 1 auto;
    max-width: min(520px, 100%);
    margin-left: auto;
    text-align: right;
}

.et-hub-orbit__licenses {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.2rem;
}

.et-hub-orbit__licenses.license-strip,
.et-hub-orbit__licenses .license-strip {
    margin: 0;
    gap: 0.2rem;
    align-items: flex-end;
}

.et-hub-orbit__licenses .license-strip__facility-row,
.et-hub-orbit__licenses .license-strip__modules-row {
    justify-content: flex-end;
    gap: 0.35rem;
    flex-wrap: wrap;
}

.et-hub-orbit__licenses .license-strip__chip,
.et-hub-orbit__licenses .license-strip__chip--facility {
    padding: 0.15rem 0.4rem;
    gap: 0.3rem;
    background: transparent;
    border: 0;
    box-shadow: none;
    min-height: 0;
}

.et-hub-orbit__licenses .license-strip__label,
.et-hub-orbit__licenses .license-strip__label--lg,
.et-hub-orbit__licenses .license-strip__section-title,
.et-hub-orbit__licenses .license-strip__section-title--inline {
    font-size: 0.72rem !important;
    font-weight: 650;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: #7e8299;
}

.et-hub-orbit__licenses .license-strip__value,
.et-hub-orbit__licenses .license-strip__value--lg,
.et-hub-orbit__licenses .license-strip__module {
    font-size: 0.82rem !important;
    font-weight: 700;
}

.et-hub-orbit__licenses .license-strip__sub,
.et-hub-orbit__licenses .license-strip__sub--lg,
.et-hub-orbit__licenses .license-strip__sub-date,
.et-hub-orbit__licenses .license-strip__days {
    font-size: 0.72rem !important;
}

.et-hub-orbit__licenses .license-strip__dot {
    width: 0.48rem;
    height: 0.48rem;
}

.et-hub-board__body {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: 1rem 1.25rem 1.35rem;
}

.et-hub-board__toolbar {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.75rem 1rem;
    flex-shrink: 0;
    min-height: 2.75rem;
    padding-inline: 0.25rem;
}

.et-hub-board__toolbar-actions {
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0.5rem;
    flex-shrink: 0;
    z-index: 2;
}

.et-hub-board__layout-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.4rem 0.75rem;
    border-radius: 0.7rem;
    border: 1px solid rgba(0, 158, 247, 0.22);
    background: rgba(255, 255, 255, 0.95);
    box-shadow: 0 6px 16px rgba(24, 28, 50, 0.06);
    color: #009ef7;
    font-size: 0.78rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}

.et-hub-board__layout-btn:hover {
    background: rgba(0, 158, 247, 0.08);
    border-color: rgba(0, 158, 247, 0.4);
    box-shadow: 0 8px 18px rgba(0, 158, 247, 0.12);
    color: #0095e8;
}

.et-hub-board__intro {
    min-width: 0;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    box-sizing: border-box;
    pointer-events: none; /* ortadaki metin sağ aksiyonların tıklamasını engellemesin */
}

.et-hub-board__intro > * {
    pointer-events: auto;
}

.et-hub-board__intro-title {
    font-size: 0.95rem;
    font-weight: 500;
    color: #5e6278;
    letter-spacing: -0.01em;
    line-height: 1.35;
    text-align: center;
}

.et-hub-board__intro-title strong {
    color: #181c32;
    font-weight: 600;
}

.et-hub-board__intro-chips {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.45rem;
    margin-top: 0.65rem;
}

@media (max-width: 767.98px) {
    .et-hub-board__toolbar {
        flex-direction: column;
        align-items: stretch;
        min-height: 0;
    }

    .et-hub-board__toolbar-actions {
        position: static;
        transform: none;
        justify-content: center;
        order: 2;
    }

    .et-hub-board__intro {
        order: 1;
        pointer-events: auto;
    }
}

.et-hub-board__intro-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.35rem 0.75rem;
    border-radius: 0.65rem;
    background: rgba(255, 255, 255, 0.95);
    border: 1px solid rgba(24, 28, 50, 0.07);
    box-shadow: 0 4px 14px rgba(24, 28, 50, 0.06);
    font-size: 0.8rem;
    font-weight: 550;
    color: #3f4254;
}

.et-hub-board__intro-chip-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.4rem;
    height: 1.4rem;
    padding: 0 0.35rem;
    border-radius: 0.45rem;
    font-size: 0.74rem;
    font-weight: 600;
    color: #fff;
    background: #7e8299;
}

.et-hub-board__intro-chip--meter .et-hub-board__intro-chip-count { background: var(--bs-primary); }
.et-hub-board__intro-chip--analyzer .et-hub-board__intro-chip-count { background: var(--bs-info); }
.et-hub-board__intro-chip--scada .et-hub-board__intro-chip-count { background: #009ef7; }
.et-hub-board__intro-chip--inverter .et-hub-board__intro-chip-count { background: #50cd89; }

.et-hub-orbit__alarms {
    position: relative;
    z-index: 8;
    outline: none;
    flex-shrink: 0;
}

.et-hub-orbit__alarms-trigger {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.4rem 0.7rem;
    border-radius: 0.7rem;
    background: rgba(255, 255, 255, 0.92);
    border: 1px solid rgba(24, 28, 50, 0.08);
    box-shadow: 0 6px 16px rgba(24, 28, 50, 0.08);
    cursor: default;
    color: #3f4254;
    font-size: 0.78rem;
    font-weight: 700;
    transition: box-shadow 0.18s ease, border-color 0.18s ease;
}

.et-hub-orbit__alarms--active .et-hub-orbit__alarms-trigger {
    border-color: rgba(241, 65, 108, 0.28);
    box-shadow: 0 6px 18px rgba(241, 65, 108, 0.12);
}

.et-hub-orbit__alarms:hover .et-hub-orbit__alarms-trigger,
.et-hub-orbit__alarms:focus-within .et-hub-orbit__alarms-trigger {
    border-color: rgba(0, 158, 247, 0.35);
    box-shadow: 0 8px 20px rgba(24, 28, 50, 0.12);
}

.et-hub-orbit__alarms-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.2rem;
    height: 1.2rem;
    padding: 0 0.28rem;
    border-radius: 999px;
    background: #f1416c;
    color: #fff;
    font-size: 0.68rem;
    font-weight: 800;
}

.et-hub-orbit__alarms-ok-dot {
    width: 0.55rem;
    height: 0.55rem;
    border-radius: 50%;
    background: #50cd89;
    box-shadow: 0 0 8px rgba(80, 205, 137, 0.7);
}

.et-hub-orbit__alarms-panel {
    position: absolute;
    top: calc(100% + 0.4rem);
    right: 0;
    width: min(280px, 72vw);
    padding: 0.7rem 0.75rem;
    border-radius: 0.85rem;
    background: rgba(255, 255, 255, 0.97);
    border: 1px solid rgba(24, 28, 50, 0.08);
    box-shadow: 0 14px 32px rgba(24, 28, 50, 0.14);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-4px);
    transition: opacity 0.16s ease, transform 0.16s ease, visibility 0.16s;
    pointer-events: none;
}

.et-hub-orbit__alarms:hover .et-hub-orbit__alarms-panel,
.et-hub-orbit__alarms:focus-within .et-hub-orbit__alarms-panel {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    pointer-events: auto;
}

.et-hub-orbit__alarms-panel-head {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    margin-bottom: 0.55rem;
    font-size: 0.8rem;
    font-weight: 750;
    color: #181c32;
}

.et-hub-orbit__alarms-panel-hint {
    font-size: 0.65rem;
    font-weight: 500;
    color: #a1a5b7;
}

.et-hub-orbit__alarms-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.et-hub-orbit__alarms-item {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    padding: 0.45rem 0.55rem;
    border-radius: 0.55rem;
    background: #f5f8fa;
    border-left: 3px solid #a1a5b7;
}

.et-hub-orbit__alarms-item--ok { border-left-color: #50cd89; background: rgba(80, 205, 137, 0.08); }
.et-hub-orbit__alarms-item--info { border-left-color: #009ef7; background: rgba(0, 158, 247, 0.08); }
.et-hub-orbit__alarms-item--warn { border-left-color: #ffc700; background: rgba(255, 199, 0, 0.12); }
.et-hub-orbit__alarms-item--critical { border-left-color: #f1416c; background: rgba(241, 65, 108, 0.1); }

.et-hub-orbit__alarms-item-mod {
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #7e8299;
}

.et-hub-orbit__alarms-item-msg {
    font-size: 0.8rem;
    font-weight: 650;
    color: #181c32;
}

.et-hub-orbit__alarms-empty {
    font-size: 0.78rem;
    color: #a1a5b7;
}

.et-hub-board__setup {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    flex-shrink: 0;
}

.et-hub-board__setup-item {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.4rem 0.75rem;
    border-radius: 0.65rem;
    background: rgba(255, 255, 255, 0.9);
    border: 1px dashed rgba(24, 28, 50, 0.14);
    text-decoration: none;
    color: inherit;
    font-size: 0.78rem;
    transition: border-color 0.15s ease, background 0.15s ease;
}

.et-hub-board__setup-item:hover {
    border-color: rgba(0, 158, 247, 0.35);
    background: #fff;
    color: inherit;
}

.et-hub-board__setup-label {
    font-weight: 750;
    color: #3f4254;
}

.et-hub-board__setup-action {
    font-weight: 650;
    color: #009ef7;
}

.et-hub-board__setup-item--meter .et-hub-board__setup-action { color: var(--bs-primary); }
.et-hub-board__setup-item--analyzer .et-hub-board__setup-action { color: var(--bs-info); }
.et-hub-board__setup-item--scada .et-hub-board__setup-action { color: #009ef7; }
.et-hub-board__setup-item--inverter .et-hub-board__setup-action { color: #0f8a4b; }

.et-hub-board__empty {
    color: #a1a5b7;
    font-size: 0.85rem;
    padding: 1.5rem 0.25rem;
}

.et-hub-board__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 1rem;
    align-content: start;
    width: 100%;
}

/* Az kartta boş alan kalmasın — geniş kartlar */
.et-hub-board__body[data-cards="1"] .et-hub-board__grid {
    grid-template-columns: minmax(280px, 28rem);
}

.et-hub-board__body[data-cards="2"] .et-hub-board__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.et-hub-board__body[data-cards="3"] .et-hub-board__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

@media (max-width: 991.98px) {
    .et-hub-board__body[data-cards="2"] .et-hub-board__grid,
    .et-hub-board__body[data-cards="3"] .et-hub-board__grid {
        grid-template-columns: 1fr;
    }
}

.et-hub-board-card {
    min-width: 0;
}

.et-hub-board-card__link {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
    min-height: 260px;
    height: 100%;
    border-radius: 1.05rem;
    padding: 0;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, #ffffff 40%, #fbfcfe 100%);
    border: 1px solid rgba(15, 23, 42, 0.07);
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.9) inset,
        0 10px 28px rgba(15, 23, 42, 0.07);
    text-decoration: none;
    color: inherit;
    overflow: hidden;
    transition: box-shadow 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.et-hub-board-card__link:hover {
    color: inherit;
    border-color: rgba(0, 158, 247, 0.28);
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.95) inset,
        0 16px 36px rgba(15, 23, 42, 0.12);
    transform: translateY(-3px);
}

.et-hub-board-card__link::before {
    content: "";
    display: block;
    height: 4px;
    border-radius: 0;
    margin: 0;
}

.et-hub-board-card--meter .et-hub-board-card__link::before {
    background: linear-gradient(90deg, var(--bs-primary), #5bb8ff);
}
.et-hub-board-card--analyzer .et-hub-board-card__link::before {
    background: linear-gradient(90deg, var(--bs-info), #7dd3fc);
}
.et-hub-board-card--scada .et-hub-board-card__link::before {
    background: linear-gradient(90deg, #009ef7, #50cd89);
}
.et-hub-board-card--inverter .et-hub-board-card__link::before {
    background: linear-gradient(90deg, var(--bs-success), #86efac);
}

.et-hub-node__head {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    padding: 1rem 1.1rem 0.85rem;
    border-bottom: 1px solid rgba(15, 23, 42, 0.06);
    background: linear-gradient(180deg, rgba(248, 250, 252, 0.9) 0%, transparent 100%);
}

.et-hub-node__heading {
    flex: 1 1 auto;
}

.et-hub-node__state {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    height: 1.7rem;
    padding: 0 0.55rem 0 0.4rem;
    border-radius: 999px;
    background: #f5f6fa;
}

.et-hub-node__state-label {
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    color: #5e6278;
    text-transform: uppercase;
}

.et-hub-node__state--online { background: rgba(80, 205, 137, 0.14); }
.et-hub-node__state--online .et-hub-node__state-label { color: #1f8a53; }
.et-hub-node__state--offline { background: rgba(241, 65, 108, 0.12); }
.et-hub-node__state--offline .et-hub-node__state-label { color: #c9244d; }
.et-hub-node__state--partial { background: rgba(255, 199, 0, 0.16); }
.et-hub-node__state--partial .et-hub-node__state-label { color: #b45309; }

.et-hub-node__icon {
    width: 44px;
    height: 44px;
    border-radius: 0.75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #f1f3f8;
    flex-shrink: 0;
    box-shadow: 0 4px 10px rgba(15, 23, 42, 0.06);
}

.et-hub-node--meter .et-hub-node__icon { background: rgba(var(--bs-primary-rgb), 0.14); color: var(--bs-primary); }
.et-hub-node--analyzer .et-hub-node__icon { background: rgba(var(--bs-info-rgb), 0.14); color: var(--bs-info); }
.et-hub-node--scada .et-hub-node__icon { background: rgba(0, 158, 247, 0.14); color: #009ef7; }
.et-hub-node--inverter .et-hub-node__icon { background: rgba(var(--bs-success-rgb), 0.14); color: var(--bs-success); }

.et-hub-node__title {
    font-weight: 600;
    font-size: 1.02rem;
    color: #181c32;
    line-height: 1.2;
    letter-spacing: -0.015em;
}

.et-hub-node__subtitle {
    font-size: 0.76rem;
    font-weight: 500;
    color: #7e8299;
    line-height: 1.25;
    margin-top: 0.1rem;
}

.et-hub-node__metrics {
    font-size: 0.88rem;
    font-weight: 550;
    color: #3f4254;
    line-height: 1.4;
}

.et-hub-node__body {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    gap: 0.7rem;
    padding: 0 1.1rem;
}

.et-hub-node__primary-block {
    padding: 0.7rem 0.8rem;
    border-radius: 0.75rem;
    background: linear-gradient(135deg, rgba(15, 23, 42, 0.03) 0%, rgba(0, 158, 247, 0.05) 100%);
    border: 1px solid rgba(15, 23, 42, 0.05);
}

.et-hub-node--meter .et-hub-node__primary-block {
    background: linear-gradient(135deg, rgba(var(--bs-primary-rgb), 0.05) 0%, rgba(var(--bs-primary-rgb), 0.1) 100%);
}
.et-hub-node--scada .et-hub-node__primary-block {
    background: linear-gradient(135deg, rgba(0, 158, 247, 0.05) 0%, rgba(80, 205, 137, 0.08) 100%);
}
.et-hub-node--analyzer .et-hub-node__primary-block {
    background: linear-gradient(135deg, rgba(var(--bs-info-rgb), 0.05) 0%, rgba(var(--bs-info-rgb), 0.1) 100%);
}
.et-hub-node--inverter .et-hub-node__primary-block {
    background: linear-gradient(135deg, rgba(var(--bs-success-rgb), 0.05) 0%, rgba(var(--bs-success-rgb), 0.1) 100%);
}

.et-hub-node__primary-label {
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #7e8299;
    margin-bottom: 0.2rem;
}

.et-hub-node__primary {
    font-size: 1.12rem;
    font-weight: 600;
    color: #181c32;
    line-height: 1.25;
    letter-spacing: -0.015em;
}

.et-hub-node__metrics-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.5rem;
}

@media (max-width: 420px) {
    .et-hub-node__metrics-grid {
        grid-template-columns: 1fr;
    }
}

.et-hub-node__metric {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    min-width: 0;
    padding: 0.65rem 0.7rem;
    border-radius: 0.7rem;
    border: 1px solid rgba(15, 23, 42, 0.06);
    background: #f7f8fb;
}

.et-hub-node__metric--value {
    background: linear-gradient(160deg, rgba(0, 158, 247, 0.07) 0%, rgba(255, 255, 255, 0.95) 70%);
    border-color: rgba(0, 158, 247, 0.14);
}

.et-hub-node__metric--status {
    background: linear-gradient(160deg, rgba(80, 205, 137, 0.1) 0%, rgba(255, 255, 255, 0.95) 70%);
    border-color: rgba(80, 205, 137, 0.18);
}

.et-hub-node__metric-label {
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: #7e8299;
    line-height: 1.2;
}

.et-hub-node__metric-value {
    font-size: 0.95rem;
    font-weight: 600;
    color: #181c32;
    letter-spacing: -0.015em;
    line-height: 1.25;
    word-break: break-word;
}

.et-hub-node__metric--status .et-hub-node__metric-value {
    color: #1f8a53;
}

.et-hub-node__metric-value--solo {
    font-size: 0.86rem;
    color: #5e6278;
}

/* Eski satır sınıfları (geriye dönük) */
.et-hub-node__rows {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.et-hub-node__row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.3rem 0.55rem;
    border-radius: 0.45rem;
    background: #f7f8fb;
    font-size: 0.78rem;
    line-height: 1.3;
}

.et-hub-node__row-label {
    color: #7e8299;
    font-weight: 600;
}

.et-hub-node__row-value {
    color: #181c32;
    font-weight: 600;
    white-space: nowrap;
}

.et-hub-node__row--text {
    justify-content: flex-start;
    color: #5e6278;
    font-weight: 600;
}

.et-hub-node__reactive {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.3rem 0.55rem;
    border-radius: 0.45rem;
    background: #f7f8fb;
    font-size: 0.78rem;
}

.et-hub-node__reactive-label {
    color: #7e8299;
    font-weight: 600;
}

.et-hub-node__reactive-value {
    font-weight: 600;
    color: #181c32;
}

.et-hub-node__footer {
    margin-top: auto;
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
    padding: 0.85rem 1.1rem 1rem;
    border-top: 1px solid rgba(15, 23, 42, 0.05);
    background: rgba(248, 250, 252, 0.65);
}

.et-hub-node__live {
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

.et-hub-node__live-led {
    width: 0.55rem;
    height: 0.55rem;
    border-radius: 50%;
    flex-shrink: 0;
    background: #a1a5b7;
    box-shadow: 0 0 0 0 rgba(161, 165, 183, 0.4);
}

.et-hub-node__live-led--online {
    background: #50cd89;
    box-shadow: 0 0 0 0 rgba(80, 205, 137, 0.55);
    animation: et-hub-live-blink-online 1.6s ease-in-out infinite;
}

.et-hub-node__live-led--offline {
    background: #f1416c;
    box-shadow: 0 0 0 0 rgba(241, 65, 108, 0.5);
    animation: et-hub-live-blink-offline 1.1s ease-in-out infinite;
}

.et-hub-node__live-led--partial {
    background: #ffc700;
    box-shadow: 0 0 0 0 rgba(255, 199, 0, 0.55);
    animation: et-hub-live-blink-partial 1.35s ease-in-out infinite;
}

.et-hub-node__live-led--unknown {
    background: #b5b5c3;
    opacity: 0.75;
}

.et-hub-node__muted {
    color: #7e8299;
    font-weight: 500;
    font-size: 0.8rem;
}

.et-hub-node__leds {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.35rem;
}

.et-hub-node__led-item {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    padding: 0.35rem 0.45rem;
    border-radius: 0.5rem;
    border: 1px solid #e4e6ef;
    background: #f9f9fb;
    color: #5e6278;
    font-size: 0.74rem;
    font-weight: 550;
    letter-spacing: 0.02em;
    line-height: 1.2;
}

.et-hub-node__led-item--online {
    border-color: rgba(80, 205, 137, 0.35);
    background: rgba(80, 205, 137, 0.08);
    color: #1f8a53;
}

.et-hub-node__led-item--offline {
    border-color: rgba(241, 65, 108, 0.35);
    background: rgba(241, 65, 108, 0.07);
    color: #c9244d;
}

.et-hub-node__led-item--partial {
    border-color: rgba(255, 199, 0, 0.45);
    background: rgba(255, 199, 0, 0.1);
    color: #a07c00;
}

.et-hub-node__alarm {
    padding: 0.38rem 0.6rem;
    border-radius: 0.5rem;
    font-size: 0.78rem;
    font-weight: 550;
}

.et-hub-node__alarm--ok { background: rgba(80, 205, 137, 0.12); color: #0f8a4b; }
.et-hub-node__alarm--info { background: rgba(0, 158, 247, 0.12); color: #009ef7; }
.et-hub-node__alarm--warn { background: rgba(255, 199, 0, 0.18); color: #b78103; }
.et-hub-node__alarm--critical { background: rgba(241, 65, 108, 0.14); color: #f1416c; }

.et-hub-node__cta-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    width: 100%;
    padding: 0.55rem 0.85rem;
    border-radius: 0.65rem;
    border: 1px solid rgba(0, 158, 247, 0.22);
    background: linear-gradient(180deg, rgba(0, 158, 247, 0.1) 0%, rgba(0, 158, 247, 0.06) 100%);
    color: #009ef7;
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 0.01em;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.et-hub-board-card__link:hover .et-hub-node__cta-btn {
    background: linear-gradient(180deg, rgba(0, 158, 247, 0.16) 0%, rgba(0, 158, 247, 0.1) 100%);
    border-color: rgba(0, 158, 247, 0.4);
    color: #0084d1;
}

.et-hub-board-card--meter .et-hub-node__cta-btn {
    border-color: rgba(var(--bs-primary-rgb), 0.25);
    background: linear-gradient(180deg, rgba(var(--bs-primary-rgb), 0.12) 0%, rgba(var(--bs-primary-rgb), 0.06) 100%);
    color: var(--bs-primary);
}

.et-hub-board-card--analyzer .et-hub-node__cta-btn {
    border-color: rgba(var(--bs-info-rgb), 0.25);
    background: linear-gradient(180deg, rgba(var(--bs-info-rgb), 0.12) 0%, rgba(var(--bs-info-rgb), 0.06) 100%);
    color: var(--bs-info);
}

.et-hub-board-card--inverter .et-hub-node__cta-btn {
    border-color: rgba(var(--bs-success-rgb), 0.28);
    background: linear-gradient(180deg, rgba(var(--bs-success-rgb), 0.12) 0%, rgba(var(--bs-success-rgb), 0.06) 100%);
    color: #0f8a4b;
}

.et-hub-board-card--scada .et-hub-node__cta-btn {
    border-color: rgba(0, 158, 247, 0.25);
    background: linear-gradient(180deg, rgba(0, 158, 247, 0.1) 0%, rgba(80, 205, 137, 0.08) 100%);
    color: #009ef7;
}

@keyframes et-hub-live-blink-online {
    0%, 100% {
        opacity: 0.55;
        box-shadow: 0 0 0 0 rgba(80, 205, 137, 0.15);
    }
    50% {
        opacity: 1;
        box-shadow: 0 0 0 5px rgba(80, 205, 137, 0);
    }
}

@keyframes et-hub-live-blink-offline {
    0%, 100% {
        opacity: 0.4;
        box-shadow: 0 0 0 0 rgba(241, 65, 108, 0.2);
    }
    50% {
        opacity: 1;
        box-shadow: 0 0 0 5px rgba(241, 65, 108, 0);
    }
}

@keyframes et-hub-live-blink-partial {
    0%, 100% {
        opacity: 0.5;
        box-shadow: 0 0 0 0 rgba(255, 199, 0, 0.2);
    }
    50% {
        opacity: 1;
        box-shadow: 0 0 0 5px rgba(255, 199, 0, 0);
    }
}

@media (max-width: 991.98px) {
    .et-facility-hub--board .et-hub-board {
        max-height: none;
    }

    .et-hub-board__grid {
        grid-template-columns: 1fr;
    }
}

.et-facility-hub__hero {
    margin-bottom: 1.5rem;
    border: 0;
    box-shadow: 0 12px 32px rgba(24, 28, 50, 0.08);
}

.et-facility-hub__avatar {
    width: 64px;
    height: 64px;
    border-radius: 1rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    box-shadow: 0 8px 20px rgba(24, 28, 50, 0.1);
}

.et-facility-hub__title {
    font-size: 1.45rem;
    font-weight: 700;
    color: var(--bs-gray-900);
}


/*
 * Enerji özeti (eski üretim/tüketim şablonu):
 * Üst menü ↔ ilk kart = --app-page-gap; tüm dikey kart aralıkları aynı token.
 */
.et-facility-energy-dashboard {
    display: flex;
    flex-direction: column;
    gap: var(--app-page-gap, 20px);
    width: 100%;
    max-width: 100%;
    min-width: 0;
}

/* Bootstrap .row > * margin-top (gutter-y) flex gap ile toplanıp çift aralık üretmesin; dikey aralık yalnız row-gap. */
.et-facility-energy-dashboard > .row,
.et-facility-kpi-stack > .row {
    margin-bottom: 0 !important;
    margin-top: 0 !important;
    --bs-gutter-x: var(--app-page-gap, 20px);
    --bs-gutter-y: 0px;
    row-gap: var(--app-page-gap, 20px);
}

.et-facility-energy-dashboard > .row > *,
.et-facility-kpi-stack > .row > * {
    margin-top: 0 !important;
}

.et-facility-energy-dashboard .card.mb-4,
.et-facility-energy-dashboard .card.mb-5,
.et-facility-energy-dashboard .card.mb-xl-10,
.et-facility-energy-dashboard .card.mb-5.mb-xl-10 {
    margin-bottom: 0 !important;
}

.et-facility-kpi-stack {
    display: flex;
    flex-direction: column;
    gap: var(--app-page-gap, 20px);
}

@media (min-width: 1400px) {
    .et-facility-kpi-stack > .row {
        flex: 1 1 0;
    }
}

/* KPI kartları: başlık + ikon üstte, değer + tutar altta; üretim satırı yeşil, tüketim satırı turuncu vurgu. */
.et-facility-energy-dashboard .ut-box {
    --kpi-accent: #17c653;
    --kpi-accent-soft: #eafff1;
    --kpi-accent-text: #0e8a3e;
    margin-bottom: 0 !important;
    height: 100%;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    grid-template-rows: auto auto 1fr auto;
    grid-template-areas:
        "icon badge"
        "title title"
        "value value"
        "price price";
    padding: 18px 20px;
    border: 1px solid #eef0f6;
    border-top: 3px solid var(--kpi-accent);
    border-radius: 14px;
    background: linear-gradient(180deg, var(--kpi-accent-soft) 0%, #ffffff 58%);
    box-shadow: 0 6px 18px rgba(24, 28, 50, 0.05);
    transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.et-facility-energy-dashboard .ut-box--production::after,
.et-facility-energy-dashboard .ut-box--consumption::after {
    grid-area: badge;
    justify-self: end;
    align-self: center;
    padding: 4px 10px;
    border-radius: 999px;
    background: #ffffff;
    border: 1px solid var(--kpi-accent);
    color: var(--kpi-accent-text);
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    line-height: 1.2;
    white-space: nowrap;
}

.et-facility-energy-dashboard .ut-box--production::after { content: "\2191  \00DC RET\0130 M"; }
.et-facility-energy-dashboard .ut-box--consumption::after { content: "\2193  T\00DC KET\0130 M"; }

.et-facility-energy-dashboard .ut-box:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 26px rgba(24, 28, 50, 0.09);
}

.et-facility-energy-dashboard .ut-box--consumption {
    --kpi-accent: #f6a53b;
    --kpi-accent-soft: #fff4e3;
    --kpi-accent-text: #b86a00;
}

.et-facility-energy-dashboard .ut-box .blueticket {
    grid-area: title;
    min-width: 0;
    margin-top: 14px;
}

.et-facility-energy-dashboard .ut-box .blueticket p {
    font-size: 0.95rem;
    font-weight: 700;
    color: #252f4a;
    margin-bottom: 0;
    line-height: 1.3;
}

.et-facility-energy-dashboard .ut-box svg,
.et-facility-energy-dashboard .ut-box__icon {
    grid-area: icon;
    justify-self: start;
    width: 24px;
    height: 24px;
    padding: 9px;
    box-sizing: content-box;
    border-radius: 12px;
    background: #ffffff;
    box-shadow: 0 2px 8px rgba(24, 28, 50, 0.08);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--kpi-accent-text);
}

.et-facility-energy-dashboard .ut-box__icon i {
    font-size: 1.15rem !important;
    line-height: 1;
}

.et-facility-energy-dashboard .ut-box h2 {
    grid-area: value;
    align-self: end;
    font-size: 1.4rem;
    font-weight: 700;
    color: #181c32;
    margin: 18px 0 4px;
    white-space: nowrap;
}

.et-facility-energy-dashboard .ut-box h4 {
    grid-area: price;
    justify-self: start;
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--kpi-accent-text);
    background: var(--kpi-accent-soft);
    border-radius: 6px;
    padding: 3px 9px;
    margin-bottom: 0;
}

.et-facility-energy-dashboard .et-facility-hero {
    background: transparent;
}

.et-facility-energy-dashboard .et-facility-hero > img {
    display: block;
    height: 100%;
    object-fit: cover;
    border-radius: 0.75rem;
    background: #fff;
}

.et-facility-energy-dashboard .mtr-data-box h1 {
    font-size: 1.85rem;
}

.et-facility-energy-dashboard .mtr-data-box h3 {
    font-size: 1.25rem;
    margin-bottom: 1.25rem !important;
}

.et-facility-energy-dashboard .mtr-data-box h4 {
    font-size: 1.55rem;
    margin-top: 1rem;
}

.et-facility-energy-dashboard .mtr-data-box p {
    font-size: 1rem;
    margin-bottom: 0.3rem;
}

.et-facility-energy-dashboard .mtr-data-box br {
    display: none;
}

.et-facility-energy-dashboard .wrap {
    width: 42px;
    height: 64px;
    perspective: 120px;
}

.et-facility-energy-dashboard .wrap .wrap-num {
    width: 42px;
    height: 32px;
    border: 0 !important;
    box-shadow: none !important;
}

.et-facility-energy-dashboard .wrap .wrap-num::before,
.et-facility-energy-dashboard .wrap .wrap-num::after {
    display: none !important;
}

.et-facility-energy-dashboard .wrap:not(.wrap2) {
    border-radius: 8px;
    box-shadow: 0 6px 14px rgba(23, 198, 83, 0.22);
}

.et-facility-energy-dashboard .wrap .wrap-num.top,
.et-facility-energy-dashboard .wrap .wrap-num.flip {
    background: linear-gradient(180deg, #3ccf7a 0%, #25b865 100%);
    border-radius: 8px 8px 0 0;
}

.et-facility-energy-dashboard .wrap .wrap-num.bottom {
    top: 32px;
    background: linear-gradient(180deg, #25b865 0%, #1ea85a 100%);
    border-radius: 0 0 8px 8px;
}

.et-facility-energy-dashboard .kirmiziyaBoya {
    color: #e2525f !important;
}

.et-facility-energy-dashboard .kirmiziyaBoya .wrap:not(.wrap2) {
    box-shadow: 0 6px 14px rgba(226, 82, 95, 0.25);
}

.et-facility-energy-dashboard .kirmiziyaBoya .wrap .wrap-num.top,
.et-facility-energy-dashboard .kirmiziyaBoya .wrap .wrap-num.flip {
    background: linear-gradient(180deg, #f27c86 0%, #e8606c 100%) !important;
}

.et-facility-energy-dashboard .kirmiziyaBoya .wrap .wrap-num.bottom {
    background: linear-gradient(180deg, #e8606c 0%, #dc5462 100%) !important;
}

.et-facility-energy-dashboard .wrap .wrap-num .number {
    font-size: 46px;
}

.et-facility-energy-dashboard .wrap2 {
    width: 22px;
    font-size: 34px;
}

.et-facility-energy-dashboard .wrap2s {
    margin-right: 22px !important;
}

.et-facility-energy-dashboard .wrap2-sep {
    width: 14px;
}

.wrap-counter-et {
    position: relative;
    display: inline-block;
    white-space: nowrap;
}

.wrap-counter-et .et-flip-changed .wrap-num.flip {
    animation: et-flip-digit 0.5s ease-out;
}

@keyframes et-flip-digit {
    0% { transform: rotateX(90deg); }
    100% { transform: rotateX(0deg); }
}

.et-facility-energy-dashboard .et-hero-balance {
    --balance-accent: #e2525f;
    --balance-soft: #fff1f3;
    --balance-border: #ffd9de;
    display: inline-flex;
    align-items: center;
    gap: 12px;
    margin-top: 18px;
    padding: 8px 10px 8px 8px;
    border: 1px solid var(--balance-border);
    border-radius: 14px;
    background: linear-gradient(135deg, #fff 0%, var(--balance-soft) 100%);
    box-shadow: 0 6px 16px rgba(24, 28, 50, 0.06);
}

.et-facility-energy-dashboard .et-hero-balance--surplus {
    --balance-accent: #17c653;
    --balance-soft: #eafff1;
    --balance-border: #c9f3d8;
}

.et-facility-energy-dashboard .et-hero-balance__icon {
    width: 40px;
    height: 40px;
    border-radius: 11px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--balance-soft);
    flex-shrink: 0;
}

.et-facility-energy-dashboard .et-hero-balance__icon i {
    color: var(--balance-accent);
}

.et-facility-energy-dashboard .et-hero-balance__body {
    display: flex;
    flex-direction: column;
    line-height: 1.15;
}

.et-facility-energy-dashboard .et-hero-balance__caption {
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #a1a5b7;
}

.et-facility-energy-dashboard .et-hero-balance__value {
    font-size: 1.35rem;
    font-weight: 700;
    color: #181c32;
    white-space: nowrap;
}

.et-facility-energy-dashboard .et-hero-balance__label {
    align-self: center;
    margin-left: 4px;
    padding: 5px 10px;
    border-radius: 8px;
    background: var(--balance-accent);
    color: #fff;
    font-size: 0.8rem;
    font-weight: 700;
    white-space: nowrap;
}

.et-facility-energy-dashboard .et-hero-stats {
    display: flex;
    flex-direction: column;
    gap: 8px;
    width: max-content;
    max-width: 100%;
    margin-top: 14px;
}

.et-facility-energy-dashboard .et-hero-stat {
    --stat-accent: #17c653;
    --stat-soft: #eafff1;
    display: grid;
    grid-template-columns: auto minmax(110px, 1fr) auto auto;
    align-items: center;
    gap: 10px;
    padding: 7px 12px 7px 8px;
    border: 1px solid #eef0f6;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.9);
    box-shadow: 0 2px 8px rgba(24, 28, 50, 0.05);
}

.et-facility-energy-dashboard .et-hero-stat--consumption {
    --stat-accent: #f6a53b;
    --stat-soft: #fff6e8;
}

.et-facility-energy-dashboard .et-hero-stat__icon {
    width: 26px;
    height: 26px;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--stat-soft);
}

.et-facility-energy-dashboard .et-hero-stat__icon i {
    color: var(--stat-accent);
}

.et-facility-energy-dashboard .et-hero-stat__label {
    font-size: 0.85rem;
    font-weight: 600;
    color: #5e6278;
}

.et-facility-energy-dashboard .et-hero-stat__value {
    font-size: 0.95rem;
    font-weight: 700;
    color: #181c32;
    white-space: nowrap;
}

.et-facility-energy-dashboard .et-hero-stat__price {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--stat-accent);
    background: var(--stat-soft);
    border-radius: 6px;
    padding: 2px 8px;
    white-space: nowrap;
}

.et-facility-energy-dashboard .et-hero-note {
    font-size: 0.8rem;
    color: #a1a5b7;
    margin-top: 10px;
}

.et-facility-energy-dashboard .et-dashboard-card-header img {
    width: 20px !important;
    height: auto;
}

.et-facility-energy-dashboard .et-dashboard-card-header {
    min-height: 0 !important;
    padding-top: 0.9rem !important;
    padding-bottom: 0.4rem !important;
}

.et-facility-energy-dashboard .et-dashboard-card-header + .card-body .table-responsive,
.et-facility-energy-dashboard .et-dashboard-card-header + .card-body .dt-container {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

.et-facility-energy-dashboard .et-dashboard-card-header + .card-body .table thead td,
.et-facility-energy-dashboard .et-dashboard-card-header + .card-body .table thead th {
    padding-top: 0.35rem;
    padding-bottom: 0.6rem;
}

.et-facility-energy-dashboard .card-title h3 {
    font-size: 1.05rem;
}

.et-facility-energy-dashboard .table thead tr,
.et-facility-energy-dashboard .table thead td {
    font-size: 0.72rem !important;
}

.et-facility-energy-dashboard .table tbody .fs-5 {
    font-size: 0.85rem !important;
}

.et-facility-energy-dashboard .table tbody .fs-7 {
    font-size: 0.75rem !important;
}

.et-facility-energy-dashboard .table tbody td {
    font-size: 0.85rem;
}

.et-facility-energy-dashboard .table thead td,
.et-facility-energy-dashboard .table thead th,
.et-facility-energy-dashboard .table tbody td {
    vertical-align: middle !important;
    text-align: center !important;
}

.et-facility-energy-dashboard .table thead td:first-child,
.et-facility-energy-dashboard .table thead th:first-child,
.et-facility-energy-dashboard .table tbody td:first-child:not([colspan]) {
    text-align: left !important;
}

.et-facility-energy-dashboard .table tbody td:not(:first-child) .d-flex {
    align-items: center;
    justify-content: center;
}

.et-facility-identity-card .license-strip {
    margin-top: 0.25rem;
}

/* Hub ↔ Enerji Özeti toggle: tesis adı kartı aynı yükseklik */
.et-facility-identity-card > .card-body {
    padding: 1.85rem 1.9rem 1.75rem;
    min-height: 10.75rem;
    box-sizing: border-box;
}

.et-facility-identity-card__license-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem 1rem;
    margin-top: 0.9rem;
    min-height: 2.35rem;
}

.et-facility-identity-card .scada-toolbar-bar {
    justify-content: flex-end;
}

.et-facility-hub__grid {
    transform-style: preserve-3d;
}

.et-module-tile {
    display: block;
    text-decoration: none;
    color: inherit;
    height: 100%;
    border-radius: 1.1rem;
    position: relative;
    transform-style: preserve-3d;
    transition: transform 0.22s ease;
}

.et-module-tile:hover {
    transform: translateY(-8px) rotateX(3deg) rotateY(-2deg);
    color: inherit;
}

.et-module-tile__face {
    height: 100%;
    min-height: 220px;
    border-radius: 1.1rem;
    padding: 1.35rem;
    background: #fff;
    border: 1px solid rgba(24, 28, 50, 0.06);
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.85) inset,
        0 14px 34px rgba(24, 28, 50, 0.1);
    position: relative;
    overflow: hidden;
}

.et-module-tile__face::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
}

.et-module-tile--meter .et-module-tile__face::before { background: var(--bs-primary); }
.et-module-tile--analyzer .et-module-tile__face::before { background: var(--bs-info); }
.et-module-tile--scada .et-module-tile__face::before { background: #009ef7; }
.et-module-tile--inverter .et-module-tile__face::before { background: var(--bs-success); }

.et-module-tile--off {
    pointer-events: none;
    opacity: 0.62;
}

.et-module-tile--off .et-module-tile__face {
    background: var(--bs-gray-100);
    box-shadow: none;
}

.et-facility-hub--3d .et-module-tile--3d .et-module-tile__face {
    min-height: 260px;
    transform: translateZ(0);
    background:
        linear-gradient(165deg, rgba(255, 255, 255, 0.98) 0%, #f4f7fb 55%, #eef3f9 100%);
    box-shadow:
        0 1px 0 rgba(255, 255, 255, 0.9) inset,
        0 18px 40px rgba(24, 28, 50, 0.12),
        0 4px 12px rgba(24, 28, 50, 0.06);
}

.et-module-tile__depth {
    position: absolute;
    inset: auto 12px 10px 12px;
    height: 10px;
    border-radius: 999px;
    background: rgba(24, 28, 50, 0.08);
    filter: blur(6px);
    z-index: 0;
}

.et-module-tile__alarm {
    margin-top: 0.85rem;
    padding: 0.45rem 0.7rem;
    border-radius: 0.65rem;
    font-size: 0.78rem;
    font-weight: 600;
    position: relative;
    z-index: 1;
}

.et-module-tile__alarm--ok {
    background: rgba(80, 205, 137, 0.12);
    color: #0f8a4b;
}

.et-module-tile__alarm--info {
    background: rgba(0, 158, 247, 0.12);
    color: #009ef7;
}

.et-module-tile__alarm--warn {
    background: rgba(255, 199, 0, 0.18);
    color: #b78103;
}

.et-module-tile__alarm--critical {
    background: rgba(241, 65, 108, 0.14);
    color: #f1416c;
}

.et-module-tile__head {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
}

.et-module-tile__icon {
    width: 52px;
    height: 52px;
    border-radius: 0.85rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--bs-gray-100);
    flex-shrink: 0;
}

.et-module-tile--meter .et-module-tile__icon { background: rgba(var(--bs-primary-rgb), 0.12); color: var(--bs-primary); }
.et-module-tile--analyzer .et-module-tile__icon { background: rgba(var(--bs-info-rgb), 0.12); color: var(--bs-info); }
.et-module-tile--scada .et-module-tile__icon { background: rgba(0, 158, 247, 0.12); color: #009ef7; }
.et-module-tile--inverter .et-module-tile__icon { background: rgba(var(--bs-success-rgb), 0.12); color: var(--bs-success); }

.et-module-tile__title {
    font-weight: 700;
    font-size: 1.05rem;
}

.et-module-tile__subtitle {
    font-size: 0.78rem;
    color: var(--bs-gray-600);
}

.et-module-tile__arrow {
    margin-left: auto;
    color: var(--bs-gray-400);
}

.et-module-tile__metrics {
    margin-top: 1.15rem;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.et-module-tile__metric {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--bs-gray-800);
}

.et-module-tile__metric--muted {
    font-weight: 500;
    font-size: 0.8rem;
    color: var(--bs-gray-600);
}

.et-module-tile__cta {
    margin-top: 1.25rem;
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--bs-primary);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

@media (prefers-reduced-motion: reduce) {
    .tum-tesisler-page .et-facility-card,
    .et-module-tile {
        transition: none;
    }

    .tum-tesisler-page .et-facility-card:hover,
    .et-module-tile:hover {
        transform: none;
    }
}

/* ------------------------------------------------------------------ */
/* Sol sidebar — Active Navigation (hover ≠ active)                   */
/* ------------------------------------------------------------------ */
#kt_app_sidebar_menu {
    font-family: var(--app-font-family) !important;
    -webkit-font-smoothing: auto;
    -moz-osx-font-smoothing: auto;
    font-synthesis: none;
    text-rendering: auto;
}

#kt_app_sidebar_menu .menu-link {
    transition: color 0.15s ease, background-color 0.15s ease;
    border-radius: 0.475rem;
}

#kt_app_sidebar_menu .menu-title {
    font-size: 0.95rem;
    font-weight: 500 !important;
    letter-spacing: 0.01em;
    line-height: 1.35;
    color: #1e2129;
}

#kt_app_sidebar_menu .menu-icon i,
#kt_app_sidebar_menu .menu-icon .ki-outline,
#kt_app_sidebar_menu .menu-icon .ki-duotone {
    font-size: 1.15rem;
}

/* Hover: yalnızca aktif olmayan öğeler */
#kt_app_sidebar_menu .menu-item:not(.here) > .menu-link:hover:not(.active),
#kt_app_sidebar_menu .menu-item .menu-link:hover:not(.active) {
    background-color: var(--bs-gray-200) !important;
    color: var(--bs-gray-800) !important;
}

#kt_app_sidebar_menu .menu-link:hover:not(.active) .menu-title {
    color: var(--bs-gray-800) !important;
}

#kt_app_sidebar_menu .menu-link:hover:not(.active) .menu-icon i {
    color: var(--bs-gray-700) !important;
}

/* Active leaf */
#kt_app_sidebar_menu .menu-link.active {
    background-color: rgba(var(--bs-primary-rgb), 0.1) !important;
    color: var(--bs-primary) !important;
    box-shadow: inset 3px 0 0 var(--bs-primary);
}

#kt_app_sidebar_menu .menu-link.active .menu-title {
    color: var(--bs-primary) !important;
    font-weight: 600 !important;
}

#kt_app_sidebar_menu .menu-link.active .menu-icon,
#kt_app_sidebar_menu .menu-link.active .menu-icon i {
    color: var(--bs-primary) !important;
}

#kt_app_sidebar_menu .menu-link.active .menu-icon i.ki-outline,
#kt_app_sidebar_menu .menu-item.here > .menu-link .menu-icon i.ki-outline {
    color: var(--bs-primary) !important;
}

/* Duotone: yalnızca renk; path opacity'leri (path2 ~0.3) korunmalı — opacity:1 ikonu düz mavi siluete çevirir */
#kt_app_sidebar_menu .menu-link.active .menu-icon i.ki-duotone [class^="path"]:before,
#kt_app_sidebar_menu .menu-link.active .menu-icon i.ki-duotone [class*=" path"]:before,
#kt_app_sidebar_menu .menu-item.here > .menu-link .menu-icon i.ki-duotone [class^="path"]:before,
#kt_app_sidebar_menu .menu-item.here > .menu-link .menu-icon i.ki-duotone [class*=" path"]:before {
    color: var(--bs-primary) !important;
}

#kt_app_sidebar_menu .menu-link.active .menu-bullet .bullet {
    background-color: var(--bs-primary) !important;
}

/* Parent accordion "here" (child aktif) */
#kt_app_sidebar_menu .menu-item.here > .menu-link {
    background-color: rgba(var(--bs-primary-rgb), 0.08) !important;
    color: var(--bs-primary) !important;
    box-shadow: inset 3px 0 0 rgba(var(--bs-primary-rgb), 0.55);
}

#kt_app_sidebar_menu .menu-item.here > .menu-link .menu-title {
    color: var(--bs-primary) !important;
    font-weight: 600 !important;
}

#kt_app_sidebar_menu .menu-item.here > .menu-link .menu-icon,
#kt_app_sidebar_menu .menu-item.here > .menu-link .menu-icon i {
    color: var(--bs-primary) !important;
}

#kt_app_sidebar_menu .menu-item.here > .menu-link .menu-arrow:after {
    background-color: var(--bs-primary) !important;
}

/* Collapsed (minimize) sidebar: ikon alanı active kalsın */
@media (min-width: 992px) {
    /* Daraltılmış menü: ikonlar arası boşluk */
    [data-kt-app-sidebar-minimize=on] #kt_app_sidebar:not(:hover) #kt_app_sidebar_menu .menu > .menu-item {
        margin-bottom: 1.45rem;
    }

    [data-kt-app-sidebar-minimize=on] #kt_app_sidebar:not(:hover) #kt_app_sidebar_menu .menu > .menu-item > .menu-link {
        padding-top: 1.3rem !important;
        padding-bottom: 1.3rem !important;
        min-height: 3.7rem;
    }

    [data-kt-app-sidebar-minimize=on] #kt_app_sidebar:not(:hover) #kt_app_sidebar_menu .menu-link.active,
    [data-kt-app-sidebar-minimize=on] #kt_app_sidebar:not(:hover) #kt_app_sidebar_menu .menu-item.here > .menu-link {
        background-color: rgba(var(--bs-primary-rgb), 0.14) !important;
        box-shadow: none;
    }

    [data-kt-app-sidebar-minimize=on] #kt_app_sidebar:not(:hover) #kt_app_sidebar_menu .menu-link.active .menu-icon,
    [data-kt-app-sidebar-minimize=on] #kt_app_sidebar:not(:hover) #kt_app_sidebar_menu .menu-item.here > .menu-link .menu-icon,
    [data-kt-app-sidebar-minimize=on] #kt_app_sidebar:not(:hover) #kt_app_sidebar_menu .menu-link.active .menu-icon i,
    [data-kt-app-sidebar-minimize=on] #kt_app_sidebar:not(:hover) #kt_app_sidebar_menu .menu-item.here > .menu-link .menu-icon i {
        color: var(--bs-primary) !important;
    }

    [data-kt-app-sidebar-minimize=on] #kt_app_sidebar:not(:hover) #kt_app_sidebar_menu .menu-link.active .menu-icon i.ki-duotone [class^="path"]:before,
    [data-kt-app-sidebar-minimize=on] #kt_app_sidebar:not(:hover) #kt_app_sidebar_menu .menu-item.here > .menu-link .menu-icon i.ki-duotone [class^="path"]:before {
        color: var(--bs-primary) !important;
    }

    /* Kapalı menü: sayaç varken ikon üzerinde yanıp sönen LED */
    #kt_app_sidebar_menu .menu-icon {
        position: relative;
    }

    #kt_app_sidebar_menu .menu-icon-led {
        display: none;
        position: absolute;
        top: -0.1rem;
        right: -0.15rem;
        width: 0.5rem;
        height: 0.5rem;
        border-radius: 50%;
        border: 1.5px solid var(--bs-app-sidebar-base-bg-color, #fff);
        box-shadow: 0 0 0 0 currentColor;
        pointer-events: none;
        z-index: 2;
    }

    #kt_app_sidebar_menu .menu-icon-led--danger {
        background: #f1416c;
        color: #f1416c;
    }

    #kt_app_sidebar_menu .menu-icon-led--primary {
        background: #009ef7;
        color: #009ef7;
    }

    [data-kt-app-sidebar-minimize=on] #kt_app_sidebar:not(:hover) #kt_app_sidebar_menu .menu-icon-led {
        display: block;
        animation: menu-icon-led-blink 1.35s ease-in-out infinite;
    }
}

@keyframes menu-icon-led-blink {
    0%, 100% { opacity: 1; box-shadow: 0 0 0 0 currentColor; }
    50% { opacity: 0.25; box-shadow: 0 0 0 0.35rem transparent; }
}


/* ---- Inverter Monitoring facility list (ops KPI + dense table) ---- */
.inverter-monitoring-list .inv-kpi {
    border: 1px solid #e4e6ef;
    border-radius: 0.55rem;
    background: #fff;
    padding: 0.95rem 1.05rem;
    min-height: 5.75rem;
    transition: box-shadow 0.18s ease, border-color 0.18s ease, transform 0.18s ease;
    animation: inv-kpi-enter 0.45s ease both;
}

.inverter-monitoring-list .inv-kpi:hover {
    border-color: #d8dbe6;
    box-shadow: 0 4px 14px rgba(24, 28, 50, 0.06);
}

.inverter-monitoring-list .inv-kpi--skeleton {
    min-height: 5.75rem;
    animation: none;
}

.inverter-monitoring-list .inv-kpi__label {
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: #a1a5b7;
    margin-bottom: 0.35rem;
    display: flex;
    align-items: center;
}

.inverter-monitoring-list .inv-kpi__value {
    font-size: 1.45rem;
    font-weight: 700;
    color: #181c32;
    line-height: 1.2;
    transition: color 0.25s ease;
}

.inverter-monitoring-list .inv-kpi__value--ok { color: #1a7a4a; }
.inverter-monitoring-list .inv-kpi__value--danger { color: #c0294a; }

.inverter-monitoring-list .inv-kpi__sub {
    margin-top: 0.35rem;
    font-size: 0.75rem;
    color: #7e8299;
}

.inverter-monitoring-list .inv-status-strip {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem 0.65rem;
    padding: 0.65rem 0.85rem;
    border: 1px solid #e4e6ef;
    border-radius: 0.55rem;
    background: #f9f9fb;
}

.inverter-monitoring-list .inv-status-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    border: 1px solid transparent;
    background: #fff;
    border-radius: 2rem;
    padding: 0.28rem 0.7rem;
    font-size: 0.8125rem;
    color: #5e6278;
    line-height: 1.2;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.inverter-monitoring-list .inv-status-chip strong {
    color: #181c32;
    font-weight: 700;
}

.inverter-monitoring-list .inv-status-chip__dot,
.inverter-monitoring-list .inv-status-dot {
    width: 0.45rem;
    height: 0.45rem;
    border-radius: 50%;
    background: #a1a5b7;
    flex-shrink: 0;
    display: inline-block;
    vertical-align: middle;
    margin-right: 0.25rem;
}

.inverter-monitoring-list .inv-status-chip--success .inv-status-chip__dot,
.inverter-monitoring-list .inv-status-dot--success { background: #50cd89; }
.inverter-monitoring-list .inv-status-chip--warning .inv-status-chip__dot,
.inverter-monitoring-list .inv-status-dot--warning { background: #ffc700; }
.inverter-monitoring-list .inv-status-chip--danger .inv-status-chip__dot,
.inverter-monitoring-list .inv-status-dot--danger { background: #f1416c; }
.inverter-monitoring-list .inv-status-chip--dark .inv-status-chip__dot,
.inverter-monitoring-list .inv-status-dot--dark { background: #3f4254; }
.inverter-monitoring-list .inv-status-chip--secondary .inv-status-chip__dot,
.inverter-monitoring-list .inv-status-dot--secondary { background: #a1a5b7; }

.inverter-monitoring-list .inv-status-dot--pulse {
    box-shadow: 0 0 0 0 rgba(80, 205, 137, 0.55);
    animation: inv-dot-pulse 2.4s ease-out infinite;
}

.inverter-monitoring-list .inv-status-chip.is-active {
    border-color: var(--bs-primary);
    box-shadow: 0 0 0 2px rgba(var(--bs-primary-rgb), 0.12);
}

.inverter-monitoring-list .inv-status-chip:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

.inverter-monitoring-list .inv-table-wrap {
    border: 1px solid #eff2f5;
    border-radius: 0.55rem;
}

.inverter-monitoring-list .inv-table thead th {
    position: sticky;
    top: 0;
    z-index: 1;
    background: #f9f9fb;
    border-bottom-width: 1px;
    white-space: nowrap;
}

.inverter-monitoring-list .inv-table thead th:first-child,
.inverter-monitoring-list .inv-table tbody td:first-child {
    padding-left: 0.85rem;
}

.inverter-monitoring-list .inv-table__row {
    transition: background-color 0.15s ease;
}

.inverter-monitoring-list .inv-table__row:hover {
    background: rgba(var(--bs-primary-rgb), 0.04);
}

.inverter-monitoring-list .inv-mobile-card {
    border: 1px solid #e4e6ef;
    border-radius: 0.55rem;
    background: #fff;
    padding: 1rem;
    transition: box-shadow 0.18s ease, border-color 0.18s ease;
}

.inverter-monitoring-list .inv-mobile-card:hover {
    border-color: #d8dbe6;
    box-shadow: 0 4px 14px rgba(24, 28, 50, 0.06);
}

@keyframes inv-kpi-enter {
    from {
        opacity: 0;
        transform: translateY(6px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes inv-dot-pulse {
    0% { box-shadow: 0 0 0 0 rgba(80, 205, 137, 0.45); }
    70% { box-shadow: 0 0 0 6px rgba(80, 205, 137, 0); }
    100% { box-shadow: 0 0 0 0 rgba(80, 205, 137, 0); }
}

@media (prefers-reduced-motion: reduce) {
    .inverter-monitoring-list .inv-kpi,
    .inverter-monitoring-list .inv-status-dot--pulse {
        animation: none;
    }
}

@media (max-width: 575.98px) {
    .inverter-monitoring-list .inv-kpi__value {
        font-size: 1.2rem;
    }
}

/* Facility monitoring dashboard — reuse list KPI tokens */
.inv-facility-monitor {
    --inv-card-gap: var(--app-page-gap, 20px);
}

.inv-facility-monitor > .card,
.inv-facility-monitor .inv-facility-stack > .card,
.inv-facility-monitor .inv-facility-stack > .row,
.inv-facility-monitor .inv-facility-stack > .inv-emission,
.inv-facility-monitor .inv-facility-stack > .alert {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

.inv-facility-monitor .inv-facility-stack {
    display: flex;
    flex-direction: column;
    gap: var(--inv-card-gap, 20px);
}

/* Stack zaten dikey gap veriyor — row gutter-y çift boşluk yapmasın */
.inv-facility-monitor .inv-facility-stack > .row.g-inv {
    --bs-gutter-y: 0;
    --bs-gutter-x: var(--inv-card-gap, 20px);
}

/* Tesis durumu kartı — PV ikonları + motorlu şalter */
.inv-facility-monitor .inv-status-card .card-body {
    padding: 1rem 1.15rem;
}

.inv-facility-monitor .inv-status-headline {
    padding-right: 0.5rem;
}

.inv-facility-monitor .inv-status-facility-panel {
    position: relative;
    flex-shrink: 0;
    min-width: 14.5rem;
    max-width: 18rem;
    padding: 0.95rem 1.15rem 1rem 1.1rem;
    border-radius: 0.75rem;
    background: #fff;
    border: 1px solid var(--bs-gray-200, #eff2f5);
    box-shadow: 0 0.25rem 0.75rem rgba(24, 28, 50, 0.05);
    overflow: hidden;
}

.inv-facility-monitor .inv-status-facility-panel__accent {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    background: var(--bs-gray-400, #b5b5c3);
}

.inv-facility-monitor .inv-status-facility-panel--normal .inv-status-facility-panel__accent {
    background: #50cd89;
}

.inv-facility-monitor .inv-status-facility-panel--fault .inv-status-facility-panel__accent {
    background: #f1416c;
}

.inv-facility-monitor .inv-status-facility-panel--alarm .inv-status-facility-panel__accent,
.inv-facility-monitor .inv-status-facility-panel--partial .inv-status-facility-panel__accent {
    background: #ffc700;
}

.inv-facility-monitor .inv-status-facility-panel--offline .inv-status-facility-panel__accent {
    background: #f1416c;
}

.inv-facility-monitor .inv-status-facility-panel__content {
    position: relative;
    z-index: 1;
    min-width: 0;
}

.inv-facility-monitor .inv-status-facility-panel__header {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.inv-facility-monitor .inv-status-facility-panel__icon {
    width: 2.65rem;
    height: 2.65rem;
    flex-shrink: 0;
}

.inv-facility-monitor .inv-status-facility-panel__titles {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.18rem;
}

.inv-facility-monitor .inv-status-facility-panel__label {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--bs-gray-500, #a1a5b7);
    line-height: 1.2;
}

.inv-facility-monitor .inv-status-facility-panel__value {
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--bs-gray-900, #181c32);
    line-height: 1.25;
}

.inv-facility-monitor .inv-status-facility-panel__value.text-success {
    color: #50cd89 !important;
}

.inv-facility-monitor .inv-status-facility-panel__value.text-danger {
    color: #f1416c !important;
}

.inv-facility-monitor .inv-status-facility-panel__value.text-warning {
    color: #ffc700 !important;
}

.inv-facility-monitor .inv-status-facility-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.15rem;
    height: 2.15rem;
    border-radius: 0.55rem;
    background: rgba(161, 165, 183, 0.12);
}

.inv-facility-monitor .inv-status-facility-icon--normal {
    background: rgba(80, 205, 137, 0.12);
}

.inv-facility-monitor .inv-status-facility-icon--fault {
    background: rgba(241, 65, 108, 0.12);
}

.inv-facility-monitor .inv-status-facility-icon--alarm,
.inv-facility-monitor .inv-status-facility-icon--partial {
    background: rgba(255, 199, 0, 0.14);
}

.inv-facility-monitor .inv-status-facility-icon--offline {
    background: rgba(241, 65, 108, 0.12);
}

.inv-facility-monitor .inv-status-facility-icon .inv-status-dot {
    width: 0.72rem;
    height: 0.72rem;
}

.inv-facility-monitor .inv-status-unit__label {
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--bs-gray-500, #a1a5b7);
    line-height: 1.2;
}

.inv-facility-monitor .inv-status-pill {
    display: inline-block;
    padding: 0.14rem 0.5rem;
    border-radius: 0.35rem;
    font-size: 0.62rem;
    font-weight: 600;
    line-height: 1.25;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.inv-facility-monitor .inv-status-pill--neutral {
    color: #5e6278;
    background: #eef0f4;
}

.inv-facility-monitor .inv-status-pill--info {
    color: #009ef7;
    background: rgba(0, 158, 247, 0.12);
}

.inv-facility-monitor .inv-status-headline .fs-3 {
    font-size: 1.35rem !important;
    line-height: 1.2;
}

.inv-facility-monitor .inv-status-extras {
    border-left: 1px solid #e4e6ef;
    padding-left: 0.5rem;
    margin-left: 0.35rem;
    gap: 0;
}

.inv-facility-monitor .inv-status-unit {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: 0.35rem;
    min-width: 5.5rem;
    max-width: 7.5rem;
    padding: 0.25rem 1rem;
    border: 0;
    background: transparent;
    text-align: center;
}

.inv-facility-monitor .inv-status-unit--button {
    cursor: pointer;
    border-radius: 0.55rem;
    transition: background-color 0.15s ease, box-shadow 0.15s ease;
}

.inv-facility-monitor .inv-status-unit--button:hover {
    background: rgba(245, 248, 250, 0.95);
}

.inv-facility-monitor .inv-status-unit__icon {
    font-size: 2rem;
    line-height: 1;
}

.inv-facility-monitor .inv-status-unit__icon.text-success {
    color: #50cd89 !important;
}

/* Alarm turuncusu: soluk #ffc700 outline ikonları soluk/pikselli gösterir; doygun amber + path boyama */
.inv-facility-monitor .inv-status-unit__icon.text-warning {
    color: #f1a700 !important;
    -webkit-text-stroke: 0;
    filter: none;
    opacity: 1 !important;
}

.inv-facility-monitor .inv-status-unit__icon.text-warning .path1,
.inv-facility-monitor .inv-status-unit__icon.text-warning .path2,
.inv-facility-monitor .inv-status-unit__icon.text-warning .path3,
.inv-facility-monitor .inv-status-unit__icon.text-warning .path4,
.inv-facility-monitor .inv-status-unit__icon.text-warning .path5,
.inv-facility-monitor .inv-status-unit__icon.text-warning .path6,
.inv-facility-monitor .inv-status-unit__icon.text-warning .path7,
.inv-facility-monitor .inv-status-unit__icon.text-warning .path8,
.inv-facility-monitor .inv-status-unit__icon.text-warning .path9,
.inv-facility-monitor .inv-status-unit__icon.text-warning .path10,
.inv-facility-monitor .inv-status-unit__icon.text-warning:before,
.inv-facility-monitor .inv-status-unit__icon.text-warning:after {
    color: #f1a700 !important;
    background-color: #f1a700 !important;
    opacity: 1 !important;
}

.inv-facility-monitor .inv-status-unit__icon.text-danger {
    color: #f1416c !important;
}

.inv-facility-monitor .inv-status-unit__icon.text-danger .path1,
.inv-facility-monitor .inv-status-unit__icon.text-danger .path2,
.inv-facility-monitor .inv-status-unit__icon.text-danger .path3,
.inv-facility-monitor .inv-status-unit__icon.text-danger .path4,
.inv-facility-monitor .inv-status-unit__icon.text-danger .path5,
.inv-facility-monitor .inv-status-unit__icon.text-danger .path6,
.inv-facility-monitor .inv-status-unit__icon.text-danger .path7,
.inv-facility-monitor .inv-status-unit__icon.text-danger .path8,
.inv-facility-monitor .inv-status-unit__icon.text-danger .path9,
.inv-facility-monitor .inv-status-unit__icon.text-danger .path10,
.inv-facility-monitor .inv-status-unit__icon.text-danger:before,
.inv-facility-monitor .inv-status-unit__icon.text-danger:after {
    color: #f1416c !important;
    background-color: #f1416c !important;
    opacity: 1 !important;
}

.inv-facility-monitor .inv-status-unit--alarm .inv-status-unit__name {
    color: #c48a00;
}

.inv-facility-monitor .inv-status-unit__icon-wrap {
    position: relative;
    display: inline-flex;
    line-height: 1;
}

.inv-facility-monitor .inv-status-unit__alarm-badge {
    position: absolute;
    top: -0.2rem;
    right: -0.45rem;
    min-width: 1rem;
    height: 1rem;
    padding: 0 0.28rem;
    border-radius: 999px;
    background: #f1416c;
    color: #fff;
    font-size: 0.62rem;
    font-weight: 750;
    line-height: 1rem;
    text-align: center;
    box-shadow: 0 0 0 1.5px #fff;
}

.inv-facility-monitor .inv-status-unit__meta--alarm,
.inv-facility-monitor .inv-status-unit__meta--warn {
    color: #b38600 !important;
    font-weight: 700;
}

.inv-facility-monitor .inv-status-unit__name {
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--bs-gray-800, #3f4254);
    line-height: 1.25;
    max-width: 6.5rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.inv-facility-monitor .inv-status-unit__meta {
    font-size: 0.65rem;
    font-weight: 500;
    color: var(--bs-gray-500, #a1a5b7);
    line-height: 1.2;
    max-width: 6.5rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.inv-facility-monitor .inv-status-extras .inv-status-unit {
    min-width: 4.85rem;
    padding-inline: 0.7rem;
}

/* Motorlu şalter — tesis durumu kartı içi kompakt gösterim */
.inv-facility-monitor .inv-mb-status {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: 0.35rem;
    min-width: 5.25rem;
    padding: 0.25rem 0.85rem;
}

.inv-facility-monitor .inv-mb-status__label {
    line-height: 1.2;
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--bs-gray-800, #3f4254) !important;
    text-transform: none;
    letter-spacing: 0;
}

.inv-facility-monitor .inv-mb-status__undefined {
    font-size: 0.65rem;
    font-weight: 500;
    color: #a1a5b7;
}

.inv-facility-monitor .inv-mb-status__item {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.25rem 0.5rem;
    border-radius: 0.45rem;
    border: 1px solid transparent;
    line-height: 1.2;
}

.inv-facility-monitor .inv-mb-status__item .ki-switch {
    line-height: 1;
}

.inv-facility-monitor .inv-mb-status__state {
    font-size: 0.65rem;
    font-weight: 500;
}

.inv-facility-monitor .inv-mb-status__name {
    font-size: 0.7rem;
    font-weight: 500;
    opacity: 0.85;
    max-width: 7rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.inv-facility-monitor .inv-mb-status__item--kurulu {
    color: #1a7a4a;
    background: rgba(80, 205, 137, 0.1);
    border-color: rgba(80, 205, 137, 0.4);
}

.inv-facility-monitor .inv-mb-status__item--degil {
    color: #c0294a;
    background: rgba(241, 65, 108, 0.08);
    border-color: rgba(241, 65, 108, 0.3);
}

.inv-facility-monitor .inv-mb-status__item--other {
    color: #7e8299;
    background: rgba(161, 165, 183, 0.12);
    border-color: rgba(161, 165, 183, 0.35);
}

/* Yük Boşaltma popup — motorlu şalter durum bandı */
.motor-breaker-facility-config .mb-status-banner {
    background: linear-gradient(180deg, #f9fafb 0%, #fff 100%);
    border-color: #e4e6ef !important;
}

.motor-breaker-facility-config .mb-status-banner .fw-bold.fs-3 {
    letter-spacing: -0.02em;
}

/* Motorlu şalter boş durumda gereksiz dikey alan bırakmasın */
.inv-facility-monitor .motor-breaker-panel .alert {
    margin-bottom: 0;
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
}

.inv-facility-monitor .motor-breaker-panel .row.g-5 {
    --bs-gutter-y: 20px;
    --bs-gutter-x: 20px;
}

.inv-facility-monitor .row.g-inv {
    --bs-gutter-x: 20px;
    --bs-gutter-y: 20px;
    margin-bottom: 0;
}

.inv-facility-monitor .inv-logger-stack {
    display: flex;
    flex-direction: column;
    gap: var(--inv-card-gap);
}

.inv-facility-monitor .inv-status-card {
    background: var(--bs-body-bg, #fff);
    border: 1px solid var(--bs-gray-200, #eff2f5);
    border-radius: 0.75rem;
    box-shadow: 0 0.25rem 0.75rem rgba(24, 28, 50, 0.04);
}

.inv-facility-monitor .inv-status-devices {
    align-items: stretch;
}

.inv-facility-monitor .inv-status-chip {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    min-width: 11.5rem;
    max-width: 18rem;
    padding: 0.65rem 0.85rem;
    border-radius: 0.65rem;
    border: 1px solid var(--bs-gray-200, #eff2f5);
    background: #fafbfc;
}

.inv-facility-monitor .inv-status-chip--online {
    border-color: rgba(80, 205, 137, 0.45);
    background: rgba(80, 205, 137, 0.06);
}

.inv-facility-monitor .inv-status-chip--offline {
    border-color: rgba(241, 65, 108, 0.28);
    background: rgba(241, 65, 108, 0.04);
}

.inv-facility-monitor .inv-status-chip__icon {
    color: var(--bs-gray-600, #7e8299);
    line-height: 1;
}

.inv-facility-monitor .inv-status-chip__name {
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--bs-gray-900, #181c32);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 12rem;
}

.inv-facility-monitor .inv-status-chip__meta {
    font-size: 0.7rem;
    color: var(--bs-gray-500, #a1a5b7);
}

.inv-facility-monitor .inv-kpi {
    background: var(--bs-body-bg, #fff);
    border: 1px solid var(--bs-gray-200, #eff2f5);
    border-radius: 0.75rem;
    padding: 1.1rem 1.15rem;
    transition: box-shadow 0.2s ease, transform 0.2s ease;
    animation: inv-kpi-enter 0.45s ease both;
}
.inv-facility-monitor .inv-kpi:hover {
    box-shadow: 0 0.5rem 1.25rem rgba(0, 0, 0, 0.06);
    transform: translateY(-1px);
}
.inv-facility-monitor .inv-kpi--skeleton { min-height: 5.5rem; }
.inv-facility-monitor .inv-kpi__label {
    font-size: 0.75rem; font-weight: 600; letter-spacing: 0.02em;
    text-transform: uppercase; color: var(--bs-gray-600, #7e8299);
    margin-bottom: 0.35rem; display: flex; align-items: center;
}
.inv-facility-monitor .inv-kpi__value {
    font-size: 1.45rem; font-weight: 700; line-height: 1.2; color: var(--bs-gray-900, #181c32);
}
.inv-facility-monitor .inv-kpi__value--ok { color: #1a7a4a; }
.inv-facility-monitor .inv-kpi__value--danger { color: #c0294a; }
.inv-facility-monitor .inv-kpi__sub { font-size: 0.7rem; color: var(--bs-gray-500, #a1a5b7); margin-top: 0.25rem; }
.inv-facility-monitor .inv-status-dot {
    display: inline-block; width: 0.55rem; height: 0.55rem; border-radius: 50%; background: #a1a5b7; vertical-align: middle;
}
.inv-facility-monitor .inv-status-dot--success { background: #50cd89; }
.inv-facility-monitor .inv-status-dot--warning { background: #ffc700; }
.inv-facility-monitor .inv-status-dot--danger { background: #f1416c; }
.inv-facility-monitor .inv-status-dot--dark { background: #3f4254; }
.inv-facility-monitor .inv-status-dot--secondary { background: #a1a5b7; }
.inv-facility-monitor .inv-status-dot--pulse { animation: inv-dot-pulse 1.6s ease infinite; }
.inv-facility-monitor .inv-table__row { transition: background-color 0.15s ease; }
.inv-facility-monitor .inv-table__row:hover { background-color: rgba(62, 151, 255, 0.04); }
.inv-facility-monitor .inv-logger-card { transition: box-shadow 0.2s ease; }

.inv-facility-monitor .inv-device-card {
    appearance: none;
    border: 1px solid var(--bs-gray-300, #e4e6ef);
    border-radius: 0.75rem;
    background: #fff;
    padding: 1.25rem;
    cursor: pointer;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}
.inv-facility-monitor .inv-device-card:hover {
    border-color: #3e97ff;
    box-shadow: 0 0.5rem 1.25rem rgba(62, 151, 255, 0.12);
    transform: translateY(-1px);
}
.inv-facility-monitor .inv-device-card--selected {
    border-color: #3e97ff;
    box-shadow: 0 0 0 1px #3e97ff inset;
}
.inv-facility-monitor .inv-device-card__metric {
    background: var(--bs-gray-100, #f5f8fa);
    border-radius: 0.5rem;
    padding: 0.65rem 0.75rem;
}
.inv-facility-monitor .inv-device-card__metric-label {
    font-size: 0.7rem;
    color: var(--bs-gray-500, #a1a5b7);
    margin-bottom: 0.2rem;
}
.inv-facility-monitor .inv-device-card__metric-value {
    font-weight: 700;
    font-size: 1rem;
    color: var(--bs-gray-800, #3f4254);
    line-height: 1.25;
}
.inv-facility-monitor .inv-device-card__metric .fs-8 {
    margin-top: 0.15rem;
}

@media (prefers-reduced-motion: reduce) {
    .inv-facility-monitor .inv-kpi,
    .inv-facility-monitor .inv-status-dot--pulse { animation: none; }
}

/* İnverter tesis durumu — yalnızca mobil (masaüstü aynı) */
@media (max-width: 991.98px) {
    .inv-facility-monitor .inv-status-card .card-body {
        padding: 0.75rem 0.7rem !important;
    }

    .inv-facility-monitor .inv-status-card .card-body > .d-flex.flex-wrap {
        flex-direction: column;
        align-items: stretch !important;
        justify-content: flex-start !important;
        gap: 0.5rem !important;
    }

    /* Tesis paneli + cihazlar: büyümesin, divider ayrı satıra düşmesin */
    .inv-facility-monitor .inv-status-card .card-body > .d-flex > .d-flex.min-w-0.flex-grow-1 {
        flex-grow: 0 !important;
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 0.4rem !important;
        width: 100%;
    }

    .inv-facility-monitor .inv-status-card .card-body > .d-flex > .d-flex.min-w-0 > .inv-status-device-divider {
        display: none !important;
    }

    .inv-facility-monitor .inv-status-facility-panel {
        padding: 0.55rem 0.75rem !important;
    }

    .inv-facility-monitor .inv-status-devices {
        justify-content: flex-start;
        gap: 0.15rem 0.1rem;
        width: 100%;
    }

    .inv-facility-monitor .inv-status-devices .inv-status-device-divider {
        width: 1px;
        height: 1.75rem;
        margin: 0 0.1rem;
        opacity: 0.45;
    }

    .inv-facility-monitor .inv-status-unit {
        min-width: 3.1rem;
        max-width: 4.1rem;
        padding: 0.15rem 0.25rem;
        gap: 0.15rem;
    }

    .inv-facility-monitor .inv-status-unit__icon {
        font-size: 1.15rem !important;
    }

    .inv-facility-monitor .inv-status-unit__name {
        font-size: 0.62rem;
        max-width: 3.9rem;
        line-height: 1.15;
    }

    .inv-facility-monitor .inv-status-unit__meta {
        font-size: 0.55rem;
        max-width: 3.9rem;
        white-space: normal;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
        line-height: 1.2;
    }

    .inv-facility-monitor .inv-status-extras {
        border-left: none;
        border-top: 1px solid #e4e6ef;
        margin-left: 0;
        padding-left: 0;
        padding-top: 0.55rem;
        margin-top: 0;
        width: 100%;
        flex-basis: 100%;
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 0.35rem 0.4rem;
        align-items: start;
        justify-content: stretch;
    }

    .inv-facility-monitor .inv-status-extras .inv-status-unit,
    .inv-facility-monitor .inv-status-extras .inv-mb-status,
    .inv-facility-monitor .inv-status-extras .pv-status-icon-strip .inv-status-unit {
        min-width: 0;
        max-width: none;
        width: 100%;
        padding-inline: 0.2rem;
    }

    .inv-facility-monitor .inv-status-extras .inv-status-unit__name,
    .inv-facility-monitor .inv-status-extras .inv-status-unit__meta {
        max-width: 100%;
        white-space: normal;
        text-align: center;
    }

    .inv-facility-monitor .inv-status-extras .inv-status-device-divider,
    .inv-facility-monitor .pv-status-icon-strip .inv-status-device-divider {
        display: none;
    }

    /* Performans + Kirlilik + Motorlu Şalter → 3 eşit sütun
       (d-flex !important yüzünden contents ayrıca zorlanmalı) */
    .inv-facility-monitor .inv-status-extras .pv-status-icon-strip.d-flex,
    .inv-facility-monitor .inv-status-extras .pv-status-icon-strip {
        display: contents !important;
    }

    /* Kart / KPI dikey boşluk */
    .inv-facility-monitor.inv-section-stack,
    .inv-facility-monitor .inv-facility-stack {
        gap: 0.85rem !important;
    }

    .inv-facility-monitor .row.g-inv {
        --bs-gutter-y: 0.85rem !important;
        --bs-gutter-x: 0.65rem !important;
    }

    .inv-facility-monitor .inv-kpi-hero-row {
        --bs-gutter-y: 1rem !important;
        row-gap: 1rem;
        min-height: 0;
    }

    .inv-facility-monitor .inv-kpi-hero-row > [class*="col-"] {
        margin-top: 1rem !important;
    }

    .inv-facility-monitor .inv-kpi-hero-row > [class*="col-"]:first-child {
        margin-top: 0 !important;
    }

    .inv-facility-monitor .inv-kpi-hero {
        min-height: 3.5rem;
        padding: 0.7rem 0.8rem;
        gap: 0.55rem;
    }

    .inv-facility-monitor .inv-kpi-hero__icon {
        width: 2rem;
        height: 2rem;
    }

    .inv-facility-monitor .inv-kpi-hero__icon i {
        font-size: 1.1rem;
    }

    .inv-facility-monitor .inv-kpi-hero__value {
        font-size: 1.05rem;
    }

    .inv-facility-monitor .inv-kpi {
        padding: 0.75rem 0.85rem;
    }

    .inv-facility-monitor .inv-kpi__value {
        font-size: 1.15rem;
    }

    .inv-facility-monitor .inv-kpi__label {
        font-size: 0.68rem;
        margin-bottom: 0.2rem;
    }

    .inv-facility-monitor .inv-flow-chart-row {
        min-height: 0;
        row-gap: 0.85rem;
    }

    .inv-facility-monitor .inv-flow-card,
    .inv-facility-monitor .inv-energy-card {
        min-height: 0;
    }

    .inv-facility-monitor .inv-flow-card .card-body {
        padding: 0.55rem 0.65rem 0.45rem !important;
    }

    .inv-facility-monitor .inv-energy-card .card-body,
    .inv-facility-monitor .inv-energy-card__body {
        padding: 0.45rem 0.7rem 0.55rem !important;
    }

    /* Grafik kartı başlığı — üstten nefes */
    .inv-facility-monitor .inv-energy-card.card-flush > .card-header.inv-energy-card__header {
        padding: 0.85rem 0.85rem 0.65rem !important;
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 0.55rem !important;
    }

    .inv-facility-monitor .inv-energy-card__title {
        font-size: 0.95rem;
    }

    .inv-facility-monitor .inv-energy-card .card-toolbar {
        width: 100%;
        margin-left: 0 !important;
        justify-content: flex-start !important;
        gap: 0.45rem !important;
    }

    /* Gün/Ay/Yıl + tarih: aynı kompakt yükseklik */
    .inv-facility-monitor .inv-period-tabs.btn-group {
        display: flex !important;
        flex-wrap: wrap;
        gap: 0.25rem !important;
        width: 100%;
    }

    .inv-facility-monitor .inv-period-tabs.btn-group > .btn {
        border-radius: 0.4rem !important;
        margin: 0 !important;
        min-height: 1.7rem !important;
        height: 1.7rem !important;
        padding: 0 0.45rem !important;
        font-size: 0.72rem !important;
        line-height: 1.2 !important;
        flex: 1 1 0;
    }

    .inv-facility-monitor .inv-chart-nav.btn-group {
        display: inline-flex !important;
        flex-wrap: nowrap;
        align-items: center;
        gap: 0.25rem !important;
        width: auto !important;
        max-width: 100%;
    }

    .inv-facility-monitor .inv-chart-nav.btn-group > .btn,
    .inv-facility-monitor .inv-chart-nav__date-wrap,
    .inv-facility-monitor .inv-chart-nav__date-wrap .inv-chart-nav__date {
        flex: 0 0 auto !important;
        border-radius: 0.4rem !important;
        margin: 0 !important;
        min-height: 1.7rem !important;
        height: 1.7rem !important;
        padding: 0 0.45rem !important;
        font-size: 0.72rem !important;
        line-height: 1.2 !important;
    }

    .inv-facility-monitor .inv-chart-nav__arrow {
        width: 1.7rem !important;
        min-width: 1.7rem !important;
        padding: 0 !important;
    }

    .inv-facility-monitor .inv-chart-nav__date-wrap {
        min-width: 0;
        width: auto;
    }

    .inv-facility-monitor .inv-chart-nav__date-wrap .inv-chart-nav__date {
        min-width: 6.25rem !important;
        width: auto;
        text-align: center;
        display: inline-flex !important;
        align-items: center;
        justify-content: center;
        box-sizing: border-box;
        white-space: nowrap;
    }

    /* Enerji akış ikonları küçült + üst boşluk */
    .inv-flow__stage--iso {
        height: 200px !important;
        padding-top: 0.35rem !important;
    }

    .inv-flow--iso .inv-flow__art {
        width: 4.25rem !important;
    }

    .inv-flow--iso .inv-flow__art--pv {
        width: 4.75rem !important;
    }

    .inv-flow--iso .inv-flow__art--grid {
        width: 4.5rem !important;
    }

    .inv-flow--iso .inv-flow__art--load {
        width: 4rem !important;
    }

    .inv-flow--iso .inv-flow__plaque {
        padding: 0.2rem 0.35rem;
    }

    .inv-flow--iso .inv-flow__name {
        font-size: 0.7rem;
    }

    .inv-flow--iso .inv-flow__kw {
        font-size: 0.72rem;
    }

    .inv-flow--iso .inv-flow__hint {
        font-size: 0.58rem;
    }

    /* Mobil nav dropdown — daha alçak */
    .scada-mobile-nav__toggle {
        height: 2.1rem !important;
        min-height: 2.1rem !important;
        padding: 0.3rem 0.65rem !important;
        font-size: 0.78rem !important;
    }

    .inv-facility-monitor .apexcharts-toolbar {
        max-width: 100%;
        flex-wrap: wrap;
        gap: 0.15rem;
    }

    .inv-facility-monitor .apexcharts-toolbar svg,
    .inv-facility-monitor .apexcharts-menu-icon,
    .inv-facility-monitor .apexcharts-zoom-icon,
    .inv-facility-monitor .apexcharts-zoomin-icon,
    .inv-facility-monitor .apexcharts-zoomout-icon,
    .inv-facility-monitor .apexcharts-pan-icon,
    .inv-facility-monitor .apexcharts-reset-icon,
    .inv-facility-monitor .apexcharts-selection-icon {
        width: 18px !important;
        height: 18px !important;
    }

    .inv-facility-monitor .apexcharts-toolbar > div {
        min-width: 22px !important;
        min-height: 22px !important;
    }

    .inv-facility-monitor .apexcharts-xaxis text {
        font-size: 9px !important;
    }

    /* Hover transform mobilde kayma/animasyon bozulmasını azaltır */
    .inv-facility-monitor .inv-kpi:hover,
    .inv-facility-monitor .inv-device-card:hover {
        transform: none;
    }
}

/* ==========================================================================
   Energy flow panel — üç düğüm (Şebeke · Yük · PV), inverter hub yok
   ========================================================================== */
.inv-flow {
    background: var(--bs-body-bg, #fff);
    border: 1px solid var(--bs-gray-200, #eff2f5);
    border-radius: 0.75rem;
    padding: 1rem 1.1rem 0.85rem;
    overflow: visible;
}

.inv-flow--iso {
    border: none;
    padding: 0.85rem 0.1rem 0.15rem;
    background: transparent;
    overflow: visible;
    height: 100%;
    display: flex;
    flex-direction: column;
}

.inv-flow--iso .inv-flow__canvas--compact {
    flex: 1 1 auto;
    min-height: 0;
}

.inv-facility-monitor .inv-flow-chart-row {
    min-height: 22rem;
}

.inv-facility-monitor .inv-flow-card {
    border: 1px solid var(--bs-gray-200, #eff2f5);
    border-radius: 0.85rem;
    background: #fff;
    overflow: visible;
    min-height: 22rem;
}

.inv-facility-monitor .inv-kpi-hero-row {
    min-height: 0;
}

.inv-facility-monitor .inv-flow-card .card-body {
    overflow: visible;
}

.inv-facility-monitor .inv-flow-chart-row > [class*="col-"] {
    display: flex;
}

.inv-facility-monitor .inv-flow-chart-row .card {
    width: 100%;
    display: flex;
    flex-direction: column;
}

.inv-facility-monitor .inv-flow-card .card-body,
.inv-facility-monitor .inv-energy-card .card-body {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.inv-facility-monitor .inv-energy-card {
    border: 1px solid var(--bs-gray-200, #eff2f5);
    border-radius: 0.85rem;
}

/* Metronic card-flush border-bottom:0 !important — burası bilinçli override */
.inv-facility-monitor .inv-energy-card.card-flush > .card-header.inv-energy-card__header {
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0.45rem 1rem 0.5rem !important;
    border: 0 !important;
    border-bottom: 1px solid #e4e6ef !important;
    background: transparent !important;
}

@media (max-width: 991.98px) {
    .inv-facility-monitor .inv-energy-card.card-flush > .card-header.inv-energy-card__header {
        padding: 1.05rem 0.85rem 0.75rem !important;
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 0.65rem !important;
    }

    .inv-facility-monitor .inv-period-tabs.btn-group,
    .inv-facility-monitor .inv-chart-nav.btn-group {
        gap: 0.5rem !important;
    }
}

.inv-facility-monitor .inv-energy-card__title {
    font-size: 1rem;
    letter-spacing: -0.01em;
    color: #181c32;
}

.inv-facility-monitor .inv-energy-card__title .ki-outline {
    flex-shrink: 0;
    line-height: 1;
}

.inv-facility-monitor .inv-energy-card__tools {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem;
}

/* Gün/Ay/Yıl/Tümü + tarih şeridi — aynı kompakt yükseklik */
.inv-facility-monitor .inv-period-tabs.btn-group {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 0.25rem;
}

.inv-facility-monitor .inv-period-tabs.btn-group > .btn,
.inv-facility-monitor .inv-period-tabs.btn-group-sm > .btn {
    min-width: 0;
    height: 1.7rem !important;
    min-height: 1.7rem !important;
    padding: 0 0.5rem !important;
    font-size: 0.72rem !important;
    font-weight: 600;
    line-height: 1.2 !important;
    border-radius: 0.4rem !important;
    margin: 0 !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
}

.inv-facility-monitor .inv-chart-nav.btn-group {
    display: inline-flex;
    align-items: stretch;
    gap: 0.25rem;
}

.inv-facility-monitor .inv-chart-nav.btn-group > .btn,
.inv-facility-monitor .inv-chart-nav.btn-group-sm > .btn {
    height: 1.7rem !important;
    min-height: 1.7rem !important;
    padding: 0 0.4rem !important;
    font-size: 0.72rem !important;
    line-height: 1.2 !important;
    border-radius: 0.4rem !important;
    margin: 0 !important;
}

.inv-facility-monitor .inv-chart-nav__arrow {
    width: 1.7rem !important;
    min-width: 1.7rem !important;
    padding: 0 !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
}

.inv-facility-monitor .inv-chart-nav__arrow i {
    font-size: 0.9rem;
    line-height: 1;
}

.inv-facility-monitor .inv-chart-nav__date-wrap {
    display: inline-flex;
    align-items: stretch;
}

.inv-facility-monitor .inv-chart-nav__date-wrap .inv-chart-nav__date {
    height: 1.7rem !important;
    min-height: 1.7rem !important;
    min-width: 6.25rem !important;
    padding: 0 0.55rem !important;
    font-size: 0.72rem !important;
    font-weight: 600;
    line-height: 1.2 !important;
    border-radius: 0.4rem !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    white-space: nowrap;
}

/* Tarih etiketi + gizli AppDateInput (tesis dashboard + rapor paneli) */
.inv-chart-nav__date-wrap {
    position: relative;
    display: inline-flex;
    align-items: stretch;
    vertical-align: middle;
}

.inv-chart-nav__date-wrap .inv-chart-nav__date {
    pointer-events: none;
}

.inv-chart-nav__date-picker {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    /* opacity:0 bazı mobil tarayıcılarda tıklamayı yutuyor */
    opacity: 0.011;
    cursor: pointer;
    border: 0;
    padding: 0;
    margin: 0;
    z-index: 2;
    font-size: 16px; /* iOS zoom önleme */
    color: transparent;
    background: transparent;
    -webkit-appearance: none;
    appearance: none;
}

.inv-facility-monitor .inv-energy-card .card-body,
.inv-facility-monitor .inv-energy-card__body {
    padding: 0.35rem 0.85rem 0.35rem !important;
}

.inv-facility-monitor .inv-energy-chart {
    flex: 0 0 auto;
    min-height: 320px;
    height: 320px;
    width: 100%;
    min-width: 280px;
}

.inv-facility-monitor .inv-status-devices--inline {
    flex: 1 1 auto;
    min-width: 0;
    align-items: center;
    gap: 0;
}

.inv-facility-monitor .inv-status-device-divider {
    width: 1px;
    align-self: stretch;
    min-height: 2.5rem;
    margin: 0 0.7rem;
    background: #e4e6ef;
    flex-shrink: 0;
}

.inv-facility-monitor .inv-device-status-icon--selected {
    background: rgba(62, 151, 255, 0.08);
    box-shadow: 0 0 0 1px rgba(62, 151, 255, 0.35);
}

.inv-facility-monitor .inv-status-extras .inv-status-icon-row {
    gap: 0 !important;
}

.inv-flow__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    flex-wrap: wrap;
    margin-bottom: 0.65rem;
}

.inv-flow__title {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--bs-gray-900, #181c32);
}

.inv-flow__subtitle {
    font-size: 0.72rem;
    color: var(--bs-gray-600, #7e8299);
}

.inv-flow__badge { font-size: 0.72rem; }

.inv-flow__canvas--compact {
    flex: 1 1 auto;
    min-width: 0;
    width: 100%;
    overflow: visible;
}

/* ---- İzometrik enerji akışı (referans düzen) ---- */
.inv-flow__stage--iso {
    position: relative;
    width: 100%;
    height: clamp(300px, 30vw, 340px);
    margin: 0;
    /* Animasyonu kart içinde biraz aşağı al (ikon + yazı + çizgi birlikte) */
    padding-top: 1.75rem;
    padding-bottom: 0.35rem;
    box-sizing: border-box;
    border-radius: 0;
    background: #fff;
    border: none;
    box-shadow: none;
    overflow: visible;
}

/* Teller ikonların ARKASINDA; uçlar ikona mesafeli biter (örnekteki gibi boşluk) */
.inv-flow--iso .inv-flow__wires {
    z-index: 1;
}

/* Anchor = ikon merkezi; plaka absolute üstte */
.inv-flow--iso .inv-flow__anchor {
    position: absolute;
    z-index: 2;
    width: auto;
    margin: 0;
    padding: 0;
    transform: translate(-50%, -50%);
    pointer-events: none;
    overflow: visible;
}

/* Kompakt üçgen — kart içinde biraz aşağı */
.inv-flow--iso .inv-flow__anchor--grid {
    left: 22% !important;
    top: 74% !important;
}

.inv-flow--iso .inv-flow__anchor--load {
    left: 50% !important;
    top: 36% !important;
}

.inv-flow--iso .inv-flow__anchor--pv {
    left: 78% !important;
    top: 74% !important;
}

.inv-flow--iso .inv-flow__plaque {
    position: absolute;
    left: 50%;
    bottom: calc(100% - 0.1rem);
    transform: translateX(-50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    width: max-content;
    max-width: 10.5rem;
    z-index: 5;
}

.inv-flow--iso .inv-flow__name {
    display: block;
    margin: 0 0 0.1rem;
    font-size: 0.9rem;
    font-weight: 700;
    line-height: 1.1;
}

.inv-flow--iso .inv-flow__name--grid { color: #3b82f6; }
.inv-flow--iso .inv-flow__name--load { color: #22c55e; }
.inv-flow--iso .inv-flow__name--pv { color: #eab308; }

.inv-flow--iso .inv-flow__kw {
    display: block;
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.15;
    color: #0f172a;
    letter-spacing: -0.025em;
    white-space: nowrap;
}

.inv-flow--iso .inv-flow__hint {
    display: block;
    font-size: 0.7rem;
    color: #94a3b8;
    line-height: 1.25;
    max-width: 10rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.inv-flow--iso .inv-flow__pin {
    display: block;
    width: 1px;
    height: 0.65rem;
    margin-top: 0.12rem;
    background: #cbd5e1;
}

.inv-flow--iso .inv-flow__art {
    display: block;
    width: 8.5rem;
    height: auto;
    object-fit: contain;
    user-select: none;
    -webkit-user-drag: none;
    pointer-events: none;
}

.inv-flow--iso .inv-flow__art--grid { width: 9rem; }
.inv-flow--iso .inv-flow__art--load { width: 8.25rem; }
.inv-flow--iso .inv-flow__art--pv { width: 9.5rem; }

.inv-flow--iso .inv-flow__anchor--zero .inv-flow__kw,
.inv-flow--iso .inv-flow__anchor--muted .inv-flow__kw {
    color: #64748b;
}

.inv-flow--iso .inv-flow__leg--wire {
    fill: none;
    stroke: #c9d1dc;
    stroke-width: 1.15;
    stroke-linecap: round;
    stroke-linejoin: round;
    vector-effect: non-scaling-stroke;
}

.inv-flow--iso .inv-flow__arrow {
    pointer-events: none;
}

.inv-flow--iso .inv-flow__arrow line,
.inv-flow--iso .inv-flow__arrow polygon {
    filter: drop-shadow(0 0 1.2px rgba(59, 130, 246, 0.45));
}

.inv-flow--iso.inv-flow--offline .inv-flow__arrow,
.inv-flow--iso.inv-flow--connecting .inv-flow__arrow {
    display: none;
}

.inv-flow__footer--live {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-top: 0.15rem;
    padding-left: 0.15rem;
    flex: 0 0 auto;
}

.inv-flow__live-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.28rem 0.7rem;
    border-radius: 999px;
    background: #f1f3f7;
    color: #5e6278;
    font-size: 0.72rem;
    font-weight: 600;
    border: 1px solid #e4e6ef;
}

.inv-flow__live-radio {
    width: 0.7rem;
    height: 0.7rem;
    border-radius: 50%;
    border: 1.5px solid #7e8299;
    box-shadow: inset 0 0 0 2px #fff;
    background: #7e8299;
    flex: 0 0 auto;
}

.inv-flow--flowing .inv-flow__live-radio {
    border-color: #2f80ed;
    background: #2f80ed;
    animation: inv-flow-live-blink 1.8s ease-in-out infinite;
}

@keyframes inv-flow-live-blink {
    0%, 100% { box-shadow: inset 0 0 0 2px #fff, 0 0 0 0 rgba(47, 128, 237, 0.35); }
    50% { box-shadow: inset 0 0 0 2px #fff, 0 0 0 4px rgba(47, 128, 237, 0.12); }
}

.inv-flow__body {
    display: flex;
    align-items: stretch;
    gap: 0.85rem;
    width: 100%;
    box-sizing: border-box;
}

.inv-flow__canvas {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
}

.inv-flow__stage--hub {
    position: relative;
    width: 100%;
    height: clamp(320px, 42vw, 420px);
    margin: 0;
    border-radius: 0.85rem;
    background:
        radial-gradient(ellipse 70% 55% at 50% 42%, rgba(0, 158, 247, 0.04), transparent 70%),
        linear-gradient(180deg, #fafbfc 0%, #fff 55%, #f8f9fb 100%);
    border: 1px solid var(--bs-gray-100, #f4f6fa);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8);
    overflow: hidden;
}

.inv-flow__stats {
    flex: 0 0 270px;
    width: 270px;
    max-width: 270px;
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    justify-content: center;
    min-width: 0;
}

.inv-flow__stat {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.55rem 0.75rem;
    border-radius: 0.65rem;
    border: 1px solid var(--bs-gray-200, #eff2f5);
    background: #fff;
    box-shadow: 0 1px 2px rgba(24, 28, 50, 0.04);
}

.inv-flow__stat-icon {
    flex: 0 0 auto;
    width: 2.15rem;
    height: 2.15rem;
    border-radius: 0.55rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.inv-flow__stat--power .inv-flow__stat-icon {
    background: rgba(0, 158, 247, 0.12);
    color: #009ef7;
}

.inv-flow__stat--daily .inv-flow__stat-icon {
    background: rgba(80, 205, 137, 0.14);
    color: #50cd89;
}

.inv-flow__stat--total .inv-flow__stat-icon {
    background: rgba(114, 57, 234, 0.1);
    color: #7239ea;
}

.inv-flow__stat-body {
    min-width: 0;
    flex: 1 1 auto;
}

.inv-flow__stat-label {
    font-size: 0.65rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: var(--bs-gray-600, #7e8299);
    margin-bottom: 0.1rem;
}

.inv-flow__stat-value {
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.2;
    color: var(--bs-gray-900, #181c32);
    letter-spacing: -0.015em;
}

.inv-flow__stat-hint {
    margin-top: 0.1rem;
    font-size: 0.62rem;
    color: var(--bs-gray-500, #a1a5b7);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.inv-flow__wires {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
    pointer-events: none;
}

.inv-flow__leg {
    fill: none;
    stroke-width: 1.75;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.inv-flow__leg--idle {
    stroke: #e4e6ef;
    stroke-width: 1.4;
    stroke-dasharray: none;
    opacity: 0.85;
}

.inv-flow__leg--offline {
    stroke: #b5b5c3;
    stroke-dasharray: 4 6;
    animation: none;
}

.inv-flow__leg--active,
.inv-flow__leg--static {
    stroke-dasharray: 5 10;
}

.inv-flow__leg--active {
    animation: inv-flow-dash 2.8s linear infinite;
}

.inv-flow__leg--pv.inv-flow__leg--active,
.inv-flow__leg--pv.inv-flow__leg--static { stroke: #ffc700; stroke-width: 2; }

.inv-flow__leg--grid.inv-flow__leg--active,
.inv-flow__leg--grid.inv-flow__leg--static { stroke: #009ef7; stroke-width: 2; }

.inv-flow__leg--load.inv-flow__leg--active,
.inv-flow__leg--load.inv-flow__leg--static { stroke: #50cd89; stroke-width: 2; }

.inv-flow__leg--import.inv-flow__leg--active,
.inv-flow__leg--import.inv-flow__leg--static { stroke: #ffc700; stroke-width: 2; }

.inv-flow__dot {
    filter: drop-shadow(0 0 2px rgba(0, 158, 247, 0.28));
}
.inv-flow__dot--pv { fill: #ffc700; }
.inv-flow__dot--grid { fill: #009ef7; }
.inv-flow__dot--load { fill: #50cd89; }
.inv-flow__dot--import { fill: #ffc700; }

@keyframes inv-flow-dash {
    from { stroke-dashoffset: 15; }
    to { stroke-dashoffset: 0; }
}

.inv-flow__node {
    position: absolute;
    transform: translate(-50%, -50%);
    z-index: 2;
    width: 9.25rem;
    pointer-events: none;
}

.inv-flow__node--inv {
    width: 10rem;
    z-index: 3;
}

.inv-flow__card {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.55rem 0.7rem;
    background: rgba(255, 255, 255, 0.96);
    border: 1px solid var(--bs-gray-200, #eff2f5);
    border-radius: 0.85rem;
    box-shadow: 0 2px 8px rgba(24, 28, 50, 0.05);
}

.inv-flow__card--hub {
    border-color: #e1e3ea;
    box-shadow: 0 4px 14px rgba(24, 28, 50, 0.07);
}

.inv-flow__icon {
    flex: 0 0 auto;
    width: 2.35rem;
    height: 2.35rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 0.6rem;
    background: var(--bs-gray-100, #f4f6fa);
}

.inv-flow__node--pv .inv-flow__icon { background: rgba(255, 199, 0, 0.14); }
.inv-flow__node--grid .inv-flow__icon { background: rgba(0, 158, 247, 0.12); }
.inv-flow__node--load .inv-flow__icon { background: rgba(80, 205, 137, 0.14); }
.inv-flow__node--inv .inv-flow__icon { background: rgba(126, 130, 153, 0.12); }

.inv-flow__card-body {
    min-width: 0;
    flex: 1 1 auto;
    text-align: left;
}

.inv-flow__node--live .inv-flow__card {
    border-color: #e1e3ea;
}

.inv-flow__node--muted {
    opacity: 0.78;
}

.inv-flow__node--muted .inv-flow__card {
    filter: grayscale(0.25);
}

.inv-flow__node--zero {
    opacity: 0.92;
}

.inv-flow__node--zero .inv-flow__node-value {
    color: var(--bs-gray-600, #7e8299);
}

.inv-flow__node-label {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: var(--bs-gray-700, #5e6278);
    line-height: 1.2;
}

.inv-flow__node--pv .inv-flow__node-label { color: #c59a00; }
.inv-flow__node--grid .inv-flow__node-label { color: #009ef7; }
.inv-flow__node--load .inv-flow__node-label { color: #3f8f6a; }
.inv-flow__node--inv .inv-flow__node-label { color: #5e6278; }

.inv-flow__node-value {
    font-size: 0.95rem;
    font-weight: 700;
    line-height: 1.2;
    color: var(--bs-gray-900, #181c32);
    letter-spacing: -0.01em;
    margin-top: 0.05rem;
}

.inv-flow__node-sub {
    font-size: 0.62rem;
    color: var(--bs-gray-500, #a1a5b7);
    margin-top: 0.05rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 7rem;
}

.inv-flow__leg-label {
    position: absolute;
    transform: translate(-50%, -50%);
    z-index: 3;
    padding: 0.12rem 0.45rem;
    border-radius: 999px;
    font-size: 0.65rem;
    font-weight: 600;
    background: rgba(255, 255, 255, 0.96);
    border: 1px solid var(--bs-gray-200, #eff2f5);
    box-shadow: 0 1px 3px rgba(24, 28, 50, 0.05);
    white-space: nowrap;
    pointer-events: none;
}

.inv-flow__leg-label--pv { color: #c59a00; }
.inv-flow__leg-label--grid { color: #009ef7; }
.inv-flow__leg-label--load { color: #50cd89; }
.inv-flow__leg-label--import { color: #b58a00; }
.inv-flow__leg-label--idle {
    color: var(--bs-gray-500, #a1a5b7);
    font-weight: 500;
}

.inv-flow--offline .inv-flow__node { opacity: 0.55; }
.inv-flow--offline .inv-flow__dot { display: none; }

.inv-flow__footer {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem 1rem;
    font-size: 0.68rem;
    color: var(--bs-gray-500, #a1a5b7);
    margin-top: 0.55rem;
}

@media (max-width: 991.98px) {
    .inv-flow__body {
        flex-direction: column;
    }

    .inv-flow__stats {
        flex: 1 1 auto;
        width: 100%;
        max-width: none;
        flex-direction: row;
        flex-wrap: wrap;
    }

    .inv-flow__stat {
        flex: 1 1 calc(33.333% - 0.45rem);
        min-width: 9rem;
    }

    .inv-flow__stage--hub {
        height: 280px;
    }

    .inv-flow__stage--iso {
        height: 220px;
        padding-top: 0.5rem;
    }

    .inv-flow__node {
        width: 8.5rem;
    }

    .inv-flow__node--inv {
        width: 9rem;
    }
}

@media (max-width: 575.98px) {
    .inv-flow__stage--hub {
        height: 260px;
    }

    .inv-flow__stage--iso {
        height: 200px;
        padding-top: 0.35rem;
    }

    .inv-flow--iso .inv-flow__art {
        width: 7rem;
    }

    .inv-flow--iso .inv-flow__art--pv {
        width: 7.75rem;
    }

    .inv-flow--iso .inv-flow__art--grid {
        width: 7.5rem;
    }

    .inv-flow--iso .inv-flow__art--load {
        width: 6.75rem;
    }

    .inv-flow--iso .inv-flow__node-value {
        font-size: 1rem;
    }

    .inv-flow--iso .inv-flow__stem {
        height: 1rem;
    }

    .inv-flow__node {
        width: 7.75rem;
    }

    .inv-flow__node--inv {
        width: 8.25rem;
    }

    .inv-flow__node-value { font-size: 0.85rem; }
    .inv-flow__card { padding: 0.45rem 0.55rem; gap: 0.4rem; }
    .inv-flow__icon { width: 2rem; height: 2rem; }
    .inv-flow__stats { flex-direction: column; }
    .inv-flow__stat { flex: 1 1 auto; min-width: 0; }
    .inv-flow__stat-value { font-size: 0.95rem; }
}

@media (prefers-reduced-motion: reduce) {
    .inv-flow__leg--active { animation: none; }
    .inv-flow--flowing .inv-flow__live-radio { animation: none; }
    .inv-flow__dot,
    .inv-flow__packet,
    .inv-flow__arrow,
    .inv-flow__mover { display: none; }
}

/* Facility detail — hero KPI + chart + emission */
.inv-facility-monitor .inv-kpi-hero {
    position: relative;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    min-height: 4.35rem;
    padding: 0.95rem 0.95rem;
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--bs-gray-200, #eff2f5);
    border-radius: 0.75rem;
    box-shadow: 0 0.25rem 0.75rem rgba(24, 28, 50, 0.04);
}

.inv-facility-monitor .inv-kpi-hero__icon {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.35rem;
    height: 2.35rem;
    border-radius: 0.6rem;
    line-height: 1;
}

.inv-facility-monitor .inv-kpi-hero__icon i {
    font-size: 1.35rem;
    line-height: 1;
}

.inv-facility-monitor .inv-kpi-hero__icon i:before {
    color: inherit;
}

.inv-facility-monitor .inv-kpi-hero--power .inv-kpi-hero__icon {
    color: #d97706;
    background: rgba(217, 119, 6, 0.16);
}

.inv-facility-monitor .inv-kpi-hero--power .inv-kpi-hero__icon i,
.inv-facility-monitor .inv-kpi-hero--power .inv-kpi-hero__icon i:before {
    color: #d97706 !important;
    opacity: 1;
}

.inv-facility-monitor .inv-kpi-hero--daily .inv-kpi-hero__icon {
    color: #009ef7;
    background: rgba(0, 158, 247, 0.12);
}

.inv-facility-monitor .inv-kpi-hero--total .inv-kpi-hero__icon {
    color: #50cd89;
    background: rgba(80, 205, 137, 0.12);
}

.inv-facility-monitor .inv-kpi-hero__body {
    position: relative;
    z-index: 1;
    min-width: 0;
    flex: 1 1 auto;
}

.inv-facility-monitor .inv-kpi-hero__label {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    color: var(--bs-gray-700, #5e6278);
    margin-bottom: 0.15rem;
    line-height: 1.2;
}

.inv-facility-monitor .inv-kpi-hero__value {
    font-size: 1.35rem;
    font-weight: 700;
    line-height: 1.15;
    color: var(--bs-gray-900, #181c32);
    letter-spacing: -0.02em;
}

.inv-facility-monitor .inv-kpi-hero__value--muted {
    font-size: 1rem;
    font-weight: 600;
    color: var(--bs-gray-500, #a1a5b7);
}

.inv-facility-monitor .inv-kpi-hero__hint {
    display: none;
}

.inv-facility-monitor .inv-energy-card {
    border: 1px solid var(--bs-gray-200, #eff2f5);
    border-radius: 0.85rem;
}

.inv-facility-monitor .inv-energy-chart {
    min-height: 320px;
    height: 320px;
}

.inv-facility-monitor .inv-period-tabs .btn {
    min-width: 2.1rem;
}

.inv-facility-monitor .inv-chart-nav__date {
    min-width: 6.25rem;
}

.inv-facility-monitor .inv-chart-empty {
    min-height: 200px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.inv-facility-monitor .inv-emission {
    display: flex;
    flex-direction: column;
    gap: 0;
}

/*
 * Animasyon/grafik satırı → emisyon kartları arası tam 20px.
 * Stack gap zaten 20px; emisyon içindeki .row.g-inv'de gutter-y=20 olursa
 * kolon margin-top eklenip görsel boşluk ~40px olur — sıfırla.
 */
.inv-facility-monitor .inv-emission > .row.g-inv {
    --bs-gutter-y: 0;
    --bs-gutter-x: var(--inv-card-gap, 20px);
}

.inv-facility-monitor .inv-facility-stack > .inv-flow-chart-row + .inv-emission,
.inv-facility-monitor .inv-facility-stack > .row + .inv-emission,
.inv-facility-monitor .inv-facility-stack > .alert + .inv-emission {
    margin-top: 0 !important;
}

@media (max-width: 767.98px) {
    /* Mobilde emisyon kartları alt alta: aralarında 20px */
    .inv-facility-monitor .inv-emission > .row.g-inv {
        --bs-gutter-y: var(--inv-card-gap, 20px);
    }
}

.inv-facility-monitor .inv-emission__title {
    font-weight: 700;
    color: var(--bs-gray-900, #181c32);
}

.inv-facility-monitor .inv-emission__periods {
    margin-bottom: 0;
}

.inv-facility-monitor .inv-emission__period {
    height: 100%;
    padding: 0.95rem 1rem;
    background: #fff;
    border: 1px solid var(--bs-gray-200, #eff2f5);
    border-radius: 0.85rem;
    box-shadow: 0 0.25rem 0.75rem rgba(24, 28, 50, 0.04);
}

.inv-facility-monitor .inv-emission__period--accent {
    border-color: rgba(80, 205, 137, 0.45);
    background: linear-gradient(180deg, rgba(80, 205, 137, 0.08), #fff 55%);
}

.inv-facility-monitor .inv-emission__period-label {
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: var(--bs-gray-500, #a1a5b7);
    margin-bottom: 0.35rem;
}

.inv-facility-monitor .inv-emission__period-value {
    font-size: 1.35rem;
    font-weight: 700;
    line-height: 1.2;
    color: var(--bs-gray-900, #181c32);
    letter-spacing: -0.02em;
}

.inv-facility-monitor .inv-emission__period-unit {
    margin-top: 0.2rem;
    font-size: 0.74rem;
    font-weight: 600;
    color: var(--bs-gray-500, #a1a5b7);
}

.inv-facility-monitor .inv-emission__card {
    position: relative;
    overflow: hidden;
    height: 100%;
    min-height: 5.75rem;
    padding: 0.95rem 1.1rem 1rem;
    background: #fff;
    border: 1px solid var(--bs-gray-200, #eff2f5);
    border-radius: 0.85rem;
    box-shadow: 0 0.25rem 0.75rem rgba(24, 28, 50, 0.04);
}

.inv-facility-monitor .inv-emission__body {
    position: relative;
    z-index: 1;
    max-width: calc(100% - 4.5rem);
}

.inv-facility-monitor .inv-emission__watermark {
    position: absolute;
    right: -0.35rem;
    bottom: -0.55rem;
    z-index: 0;
    line-height: 1;
    pointer-events: none;
    user-select: none;
    opacity: 0.12;
}

.inv-facility-monitor .inv-emission__watermark i {
    font-size: 6.5rem;
    display: block;
}

.inv-facility-monitor .inv-emission__watermark .path1:before,
.inv-facility-monitor .inv-emission__watermark .path2:before,
.inv-facility-monitor .inv-emission__watermark .path3:before,
.inv-facility-monitor .inv-emission__watermark .path4:before,
.inv-facility-monitor .inv-emission__watermark .path5:before {
    opacity: 1;
}

.inv-facility-monitor .inv-emission__card--co2 .inv-emission__watermark {
    color: #1a7a4a;
}

.inv-facility-monitor .inv-emission__card--coal .inv-emission__watermark {
    color: #8a6a3d;
}

.inv-facility-monitor .inv-emission__card--tree .inv-emission__watermark {
    color: #2e8b57;
}

.inv-facility-monitor .inv-emission__icon {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 0.7rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 0.75rem;
}

.inv-facility-monitor .inv-emission__card--co2 .inv-emission__icon {
    color: #1a7a4a;
    background: rgba(80, 205, 137, 0.14);
}

.inv-facility-monitor .inv-emission__card--coal .inv-emission__icon {
    color: #8a6a3d;
    background: rgba(176, 140, 90, 0.14);
}

.inv-facility-monitor .inv-emission__card--tree .inv-emission__icon {
    color: #2e8b57;
    background: rgba(46, 139, 87, 0.12);
}

.inv-facility-monitor .inv-emission__label {
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--bs-gray-700, #5e6278);
    margin-bottom: 0.35rem;
}

.inv-facility-monitor .inv-emission__value {
    display: inline;
    font-size: 1.65rem;
    font-weight: 700;
    color: var(--bs-gray-900, #181c32);
    letter-spacing: -0.02em;
}

.inv-facility-monitor .inv-emission__unit {
    display: inline;
    margin-left: 0.35rem;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--bs-gray-500, #a1a5b7);
}

.inv-facility-monitor .inv-emission__desc {
    margin-top: 0.55rem;
    font-size: 0.74rem;
    line-height: 1.45;
    color: var(--bs-gray-500, #a1a5b7);
}

/* —— Create Facility Wizard (cfw) —— */
.modal-dialog.modal-xxl,
.app-modal-dialog--facility {
    max-width: min(1320px, 97vw);
    width: 97vw;
}

.app-modal-dialog--facility .modal-body {
    max-height: min(78vh, 820px);
}

/* Sayaç / analizör ekleme sihirbazı — tesis sihirbazıyla aynı cfw görünümü, daha dar. */
.app-modal-dialog--device-wizard {
    max-width: min(900px, 96vw);
    width: 96vw;
}

.app-modal-dialog--device-wizard .modal-body {
    max-height: min(74vh, 720px);
}

/* Sihirbaz input / select yazıları: tesis sihirbazının kompakt ölçüsü. */
.app-modal-dialog--device-wizard .form-control,
.app-modal-dialog--device-wizard .form-select,
.app-modal-dialog--facility .form-control.cfw-input,
.app-modal-dialog--facility .form-select.cfw-input {
    min-height: 2.5rem;
    padding-top: 0.45rem;
    padding-bottom: 0.45rem;
    font-size: 0.84rem;
}

.app-modal-dialog--device-wizard textarea.form-control {
    min-height: 4.5rem;
}

.app-modal-dialog--device-wizard .form-control::placeholder {
    font-size: 0.8rem;
}

/* Konum adımında satır içi kat / oda ekleme. */
.cfw-inline-add {
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

.cfw-inline-add .form-control {
    flex: 1 1 auto;
    min-width: 0;
}

/* Dönem günü seçici (1–31 takvim ızgarası). */
.cfw-day-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 2.6rem));
    gap: 0.4rem;
}

.cfw-day {
    height: 2.4rem;
    border: 1px solid var(--cfw-border, #e4e6ef);
    border-radius: 0.6rem;
    background: #fff;
    color: var(--bs-gray-800);
    font-weight: 600;
    font-size: 0.9rem;
    line-height: 1;
    transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.cfw-day:hover:not(:disabled) {
    border-color: var(--cfw-accent, var(--bs-primary));
    color: var(--cfw-accent, var(--bs-primary));
}

.cfw-day--rare {
    border-style: dashed;
}

.cfw-day--on,
.cfw-day--on:hover:not(:disabled) {
    background: var(--cfw-accent, var(--bs-primary));
    border-color: var(--cfw-accent, var(--bs-primary));
    border-style: solid;
    color: #fff;
}

.cfw-day:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

@media (max-width: 767.98px) {
    .app-modal-dialog--device-wizard .cfw-radio-grid,
    .app-modal-dialog--device-wizard .cfw-summary-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

.cfw {
    --cfw-accent: var(--bs-primary);
    --cfw-accent-soft: rgba(var(--bs-primary-rgb), 0.1);
    --cfw-border: #e4e6ef;
    --cfw-surface: #f9fafc;
    --cfw-ink: #181c32;
}

.cfw-stepper {
    display: flex;
    flex-wrap: nowrap;
    align-items: stretch;
    gap: 0;
    margin-bottom: 1.75rem;
    padding: 0.85rem 0.75rem;
    border-radius: 1rem;
    background:
        linear-gradient(180deg, #ffffff 0%, var(--cfw-surface) 100%);
    border: 1px solid var(--cfw-border);
    overflow-x: auto;
}

.cfw-stepper__item {
    display: flex;
    align-items: center;
    flex: 1 1 0;
    min-width: 6.5rem;
}

.cfw-stepper__node {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    min-width: 0;
}

.cfw-stepper__index {
    flex: 0 0 auto;
    width: 2.35rem;
    height: 2.35rem;
    border-radius: 0.75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 0.9rem;
    color: var(--bs-primary);
    background: var(--cfw-accent-soft);
    border: 1px solid transparent;
    transition: transform 0.18s ease, background 0.18s ease, color 0.18s ease, box-shadow 0.18s ease;
}

.cfw-stepper__text {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.cfw-stepper__kicker {
    font-size: 0.68rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--bs-gray-500);
    line-height: 1.1;
}

.cfw-stepper__title {
    font-size: 0.9rem;
    font-weight: 650;
    color: var(--bs-gray-700);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.cfw-stepper__line {
    flex: 1 1 auto;
    height: 2px;
    margin: 0 0.55rem;
    border-radius: 2px;
    background: repeating-linear-gradient(
        90deg,
        var(--bs-gray-300) 0 6px,
        transparent 6px 12px
    );
    min-width: 0.75rem;
}

.cfw-stepper__item--current .cfw-stepper__index {
    color: #fff;
    background: var(--cfw-accent);
    box-shadow: 0 8px 18px rgba(var(--bs-primary-rgb), 0.28);
    transform: scale(1.06);
}

.cfw-stepper__item--current .cfw-stepper__kicker {
    color: var(--cfw-accent);
    font-weight: 700;
}

.cfw-stepper__item--current .cfw-stepper__title {
    color: var(--cfw-ink);
    font-weight: 750;
}

.cfw-stepper__item--done .cfw-stepper__index {
    color: var(--bs-success);
    background: rgba(var(--bs-success-rgb), 0.12);
}

.cfw-stepper__item--done .cfw-stepper__title {
    color: var(--bs-gray-600);
}

.cfw-stepper__item--skipped {
    opacity: 0.45;
}

.cfw-stepper__item--skipped .cfw-stepper__index {
    color: var(--bs-gray-500);
    background: #eef0f4;
}

.cfw-stepper__item--todo .cfw-stepper__title {
    color: var(--bs-gray-600);
}

.cfw-panel {
    border: 1px solid var(--cfw-border);
    border-radius: 1rem;
    background: #fff;
    padding: 1.35rem 1.4rem 1.5rem;
}

.cfw-panel__head {
    margin-bottom: 1.25rem;
    padding-bottom: 0.9rem;
    border-bottom: 1px solid #eef0f4;
}

.cfw-panel__title {
    margin: 0;
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--cfw-ink);
}

.cfw-panel__desc {
    margin: 0.35rem 0 0;
    color: var(--bs-gray-600);
    font-size: 0.9rem;
}

/* Gömülü yapılandırma formları (SCADA / IEC104) — wizard'ın diğer adımlarıyla aynı ölçek. */
.cfw-panel--compact .cfw-panel__title {
    font-size: 1.05rem;
}

.cfw-panel--compact .cfw-panel__desc,
.cfw-panel--compact .alert {
    font-size: 0.8rem;
}

.cfw-panel--compact .alert {
    padding: 0.7rem 0.95rem;
}

.cfw-panel--compact .form-label,
.cfw-panel--compact .form-check-label {
    font-size: 0.8rem;
    margin-bottom: 0.35rem;
}

.cfw-panel--compact .form-control,
.cfw-panel--compact .form-select {
    font-size: 0.82rem;
    padding: 0.5rem 0.8rem;
    min-height: 2.4rem;
}

.cfw-panel--compact .form-text,
.cfw-panel--compact .fs-7 {
    font-size: 0.72rem !important;
}

.cfw-panel--compact h5,
.cfw-panel--compact .h5 {
    font-size: 0.95rem;
}

.cfw-panel--compact .table {
    font-size: 0.8rem;
}

.cfw-panel--compact .btn-sm {
    font-size: 0.8rem;
}

.cfw-input--compact {
    min-height: 2.4rem !important;
    padding-top: 0.5rem !important;
    padding-bottom: 0.5rem !important;
    font-size: 0.82rem !important;
}

.inv-logger-test-icon {
    display: inline-flex;
    flex-shrink: 0;
    line-height: 1;
}

.inv-logger-test-icon--ok i,
.inv-logger-test-icon--fail i,
.inv-logger-test-icon--warn i {
    line-height: 1;
}

.inv-add-choice {
    border: 1px solid #e4e6ef !important;
    border-radius: 0.75rem !important;
}

.inv-add-choice:hover:not(:disabled) {
    border-color: rgba(0, 158, 247, 0.35) !important;
    background: #f8fbff !important;
}

.inv-scan-found-item {
    background: #fff;
    border-color: #e4e6ef !important;
    animation: inv-scan-found-in 0.45s ease both;
}

.inv-scan-check {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    min-height: 0;
    padding: 0;
}

.inv-scan-check__input {
    width: 0.85rem !important;
    height: 0.85rem !important;
    margin-top: 0 !important;
    border-radius: 0.2rem;
}

.inv-scan-add-one {
    font-size: 0.72rem !important;
    padding: 0.2rem 0.55rem !important;
    line-height: 1.25 !important;
}

.inv-scan-found-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.2rem 0.45rem;
    border-radius: 0.35rem;
    font-size: 0.65rem;
    font-weight: 750;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: #009ef7;
    background: rgba(0, 158, 247, 0.12);
    flex-shrink: 0;
}

@keyframes inv-scan-found-in {
    from {
        opacity: 0;
        transform: translateY(0.55rem) scale(0.98);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}
#inv-facility-config .inv-logger-form--compact .cfw-label,
#facility-inverter-setup .inv-logger-form--compact .cfw-label {
    margin-bottom: 0.3rem;
    font-size: 0.75rem;
    font-weight: 600;
    color: #5e6278;
}

#inv-facility-config .inv-logger-form--compact .cfw-input,
#facility-inverter-setup .inv-logger-form--compact .cfw-input {
    min-height: 2.35rem;
    font-size: 0.8125rem;
    border-radius: 0.5rem !important;
    padding-top: 0.4rem;
    padding-bottom: 0.4rem;
}

#inv-facility-config .inv-logger-form--compact .cfw-hint,
#facility-inverter-setup .inv-logger-form--compact .cfw-hint {
    font-size: 0.7rem;
}

#inv-facility-config .inv-logger-form--compact,
#facility-inverter-setup .inv-logger-form--compact {
    padding: 1rem 1.15rem !important;
}

#inv-facility-config #facility-inverter-setup .fw-semibold.fs-7,
#inv-facility-config .text-muted.fs-8 {
    letter-spacing: 0;
}

.cfw-file .cfw-input {
    padding-top: 0.45rem;
}

.cfw-logo-preview {
    display: block;
    margin-top: 0.85rem;
    max-width: 132px;
    max-height: 132px;
    border-radius: 0.85rem;
    border: 1px solid var(--cfw-border);
    object-fit: contain;
    background: #fff;
}

.cfw-subcard {
    border: 1px solid var(--cfw-border);
    border-radius: 0.9rem;
    background: var(--cfw-surface);
    padding: 1.15rem 1.2rem;
}

.cfw-summary-strip {
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem;
    padding: 0.9rem 1rem;
    border-radius: 0.75rem;
    background: #fff;
    border: 1px dashed #d7dbe7;
}

.cfw-module,
.cfw-radio {
    display: flex;
    align-items: flex-start;
    gap: 0.9rem;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 1.05rem 1.1rem;
    border: 1px dashed #cfd5e3;
    border-radius: 0.9rem;
    background: #fff;
    cursor: pointer;
    transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
}

.cfw-module:hover,
.cfw-radio:hover {
    border-color: rgba(var(--bs-primary-rgb), 0.45);
    background: rgba(var(--bs-primary-rgb), 0.03);
}

.cfw-module--on,
.cfw-radio--on {
    border-style: solid;
    border-color: var(--cfw-accent);
    background: var(--cfw-accent-soft);
    box-shadow: 0 8px 18px rgba(var(--bs-primary-rgb), 0.08);
}

.cfw-module--disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

.cfw-module__title {
    display: block;
    font-weight: 700;
    color: var(--cfw-ink);
}

.cfw-module__hint {
    display: block;
    margin-top: 0.25rem;
    font-size: 0.8rem;
    color: var(--bs-gray-600);
}

.cfw-radio-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.85rem;
}

.cfw-radio-grid--3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.cfw-radio--disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

.cfw-radio input {
    margin-top: 0.2rem;
}

.cfw-summary-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.9rem;
}

.cfw-summary-card {
    border: 1px solid var(--cfw-border);
    border-radius: 0.9rem;
    background: var(--cfw-surface);
    padding: 1rem 1.1rem;
}

.cfw-chip-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-top: 0.35rem;
}

.cfw-chip {
    display: inline-flex;
    align-items: center;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 650;
    color: var(--bs-primary);
    background: rgba(var(--bs-primary-rgb), 0.1);
}

.cfw-info-banner {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    padding: 1rem 1.15rem;
    border-radius: 0.9rem;
    border: 1px solid rgba(var(--bs-primary-rgb), 0.18);
    background: linear-gradient(135deg, rgba(var(--bs-primary-rgb), 0.06) 0%, rgba(var(--bs-primary-rgb), 0.02) 100%);
}

.cfw-section-kicker {
    font-size: 0.72rem;
    font-weight: 750;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--bs-gray-600);
}

.cfw-module__tag {
    display: inline-flex;
    margin-top: 0.45rem;
    padding: 0.15rem 0.5rem;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.02em;
}

.cfw-module__tag--module {
    color: #7239ea;
    background: rgba(114, 57, 234, 0.1);
}

.cfw-module__tag--device {
    color: #009ef7;
    background: rgba(0, 158, 247, 0.1);
}

.cfw-resource-preview {
    border: 1px solid var(--cfw-border);
    border-radius: 0.9rem;
    background: var(--cfw-surface);
    padding: 1rem 1.1rem;
}

.cfw-resource-preview__list {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

.cfw-resource-preview__item {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem 1rem;
    padding: 0.75rem 0.85rem;
    border-radius: 0.75rem;
    background: #fff;
    border: 1px solid #eef0f4;
}

.cfw-resource-preview__main {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    min-width: 0;
}

.cfw-resource-preview__name {
    font-weight: 700;
    color: var(--cfw-ink);
    font-size: 0.88rem;
}

.cfw-resource-preview__badge {
    display: inline-flex;
    padding: 0.12rem 0.45rem;
    border-radius: 999px;
    font-size: 0.65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.cfw-resource-preview__badge--module {
    color: #7239ea;
    background: rgba(114, 57, 234, 0.1);
}

.cfw-resource-preview__badge--device {
    color: #009ef7;
    background: rgba(0, 158, 247, 0.1);
}

.cfw-resource-preview__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.75rem;
    font-size: 0.8rem;
    color: var(--bs-gray-600);
}

.cfw-resource-preview__note {
    font-size: 0.75rem;
    color: var(--bs-gray-500);
}

.cfw-resource-preview__empty {
    font-size: 0.85rem;
    padding: 0.35rem 0;
}

.cfw-summary-card--wide {
    grid-column: 1 / -1;
}

.cfw-payment-seg {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    padding: 0.3rem;
    border-radius: 0.75rem;
    background: #eef1f6;
    border: 1px solid #e4e6ef;
    width: 100%;
}

.cfw-payment-seg__btn {
    flex: 1 1 auto;
    min-width: 0;
    border: 0;
    border-radius: 0.55rem;
    padding: 0.45rem 0.65rem;
    font-size: 0.78rem;
    font-weight: 650;
    line-height: 1.2;
    color: #5e6278;
    background: transparent;
    transition: background 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}

.cfw-payment-seg__btn:hover {
    color: var(--bs-primary);
    background: rgba(255, 255, 255, 0.7);
}

.cfw-payment-seg__btn.is-active {
    color: #fff;
    background: var(--bs-primary);
    box-shadow: 0 4px 10px rgba(var(--bs-primary-rgb), 0.25);
}

.cfw-payment-row {
    display: flex;
    flex-wrap: wrap;
    gap: 1.25rem 2rem;
    align-items: flex-start;
}

.cfw-payment-field {
    flex: 0 0 auto;
}

.cfw-payment-seg--narrow {
    display: inline-flex;
    width: auto;
    max-width: 100%;
}

.cfw-payment-seg--narrow .cfw-payment-seg__btn {
    white-space: nowrap;
    padding-left: 0.7rem;
    padding-right: 0.7rem;
}

.cfw-invoice-panel {
    margin-top: 0.25rem;
    padding-top: 0.85rem;
    border-top: 1px dashed #dfe3ee;
}

.cfw-input--compact,
.app-modal-dialog--facility .form-control-solid,
.app-modal-dialog--facility .form-select-solid {
    min-height: 2.5rem;
    padding-top: 0.45rem;
    padding-bottom: 0.45rem;
    font-size: 0.84rem;
}

.cfw-input-group .cfw-input-addon {
    font-size: 0.78rem;
    font-weight: 650;
    color: var(--bs-gray-600);
    background: #f3f6fa;
    border-color: #dfe3ee;
}

.cfw-summary-strip--compact {
    padding: 0.65rem 0.85rem;
}

.cfw-summary-value {
    font-size: 0.82rem;
    font-weight: 650;
    color: var(--cfw-ink);
}

.cfw-save-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.75rem 0.95rem;
    border-radius: 0.75rem;
    border: 1px solid rgba(var(--bs-primary-rgb), 0.18);
    background: linear-gradient(135deg, rgba(var(--bs-primary-rgb), 0.05) 0%, #fff 100%);
}

.cfw-save-bar__hint {
    font-size: 0.78rem;
    color: var(--bs-gray-600);
}

.cfw-connection-status {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    flex: 1;
    min-width: 0;
}

.cfw-connection-status__item {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.78rem;
    line-height: 1.35;
}

.cfw-connection-status__label {
    font-weight: 600;
    color: var(--cfw-ink);
}

.cfw-connection-status__badge {
    display: inline-flex;
    align-items: center;
    padding: 0.12rem 0.45rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 600;
}

.cfw-connection-status__detail {
    flex: 1 1 100%;
    color: var(--bs-gray-600);
    font-size: 0.72rem;
}

.cfw-connection-status__item--success .cfw-connection-status__badge {
    background: rgba(var(--bs-success-rgb), 0.12);
    color: var(--bs-success);
}

.cfw-connection-status__item--failed .cfw-connection-status__badge {
    background: rgba(var(--bs-danger-rgb), 0.12);
    color: var(--bs-danger);
}

.cfw-connection-status__item--warning .cfw-connection-status__badge {
    background: rgba(var(--bs-warning-rgb), 0.15);
    color: #b78103;
}

.cfw-connection-status__item--pending .cfw-connection-status__badge {
    background: rgba(var(--bs-gray-500-rgb, 128, 128, 128), 0.12);
    color: var(--bs-gray-600);
}

.cfw-next-wrap {
    display: inline-flex;
}

.cfw-next-blocker {
    position: absolute;
    inset: 0;
    z-index: 2;
    border: 0;
    background: transparent;
    cursor: not-allowed;
}

@keyframes cfw-shake-keyframes {
    0%, 100% { transform: translateX(0); }
    20% { transform: translateX(-6px); }
    40% { transform: translateX(6px); }
    60% { transform: translateX(-4px); }
    80% { transform: translateX(4px); }
}

.cfw-shake {
    animation: cfw-shake-keyframes 0.45s ease-in-out;
}

.cfw-resource-preview.h-100,
.cfw-subcard.h-100 {
    height: 100%;
}

@media (max-width: 991.98px) {
    .cfw-stepper__kicker {
        display: none;
    }

    .cfw-stepper__title {
        font-size: 0.78rem;
    }

    .cfw-radio-grid,
    .cfw-radio-grid--3,
    .cfw-summary-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767.98px) {
    .cfw-stepper__text {
        display: none;
    }

    .cfw-stepper__item {
        min-width: 0;
        justify-content: center;
    }

    .cfw-stepper__line {
        margin: 0 0.35rem;
    }
}

/* —— İnverter detay (Genel Bakış) —— */
.inv-inverter-detail {
    /* İç bölüm aralıkları menü boşluğundan daha sıkı */
    --inv-detail-gap: 12px;
    --inv-section-gap: 12px;
    display: flex;
    flex-direction: column;
    gap: var(--inv-detail-gap);
    width: 100%;
}

.inv-inverter-detail .inv-detail-hero > .card-body {
    padding-top: 1.15rem !important;
    padding-bottom: 1.15rem !important;
    min-height: 5.25rem;
}

.inv-inverter-detail .inv-detail-hero__avatar {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 0.75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    background: linear-gradient(145deg, rgba(80, 205, 137, 0.18) 0%, rgba(0, 158, 247, 0.12) 100%);
    color: #1f8a53;
    border: 1px solid rgba(80, 205, 137, 0.22);
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.06);
}

.inv-inverter-detail .inv-detail-hero__avatar .ki-outline,
.inv-inverter-detail .inv-detail-hero__avatar .ki-outline:before {
    color: #1f8a53 !important;
    font-size: 1.35rem !important;
    line-height: 1 !important;
}

.inv-inverter-detail .inv-detail-hero__top {
    display: grid;
    grid-template-columns: auto minmax(0, max-content) minmax(0, 1fr);
    grid-template-areas:
        "avatar online ."
        "avatar title  tabs"
        "avatar alarms .";
    column-gap: 0.55rem;
    row-gap: 0.2rem;
    align-items: center;
    width: 100%;
    padding-bottom: 0.85rem;
    border-bottom: 1px solid rgba(15, 23, 42, 0.06);
}

.inv-inverter-detail .inv-detail-hero__avatar {
    grid-area: avatar;
    align-self: start;
}

.inv-inverter-detail .inv-detail-hero__status-above {
    grid-area: online;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
    justify-self: start;
}

.inv-inverter-detail .inv-detail-hero__name {
    grid-area: title;
    justify-self: start;
    align-self: center;
    font-size: 1rem !important;
    font-weight: 600;
    line-height: 1.3;
}

.inv-inverter-detail .inv-detail-hero__status-below {
    grid-area: alarms;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem;
    justify-self: start;
    min-width: 0;
}

.inv-inverter-detail .inv-detail-tabs--row {
    grid-area: tabs;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    justify-self: end;
    align-self: center;
    gap: 0.35rem;
    margin: 0;
    padding: 0;
    border: 0;
    max-width: 100%;
}

@media (max-width: 991.98px) {
    .inv-inverter-detail .inv-detail-hero__top {
        grid-template-columns: auto minmax(0, 1fr);
        grid-template-areas:
            "avatar online"
            "avatar title"
            "alarms alarms"
            "tabs tabs";
    }

    .inv-inverter-detail .inv-detail-tabs--row {
        justify-self: stretch;
        justify-content: flex-start;
    }
}

.inv-inverter-detail .inv-detail-live-btn {
    height: 1.55rem;
    padding: 0 0.5rem;
    font-size: 0.68rem;
    font-weight: 600;
    line-height: 1.2;
}

.inv-inverter-detail .inv-hero-pill .inv-status-dot {
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 50%;
    background: #a1a5b7;
    flex-shrink: 0;
    display: inline-block;
}

.inv-inverter-detail .inv-status-dot--success { background: #50cd89; }
.inv-inverter-detail .inv-status-dot--warning { background: #ffc700; }
.inv-inverter-detail .inv-status-dot--danger { background: #f1416c; }
.inv-inverter-detail .inv-status-dot--secondary { background: #a1a5b7; }
.inv-inverter-detail .inv-status-dot--pulse {
    box-shadow: 0 0 0 0 rgba(80, 205, 137, 0.55);
    animation: inv-dot-pulse 2.4s ease-out infinite;
}

/* Online — yeşil yanıp sönen LED */
.inv-inverter-detail .inv-status-dot--success.inv-status-dot--blink {
    background: #50cd89;
    box-shadow: 0 0 0 0 rgba(80, 205, 137, 0.65);
    animation: inv-online-led-blink 0.95s steps(1, end) infinite;
}

@keyframes inv-online-led-blink {
    0%, 49% {
        opacity: 1;
        box-shadow: 0 0 0 3px rgba(80, 205, 137, 0.35);
    }
    50%, 100% {
        opacity: 0.25;
        box-shadow: 0 0 0 0 rgba(80, 205, 137, 0);
    }
}

@media (prefers-reduced-motion: reduce) {
    .inv-inverter-detail .inv-status-dot--success.inv-status-dot--blink {
        animation: none;
        opacity: 1;
        box-shadow: 0 0 0 2px rgba(80, 205, 137, 0.3);
    }
}

.inv-hero-meta__chip--inline {
    margin-top: 0;
}

.inv-inverter-detail .inv-detail-hero__kpis {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.65rem;
    margin-top: 1.35rem;
    padding-top: 0;
    border-top: 0;
}

.inv-inverter-detail .inv-detail-hero__kpi {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    min-width: 0;
    padding: 0.7rem 0.8rem;
    border-radius: 0.75rem;
    background: linear-gradient(160deg, rgba(248, 250, 252, 0.95) 0%, #ffffff 100%);
    border: 1px solid rgba(15, 23, 42, 0.06);
}

.inv-inverter-detail .inv-detail-hero__kpi-label {
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: #7e8299;
    line-height: 1.2;
    margin-bottom: 0.15rem;
}

.inv-inverter-detail .inv-detail-hero__kpi .inv-detail-kpi__value,
.inv-inverter-detail .inv-detail-hero__kpi .inv-detail-kpi__value .telemetry-flash {
    font-size: 1.15rem !important;
    font-weight: 600 !important;
    line-height: 1.25;
    color: #181c32;
}

@media (max-width: 991.98px) {
    .inv-inverter-detail .inv-detail-hero__kpis {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 575.98px) {
    .inv-inverter-detail .inv-detail-hero__kpis {
        grid-template-columns: 1fr;
    }
}

.inv-inverter-detail .inv-detail-tabs .inv-detail-tab-alarms,
.inv-facility-tab-alarms {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
}

.inv-facility-tab-alarms__icon-wrap {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}

.inv-alarm-led {
    width: 0.55rem;
    height: 0.55rem;
    border-radius: 50%;
    background: #f1416c;
    box-shadow: 0 0 0 0 rgba(241, 65, 108, 0.55);
    flex-shrink: 0;
    display: inline-block;
}

.inv-facility-tab-alarms__icon-wrap .inv-alarm-led {
    position: absolute;
    top: -0.15rem;
    right: -0.28rem;
}

.inv-alarm-led--pulse {
    animation: inv-alarm-led-pulse 1.1s ease-in-out infinite;
}

.inv-inverter-detail .inv-detail-tab-alarms--active:not(.btn-primary) {
    border-color: rgba(241, 65, 108, 0.45) !important;
    color: #f1416c !important;
}

/* Aktif alarm: kırmızı yazı/ikon + kırmızı dış çerçeve, LED yanıp sönsün (dolgu kırmızı değil) */
.inv-facility-tab-alarms--hot.btn-light-danger,
.inv-facility-tab-alarms--hot.app-btn.btn-light-danger {
    color: #f1416c !important;
    background: rgba(241, 65, 108, 0.04) !important;
    border: 1px solid rgba(241, 65, 108, 0.55) !important;
    box-shadow: none !important;
    font-weight: 700;
}

.inv-facility-tab-alarms--hot.btn-light-danger i,
.inv-facility-tab-alarms--hot.btn-light-danger .ki-outline,
.inv-facility-tab-alarms--hot.app-btn.btn-light-danger i,
.inv-facility-tab-alarms--hot.app-btn.btn-light-danger .ki-outline {
    color: #f1416c !important;
}

.inv-facility-tab-alarms--hot .inv-alarm-led {
    background: #f1416c;
    box-shadow: 0 0 0 0 rgba(241, 65, 108, 0.55);
}

.inv-facility-tab-alarms--hot .inv-alarm-led--pulse {
    animation: inv-alarm-led-blink 0.9s steps(1, end) infinite;
}

.inv-facility-tab-alarms--hot-mobile {
    color: #f1416c !important;
    font-weight: 700;
}

@keyframes inv-alarm-led-pulse {
    0%, 100% {
        opacity: 1;
        box-shadow: 0 0 0 0 rgba(241, 65, 108, 0.55);
        transform: scale(1);
    }
    50% {
        opacity: 0.45;
        box-shadow: 0 0 0 6px rgba(241, 65, 108, 0);
        transform: scale(0.92);
    }
}

/* Net yan-sön (fade değil) */
@keyframes inv-alarm-led-blink {
    0%, 49% {
        opacity: 1;
        box-shadow: 0 0 6px 1px rgba(241, 65, 108, 0.65);
    }
    50%, 100% {
        opacity: 0.12;
        box-shadow: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .inv-alarm-led--pulse,
    .inv-facility-tab-alarms--hot .inv-alarm-led--pulse {
        animation: none;
        opacity: 1;
    }
}

.inv-inverter-detail > .card.mb-5,
.inv-inverter-detail > .nav.mb-5 {
    margin-bottom: 0 !important;
}

.inv-inverter-detail .inv-detail-stack {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.inv-inverter-detail .row.g-inv {
    --bs-gutter-x: 12px;
    --bs-gutter-y: 12px;
    margin-bottom: 0;
    align-items: flex-start;
}

.inv-inverter-detail .inv-detail-tabs {
    gap: 0.35rem !important;
    flex: 0 1 auto;
    max-width: 100%;
}

.inv-inverter-detail .inv-detail-tabs .app-btn {
    height: 28px;
    padding: 0 0.65rem;
    font-size: 0.75rem;
    font-weight: 600;
    line-height: 1.2;
}

.inv-inverter-detail .inv-detail-tabs .app-btn.btn-sm {
    height: 28px;
    padding: 0 0.65rem;
    font-size: 0.75rem;
}

/* İnverter detay başlık kartı — tesis kartındaki scada-hero / license-strip ölçüleri. */
.inv-hero-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    max-width: min(100%, 22rem);
    padding: 0.2rem 0.55rem;
    border-radius: 0.4rem;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    line-height: 1.25;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.inv-hero-pill--md {
    padding: 0.3rem 0.7rem;
    border-radius: 0.45rem;
    font-size: 0.78rem;
}

.inv-hero-pill--md .ki-outline {
    font-size: 0.85rem;
}

.inv-hero-pill--lg {
    padding: 0.4rem 0.9rem;
    border-radius: 0.5rem;
    font-size: 0.9rem;
    letter-spacing: 0.02em;
}

.inv-hero-pill--lg .inv-status-dot {
    width: 0.58rem;
    height: 0.58rem;
}

.inv-hero-pill .ki-outline {
    font-size: 0.75rem;
    color: inherit;
}

.inv-hero-pill--success {
    color: #17c653;
    background: rgba(23, 198, 83, 0.12);
}

.inv-hero-pill--danger {
    color: #f1416c;
    background: rgba(241, 65, 108, 0.12);
}

.inv-hero-pill--info {
    color: #009ef7;
    background: rgba(0, 158, 247, 0.12);
}

.inv-hero-pill--neutral {
    color: #5e6278;
    background: #eef0f4;
}

.inv-hero-pill--standby {
    color: #b78103;
    background: rgba(255, 199, 0, 0.18);
}

.inv-standby-banner {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    margin: 0 0 1rem;
    padding: 0.85rem 1rem;
    border-radius: 0.65rem;
    border: 1px solid rgba(183, 129, 3, 0.35);
    background: linear-gradient(135deg, rgba(255, 199, 0, 0.14), rgba(255, 199, 0, 0.05));
    color: #5e4200;
}

.inv-standby-banner__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 2rem;
    height: 2rem;
    border-radius: 999px;
    background: rgba(183, 129, 3, 0.15);
    color: #b78103;
}

.inv-standby-banner__icon .ki-outline {
    font-size: 1.05rem;
}

.inv-standby-banner__title {
    font-weight: 700;
    font-size: 0.95rem;
    line-height: 1.3;
    margin-bottom: 0.15rem;
}

.inv-standby-banner__text {
    font-size: 0.82rem;
    line-height: 1.45;
    color: #6d5410;
}

.inv-standby-banner__hint {
    font-weight: 600;
}

.inv-hero-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.75rem;
}

.inv-hero-meta__chip {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.45rem 0.95rem;
    border-radius: 2.15rem;
    background: rgba(0, 0, 0, 0.035);
    line-height: 1.25;
    white-space: nowrap;
}

.inv-hero-meta__label {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: #a1a5b7;
}

.inv-hero-meta__sep {
    color: #d8d8e5;
    font-size: 0.875rem;
    line-height: 1;
    user-select: none;
}

.inv-hero-meta__value {
    font-size: 0.875rem;
    font-weight: 600;
    color: #3f4254;
    font-variant-numeric: tabular-nums;
}

.inv-history-picker__menu {
    position: absolute;
    right: 0;
    top: calc(100% + 0.35rem);
    z-index: 20;
    min-width: 280px;
    max-width: min(360px, 90vw);
    max-height: 320px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    box-shadow: 0 8px 24px rgba(24, 28, 50, 0.12);
}

.inv-history-picker__list {
    overflow-y: auto;
    max-height: 220px;
    padding-right: 0.15rem;
}

.inv-history-picker__list .form-check-input {
    cursor: pointer;
}

.inv-maint-form__hint {
    display: flex;
    align-items: flex-start;
    gap: 0.35rem;
    padding: 0.75rem 0.9rem;
    border-radius: 0.65rem;
    background: rgba(62, 151, 255, 0.06);
    border: 1px solid rgba(62, 151, 255, 0.18);
}

.inv-maint-form .form-label.required:after {
    content: " *";
    color: #f1416c;
}

.inv-inverter-detail .inv-detail-kpi__icon {
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 0.75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.inv-inverter-detail .inv-detail-kpi__icon--power { background: rgba(62, 151, 255, 0.12); color: #3e97ff; }
.inv-inverter-detail .inv-detail-kpi__icon--daily { background: rgba(80, 205, 137, 0.12); color: #50cd89; }
.inv-inverter-detail .inv-detail-kpi__icon--total { background: rgba(114, 57, 234, 0.1); color: #7239ea; }
.inv-inverter-detail .inv-detail-kpi__icon--dc { background: rgba(255, 199, 0, 0.15); color: #c9a000; }

.inv-inverter-detail .inv-detail-kpi__value,
.inv-inverter-detail .inv-detail-kpi__value .telemetry-flash,
.inv-inverter-detail .inv-detail-flow__value,
.inv-inverter-detail .inv-detail-flow__value .telemetry-flash {
    white-space: nowrap;
    max-width: none;
}

.inv-inverter-detail .inv-detail-kpi__value,
.inv-inverter-detail .inv-detail-kpi__value .telemetry-flash {
    font-size: 1.35rem !important;
    line-height: 1.2;
}

.inv-inverter-detail .inv-detail-panel {
    border: 1px solid var(--bs-gray-200, #eff2f5);
    border-radius: 0.85rem;
    height: auto !important;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
    background: #fff;
}

.inv-inverter-detail .inv-detail-panel > .card-header {
    min-height: 0 !important;
    padding-top: 0.85rem !important;
    padding-bottom: 0.35rem !important;
}

.inv-inverter-detail .inv-detail-panel > .card-body {
    padding-top: 0.35rem !important;
    padding-bottom: 0.85rem !important;
}

.inv-settings-stack {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.inv-settings-card {
    overflow: hidden;
}

.inv-settings-kv {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(11.5rem, 1fr));
    gap: 0.65rem 0.85rem;
}

.inv-settings-kv__item {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    min-width: 0;
    padding: 0.65rem 0.8rem;
    border-radius: 0.65rem;
    background: linear-gradient(160deg, #f8fafc 0%, #fff 100%);
    border: 1px solid rgba(15, 23, 42, 0.06);
}

.inv-settings-kv__label {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #a1a5b7;
    line-height: 1.2;
}

.inv-settings-kv__value {
    font-size: 0.9rem;
    font-weight: 600;
    color: #181c32;
    line-height: 1.3;
    word-break: break-word;
}

.inv-string-config .inv-string-config__toggle {
    color: #181c32 !important;
}

.inv-string-config .inv-string-config__toggle:hover {
    color: var(--bs-primary, #1b84ff) !important;
}

.inv-string-config__table > :not(caption) > * > * {
    padding-top: 0.35rem !important;
    padding-bottom: 0.35rem !important;
}

.inv-string-config__table .form-control,
.inv-string-config__table .form-select {
    min-height: 1.85rem;
    padding-top: 0.2rem;
    padding-bottom: 0.2rem;
    font-size: 0.8rem;
}

.inv-string-config:not(.is-open) > .card-header {
    padding-bottom: 0.85rem !important;
}

.inv-inverter-detail .inv-detail-kpi > .card-body {
    padding-top: 0.75rem !important;
    padding-bottom: 0.75rem !important;
}

.inv-inverter-detail .inv-detail-flow {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding: 0;
    min-height: 0;
}

.inv-inverter-detail .inv-detail-flow--clickable {
    cursor: pointer;
    border-radius: 0.75rem;
    transition: box-shadow 0.15s ease, transform 0.15s ease;
}

.inv-inverter-detail .inv-detail-flow--clickable:hover {
    box-shadow: 0 0 0 1px rgba(62, 151, 255, 0.35);
}

.inv-inverter-detail .inv-detail-flow--clickable:focus-visible {
    outline: 2px solid rgba(62, 151, 255, 0.55);
    outline-offset: 2px;
}

.inv-inverter-detail .inv-detail-flow__node {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    padding: 0.85rem 1rem;
    border: 1px solid var(--bs-gray-200, #eff2f5);
    border-radius: 0.75rem;
    background: #fff;
}

.inv-inverter-detail .inv-detail-flow__node--active {
    border-color: rgba(62, 151, 255, 0.55);
    background: linear-gradient(180deg, rgba(62, 151, 255, 0.08), #fff 60%);
    border-style: dashed;
}

.inv-inverter-detail .inv-detail-flow__icon {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 0.65rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.inv-inverter-detail .inv-detail-flow__icon--pv { background: rgba(255, 199, 0, 0.15); color: #c9a000; }
.inv-inverter-detail .inv-detail-flow__icon--inv { background: rgba(62, 151, 255, 0.12); color: #3e97ff; }
.inv-inverter-detail .inv-detail-flow__icon--grid { background: rgba(80, 205, 137, 0.12); color: #50cd89; }

.inv-inverter-detail .inv-detail-flow__label {
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--bs-gray-500, #a1a5b7);
}

.inv-inverter-detail .inv-detail-flow__name {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--bs-gray-700, #5e6278);
}

.inv-inverter-detail .inv-detail-flow__value {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--bs-gray-900, #181c32);
    white-space: nowrap;
}

.inv-inverter-detail .inv-detail-flow__arrow {
    text-align: center;
    line-height: 1;
}

.inv-inverter-detail .inv-detail-ac {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.inv-inverter-detail .inv-detail-ac__title {
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--bs-gray-700, #5e6278);
    margin-bottom: 0.5rem;
}

.inv-inverter-detail .inv-detail-ac__phases {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.5rem;
}

.inv-inverter-detail .inv-detail-ac__phase {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.35rem;
    padding: 0.85rem 0.5rem;
    border-radius: 0.65rem;
    background: var(--bs-gray-100, #f5f8fa);
    border: 1px solid var(--bs-gray-200, #eff2f5);
}

.inv-inverter-detail .inv-detail-ac__phase > span {
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--bs-gray-500, #a1a5b7);
}

.inv-inverter-detail .inv-detail-ac__reading {
    display: inline-flex;
    align-items: baseline;
    justify-content: center;
    gap: 0.3rem;
    flex-wrap: nowrap;
    white-space: nowrap;
}

.inv-inverter-detail .inv-detail-ac__reading strong,
.inv-inverter-detail .inv-detail-ac__reading .telemetry-flash {
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--bs-gray-900, #181c32);
    line-height: 1.15;
    white-space: nowrap;
}

.inv-inverter-detail .inv-detail-ac__reading small {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--bs-gray-600, #7e8299);
}

.inv-inverter-detail .inv-detail-ac__extra .inv-detail-ac__reading strong,
.inv-inverter-detail .inv-detail-ac__extra .inv-detail-ac__reading .telemetry-flash {
    font-size: 1.05rem;
}

.inv-inverter-detail .inv-detail-ac__extra .inv-detail-ac__reading small {
    font-size: 0.75rem;
}

.inv-inverter-detail .inv-detail-ac__extras {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.5rem;
}

.inv-inverter-detail .inv-detail-ac__extra {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.25rem;
    padding: 0.7rem 0.75rem;
    border-radius: 0.65rem;
    background: var(--bs-gray-100, #f5f8fa);
    border: 1px solid var(--bs-gray-200, #eff2f5);
}

.inv-inverter-detail .inv-detail-ac__extra > span {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--bs-gray-500, #a1a5b7);
}

.inv-inverter-detail .inv-detail-emission {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

.inv-inverter-detail .inv-detail-emission__item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.7rem 0.85rem;
    border-radius: 0.75rem;
    border: 1px solid var(--bs-gray-200, #eff2f5);
    background: #fff;
}

.inv-inverter-detail .inv-detail-emission__item--co2 { border-color: rgba(62, 151, 255, 0.35); background: linear-gradient(90deg, rgba(62, 151, 255, 0.06), #fff 70%); }
.inv-inverter-detail .inv-detail-emission__item--coal { border-color: rgba(126, 130, 153, 0.35); background: linear-gradient(90deg, rgba(126, 130, 153, 0.06), #fff 70%); }
.inv-inverter-detail .inv-detail-emission__item--tree { border-color: rgba(80, 205, 137, 0.4); background: linear-gradient(90deg, rgba(80, 205, 137, 0.08), #fff 70%); }

.inv-inverter-detail .inv-detail-emission__icon {
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 0.55rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.04);
    flex-shrink: 0;
}

.inv-inverter-detail .inv-detail-emission__label {
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--bs-gray-500, #a1a5b7);
}

.inv-inverter-detail .inv-detail-emission__value {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--bs-gray-900, #181c32);
}

.inv-inverter-detail .inv-detail-emission__value small {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--bs-gray-500, #a1a5b7);
}

.inv-inverter-detail .inv-detail-meta {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    font-size: 0.78rem;
    color: var(--bs-gray-600, #7e8299);
    border-top: 1px solid var(--bs-gray-200, #eff2f5);
    padding-top: 0.85rem;
}

.inv-inverter-detail .inv-detail-mppt-table {
    --bs-table-bg: transparent;
    min-width: 64rem;
    border-collapse: separate;
    border-spacing: 0;
}

.inv-inverter-detail .inv-detail-mppt-table thead th {
    border-bottom-width: 1px;
    padding-top: 0.4rem;
    padding-bottom: 0.4rem;
    white-space: nowrap;
    vertical-align: middle;
}

.inv-inverter-detail .inv-detail-mppt-table__sub {
    font-size: 0.72rem !important;
    font-weight: 600 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    color: var(--bs-gray-600, #7e8299) !important;
    padding-top: 0.4rem !important;
    padding-bottom: 0.4rem !important;
    vertical-align: middle !important;
    line-height: 1.2;
}

.inv-inverter-detail .inv-detail-mppt-table tbody td,
.inv-inverter-detail .inv-detail-mppt-table tbody th {
    padding-top: 0.65rem;
    padding-bottom: 0.65rem;
    vertical-align: middle;
}

.inv-inverter-detail .inv-detail-mppt-table__metric {
    font-size: 0.8rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--bs-gray-600, #7e8299);
    white-space: nowrap;
    width: 1%;
}

.inv-inverter-detail .inv-detail-mppt-table__value {
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--bs-gray-900, #181c32);
    white-space: nowrap;
}

.inv-inverter-detail .inv-detail-mppt-table__value strong,
.inv-inverter-detail .inv-detail-mppt-table__value .telemetry-flash {
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--bs-gray-900, #181c32);
}

.inv-inverter-detail .inv-detail-mppt-table__value small {
    margin-left: 0.15rem;
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--bs-gray-500, #a1a5b7);
}

.inv-inverter-detail .inv-detail-mppt-table__value--sum {
    font-size: 0.88rem;
    background: rgba(var(--bs-primary-rgb), 0.04);
}

.inv-inverter-detail .inv-detail-mppt-table__value--sum strong,
.inv-inverter-detail .inv-detail-mppt-table__value--sum .telemetry-flash {
    font-size: 0.9rem;
}

.inv-inverter-detail .inv-detail-mppt-table__mppt-sum td,
.inv-inverter-detail .inv-detail-mppt-table__mppt-sum th {
    border-top: 1px solid var(--bs-gray-300, #e4e6ef);
}

.inv-inverter-detail .inv-detail-mppt-table__group-end {
    box-shadow: inset -1px 0 0 var(--bs-gray-300, #e4e6ef);
}

.inv-inverter-detail .inv-detail-mppt-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(11.5rem, 1fr));
    gap: 0.75rem;
}

.inv-inverter-detail .inv-detail-mppt-card {
    border: 1px solid var(--bs-gray-200, #eff2f5);
    border-radius: 0.75rem;
    background: #fff;
    padding: 0.75rem 0.85rem 0.85rem;
    min-width: 0;
}

.inv-inverter-detail .inv-detail-mppt-card__head {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--bs-gray-800, #3f4254);
    margin-bottom: 0.55rem;
}

.inv-inverter-detail .inv-detail-mppt-card__totals {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding-bottom: 0.55rem;
    margin-bottom: 0.55rem;
    border-bottom: 1px solid var(--bs-gray-200, #eff2f5);
}

.inv-inverter-detail .inv-detail-mppt-card__reading {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.5rem;
}

.inv-inverter-detail .inv-detail-mppt-card__lbl {
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--bs-gray-500, #a1a5b7);
}

.inv-inverter-detail .inv-detail-mppt-card__val {
    display: inline-flex;
    align-items: baseline;
    gap: 0.25rem;
    white-space: nowrap;
}

.inv-inverter-detail .inv-detail-mppt-card__val strong {
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--bs-gray-900, #181c32);
    line-height: 1.15;
}

.inv-inverter-detail .inv-detail-mppt-card__val small {
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--bs-gray-500, #a1a5b7);
}

.inv-inverter-detail .inv-detail-mppt-card__val--sm strong {
    font-size: 0.95rem;
}

.inv-inverter-detail .inv-detail-mppt-card__val--sm small {
    font-size: 0.75rem;
}

.inv-inverter-detail .inv-detail-mppt-card__strings {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.45rem;
}

.inv-inverter-detail .inv-detail-mppt-string {
    background: var(--bs-gray-100, #f5f8fa);
    border-radius: 0.5rem;
    padding: 0.45rem 0.5rem;
    min-width: 0;
}

.inv-inverter-detail .inv-detail-mppt-string__title {
    font-size: 0.72rem;
    font-weight: 700;
    color: var(--bs-gray-700, #5e6278);
    margin-bottom: 0.35rem;
}

.inv-inverter-detail .inv-detail-mppt-string__row {
    display: flex;
    flex-direction: column;
    gap: 0.05rem;
    margin-bottom: 0.3rem;
}

.inv-inverter-detail .inv-detail-mppt-string__row:last-child {
    margin-bottom: 0;
}

.inv-inverter-detail .inv-detail-mppt {
    height: 100%;
    padding: 0.85rem 0.95rem;
    border: 1px solid var(--bs-gray-200, #eff2f5);
    border-radius: 0.75rem;
    background: #fff;
}

.inv-inverter-detail .inv-detail-mppt__head {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    margin-bottom: 0.65rem;
    font-size: 0.85rem;
}

.inv-inverter-detail .inv-detail-mppt__metrics {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.35rem;
}

.inv-inverter-detail .inv-detail-mppt__label {
    font-size: 0.65rem;
    font-weight: 600;
    text-transform: uppercase;
    color: var(--bs-gray-500, #a1a5b7);
}

.inv-inverter-detail .inv-detail-mppt__value {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--bs-gray-900, #181c32);
}

.inv-inverter-detail .inv-detail-mppt__value small {
    font-size: 0.68rem;
    font-weight: 600;
    color: var(--bs-gray-500, #a1a5b7);
}

/* —— Canlı telemetry değişim sinyali (yeşil flash) —— */
.telemetry-flash {
    display: inline-block;
    max-width: 100%;
    border-radius: 0.35rem;
    padding: 0.05rem 0.2rem;
    margin: -0.05rem -0.2rem;
    transition: background-color 0.15s ease;
}

@keyframes telemetry-value-flash {
    0% { background-color: transparent; box-shadow: none; }
    12% { background-color: rgba(80, 205, 137, 0.45); box-shadow: 0 0 0 1px rgba(80, 205, 137, 0.3); }
    55% { background-color: rgba(80, 205, 137, 0.22); }
    100% { background-color: transparent; box-shadow: none; }
}

.telemetry-value-changed {
    animation: telemetry-value-flash 0.85s ease-out;
}

.inv-inverter-detail .inv-detail-mppt-table .telemetry-value-changed {
    animation: telemetry-value-flash 0.9s ease-out;
}

@media (prefers-reduced-motion: reduce) {
    .telemetry-value-changed {
        animation: none;
        background-color: rgba(80, 205, 137, 0.22);
    }
}

/* Soluna Performans — UX sections */
.soluna-performance-page {
    --soluna-section-gap: var(--app-page-gap, 20px);
}

.soluna-performance-page.inv-section-stack {
    gap: var(--soluna-section-gap, var(--app-page-gap, 20px));
}

.soluna-performance-page .soluna-section--performance {
    border: 1px solid var(--bs-gray-200, #eff2f5);
}

.soluna-performance-page .soluna-section--performance > .card-header {
    padding-top: 1rem !important;
    padding-bottom: 0 !important;
}

.soluna-performance-page .soluna-section--performance > .card-body {
    padding-top: 0.75rem !important;
}

.soluna-performance-page .soluna-perf-metrics {
    --bs-gutter-x: 0.75rem;
    --bs-gutter-y: 0.75rem;
}

.soluna-performance-page .soluna-metric {
    padding: 0.7rem 0.85rem;
    border-radius: 0.65rem;
    background: #f9fafb;
    border: 1px solid var(--bs-gray-200, #eff2f5);
    min-height: 5.25rem;
}

.soluna-performance-page .soluna-metric--score {
    background: rgba(0, 158, 247, 0.06);
    border-color: rgba(0, 158, 247, 0.18);
}

.soluna-performance-page .soluna-metric__label {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: var(--bs-gray-500, #a1a5b7);
    margin-bottom: 0.3rem;
}

.soluna-performance-page .soluna-metric__value {
    font-size: 1.35rem;
    font-weight: 700;
    line-height: 1.2;
    word-break: break-word;
}

.soluna-performance-page .soluna-metric__hint {
    margin-top: 0.25rem;
    font-size: 0.72rem;
    color: var(--bs-gray-500, #a1a5b7);
    line-height: 1.3;
}

.soluna-performance-page .soluna-section--alerts .card > .card-header {
    padding-top: 0.85rem !important;
}

.soluna-performance-page .soluna-section--alerts .card > .card-body {
    padding-top: 0.35rem !important;
}

.soluna-performance-page .soluna-section--alerts .row.g-4 {
    --bs-gutter-y: 0.75rem;
}

.soluna-performance-page .soluna-perf-note {
    display: flex;
    align-items: flex-start;
    gap: 0.25rem;
    padding: 0.85rem 1rem;
    border-radius: 0.65rem;
    background: rgba(245, 248, 250, 0.95);
    border: 1px solid var(--bs-gray-200, #eff2f5);
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--bs-gray-800, #3f4254);
}

.soluna-performance-page .soluna-explain {
    border: 1px solid var(--bs-gray-200, #eff2f5);
    border-radius: 0.55rem;
    background: #fff;
    padding: 0.55rem 0.75rem;
}

.soluna-performance-page .soluna-explain__summary {
    cursor: pointer;
    font-weight: 600;
    font-size: 0.85rem;
    color: var(--bs-gray-800, #3f4254);
    list-style: none;
}

.soluna-performance-page .soluna-explain__summary::-webkit-details-marker {
    display: none;
}

.soluna-performance-page .soluna-explain__summary::before {
    content: "▸";
    display: inline-block;
    margin-right: 0.35rem;
    color: var(--bs-gray-500, #a1a5b7);
}

.soluna-performance-page .soluna-explain[open] .soluna-explain__summary::before {
    content: "▾";
}

.soluna-performance-page .soluna-explain__body {
    margin-top: 0.5rem;
    padding-top: 0.5rem;
    border-top: 1px dashed var(--bs-gray-200, #eff2f5);
}

.soluna-performance-page .soluna-explain__lead {
    margin: 0 0 0.55rem;
    font-size: 0.78rem;
    line-height: 1.35;
    color: #5e6278;
}

.soluna-performance-page .soluna-explain__kv {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.2rem 0.75rem;
    margin: 0;
}

@media (min-width: 768px) {
    .soluna-performance-page .soluna-explain__kv {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

.soluna-performance-page .soluna-explain__kv-row {
    display: flex;
    flex-direction: column;
    gap: 0.05rem;
    min-width: 0;
    padding: 0.25rem 0;
}

.soluna-performance-page .soluna-explain__kv-row--wide {
    grid-column: 1 / -1;
}

.soluna-performance-page .soluna-explain__kv-row dt {
    margin: 0;
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: #a1a5b7;
    line-height: 1.2;
}

.soluna-performance-page .soluna-explain__kv-row dd {
    margin: 0;
    font-size: 0.8rem;
    font-weight: 600;
    color: #181c32;
    line-height: 1.25;
}

.soluna-performance-page .soluna-explain__weather {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.45rem 1rem;
    margin-top: 0.55rem;
    padding-top: 0.5rem;
    border-top: 1px dashed var(--bs-gray-200, #eff2f5);
}

@media (min-width: 576px) {
    .soluna-performance-page .soluna-explain__weather {
        grid-template-columns: 1fr 1fr;
    }
}

.soluna-performance-page .soluna-explain__weather-title {
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: #a1a5b7;
    margin-bottom: 0.15rem;
}

.soluna-performance-page .soluna-explain__weather-line {
    font-size: 0.75rem;
    font-weight: 550;
    color: #3f4254;
    line-height: 1.3;
}

.soluna-performance-page .soluna-perf-note--hint {
    background: rgba(255, 199, 0, 0.08);
    border: 1px solid rgba(255, 199, 0, 0.28);
    border-radius: 0.55rem;
    padding: 0.55rem 0.75rem;
    font-size: 0.8rem;
    font-weight: 600;
    color: #7a5b00;
}

.soluna-performance-page .soluna-soiling-status {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.55rem 0.9rem;
    border-radius: 0.65rem;
    background: #f9fafb;
    border: 1px solid var(--bs-gray-200, #eff2f5);
}

.soluna-performance-page .soluna-soiling-status__dot {
    width: 0.7rem;
    height: 0.7rem;
    border-radius: 50%;
    background: #a1a5b7;
    flex-shrink: 0;
}

.soluna-performance-page .soluna-soiling-status__label {
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--bs-gray-800, #3f4254);
}

.soluna-performance-page .soluna-soiling-status--success {
    background: rgba(80, 205, 137, 0.1);
    border-color: rgba(80, 205, 137, 0.25);
}

.soluna-performance-page .soluna-soiling-status--success .soluna-soiling-status__dot {
    background: #50cd89;
}

.soluna-performance-page .soluna-soiling-status--warning {
    background: rgba(255, 199, 0, 0.12);
    border-color: rgba(255, 199, 0, 0.3);
}

.soluna-performance-page .soluna-soiling-status--warning .soluna-soiling-status__dot {
    background: #ffc700;
}

.soluna-performance-page .soluna-soiling-status--danger {
    background: rgba(241, 65, 108, 0.1);
    border-color: rgba(241, 65, 108, 0.25);
}

.soluna-performance-page .soluna-soiling-status--danger .soluna-soiling-status__dot {
    background: #f1416c;
}

.soluna-performance-page .soluna-soiling-status--muted .soluna-soiling-status__dot {
    background: #a1a5b7;
}

.soluna-performance-page .soluna-section--weather > .card,
.soluna-performance-page .soluna-section--alerts > .card,
.soluna-performance-page .soluna-section--summary > .card {
    box-shadow: 0 0.25rem 0.75rem rgba(24, 28, 50, 0.04);
}

@media (max-width: 991.98px) {
    .soluna-performance-page .soluna-metric__value {
        font-size: 1.3rem;
    }
}

@media (max-width: 575.98px) {
    .soluna-performance-page .soluna-metric {
        min-height: 6.5rem;
        padding: 0.85rem 0.9rem;
    }

    .soluna-performance-page .soluna-metric__value {
        font-size: 1.2rem;
    }
}

/* ---- USER MANAGEMENT ---- */
.users-page__shell > .card-header {
    min-height: auto;
}

.users-page__mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 0.85rem;
    background: rgba(0, 158, 247, 0.08);
    flex-shrink: 0;
}

.users-page__tabs {
    border-bottom: 1px solid #eff2f5;
}

.users-page__tabs .nav-link {
    border: 0;
    background: transparent;
    color: #7e8299;
}

.users-page__kpi-strip {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(148px, 1fr));
    gap: 0.75rem;
}

.users-page__kpi {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.25rem;
    text-align: left;
    border: 1px solid #eef0f4;
    border-radius: 0.85rem;
    background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
    padding: 0.9rem 1rem;
    box-shadow: 0 4px 14px rgba(24, 28, 50, 0.04);
    transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}

.users-page__kpi:hover {
    border-color: #d8dce7;
}

.users-page__kpi.is-active {
    box-shadow: 0 0 0 1px rgba(0, 158, 247, 0.25);
    border-color: #009ef7;
}

.users-page__kpi-label {
    color: #a1a5b7;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.users-page__kpi-value {
    color: #181c32;
    font-size: 1.55rem;
    font-weight: 800;
    line-height: 1.1;
    font-variant-numeric: tabular-nums;
}

.users-page__kpi--primary .users-page__kpi-value { color: #009ef7; }
.users-page__kpi--info .users-page__kpi-value { color: #50cdcf; }
.users-page__kpi--success .users-page__kpi-value { color: #50cd89; }
.users-page__kpi--warning .users-page__kpi-value { color: #ffc700; }
.users-page__kpi--danger .users-page__kpi-value { color: #f1416c; }

.users-page__panel {
    border: 1px solid #eef0f4;
    border-radius: 0.85rem;
    background: #fff;
    overflow: hidden;
}

.users-page__panel-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.65rem 1rem;
    padding: 1rem 1.15rem;
    border-bottom: 1px solid #eef0f4;
    background: #fafbfc;
}

.users-page__panel-title {
    font-size: 0.95rem;
    font-weight: 700;
    color: #181c32;
    line-height: 1.3;
}

.users-page__panel-desc {
    margin-top: 0.2rem;
    font-size: 0.78rem;
    color: #7e8299;
    line-height: 1.45;
    max-width: 42rem;
}

.users-page__table thead th {
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: #7e8299;
    background: #fff;
    padding-top: 0.75rem !important;
    padding-bottom: 0.75rem !important;
}

.users-page__table th:first-child,
.users-page__table td:first-child {
    padding-left: 1.15rem !important;
}

.users-page__table th:last-child,
.users-page__table td:last-child {
    padding-right: 1.15rem !important;
}

.users-page__field-table th,
.users-page__field-table td {
    vertical-align: middle;
}

.users-page__phone {
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.02em;
    white-space: nowrap;
}

@media (max-width: 575.98px) {
    .users-page__kpi-strip {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

[data-bs-theme=dark] .users-page__mark {
    background: rgba(0, 158, 247, 0.16);
}

[data-bs-theme=dark] .users-page__kpi,
[data-bs-theme=dark] .users-page__panel,
[data-bs-theme=dark] .users-page__panel-head {
    background: #1e1e2d;
    border-color: #2b2b40;
}

[data-bs-theme=dark] .users-page__kpi-value,
[data-bs-theme=dark] .users-page__panel-title {
    color: #e4e6ef;
}

[data-bs-theme=dark] .users-page__tabs {
    border-bottom-color: #2b2b40;
}

/* ── Bayi Yönetimi ── */
.dealers-page__shell > .card-header {
    min-height: auto;
}

.dealers-page__mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 0.85rem;
    background: rgba(0, 158, 247, 0.08);
    flex-shrink: 0;
}

.dealers-page__kpi-strip {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(132px, 1fr));
    gap: 0.65rem;
}

.dealers-page__kpi {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.2rem;
    padding: 0.85rem 1rem;
    border: 1px solid #eef0f4;
    border-radius: 0.85rem;
    background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
}

.dealers-page__kpi-label {
    color: #a1a5b7;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.dealers-page__kpi-value {
    color: #181c32;
    font-size: 1.35rem;
    font-weight: 800;
    line-height: 1.1;
    font-variant-numeric: tabular-nums;
}

.dealers-page__kpi--primary .dealers-page__kpi-value { color: #009ef7; }
.dealers-page__kpi--info .dealers-page__kpi-value { color: #50cdcf; }
.dealers-page__kpi--success .dealers-page__kpi-value { color: #50cd89; }
.dealers-page__kpi--warning .dealers-page__kpi-value { color: #ffc700; }
.dealers-page__kpi--danger .dealers-page__kpi-value { color: #f1416c; }

.dealers-page__panel {
    border: 1px solid #eef0f4;
    border-radius: 0.85rem;
    background: #fff;
    overflow: hidden;
}

.dealers-page__panel-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.65rem 1rem;
    padding: 0.9rem 1.1rem;
    border-bottom: 1px solid #eef0f4;
    background: #fafbfc;
}

.dealers-page__panel-title {
    font-size: 0.9rem;
    font-weight: 700;
    color: #181c32;
    line-height: 1.3;
}

.dealers-page__panel-desc {
    margin-top: 0.15rem;
    font-size: 0.75rem;
    color: #7e8299;
    line-height: 1.4;
}

.dealers-page__filters {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.55rem;
    padding: 0.75rem 1.1rem;
    border-bottom: 1px solid #eef0f4;
    background: #fff;
}

.dealers-page__search {
    position: relative;
    flex: 1 1 16rem;
    min-width: 13rem;
}

.dealers-page__search-icon {
    position: absolute;
    left: 0.75rem;
    top: 50%;
    transform: translateY(-50%);
    color: #a1a5b7;
    font-size: 1rem;
    pointer-events: none;
}

.dealers-page__search .form-control {
    padding-left: 2.15rem;
    min-height: 2.15rem;
    font-size: 0.8rem !important;
    border-radius: 0.55rem;
}

.dealers-page__filter-select {
    flex: 0 1 8.5rem;
    min-width: 7.5rem;
    min-height: 2.15rem;
    font-size: 0.8rem !important;
    border-radius: 0.55rem;
}

.dealers-page__clear {
    min-height: 2.15rem;
    font-size: 0.8rem;
    border-radius: 0.55rem;
}

.dealers-page__table thead th {
    font-size: 0.68rem;
    font-weight: 650;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #7e8299;
    background: #fff;
    padding-top: 0.7rem !important;
    padding-bottom: 0.7rem !important;
    border-bottom: 1px solid #eff2f5;
}

.dealers-page__table tbody td {
    font-size: 0.8rem;
    padding-top: 0.75rem !important;
    padding-bottom: 0.75rem !important;
    vertical-align: middle;
}

.dealers-page__table th:first-child,
.dealers-page__table td:first-child {
    padding-left: 1.1rem !important;
}

.dealers-page__table th:last-child,
.dealers-page__table td:last-child {
    padding-right: 1.1rem !important;
}

.dealers-page__table tbody tr:hover {
    background: #f9fafc;
}

.dealers-page__avatar img {
    object-fit: cover;
    width: 35px;
    height: 35px;
}

.dealers-page__name {
    font-size: 0.84rem;
    font-weight: 700;
    color: #181c32;
    text-decoration: none;
    line-height: 1.25;
}

.dealers-page__name:hover {
    color: #009ef7;
}

.dealers-page__phone {
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.01em;
    white-space: nowrap;
}

.dealers-page__count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.75rem;
    padding: 0.2rem 0.45rem;
    border-radius: 0.45rem;
    background: #f1f3f8;
    color: #3f4254;
    font-size: 0.78rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.dealers-page__table .btn-sm {
    font-size: 0.75rem;
    padding: 0.3rem 0.65rem;
}

@media (max-width: 575.98px) {
    .dealers-page__kpi-strip {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

[data-bs-theme=dark] .dealers-page__mark {
    background: rgba(0, 158, 247, 0.16);
}

[data-bs-theme=dark] .dealers-page__kpi,
[data-bs-theme=dark] .dealers-page__panel,
[data-bs-theme=dark] .dealers-page__panel-head,
[data-bs-theme=dark] .dealers-page__filters {
    background: #1e1e2d;
    border-color: #2b2b40;
}

[data-bs-theme=dark] .dealers-page__kpi-value,
[data-bs-theme=dark] .dealers-page__panel-title,
[data-bs-theme=dark] .dealers-page__name {
    color: #e4e6ef;
}

[data-bs-theme=dark] .dealers-page__table tbody tr:hover {
    background: #1a1a27;
}

[data-bs-theme=dark] .dealers-page__count {
    background: #2b2b40;
    color: #e4e6ef;
}

/* ── Destek Talepleri ── */
.support-page__shell > .card-header { min-height: auto; }

.support-page__mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 0.85rem;
    background: rgba(0, 158, 247, 0.08);
    flex-shrink: 0;
}

.support-page__kpi-strip {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    gap: 0.65rem;
}

.support-page__kpi {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    padding: 0.85rem 1rem;
    border: 1px solid #eef0f4;
    border-radius: 0.85rem;
    background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
}

.support-page__kpi-label {
    color: #a1a5b7;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.support-page__kpi-value {
    font-size: 1.35rem;
    font-weight: 800;
    line-height: 1.1;
    font-variant-numeric: tabular-nums;
    color: #181c32;
}

.support-page__kpi--primary .support-page__kpi-value { color: #009ef7; }
.support-page__kpi--info .support-page__kpi-value { color: #7239ea; }
.support-page__kpi--success .support-page__kpi-value { color: #50cd89; }
.support-page__kpi--warning .support-page__kpi-value { color: #ffc700; }
.support-page__kpi--danger .support-page__kpi-value { color: #f1416c; }
.support-page__kpi--muted .support-page__kpi-value { color: #7e8299; }

.support-page__panel {
    border: 1px solid #eef0f4;
    border-radius: 0.85rem;
    background: #fff;
    overflow: hidden;
}

.support-page__panel-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.65rem 1rem;
    padding: 0.9rem 1.1rem;
    border-bottom: 1px solid #eef0f4;
    background: #fafbfc;
}

.support-page__panel-title {
    font-size: 0.9rem;
    font-weight: 700;
    color: #181c32;
}

.support-page__panel-desc {
    margin-top: 0.15rem;
    font-size: 0.75rem;
    color: #7e8299;
}

.support-page__filters {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.55rem;
    padding: 0.75rem 1.1rem;
    border-bottom: 1px solid #eef0f4;
}

.support-page__search {
    position: relative;
    flex: 1 1 16rem;
    min-width: 13rem;
}

.support-page__search-icon {
    position: absolute;
    left: 0.75rem;
    top: 50%;
    transform: translateY(-50%);
    color: #a1a5b7;
    font-size: 1rem;
    pointer-events: none;
}

.support-page__search .form-control {
    padding-left: 2.15rem;
    min-height: 2.15rem;
    font-size: 0.8rem !important;
    border-radius: 0.55rem;
}

.support-page__filter-select,
.support-page__clear {
    min-height: 2.15rem;
    font-size: 0.8rem !important;
    border-radius: 0.55rem;
}

.support-page__filter-select {
    flex: 0 1 9rem;
    min-width: 8rem;
}

.support-page__table {
    table-layout: fixed;
    width: 100%;
}

.support-page__col-title { width: 22%; }
.support-page__col-dept { width: 12%; }
.support-page__col-priority { width: 10%; }
.support-page__col-status { width: 12%; }
.support-page__col-user { width: 12%; }
.support-page__col-date { width: 11%; }
.support-page__col-actions { width: 10%; }

.support-page__table thead th {
    font-size: 0.68rem;
    font-weight: 650;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #7e8299;
    padding: 0.7rem 0.65rem !important;
    text-align: left;
    vertical-align: middle;
    white-space: nowrap;
}

.support-page__table tbody td {
    font-size: 0.8rem;
    padding: 0.75rem 0.65rem !important;
    vertical-align: middle;
    text-align: left;
}

.support-page__table th:first-child,
.support-page__table td:first-child { padding-left: 1.1rem !important; }

.support-page__table th:last-child,
.support-page__table td:last-child { padding-right: 1.1rem !important; }

.support-page__table tbody tr:hover { background: #f9fafc; }

.support-page__title {
    font-size: 0.84rem;
    font-weight: 700;
    color: #181c32;
    text-decoration: none;
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.support-page__title:hover { color: #009ef7; }

.support-page__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
}

.support-page__table .btn-sm {
    font-size: 0.75rem;
    padding: 0.3rem 0.65rem;
}

@media (max-width: 991.98px) {
    .support-page__table {
        table-layout: auto;
        min-width: 56rem;
    }
}

.support-detail__hero {
    border: 1px solid #eef0f4;
}

.support-detail__meta {
    display: flex;
    gap: 0.75rem;
}

.support-detail__meta-item {
    min-width: 5.5rem;
    padding: 0.75rem 1rem;
    border: 1px solid #eef0f4;
    border-radius: 0.75rem;
    background: #f8fafc;
    text-align: center;
}

.support-detail__meta-label {
    display: block;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #a1a5b7;
    margin-bottom: 0.25rem;
}

.support-detail__meta-value {
    font-size: 1.25rem;
    font-weight: 800;
    color: #181c32;
    font-variant-numeric: tabular-nums;
}

.support-detail__meta-value--small {
    font-size: 0.85rem;
    letter-spacing: 0.04em;
}

.support-detail__messages {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
    max-height: 34rem;
    overflow-y: auto;
    padding-right: 0.25rem;
}

.support-detail__bubble {
    border: 1px solid #eef0f4;
    border-radius: 0.85rem;
    padding: 0.85rem 1rem;
    background: #fff;
}

.support-detail__bubble--support {
    border-color: rgba(0, 158, 247, 0.25);
    background: linear-gradient(180deg, #f1faff 0%, #ffffff 100%);
}

.support-detail__bubble--customer {
    background: #fafbfc;
}

.support-detail__bubble-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.55rem;
    font-size: 0.8rem;
}

.support-detail__bubble-body {
    font-size: 0.84rem;
    line-height: 1.55;
    color: #3f4254;
    white-space: pre-wrap;
    word-break: break-word;
}

.support-detail__msg-del {
    width: 1.75rem;
    height: 1.75rem;
}

.support-detail__summary-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.65rem 0;
    border-bottom: 1px solid #eff2f5;
    font-size: 0.8rem;
}

.support-detail__summary-row:last-child { border-bottom: 0; }
.support-detail__summary-row > span { color: #7e8299; }

@media (max-width: 575.98px) {
    .support-page__kpi-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .support-detail__meta { width: 100%; }
    .support-detail__meta-item { flex: 1; }
}

[data-bs-theme=dark] .support-page__mark {
    background: rgba(0, 158, 247, 0.16);
}

[data-bs-theme=dark] .support-page__kpi,
[data-bs-theme=dark] .support-page__panel,
[data-bs-theme=dark] .support-page__panel-head,
[data-bs-theme=dark] .support-detail__bubble,
[data-bs-theme=dark] .support-detail__meta-item {
    background: #1e1e2d;
    border-color: #2b2b40;
}

[data-bs-theme=dark] .support-page__kpi-value,
[data-bs-theme=dark] .support-page__panel-title,
[data-bs-theme=dark] .support-page__title,
[data-bs-theme=dark] .support-detail__meta-value,
[data-bs-theme=dark] .support-detail__bubble-body {
    color: #e4e6ef;
}

[data-bs-theme=dark] .support-page__table tbody tr:hover,
[data-bs-theme=dark] .support-detail__bubble--customer {
    background: #1a1a27;
}

/* ── Alarm ayarları sayfaları ── */
.alarm-settings-page__shell > .card-header {
    padding-bottom: 0.5rem;
}

.alarm-settings-page__mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 0.75rem;
    background: rgba(0, 158, 247, 0.1);
    flex-shrink: 0;
}

.alarm-settings-page__kpi-strip {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    width: 100%;
    margin-top: 1rem;
}

.alarm-settings-page__kpi {
    flex: 1 1 7rem;
    min-width: 6.5rem;
    padding: 0.65rem 0.85rem;
    border-radius: 0.65rem;
    border: 1px solid #eff2f5;
    background: #f9f9f9;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.alarm-settings-page__kpi-label {
    display: block;
    font-size: 0.68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #a1a5b7;
}

.alarm-settings-page__kpi-value {
    font-size: 1.35rem;
    font-weight: 700;
    line-height: 1.2;
    color: #181c32;
}

.alarm-settings-page__kpi--primary .alarm-settings-page__kpi-value { color: #009ef7; }
.alarm-settings-page__kpi--info .alarm-settings-page__kpi-value { color: #50cdcf; }
.alarm-settings-page__kpi--danger .alarm-settings-page__kpi-value { color: #f1416c; }

.alarm-settings-page__context-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin-top: 0.75rem;
    padding: 0.35rem 0.75rem;
    border-radius: 999px;
    background: rgba(0, 158, 247, 0.08);
    font-size: 0.8rem;
    font-weight: 600;
}

.alarm-settings-page__panel {
    border: 1px solid #eff2f5;
    border-radius: 0.75rem;
    padding: 1.1rem 1.25rem;
    background: #fff;
    margin-bottom: 1rem;
}

.alarm-settings-page__panel-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.alarm-settings-page__panel-title {
    font-size: 1rem;
    font-weight: 700;
    margin: 0 0 0.15rem;
}

.alarm-settings-page__panel-desc {
    margin: 0;
    font-size: 0.78rem;
    color: #a1a5b7;
}

.alarm-settings-page__table thead th {
    background: #f9f9f9;
    border-bottom: 1px dashed #eff2f5;
}

.alarm-settings-page__row--warn {
    background: rgba(241, 65, 108, 0.04);
}

.alarm-settings-page__hero {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem 1.25rem;
    padding: 1.1rem 1.25rem;
    border-radius: 0.75rem;
    border: 1px solid #eff2f5;
    background: linear-gradient(135deg, rgba(0, 158, 247, 0.06), rgba(80, 205, 137, 0.04));
}

.alarm-settings-page__hero-icon {
    flex-shrink: 0;
}

.alarm-settings-page__hero-body {
    flex: 1 1 12rem;
    min-width: 0;
}

.alarm-settings-page__hero-title {
    font-size: 1.35rem;
    font-weight: 700;
}

.alarm-settings-page__hero-sub {
    font-size: 0.82rem;
    color: #7e8299;
}

.alarm-settings-page__hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-left: auto;
}

.alarm-settings-page__meta-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr));
    gap: 0.85rem 1.25rem;
    padding: 1rem 1.1rem;
    border-radius: 0.65rem;
    background: #f9f9f9;
    border: 1px solid #eff2f5;
}

.alarm-settings-page__cards > [class*="col-"] > .card {
    border: 1px solid #eff2f5;
    box-shadow: 0 0 20px rgba(76, 87, 125, 0.04);
    border-radius: 0.75rem;
}

.alarm-settings-page__hint {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    padding: 0.85rem 1rem;
    border-radius: 0.65rem;
    background: rgba(0, 158, 247, 0.06);
    border: 1px solid rgba(0, 158, 247, 0.12);
    font-size: 0.85rem;
}

[data-bs-theme=dark] .alarm-settings-page__mark {
    background: rgba(0, 158, 247, 0.16);
}

[data-bs-theme=dark] .alarm-settings-page__kpi,
[data-bs-theme=dark] .alarm-settings-page__panel,
[data-bs-theme=dark] .alarm-settings-page__meta-grid,
[data-bs-theme=dark] .alarm-settings-page__hero {
    background: #1e1e2d;
    border-color: #2b2b40;
}

[data-bs-theme=dark] .alarm-settings-page__kpi-value,
[data-bs-theme=dark] .alarm-settings-page__hero-title {
    color: #e4e6ef;
}

/* ── Profil sayfası ── */
.profile-page__shell > .card-header {
    min-height: auto;
    padding-bottom: 0.25rem;
}

.profile-page__mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 0.85rem;
    background: rgba(0, 158, 247, 0.08);
    flex-shrink: 0;
}

.profile-page__identity {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1.25rem;
    flex-wrap: wrap;
}

.profile-page__identity-main {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    min-width: 0;
    flex: 1 1 18rem;
}

/* Metronic .symbol > img { width:100% } intrinsic boyutu şişirir; symbol kullanılmıyor */
.profile-page__avatar {
    position: relative;
    width: 5rem;
    height: 5rem;
    min-width: 5rem;
    min-height: 5rem;
    max-width: 5rem;
    max-height: 5rem;
    flex: 0 0 5rem;
    overflow: hidden;
    border-radius: 50%;
    background: #f5f8fa;
    border: 1px solid #eff2f5;
    box-sizing: border-box;
}

.profile-page__avatar-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    border-radius: 50%;
}

/* Logo / geniş en-boy: daire içinde kırpmadan sığdır */
.profile-page__avatar-img[src*="uploads/avatars"] {
    object-fit: contain;
    padding: 0.35rem;
    box-sizing: border-box;
    background: #f5f8fa;
}

.et-header-avatar-wrap {
    width: 50px;
    height: 50px;
    min-width: 50px;
    flex-shrink: 0;
    overflow: hidden;
    border-radius: 50%;
    background: transparent;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    padding: 0 !important;
}

.et-header-avatar {
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    object-fit: cover !important;
    object-position: center !important;
    display: block;
    border-radius: 50%;
    background: transparent !important;
    transform: none !important;
}

.et-header-avatar--lg {
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
}

#kt_header_user_menu_toggle .menu .et-header-avatar-wrap img,
#kt_header_user_menu_toggle .menu .et-header-avatar--lg {
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    padding: 0 !important;
    border-radius: 50% !important;
    background: transparent !important;
    object-fit: cover !important;
    transform: none !important;
}

.profile-page__motivation {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem 1.25rem;
    margin-top: 1.25rem;
    padding: 1.1rem 1.25rem;
    border-radius: 0.75rem;
    border: 1px solid #eff2f5;
    background: linear-gradient(135deg, rgba(0, 158, 247, 0.06), rgba(80, 205, 137, 0.04));
}

.profile-page__motivation-icon {
    flex-shrink: 0;
    width: 2.75rem;
    height: 2.75rem;
}

.profile-page__motivation-icon.profile-page__mark i {
    line-height: 1;
}

.profile-page__motivation-body {
    flex: 1 1 12rem;
    min-width: 0;
}

.profile-page__motivation-title {
    font-size: 1.35rem;
    font-weight: 700;
    color: #181c32;
    line-height: 1.3;
}

.profile-page__motivation-text {
    margin-top: 0.25rem;
    font-size: 0.82rem;
    color: #7e8299;
    line-height: 1.45;
}

.profile-page__dealer {
    display: flex;
    align-items: center;
    gap: 0.9rem;
    margin-top: 1rem;
    padding: 0.95rem 1.1rem;
    border-radius: 0.85rem;
    border: 1px solid #e4e6ef;
    background: #fff;
}

.profile-page__dealer.is-active {
    border-color: rgba(80, 205, 137, 0.45);
    background: linear-gradient(135deg, rgba(80, 205, 137, 0.08), #fff 55%);
}

.profile-page__dealer.is-passive {
    border-color: rgba(241, 65, 108, 0.35);
    background: linear-gradient(135deg, rgba(241, 65, 108, 0.06), #fff 55%);
}

.profile-page__dealer-logo {
    width: 3.25rem;
    height: 3.25rem;
    border-radius: 0.75rem;
    overflow: hidden;
    flex-shrink: 0;
    background: #f5f8fa;
    border: 1px solid #eff2f5;
}

.profile-page__dealer-logo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: 0.2rem;
}

.profile-page__dealer-name {
    font-size: 1.05rem;
    font-weight: 750;
    color: #181c32;
}

.profile-page__dealer-hint {
    font-size: 0.8rem;
    color: #7e8299;
}

.profile-page__identity-text {
    min-width: 0;
    flex: 1;
}

.profile-page__name {
    font-size: 1.35rem;
    font-weight: 800;
    color: #181c32;
    line-height: 1.25;
}

.profile-page__identity-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
}

.profile-page__completion {
    max-width: 22rem;
    margin-top: 0.35rem;
}

.profile-page__progress {
    border-radius: 999px;
    overflow: hidden;
}

.profile-page__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.profile-page__chip {
    display: inline-flex;
    align-items: center;
    padding: 0.2rem 0.55rem;
    border-radius: 999px;
    background: rgba(241, 65, 108, 0.08);
    color: #f1416c;
    font-size: 0.72rem;
    font-weight: 600;
}

.profile-page__kpi-strip {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 0.75rem;
    width: 100%;
    margin-top: 1.15rem;
}

.profile-page__kpi {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.2rem;
    border: 1px solid #eef0f4;
    border-radius: 0.85rem;
    background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
    padding: 0.85rem 1rem;
    box-shadow: 0 4px 14px rgba(24, 28, 50, 0.04);
}

.profile-page__kpi-label {
    color: #a1a5b7;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.profile-page__kpi-value {
    color: #181c32;
    font-size: 1.45rem;
    font-weight: 800;
    line-height: 1.15;
}

.profile-page__kpi--primary .profile-page__kpi-value { color: #009ef7; }
.profile-page__kpi--info .profile-page__kpi-value { color: #50cdcf; }
.profile-page__kpi--warning .profile-page__kpi-value { color: #ffc700; }
.profile-page__kpi--success .profile-page__kpi-value { color: #50cd89; }

.profile-page__panel {
    border: 1px solid #eff2f5;
    border-radius: 0.85rem;
    padding: 1.15rem 1.25rem;
    background: #fff;
}

.profile-page__panel-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.1rem;
}

.profile-page__panel-title {
    font-size: 1rem;
    font-weight: 700;
    color: #181c32;
    margin: 0 0 0.15rem;
}

.profile-page__panel-desc {
    margin: 0;
    font-size: 0.78rem;
    color: #a1a5b7;
}

.profile-page__meta {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 0.85rem;
    padding-top: 1rem;
    border-top: 1px solid #eff2f5;
}

.profile-page__meta-item {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.profile-page__meta-label {
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #a1a5b7;
}

.profile-page__meta-value {
    font-size: 0.95rem;
    font-weight: 600;
    color: #181c32;
}

.profile-page__back {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.85rem;
    font-weight: 600;
    color: #7e8299;
    text-decoration: none;
}

.profile-page__back:hover {
    color: #009ef7;
}

@media (max-width: 767.98px) {
    .profile-page__identity-actions {
        width: 100%;
    }

    .profile-page__panel-head {
        flex-direction: column;
    }
}

[data-bs-theme=dark] .profile-page__name,
[data-bs-theme=dark] .profile-page__kpi-value,
[data-bs-theme=dark] .profile-page__panel-title,
[data-bs-theme=dark] .profile-page__meta-value,
[data-bs-theme=dark] .profile-page__motivation-title {
    color: #e4e6ef;
}

[data-bs-theme=dark] .profile-page__motivation {
    background: #1e1e2d;
    border-color: #2b2b40;
}

[data-bs-theme=dark] .profile-page__mark {
    background: rgba(0, 158, 247, 0.16);
}

[data-bs-theme=dark] .profile-page__kpi,
[data-bs-theme=dark] .profile-page__panel {
    background: #1e1e2d;
    border-color: #2b2b40;
}

[data-bs-theme=dark] .profile-page__meta {
    border-top-color: #2b2b40;
}

[data-bs-theme=dark] .profile-page__chip {
    background: rgba(241, 65, 108, 0.16);
}

/* ── Rol Sayfa Yetkilendirme ── */
.rpa-page__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.75rem 1rem;
    padding: 1.1rem 1.5rem 0;
}

.rpa-page__title-wrap {
    min-width: 0;
}

.rpa-page__title {
    font-size: 1.05rem;
    font-weight: 700;
    margin: 0;
    color: #181c32;
}

.rpa-page__desc {
    margin: 0.3rem 0 0;
    font-size: 0.8rem;
    color: #7e8299;
    line-height: 1.45;
    max-width: 48rem;
}

.rpa-page__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.rpa-page__actions .btn {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.8rem;
    padding: 0.45rem 0.85rem;
}

.rpa-page__pending {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.15rem;
    height: 1.15rem;
    padding: 0 0.3rem;
    border-radius: 999px;
    background: #fff;
    color: var(--bs-primary);
    font-size: 0.7rem;
    font-weight: 700;
}

.rpa-page__body {
    padding: 0.9rem 1.5rem 1.25rem;
}

.rpa-page__toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.5rem 1rem;
    margin-bottom: 0.75rem;
}

.rpa-page__search {
    position: relative;
    width: 100%;
    max-width: 320px;
}

.rpa-page__search .form-control {
    padding-left: 2.1rem;
    padding-right: 2rem;
    font-size: 0.8rem;
}

.rpa-page__search-icon {
    position: absolute;
    left: 0.75rem;
    top: 50%;
    transform: translateY(-50%);
    color: #a1a5b7;
    pointer-events: none;
}

.rpa-page__search-clear {
    position: absolute;
    right: 0.4rem;
    top: 50%;
    transform: translateY(-50%);
    border: 0;
    background: transparent;
    color: #a1a5b7;
    padding: 0.2rem;
    line-height: 1;
}

.rpa-page__search-clear:hover {
    color: var(--bs-danger);
}

.rpa-page__count {
    font-size: 0.75rem;
    color: #a1a5b7;
}

.rpa-page__table-wrap {
    max-height: calc(100vh - 290px);
    min-height: 240px;
    overflow: auto;
    border: 1px solid #f1f1f4;
    border-radius: 0.475rem;
}

.rpa-page__table thead th {
    position: sticky;
    top: 0;
    z-index: 1;
    background: #f9f9f9;
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: #7e8299;
    padding-top: 0.6rem !important;
    padding-bottom: 0.6rem !important;
    border-bottom: 1px solid #f1f1f4 !important;
}

.rpa-page__table th:first-child,
.rpa-page__table td:first-child {
    padding-left: 1rem !important;
}

.rpa-page__table tbody tr:hover {
    background: #fafbfc;
}

.rpa-page__role-head {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.35rem;
}

.rpa-page__role-name {
    color: #5e6278;
}

.rpa-page__role-sub {
    display: inline-flex;
    align-items: center;
    height: 24px;
    font-size: 0.7rem;
    font-weight: 500;
    text-transform: none;
    letter-spacing: 0;
    color: #a1a5b7;
}

.rpa-page__role-all {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    height: 24px;
    padding: 0 0.55rem 0 0.4rem;
    margin: 0;
    border: 1px solid #e4e6ef;
    border-radius: 999px;
    background: #fff;
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: none;
    letter-spacing: 0;
    color: #5e6278;
    cursor: pointer;
    user-select: none;
    transition: border-color 0.15s ease, background-color 0.15s ease, color 0.15s ease;
}

.rpa-page__role-all:hover {
    border-color: var(--bs-primary);
    color: var(--bs-primary);
}

.rpa-page__role-all.is-active {
    border-color: rgba(var(--bs-primary-rgb), 0.35);
    background: rgba(var(--bs-primary-rgb), 0.08);
    color: var(--bs-primary);
}

.rpa-page__role-all .form-check-input {
    width: 14px;
    height: 14px;
    margin: 0;
    border-radius: 0.25rem;
    cursor: pointer;
}

.rpa-page__role-count {
    padding-left: 0.4rem;
    border-left: 1px solid #e4e6ef;
    font-weight: 500;
    color: #a1a5b7;
    font-variant-numeric: tabular-nums;
}

.rpa-page__role-all.is-active .rpa-page__role-count {
    border-left-color: rgba(var(--bs-primary-rgb), 0.3);
    color: var(--bs-primary);
}

.rpa-page__page-name {
    font-size: 0.8rem;
    font-weight: 600;
    color: #3f4254;
    line-height: 1.3;
}

.rpa-page__page-path {
    font-size: 0.7rem;
    color: #a1a5b7;
    line-height: 1.3;
}

.rpa-page__table .form-check-input {
    width: 1.15rem;
    height: 1.15rem;
}

/* ── Cihaz Sağlığı ── */
.dh-page__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.75rem 1rem;
    padding: 1.1rem 1.5rem 0;
}

.dh-page__title-wrap {
    min-width: 0;
}

.dh-page__title {
    font-size: 1.18rem;
    font-weight: 700;
    margin: 0;
    color: #181c32;
}

.dh-page__desc {
    margin: 0.3rem 0 0;
    font-size: 0.88rem;
    color: #7e8299;
    line-height: 1.45;
}

.dh-page__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.dh-page__actions .btn {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.86rem;
    padding: 0.48rem 0.9rem;
}

.dh-page__body {
    padding: 0.9rem 1.5rem 1.25rem;
}

.dh-page__toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.5rem 1rem;
    margin-bottom: 0.75rem;
}

.dh-page__filters {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem 0.75rem;
}

.dh-page__date {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.dh-page__date .form-control {
    width: 138px;
    font-size: 0.8rem;
}

.dh-page__label {
    margin: 0;
    font-size: 0.75rem;
    font-weight: 600;
    color: #5e6278;
}

.dh-page__search {
    position: relative;
    width: 260px;
    max-width: 100%;
}

.dh-page__search .form-control {
    padding-left: 2.1rem;
    padding-right: 2rem;
    font-size: 0.8rem;
}

.dh-page__search-icon {
    position: absolute;
    left: 0.75rem;
    top: 50%;
    transform: translateY(-50%);
    color: #a1a5b7;
    pointer-events: none;
}

.dh-page__search-clear {
    position: absolute;
    right: 0.4rem;
    top: 50%;
    transform: translateY(-50%);
    border: 0;
    background: transparent;
    color: #a1a5b7;
    padding: 0.2rem;
    line-height: 1;
}

.dh-page__search-clear:hover {
    color: var(--bs-danger);
}

.dh-page__stats {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.dh-stat {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    height: 30px;
    padding: 0 0.75rem;
    border: 1px solid #e4e6ef;
    border-radius: 999px;
    background: #fff;
    font-size: 0.8rem;
    font-weight: 600;
    color: #5e6278;
    transition: border-color 0.15s ease, background-color 0.15s ease, color 0.15s ease;
}

.dh-stat strong {
    font-variant-numeric: tabular-nums;
    color: #181c32;
}

.dh-stat::before {
    content: "";
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #a1a5b7;
}

.dh-stat--danger::before { background: var(--bs-danger); }
.dh-stat--warning::before { background: var(--bs-warning); }
.dh-stat--success::before { background: var(--bs-success); }

.dh-stat:hover,
.dh-stat.is-active {
    border-color: rgba(var(--bs-primary-rgb), 0.35);
    background: rgba(var(--bs-primary-rgb), 0.06);
    color: var(--bs-primary);
}

.dh-page__count {
    margin-top: 0.6rem;
    font-size: 0.8rem;
    color: #a1a5b7;
}

.dh-table-wrap {
    max-height: calc(100vh - 300px);
    min-height: 200px;
    overflow: auto;
    border: 1px solid #f1f1f4;
    border-radius: 0.475rem;
}

.dh-table-wrap--modal {
    max-height: 60vh;
    min-height: 0;
    overflow-x: auto;
}

.dh-table {
    font-size: 0.86rem;
    color: #3f4254;
}

.dh-table thead th {
    position: sticky;
    top: 0;
    z-index: 1;
    background: #f9f9f9;
    font-size: 0.76rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: #7e8299;
    white-space: nowrap;
    padding-top: 0.6rem !important;
    padding-bottom: 0.6rem !important;
    border-bottom: 1px solid #f1f1f4 !important;
}

.dh-table th:first-child,
.dh-table td:first-child {
    padding-left: 1rem !important;
}

.dh-table tbody tr:hover {
    background: #fafbfc;
}

.dh-row td:first-child {
    box-shadow: inset 3px 0 0 transparent;
}

.dh-row--danger td:first-child { box-shadow: inset 3px 0 0 var(--bs-danger); }
.dh-row--warning td:first-child { box-shadow: inset 3px 0 0 var(--bs-warning); }
.dh-row--success td:first-child { box-shadow: inset 3px 0 0 var(--bs-success); }

.dh-row--danger { background: rgba(var(--bs-danger-rgb), 0.03); }
.dh-row--warning { background: rgba(var(--bs-warning-rgb), 0.04); }

.dh-table__primary {
    font-weight: 600;
    color: #181c32;
}

.dh-time {
    font-size: 0.82rem;
    color: #5e6278;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.dh-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.5rem;
    height: 1.4rem;
    padding: 0 0.35rem;
    border-radius: 0.35rem;
    background: #f1f1f4;
    font-size: 0.8rem;
    font-weight: 600;
    color: #3f4254;
    font-variant-numeric: tabular-nums;
}

.dh-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.22rem 0.6rem;
    border-radius: 999px;
    font-size: 0.76rem;
    font-weight: 600;
    white-space: nowrap;
}

.dh-pill--success { background: rgba(var(--bs-success-rgb), 0.1); color: var(--bs-success); }
.dh-pill--warning { background: rgba(var(--bs-warning-rgb), 0.14); color: #b7791f; }
.dh-pill--danger { background: rgba(var(--bs-danger-rgb), 0.1); color: var(--bs-danger); }
.dh-pill--muted { background: #f1f1f4; color: #7e8299; }

.dh-actions {
    display: inline-flex;
    flex-wrap: nowrap;
    gap: 0.3rem;
}

.btn.dh-action {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.35rem 0.6rem !important;
    font-size: 0.78rem;
    font-weight: 600;
    white-space: nowrap;
}

.btn.dh-action i {
    font-size: 0.9rem;
    padding: 0;
}

.dh-empty {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 2.5rem 1rem;
    font-size: 0.9rem;
    color: #7e8299;
    border: 1px dashed #e4e6ef;
    border-radius: 0.475rem;
}

.dh-page__date-sep {
    font-size: 0.8rem;
    color: #a1a5b7;
}

.dh-seg {
    display: inline-flex;
    gap: 0.15rem;
    padding: 0.2rem;
    border-radius: 0.475rem;
    background: #f5f8fa;
}

.dh-seg__btn {
    border: 0;
    background: transparent;
    padding: 0.35rem 0.7rem;
    border-radius: 0.375rem;
    font-size: 0.8rem;
    font-weight: 600;
    color: #7e8299;
    white-space: nowrap;
    transition: background-color 0.15s ease, color 0.15s ease;
}

.dh-seg__btn:hover {
    color: var(--bs-primary);
}

.dh-seg__btn.is-active {
    background: #fff;
    color: var(--bs-primary);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}

.dh-notice {
    margin-bottom: 0.75rem;
    padding: 0.5rem 0.75rem;
    border-radius: 0.475rem;
    background: rgba(var(--bs-warning-rgb), 0.1);
    font-size: 0.75rem;
    color: #b7791f;
}

.dh-days {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    gap: 0.2rem;
    min-width: 64px;
}

.dh-days__text {
    font-size: 0.72rem;
    font-weight: 600;
    color: #3f4254;
    font-variant-numeric: tabular-nums;
}

.dh-days__bar {
    display: block;
    width: 64px;
    height: 4px;
    border-radius: 999px;
    background: #f1f1f4;
    overflow: hidden;
}

.dh-days__fill {
    display: block;
    height: 100%;
    border-radius: 999px;
}

.dh-days__fill--success { background: var(--bs-success); }
.dh-days__fill--warning { background: var(--bs-warning); }
.dh-days__fill--danger { background: var(--bs-danger); }

.dh-kpis {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.6rem;
    margin-bottom: 0.9rem;
}

@media (max-width: 767.98px) {
    .dh-kpis {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.dh-kpi {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    padding: 0.6rem 0.8rem;
    border: 1px solid #f1f1f4;
    border-radius: 0.475rem;
    background: #fcfcfd;
}

.dh-kpi__label {
    font-size: 0.68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: #a1a5b7;
}

.dh-kpi__value {
    font-size: 1rem;
    font-weight: 700;
    color: #181c32;
    font-variant-numeric: tabular-nums;
}

.dh-kpi__value small {
    font-size: 0.72rem;
    font-weight: 600;
    color: #a1a5b7;
}

.dh-strip-wrap {
    margin-bottom: 1rem;
    padding: 0.7rem 0.8rem 0.5rem;
    border: 1px solid #f1f1f4;
    border-radius: 0.475rem;
}

.dh-strip {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(12px, 1fr));
    gap: 3px;
}

.dh-strip__cell {
    height: 22px;
    padding: 0;
    border: 0;
    border-radius: 3px;
    background: #e4e6ef;
    cursor: pointer;
    transition: transform 0.1s ease, box-shadow 0.1s ease;
}

.dh-strip__cell--success { background: rgba(var(--bs-success-rgb), 0.75); }
.dh-strip__cell--warning { background: rgba(var(--bs-warning-rgb), 0.85); }
.dh-strip__cell--danger { background: rgba(var(--bs-danger-rgb), 0.75); }

.dh-strip__cell:hover {
    transform: translateY(-1px);
}

.dh-strip__cell.is-selected {
    box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--bs-primary);
}

.dh-strip__axis {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-top: 0.45rem;
    font-size: 0.68rem;
    color: #a1a5b7;
}

.dh-strip__legend {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.3rem 0.7rem;
}

.dh-dot {
    display: inline-block;
    width: 8px;
    height: 8px;
    margin-right: 0.25rem;
    border-radius: 2px;
    vertical-align: middle;
}

.dh-dot--success { background: rgba(var(--bs-success-rgb), 0.75); }
.dh-dot--warning { background: rgba(var(--bs-warning-rgb), 0.85); }
.dh-dot--danger { background: rgba(var(--bs-danger-rgb), 0.75); }

.dh-section-title {
    margin-bottom: 0.45rem;
    font-size: 0.75rem;
    font-weight: 700;
    color: #3f4254;
}

.dh-table-wrap--history {
    max-height: 340px;
    min-height: 0;
}

.dh-table--clickable tbody tr {
    cursor: pointer;
}

.dh-table tbody tr.is-selected,
.dh-table tbody tr.is-selected:hover {
    background: rgba(var(--bs-primary-rgb), 0.07);
}

.app-modal-header--divider {
    background: #f9fafb;
    border-bottom: 1px solid #e4e6ef !important;
    padding-bottom: 1rem !important;
    margin-bottom: 0;
}

/* Datalogger detail modal */
.inv-logger-modal .modal-header {
    padding-bottom: 0 !important;
}

.inv-logger-modal__hero {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
    padding: 0.15rem 0 0.35rem;
}

.inv-logger-modal__hero-top {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    min-width: 0;
}

.inv-logger-modal__hero-icon {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3rem;
    height: 3rem;
    border-radius: 0.85rem;
    background: linear-gradient(145deg, #f5f8fa 0%, #eef6ff 100%);
    border: 1px solid #e4e6ef;
    line-height: 0;
}

.inv-logger-modal__hero-icon i {
    font-size: 1.55rem;
}

.inv-logger-modal__eyebrow {
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #7e8299;
    margin-bottom: 0.1rem;
}

.inv-logger-modal__title {
    margin: 0;
    font-size: 1.35rem;
    font-weight: 700;
    line-height: 1.25;
    color: #181c32;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.inv-logger-modal__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 0;
    padding: 0.7rem 0.85rem;
    border-radius: 0.75rem;
    background: #f9fafb;
    border: 1px solid #eff2f5;
}

.inv-logger-modal__meta-item {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    min-width: 0;
    flex: 1 1 7rem;
    padding: 0.15rem 0.55rem;
}

.inv-logger-modal__meta-divider {
    width: 1px;
    align-self: stretch;
    background: #e4e6ef;
    flex-shrink: 0;
    margin: 0.15rem 0;
}

.inv-logger-modal__meta-label {
    font-size: 0.68rem;
    font-weight: 600;
    color: #a1a5b7;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.inv-logger-modal__meta-value {
    font-size: 0.9rem;
    font-weight: 700;
    color: #3f4254;
    line-height: 1.25;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.inv-logger-modal__meta-status {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.9rem;
    font-weight: 700;
    line-height: 1.25;
}

.inv-logger-modal__meta-status i {
    font-size: 1.05rem;
}

.inv-logger-modal__section {
    margin-bottom: 1.15rem;
}

.inv-logger-modal__section-title {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.92rem;
    font-weight: 700;
    color: #181c32;
    margin-bottom: 0.65rem;
}

.inv-logger-modal__label {
    font-size: 0.72rem;
    font-weight: 600;
    color: #7e8299;
    margin-bottom: 0.35rem;
}

.inv-logger-modal__metric {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    padding: 0.85rem 0.9rem;
    border-radius: 0.75rem;
    border: 1px solid #eff2f5;
    background: #fff;
}

.inv-logger-modal__metric-icon {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 0.55rem;
    line-height: 0;
}

.inv-logger-modal__metric-icon i {
    font-size: 1.15rem;
}

.inv-logger-modal__metric--daily .inv-logger-modal__metric-icon {
    color: #009ef7;
    background: rgba(0, 158, 247, 0.12);
}

.inv-logger-modal__metric--total .inv-logger-modal__metric-icon {
    color: #50cd89;
    background: rgba(80, 205, 137, 0.12);
}

.inv-logger-modal__metric--power .inv-logger-modal__metric-icon {
    color: #f18a00;
    background: rgba(241, 138, 0, 0.12);
}

.inv-logger-modal__metric--quality .inv-logger-modal__metric-icon {
    color: #7239ea;
    background: rgba(114, 57, 234, 0.1);
}

.inv-logger-modal__metric-label {
    font-size: 0.68rem;
    font-weight: 600;
    color: #7e8299;
    margin-bottom: 0.2rem;
}

.inv-logger-modal__metric-value {
    font-size: 1rem;
    font-weight: 700;
    color: #181c32;
    line-height: 1.25;
}

.inv-logger-modal__footer-note {
    font-size: 0.75rem;
    color: #7e8299;
}

@media (max-width: 575.98px) {
    .inv-logger-modal__meta-divider {
        display: none;
    }

    .inv-logger-modal__meta-item {
        flex: 1 1 100%;
        padding-inline: 0;
    }
}

.app-modal-dialog--user-form .modal-content {
    overflow: hidden;
}

.app-modal-dialog--user-form .modal-footer {
    background: #fafbfc;
    border-top: 1px solid #eef0f4 !important;
}

.user-form {
    display: grid;
    gap: 1rem;
}

.user-form__group {
    margin: 0;
}

.user-form__label {
    display: block;
    margin-bottom: 0.4rem;
    font-size: 0.8125rem;
    font-weight: 600;
    color: #3f4254;
}

.user-form__control {
    min-height: 2.75rem;
    border-radius: 0.475rem;
    border-color: #e4e6ef;
}

.user-form__control:focus {
    border-color: #009ef7;
    box-shadow: 0 0 0 0.15rem rgba(0, 158, 247, 0.12);
}

.user-form__phone-wrap {
    position: relative;
}

.user-form__phone-prefix {
    position: absolute;
    left: 0.85rem;
    top: 50%;
    transform: translateY(-50%);
    font-size: inherit;
    font-weight: inherit;
    color: #5e6278;
    pointer-events: none;
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.05em;
    line-height: 1.5;
}

.user-form__phone-input {
    padding-left: 1.65rem;
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.05em;
}

.user-form__phone-hint {
    margin-top: 0.35rem;
    font-size: 0.75rem;
    color: #a1a5b7;
}

.user-form__role-note {
    margin: 0;
    padding: 0.75rem 0.9rem;
    border-radius: 0.475rem;
    font-size: 0.8125rem;
    line-height: 1.45;
}

/* Canlı doğrulama — alan uygunsa yeşil tik */
.cuw-field {
    position: relative;
}

.cuw-field .cfw-input,
.cuw-field .form-select.cfw-input {
    padding-right: 2.6rem;
}

.cuw-field.is-valid .cfw-input,
.cuw-field.is-valid .form-select.cfw-input {
    border-color: #50cd89;
    background-image: none;
}

.cuw-field__ok {
    position: absolute;
    right: 0.75rem;
    top: 50%;
    transform: translateY(-50%);
    color: #50cd89;
    font-size: 1.25rem;
    line-height: 1;
    pointer-events: none;
    z-index: 2;
}

.cuw-field--phone .cuw-field__ok {
    right: 0.85rem;
    top: 1.15rem;
}

.cuw-field--phone.is-valid .app-phone {
    border-color: #50cd89 !important;
    box-shadow: 0 0 0 0.15rem rgba(80, 205, 137, 0.15);
}

.cuw-field--phone.is-valid .app-phone__control {
    padding-right: 2.4rem;
}

/* Yeni kullanıcı sihirbazı — tesis ekle (cfw) ile uyumlu */
.cuw-role-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.85rem;
}

@media (max-width: 767.98px) {
    .cuw-role-grid {
        grid-template-columns: 1fr;
    }
}

.cuw-role-card {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    text-align: left;
    border: 1px solid #e4e9f2;
    background: #fff;
    border-radius: 0.85rem;
    padding: 1rem 1.1rem;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}

.cuw-role-card:hover {
    border-color: #b5d8f5;
    background: #f8fbff;
}

.cuw-role-card.is-selected {
    border-color: #009ef7;
    background: #f1f8ff;
    box-shadow: 0 0 0 3px rgba(0, 158, 247, 0.12);
}

.cuw-role-card__icon {
    flex: 0 0 auto;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 0.75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #eef6ff;
    color: #009ef7;
    font-size: 1.35rem;
}

.cuw-role-card.is-selected .cuw-role-card__icon {
    background: #009ef7;
    color: #fff;
}

.cuw-role-card__body {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.cuw-role-card__title {
    font-weight: 700;
    font-size: 0.95rem;
    color: #181c32;
}

.cuw-role-card__hint {
    font-size: 0.78rem;
    color: #7e8299;
    line-height: 1.4;
}

.cuw-access__toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    align-items: center;
    margin-bottom: 1rem;
}

.cuw-access__toolbar .cfw-input {
    flex: 1 1 14rem;
    min-width: 12rem;
}

.cuw-access__stats {
    display: flex;
    gap: 0.4rem;
    flex-wrap: wrap;
}

.cuw-access {
    display: grid;
    gap: 0.65rem;
    max-height: 22rem;
    overflow-y: auto;
    padding-right: 0.15rem;
}

.cuw-access__facility {
    border: 1px solid #e8edf5;
    border-radius: 0.85rem;
    background: #fff;
    padding: 0.85rem 1rem;
}

.cuw-access__facility.is-selected {
    border-color: #7ec8f5;
    background: #f7fbff;
}

.cuw-access__facility.is-partial {
    border-color: #c9e5f8;
    background: #fafcfe;
}

.cuw-access__facility-row {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    justify-content: space-between;
}

.cuw-access__check {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    margin: 0;
    cursor: pointer;
    min-width: 0;
}

.cuw-access__check input {
    margin-top: 0.2rem;
}

.cuw-access__name {
    display: block;
    font-weight: 700;
    color: #181c32;
    font-size: 0.92rem;
}

.cuw-access__meta {
    display: block;
    font-size: 0.75rem;
    color: #a1a5b7;
    margin-top: 0.15rem;
}

.cuw-access__devices {
    display: grid;
    gap: 0.4rem;
    margin-top: 0.75rem;
    padding-top: 0.75rem;
    border-top: 1px dashed #eef1f6;
}

.cuw-access__device {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    margin: 0;
    padding: 0.55rem 0.7rem;
    border-radius: 0.65rem;
    border: 1px solid transparent;
    background: #f9fafb;
    cursor: pointer;
}

.cuw-access__device.is-on {
    background: #eef8ff;
    border-color: #c9e5f8;
}

.cuw-access__device-name {
    flex: 1;
    font-weight: 600;
    font-size: 0.85rem;
    color: #3f4254;
}

.cuw-pwd-allok {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.75rem 0.95rem;
    border-radius: 0.75rem;
    background: #e8fff3;
    border: 1px solid #b5f0d0;
    color: #0f9d58;
    font-weight: 700;
    font-size: 0.9rem;
}

.cuw-pwd-allok i {
    font-size: 1.35rem;
}

.cuw-pwd-rules {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: 0.45rem;
}

.cuw-pwd-rules li {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.82rem;
}

.cuw-pwd-rules li.is-ok {
    color: #50cd89;
}

.cuw-pwd-rules li.is-bad {
    color: #a1a5b7;
}

.cuw-summary {
    display: grid;
    gap: 0.65rem;
}

.cuw-summary--stacked {
    gap: 0;
}

.cuw-summary__item {
    display: grid;
    gap: 0.2rem;
    padding: 0.75rem 0;
    border-bottom: 1px solid #eef1f6;
}

.cuw-summary__item:first-child {
    padding-top: 0.15rem;
}

.cuw-summary__item:last-child {
    border-bottom: 0;
    padding-bottom: 0.15rem;
}

.cuw-summary__label {
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: #a1a5b7;
}

.cuw-summary__value {
    font-size: 0.95rem;
    font-weight: 700;
    color: #181c32;
    word-break: break-word;
    text-align: left;
}

.cuw-summary__value--mono {
    font-family: Consolas, "Courier New", monospace;
    letter-spacing: 0.02em;
}

.cuw-summary__row {
    display: flex;
    justify-content: flex-start;
    gap: 1rem;
    font-size: 0.875rem;
    padding-bottom: 0.55rem;
    border-bottom: 1px dashed #eef1f6;
}

.cuw-summary__row:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.cuw-summary__row span {
    color: #7e8299;
    min-width: 7.5rem;
}

.cuw-success {
    text-align: center;
    padding: 0.5rem 0 0.25rem;
}

.cuw-success__icon {
    width: 3.25rem;
    height: 3.25rem;
    margin: 0 auto 0.85rem;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #e8fff3;
    color: #50cd89;
    font-size: 1.85rem;
}

.facility-access-picker {
    max-height: 320px;
    overflow-y: auto;
    border: 1px solid #e4e6ef;
    border-radius: 0.475rem;
    padding: 0.65rem 0.75rem;
    display: grid;
    gap: 0.65rem;
}

.facility-access-picker__facility {
    padding-bottom: 0.5rem;
    border-bottom: 1px dashed #eff2f5;
}

.facility-access-picker__facility:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.facility-access-picker__devices {
    display: grid;
    gap: 0.25rem;
}

.device-detail-settings-menu.scada-reports-dropdown {
    position: relative;
}

.device-detail-settings-menu > .nav-link.dropdown-toggle {
    background: transparent;
    border: 0;
    cursor: pointer;
}

.device-detail-settings-menu .scada-reports-menu {
    min-width: 14rem;
}


/* ---- Kademe Bakımı: kondansatör / pil doluluk göstergesi ---- */
.kademe-cap-bank {
    border: 1px solid #e4e6ef;
    border-radius: 0.9rem;
    overflow: hidden;
}

.kademe-cap-bank__title-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: 0.5rem;
    color: #f6a609;
    background: rgba(246, 166, 9, 0.12);
}

.kademe-cap-bank__title {
    color: #d97706;
}

.kademe-cap-bank__grid {
    display: flex;
    flex-wrap: wrap;
    gap: 1.25rem 1.5rem;
    justify-content: flex-start;
    align-items: flex-end;
    padding: 1rem 0.5rem 0.75rem;
    background:
        repeating-linear-gradient(
            -45deg,
            transparent,
            transparent 8px,
            rgba(148, 163, 184, 0.06) 8px,
            rgba(148, 163, 184, 0.06) 9px
        );
    border-radius: 0.75rem;
    min-height: 16rem;
}

.kademe-cap {
    --cap-color: #94a3b8;
    --cap-fill-color: #94a3b8;
    appearance: none;
    border: 0;
    background: transparent;
    padding: 0.4rem 0.35rem 0.55rem;
    margin: 0;
    width: 6.75rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.55rem;
    cursor: pointer;
    transition: transform 0.15s ease;
}

.kademe-cap:hover {
    transform: translateY(-2px);
}

.kademe-cap:focus-visible {
    outline: 2px solid #009ef7;
    outline-offset: 3px;
    border-radius: 0.5rem;
}

.kademe-cap__body {
    position: relative;
    width: 3.35rem;
    height: 9.5rem;
}

.kademe-cap__terminal {
    position: absolute;
    top: 0;
    width: 0.42rem;
    height: 0.7rem;
    border-radius: 0.12rem 0.12rem 0 0;
    background: linear-gradient(180deg, #d1d5db 0%, #9ca3af 100%);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.5);
    z-index: 3;
}

.kademe-cap__terminal--left { left: 0.7rem; }
.kademe-cap__terminal--right { right: 0.7rem; }

.kademe-cap__lid {
    position: absolute;
    top: 0.55rem;
    left: 0;
    right: 0;
    height: 0.7rem;
    border-radius: 0.85rem 0.85rem 0.2rem 0.2rem;
    background: linear-gradient(180deg, #e5e7eb 0%, #9ca3af 100%);
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.15);
    z-index: 2;
}

.kademe-cap__shell {
    position: absolute;
    top: 1.1rem;
    left: 0;
    right: 0;
    bottom: 0.55rem;
    border-radius: 0.35rem 0.35rem 0.95rem 0.95rem;
    background: linear-gradient(90deg, #f8fafc 0%, #eef2f7 45%, #e2e8f0 100%);
    border: 1px solid #cbd5e1;
    overflow: hidden;
    box-shadow:
        inset 0 0 0 1px rgba(255,255,255,0.65),
        inset 6px 0 10px rgba(255,255,255,0.35),
        inset -5px 0 8px rgba(148, 163, 184, 0.18);
}

.kademe-cap__fill {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: var(--cap-fill, 0%);
    background: linear-gradient(180deg, color-mix(in srgb, var(--cap-fill-color) 88%, white) 0%, var(--cap-fill-color) 100%);
    transition: height 0.45s ease;
}

.kademe-cap__fill::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.22) 40%, transparent 70%);
    pointer-events: none;
}

.kademe-cap__num {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.65rem;
    font-weight: 800;
    letter-spacing: -0.03em;
    color: rgba(15, 23, 42, 0.28);
    z-index: 1;
    user-select: none;
}

.kademe-cap__base {
    position: absolute;
    left: -0.15rem;
    right: -0.15rem;
    bottom: 0;
    height: 0.55rem;
    border-radius: 0.2rem 0.2rem 0.75rem 0.75rem;
    background: linear-gradient(180deg, #d1d5db 0%, #94a3b8 100%);
    z-index: 2;
}

.kademe-cap__badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 4.75rem;
    max-width: 6.5rem;
    padding: 0.35rem 0.7rem;
    border-radius: 999px;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    line-height: 1.15;
    white-space: nowrap;
    overflow: visible;
    text-overflow: clip;
    color: #fff;
    background: var(--cap-color);
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.12);
}

.kademe-cap__meta {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.7rem;
    font-weight: 600;
    color: #64748b;
}

.kademe-cap__meta-sep { opacity: 0.5; }

.kademe-cap--healthy {
    --cap-color: #17c653;
    --cap-fill-color: #22c55e;
}

.kademe-cap--warning {
    --cap-color: #f6c000;
    --cap-fill-color: #eab308;
}

.kademe-cap--critical {
    --cap-color: #f1416c;
    --cap-fill-color: #ef4444;
}

.kademe-cap--muted {
    --cap-color: #a1a5b7;
    --cap-fill-color: #94a3b8;
}

.kademe-cap--empty {
    --cap-color: #b5b5c3;
    --cap-fill-color: #cbd5e1;
}

.kademe-cap--empty .kademe-cap__fill {
    opacity: 0.55;
}

@media (max-width: 575.98px) {
    .kademe-cap-bank__grid {
        justify-content: center;
        gap: 1rem;
    }

    .kademe-cap {
        width: 6.1rem;
    }

    .kademe-cap__body {
        width: 2.9rem;
        height: 8.25rem;
    }
}

/* Kademe Bakımı — tesis görünümü */
.kademe-facility-hero {
    border: 1px solid #e4e6ef;
    border-radius: 0.95rem;
    background: linear-gradient(135deg, #ffffff 0%, #f8fafc 55%, #eef6ff 100%);
}

.kademe-status-strip {
    --bs-gutter-y: 0.75rem;
}

.kademe-status-pill {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    padding: 0.75rem 0.9rem;
    border-radius: 0.75rem;
    background: #fff;
    border: 1px solid #eef0f4;
    min-height: 4.25rem;
}

.kademe-status-pill__label {
    font-size: 0.72rem;
    font-weight: 600;
    color: #7e8299;
}

.kademe-status-pill__value {
    font-size: 1.35rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: #181c32;
}

.kademe-status-pill--ok { border-color: rgba(23, 198, 83, 0.28); background: rgba(23, 198, 83, 0.06); }
.kademe-status-pill--ok .kademe-status-pill__value { color: #17c653; }
.kademe-status-pill--warn { border-color: rgba(246, 192, 0, 0.35); background: rgba(246, 192, 0, 0.08); }
.kademe-status-pill--warn .kademe-status-pill__value { color: #c99000; }
.kademe-status-pill--crit { border-color: rgba(241, 65, 108, 0.28); background: rgba(241, 65, 108, 0.06); }
.kademe-status-pill--crit .kademe-status-pill__value { color: #f1416c; }
.kademe-status-pill--total { border-color: rgba(0, 158, 247, 0.25); background: rgba(0, 158, 247, 0.05); }
.kademe-status-pill--total .kademe-status-pill__value { color: #009ef7; }

.kademe-perf-card {
    border: 1px solid #e4e6ef;
    border-radius: 0.95rem;
}

.kademe-perf-metric {
    padding: 0.35rem 0;
}

.kademe-perf-metric__label {
    font-size: 0.78rem;
    color: #a1a5b7;
    margin-bottom: 0.25rem;
}

.kademe-perf-metric__value {
    font-size: 1.25rem;
    font-weight: 750;
    color: #181c32;
    letter-spacing: -0.02em;
}

.kademe-cap__meta {
    font-size: 0.78rem !important;
}

/* Üretim Elektrik Maliyeti — kompakt tipografi + sonuç paneli */
.et-pec-page {
    font-size: 0.8125rem;
}

.et-pec-page .card-title h2 {
    font-size: 1.15rem;
}

.et-pec-page .card-title,
.et-pec-page h3.card-title {
    font-size: 1rem;
}

.et-pec-page h4,
.et-pec-page .et-pec-panel__title {
    font-size: 0.95rem;
    margin-bottom: 0 !important;
}

.et-pec-page .form-label {
    font-size: 0.78rem;
    margin-bottom: 0.3rem;
}

.et-pec-page .form-control,
.et-pec-page .form-select {
    font-size: 0.8125rem;
    padding-top: 0.4rem;
    padding-bottom: 0.4rem;
    min-height: 2.15rem;
    height: 2.15rem;
    line-height: 1.35;
}

.et-pec-page .form-text,
.et-pec-page .alert {
    font-size: 0.75rem;
}

.et-pec-page .mb-4 {
    margin-bottom: 0.85rem !important;
}

.et-pec-page .table {
    font-size: 0.78rem;
}

.et-pec-page > .card > .card-header {
    min-height: 0;
    padding-top: 1rem;
    padding-bottom: 0.25rem;
}

.et-pec-page > .card > .card-body {
    padding-top: 0.5rem;
}

.et-pec-panel {
    border: 1px solid #eef0f4;
    border-radius: 0.75rem;
    background: #fff;
    padding: 1.1rem 1.15rem 1.2rem;
    box-shadow: 0 1px 2px rgba(16, 24, 40, 0.04);
}

.et-pec-panel__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 1rem;
    padding-bottom: 0.65rem;
    border-bottom: 1px solid #f1f1f4;
}

.et-pec-panel__hint {
    font-size: 0.72rem;
    color: #a1a5b7;
    text-align: right;
    line-height: 1.3;
}

.et-pec-page .et-pec-src {
    flex: 0 0 6.5rem;
    max-width: 6.5rem;
}

.et-pec-page .et-pec-ig {
    flex-wrap: nowrap;
    align-items: stretch;
}

.et-pec-page .et-pec-ig > .form-control,
.et-pec-page .et-pec-ig > .form-select,
.et-pec-page .et-pec-ig > .input-group-text {
    height: 2.15rem;
    min-height: 2.15rem;
    padding-top: 0.35rem;
    padding-bottom: 0.35rem;
    font-size: 0.8125rem;
    line-height: 1.35;
}

.et-pec-page .et-pec-pct {
    flex: 0 0 auto;
    min-width: 3.25rem;
    justify-content: center;
    white-space: nowrap;
    background: #f5f8fa;
    color: #5e6278;
    font-weight: 600;
}

.et-pec-page .et-pec-prices .form-control[readonly] {
    background-color: #f5f8fa;
    color: #3f4254;
}

.et-pec-page .et-pec-total {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.55rem 0.75rem;
    border-radius: 0.475rem;
    background: #f1faff;
    border: 1px dashed #b6dcfe;
    font-size: 0.8125rem;
}

.et-pec-result__empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    min-height: 18rem;
    padding: 2rem 1rem;
    border-radius: 0.65rem;
    background: linear-gradient(180deg, #fbfcfe 0%, #f5f8fa 100%);
    border: 1px dashed #e4e6ef;
}

.et-pec-kpis {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
    margin-bottom: 1rem;
}

.et-pec-kpi {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    padding: 0.9rem 1rem;
    border-radius: 0.65rem;
    border: 1px solid #eef0f4;
    background: #fff;
    min-width: 0;
}

.et-pec-kpi--energy { background: linear-gradient(135deg, #f1faff 0%, #fff 70%); border-color: #d7ebff; }
.et-pec-kpi--unit { background: linear-gradient(135deg, #f8f5ff 0%, #fff 70%); border-color: #e4dcff; }
.et-pec-kpi--cost { background: linear-gradient(135deg, #f1faf5 0%, #fff 70%); border-color: #d4efdf; }
.et-pec-kpi--per { background: linear-gradient(135deg, #fff8f0 0%, #fff 70%); border-color: #ffe0c2; }

.et-pec-kpi__label {
    font-size: 0.72rem;
    color: #7e8299;
    font-weight: 600;
}

.et-pec-kpi__value {
    font-size: 1.45rem;
    font-weight: 700;
    color: #181c32;
    line-height: 1.2;
    font-variant-numeric: tabular-nums;
}

.et-pec-kpi__unit {
    font-size: 0.72rem;
    color: #a1a5b7;
}

.et-pec-meta {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    padding: 0.85rem 1rem;
    border-radius: 0.65rem;
    background: #f9f9fb;
    border: 1px solid #f1f1f4;
    margin-bottom: 0.85rem;
}

.et-pec-meta__row {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    font-size: 0.78rem;
}

.et-pec-meta__row > span {
    color: #a1a5b7;
    flex: 0 0 auto;
}

.et-pec-meta__row > strong {
    text-align: right;
    font-weight: 600;
    color: #3f4254;
}

.et-pec-breakdown {
    padding: 0.85rem 1rem;
    border-radius: 0.65rem;
    border: 1px solid #eef0f4;
    margin-bottom: 0.75rem;
}

.et-pec-breakdown__title {
    font-size: 0.75rem;
    font-weight: 700;
    color: #5e6278;
    margin-bottom: 0.55rem;
}

.et-pec-breakdown__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.45rem 1rem;
}

.et-pec-breakdown__grid > div {
    display: flex;
    justify-content: space-between;
    gap: 0.5rem;
    font-size: 0.78rem;
}

.et-pec-breakdown__grid span { color: #a1a5b7; }
.et-pec-breakdown__grid strong { color: #3f4254; font-variant-numeric: tabular-nums; }

.et-pec-note {
    font-size: 0.75rem;
    color: #7e8299;
    padding: 0.55rem 0.75rem;
    border-radius: 0.45rem;
    background: #fff8dd;
    border: 1px solid #ffefc2;
}

@media (max-width: 575.98px) {
    .et-pec-kpis,
    .et-pec-breakdown__grid {
        grid-template-columns: 1fr;
    }
}

/* Aktifken mavi anahtar; pasif görünüm tema varsayılanı */
.form-switch .form-check-input.et-switch-primary:checked {
    background-color: var(--bs-primary, #1b84ff) !important;
    border-color: var(--bs-primary, #1b84ff) !important;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e") !important;
}

.form-switch .form-check-input.et-switch-primary:disabled {
    opacity: 0.75;
}

/* ── Yük Boşaltma Programları ── */
.dh-pill--primary { background: rgba(var(--bs-primary-rgb), 0.1); color: var(--bs-primary); }
.dh-stat.ls-stat--primary::before { background: var(--bs-primary); }

.ls-toolbar {
    display: flex;
    align-items: flex-start;
    flex-wrap: wrap;
    gap: 0.75rem 1.25rem;
    padding: 0.75rem 0.9rem;
    margin-bottom: 0.9rem;
    border: 1px solid #f1f1f4;
    border-radius: 0.6rem;
    background: linear-gradient(180deg, #fcfcfd 0%, #fff 100%);
}

.ls-toolbar__field {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    min-width: 0;
}

.ls-toolbar .dh-page__label {
    font-size: 0.8125rem;
}

.ls-toolbar__select {
    width: 320px;
    max-width: 100%;
    font-size: 0.875rem;
}

.ls-toolbar__select--view {
    width: 240px;
}

.ls-toolbar__hint {
    font-size: 0.74rem;
    color: #a1a5b7;
}

.ls-toolbar__end {
    margin-left: auto;
    align-self: center;
}

.ls-toolbar__end .btn {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.875rem;
}

.ls-stats {
    margin-bottom: 0.9rem;
}

.ls-section-title {
    margin-top: 0.4rem;
    margin-bottom: 0.6rem;
}

.ls-hero {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 1rem 1.5rem;
    margin-bottom: 1.1rem;
    padding: 1rem 1.25rem;
    border-radius: 0.75rem;
    overflow: hidden;
    color: #fff;
    background: linear-gradient(120deg, #1b84ff 0%, #4f46e5 100%);
    box-shadow: 0 8px 24px rgba(27, 132, 255, 0.22);
    animation: ls-fade-in 0.35s ease;
}

.ls-hero::after {
    content: "";
    position: absolute;
    inset: -40% -10% auto auto;
    width: 280px;
    height: 280px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255, 255, 255, 0.18) 0%, rgba(255, 255, 255, 0) 70%);
    pointer-events: none;
}

.ls-hero--active {
    background: linear-gradient(120deg, #f59e0b 0%, #ef4444 100%);
    box-shadow: 0 8px 24px rgba(239, 68, 68, 0.25);
}

.ls-hero__info {
    position: relative;
    z-index: 1;
    min-width: 0;
}

.ls-hero__eyebrow {
    font-size: 0.66rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    opacity: 0.85;
}

.ls-hero__title {
    margin: 0.15rem 0 0.35rem;
    font-size: 1.05rem;
    font-weight: 700;
}

.ls-hero__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem 0.9rem;
    font-size: 0.75rem;
    opacity: 0.92;
}

.ls-hero__meta span {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
}

.ls-hero__meta i {
    color: inherit;
}

.btn.ls-hero__price {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin-top: 0.65rem;
    padding: 0.3rem 0.7rem !important;
    border: 1px solid rgba(255, 255, 255, 0.35);
    background: rgba(255, 255, 255, 0.14);
    color: #fff;
    font-size: 0.72rem;
    font-weight: 600;
}

.btn.ls-hero__price:hover {
    background: rgba(255, 255, 255, 0.24);
    color: #fff;
}

.btn.ls-hero__price i {
    color: #fff;
}

.ls-hero .ls-cd {
    position: relative;
    z-index: 1;
}

.ls-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(310px, 1fr));
    gap: 0.75rem;
    margin-bottom: 1.1rem;
}

.ls-card {
    display: flex;
    flex-direction: column;
    gap: 0.7rem;
    padding: 0.85rem 0.95rem;
    border: 1px solid #eef0f4;
    border-radius: 0.65rem;
    background: #fff;
    box-shadow: inset 3px 0 0 #e4e6ef;
    transition: box-shadow 0.15s ease, transform 0.15s ease;
    animation: ls-fade-in 0.3s ease;
}

.ls-card:hover {
    transform: translateY(-1px);
}

.ls-card--planned { box-shadow: inset 3px 0 0 var(--bs-primary); }
.ls-card--planned:hover { box-shadow: inset 3px 0 0 var(--bs-primary), 0 4px 14px rgba(0, 0, 0, 0.05); }
.ls-card--paused { box-shadow: inset 3px 0 0 #c4c6d0; background: #fcfcfd; }
.ls-card--done { box-shadow: inset 3px 0 0 var(--bs-success); }

.ls-card--active {
    border-color: rgba(var(--bs-warning-rgb), 0.45);
    background: rgba(var(--bs-warning-rgb), 0.03);
    animation: ls-fade-in 0.3s ease, ls-glow 2.4s ease-in-out infinite;
}

.ls-card__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.6rem;
}

.ls-card__title {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 0.85rem;
    font-weight: 700;
    color: #181c32;
}

.ls-card__sub {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    margin-top: 0.1rem;
    font-size: 0.72rem;
    color: #7e8299;
}

.ls-card__paused {
    padding: 0.55rem 0.7rem;
    border-radius: 0.475rem;
    background: #f5f6f8;
    font-size: 0.72rem;
    color: #7e8299;
}

.ls-card__foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-top: auto;
    padding-top: 0.6rem;
    border-top: 1px dashed #eef0f4;
}

.ls-card__avg {
    margin-left: 0.15rem;
    padding: 0.05rem 0.35rem;
    border-radius: 0.3rem;
    background: rgba(var(--bs-info-rgb), 0.12);
    font-variant-numeric: tabular-nums;
}

.ls-timeline {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 0.6rem;
}

.ls-timeline__point {
    display: flex;
    flex-direction: column;
    gap: 0.05rem;
}

.ls-timeline__point--end {
    text-align: right;
}

.ls-timeline__label {
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: #a1a5b7;
}

.ls-timeline__value {
    font-size: 0.85rem;
    font-weight: 700;
    color: #181c32;
    font-variant-numeric: tabular-nums;
}

.ls-timeline__exec {
    font-size: 0.66rem;
    color: #7e8299;
}

.ls-timeline__line {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 20px;
}

.ls-timeline__line::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 50%;
    border-top: 2px dashed #e4e6ef;
}

.ls-timeline__line span {
    position: relative;
    padding: 0.1rem 0.45rem;
    border-radius: 999px;
    background: #f5f8fa;
    font-size: 0.66rem;
    font-weight: 600;
    color: #5e6278;
    white-space: nowrap;
}

.ls-cd {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding: 0.55rem 0.7rem;
    border-radius: 0.55rem;
    background: rgba(var(--bs-primary-rgb), 0.05);
}

.ls-cd--active {
    background: rgba(var(--bs-warning-rgb), 0.1);
}

.ls-cd__label {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.68rem;
    font-weight: 600;
    color: #5e6278;
}

.ls-cd__units {
    display: flex;
    align-items: flex-start;
    gap: 0.25rem;
}

.ls-cd__unit {
    display: flex;
    flex-direction: column;
    align-items: center;
    min-width: 2.4rem;
}

.ls-cd__num {
    display: inline-block;
    min-width: 2.4rem;
    padding: 0.2rem 0.3rem;
    border-radius: 0.4rem;
    background: #fff;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06);
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
    color: #181c32;
    font-variant-numeric: tabular-nums;
    animation: ls-tick 0.45s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.ls-cd__cap {
    margin-top: 0.15rem;
    font-size: 0.6rem;
    font-weight: 600;
    text-transform: uppercase;
    color: #a1a5b7;
}

.ls-cd__sep {
    padding-top: 0.2rem;
    font-size: 1rem;
    font-weight: 700;
    color: #c4c6d0;
    animation: ls-blink 1s steps(2, start) infinite;
}

.ls-cd__progress {
    height: 5px;
    border-radius: 999px;
    background: rgba(var(--bs-warning-rgb), 0.2);
    overflow: hidden;
}

.ls-cd__progress span {
    display: block;
    height: 100%;
    border-radius: 999px;
    background-color: var(--bs-warning);
    background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.35) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.35) 50%, rgba(255, 255, 255, 0.35) 75%, transparent 75%, transparent);
    background-size: 12px 12px;
    transition: width 0.9s linear;
    animation: ls-stripes 1s linear infinite;
}

.ls-cd--lg {
    padding: 0.7rem 0.9rem;
    background: rgba(255, 255, 255, 0.14);
    backdrop-filter: blur(2px);
}

.ls-cd--lg .ls-cd__label,
.ls-cd--lg .ls-cd__cap {
    color: rgba(255, 255, 255, 0.85);
}

.ls-cd--lg .ls-cd__unit,
.ls-cd--lg .ls-cd__num {
    min-width: 3.2rem;
}

.ls-cd--lg .ls-cd__num {
    padding: 0.35rem 0.4rem;
    font-size: 1.6rem;
    background: rgba(255, 255, 255, 0.95);
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.12);
}

.ls-cd--lg .ls-cd__sep {
    padding-top: 0.35rem;
    font-size: 1.4rem;
    color: rgba(255, 255, 255, 0.7);
}

.ls-cd--lg .ls-cd__progress {
    height: 6px;
    background: rgba(255, 255, 255, 0.25);
}

.ls-cd--lg .ls-cd__progress span {
    background-color: #fff;
}

.ls-live-dot {
    position: relative;
    display: inline-block;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    flex-shrink: 0;
}

.ls-live-dot::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background: inherit;
    animation: ls-pulse 1.6s ease-out infinite;
}

.ls-live-dot--primary { background: var(--bs-primary); }
.ls-live-dot--warning { background: var(--bs-warning); }
.ls-cd--lg .ls-live-dot { background: #fff; }

.ls-more {
    margin-top: 0.35rem;
    padding: 0 !important;
    font-size: 0.75rem;
}

.ls-form__quick {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem 0.75rem;
    margin-top: 1rem;
}

.ls-form__summary {
    margin-top: 1rem;
    padding: 0.6rem 0.8rem;
    border-radius: 0.475rem;
    background: rgba(var(--bs-primary-rgb), 0.06);
    font-size: 0.78rem;
    color: #3f4254;
}

.ls-form__summary--error {
    background: rgba(var(--bs-danger-rgb), 0.08);
    color: var(--bs-danger);
}

.ls-kpi__sub {
    font-size: 0.68rem;
    color: #7e8299;
}

.ls-chart {
    margin-bottom: 0.9rem;
    padding: 0.75rem 0.8rem 0.5rem;
    border: 1px solid #f1f1f4;
    border-radius: 0.475rem;
}

.ls-chart__bars {
    display: flex;
    align-items: flex-end;
    gap: 2px;
    height: 120px;
}

.ls-chart__col {
    display: flex;
    flex: 1 1 0;
    align-items: flex-end;
    height: 100%;
    min-width: 3px;
}

.ls-chart__bar {
    display: block;
    width: 100%;
    border-radius: 3px 3px 0 0;
    background: #dfe3ea;
    transform-origin: bottom;
    animation: ls-grow 0.5s cubic-bezier(0.2, 0.8, 0.2, 1);
    transition: background-color 0.15s ease;
}

.ls-chart__col.is-in .ls-chart__bar {
    background: linear-gradient(180deg, #f59e0b 0%, #ef4444 100%);
}

.ls-chart__col.is-missing .ls-chart__bar {
    background: repeating-linear-gradient(45deg, #f1f1f4, #f1f1f4 3px, #fff 3px, #fff 6px);
    outline: 1px dashed #e4e6ef;
}

.ls-chart__col:hover .ls-chart__bar {
    filter: brightness(0.92);
}

.ls-chart__axis {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-top: 0.45rem;
    font-size: 0.68rem;
    color: #a1a5b7;
}

.ls-chart__legend {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 0.3rem 0.8rem;
}

.ls-chart__legend span {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
}

.ls-chart__swatch {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 2px;
    background: #dfe3ea;
}

.ls-chart__swatch--in {
    background: linear-gradient(180deg, #f59e0b 0%, #ef4444 100%);
}

@keyframes ls-tick {
    0% { transform: translateY(-40%) scale(0.92); opacity: 0; }
    100% { transform: translateY(0) scale(1); opacity: 1; }
}

@keyframes ls-blink {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.25; }
}

@keyframes ls-pulse {
    0% { transform: scale(1); opacity: 0.7; }
    100% { transform: scale(2.8); opacity: 0; }
}

@keyframes ls-glow {
    0%, 100% { box-shadow: inset 3px 0 0 var(--bs-warning), 0 0 0 0 rgba(var(--bs-warning-rgb), 0); }
    50% { box-shadow: inset 3px 0 0 var(--bs-warning), 0 0 0 4px rgba(var(--bs-warning-rgb), 0.15); }
}

@keyframes ls-stripes {
    from { background-position: 0 0; }
    to { background-position: 12px 0; }
}

@keyframes ls-grow {
    from { transform: scaleY(0); }
    to { transform: scaleY(1); }
}

@keyframes ls-fade-in {
    from { opacity: 0; transform: translateY(4px); }
    to { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
    .ls-cd__num,
    .ls-cd__sep,
    .ls-live-dot::after,
    .ls-card--active,
    .ls-cd__progress span,
    .ls-chart__bar,
    .ls-hero,
    .ls-card,
    .ls-eco-block {
        animation: none !important;
    }
}

/* ── Yük Boşaltma · Ekonomik Değerlendirme ── */
.ls-badge-auto {
    margin-left: 0.35rem;
    padding: 0.05rem 0.4rem;
    border-radius: 999px;
    font-size: 0.62rem;
    font-weight: 600;
    background: rgba(var(--bs-info-rgb), 0.12);
    color: var(--bs-info);
}

.ls-eco__disclaimer {
    display: flex;
    align-items: flex-start;
    gap: 0.45rem;
    margin-bottom: 0.8rem;
    font-size: 0.75rem;
}

.ls-eco__toolbar {
    display: flex;
    flex-direction: column;
    gap: 0.7rem;
    padding: 0.8rem 0.9rem;
    margin-bottom: 0.9rem;
    border: 1px solid #f1f1f4;
    border-radius: 0.6rem;
    background: #fcfcfd;
}

.ls-eco__group {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 0.6rem 1rem;
}

.ls-eco__date { width: 150px; font-size: 0.8rem; }
.ls-eco__hour { width: 96px; font-size: 0.8rem; }
.ls-eco__num { width: 120px; font-size: 0.8rem; }
.ls-eco__num--sm { width: 100px; }

.ls-eco__checks {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem 0.9rem;
    min-height: 32px;
    font-size: 0.78rem;
}

.ls-eco__checks .form-check-label { font-size: 0.78rem; }

.ls-eco__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 0.75rem;
}

.ls-eco__actions .btn {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.8rem;
}

.ls-eco__error {
    border-color: rgba(var(--bs-danger-rgb), 0.35);
    background: rgba(var(--bs-danger-rgb), 0.06);
    color: #8a1c1c;
}

.ls-eco__error-detail {
    margin-top: 0.25rem;
    font-size: 0.72rem;
    color: #7e8299;
}

.ls-eco__error-actions { margin-top: 0.55rem; }

.ls-eco__future {
    display: flex;
    align-items: flex-start;
    gap: 0.45rem;
    margin-bottom: 0.6rem;
    border-color: rgba(var(--bs-warning-rgb), 0.45);
    background: rgba(var(--bs-warning-rgb), 0.08);
    color: #7a5a00;
    font-size: 0.75rem;
}

.ls-eco__kpis { margin-bottom: 0.6rem; }

.ls-eco__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem 1.1rem;
    margin-bottom: 0.9rem;
    font-size: 0.72rem;
    color: #7e8299;
}

.ls-eco__meta span {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
}

.ls-eco__none { padding: 1rem; }

.ls-eco__blocks {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 0.75rem;
    margin-bottom: 1rem;
}

.ls-eco-block {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 0.8rem 0.9rem;
    border: 1px solid #f1f1f4;
    border-radius: 0.6rem;
    background: #fff;
    box-shadow: inset 3px 0 0 var(--bs-danger);
    animation: ls-fade-in 0.3s ease;
}

.ls-eco-block__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.5rem;
}

.ls-eco-block__range {
    font-size: 0.85rem;
    font-weight: 700;
    color: #181c32;
}

.ls-eco-block__sub {
    margin-top: 0.1rem;
    font-size: 0.7rem;
    color: #7e8299;
}

.ls-eco-block__text {
    margin: 0;
    font-size: 0.75rem;
    color: #5e6278;
}

.ls-eco-block__foot {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0.5rem;
}

.ls-eco-block__breaker { width: auto; min-width: 160px; font-size: 0.75rem; }

.ls-eco-chart {
    padding: 0.75rem 0.9rem 0.6rem;
    margin-bottom: 0.9rem;
    border: 1px solid #f1f1f4;
    border-radius: 0.6rem;
    background: #fff;
    overflow-x: auto;
}

.ls-eco-chart svg {
    display: block;
    width: 100%;
    height: auto;
    max-height: 340px;
}

.ls-eco-chart__grid { stroke: #eef0f4; stroke-width: 1; }
.ls-eco-chart__tick { font-size: 9px; fill: #a1a5b7; }
.ls-eco-chart__bar--positive { fill: #50cd89; background: #50cd89; }
.ls-eco-chart__bar--low { fill: #f6c000; background: #f6c000; }
.ls-eco-chart__bar--below { fill: #f1416c; background: #f1416c; }
.ls-eco-chart__bar--nodata { fill: #dfe3ea; background: #dfe3ea; }

.ls-eco-chart__cost,
.ls-eco-chart__threshold {
    fill: none;
    stroke-width: 2;
    vector-effect: non-scaling-stroke;
}

.ls-eco-chart__cost { stroke: #3f4254; }
.ls-eco-chart__threshold { stroke: #7239ea; stroke-dasharray: 5 4; }

.ls-eco-chart__legend {
    margin-top: 0.45rem;
    font-size: 0.68rem;
    color: #a1a5b7;
}

.ls-eco-chart__swatch {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 2px;
}

.ls-eco-chart__line {
    display: inline-block;
    width: 16px;
    height: 0;
    border-top: 2px solid #3f4254;
}

.ls-eco-chart__line--threshold { border-top: 2px dashed #7239ea; }

.ls-eco__table { margin-bottom: 0.9rem; }
.ls-eco__row--below td:first-child { box-shadow: inset 3px 0 0 var(--bs-danger); }
.ls-eco__row--low td:first-child { box-shadow: inset 3px 0 0 var(--bs-warning); }

.ls-eco__actual {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem 0.9rem;
}

/* ---------- Sayaç detayı: Endeks Bilgileri ---------- */

.md-index {
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.md-index__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 1.1rem 1.35rem;
    border-bottom: 1px solid var(--bs-border-color);
}

.md-index__title {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--bs-gray-700);
}

.md-index__legend {
    display: inline-flex;
    gap: 0.85rem;
    font-size: 0.88rem;
    font-weight: 600;
    color: var(--bs-gray-600);
}

.md-index__legend-item {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.md-index__legend-item::before {
    content: "";
    width: 0.55rem;
    height: 0.55rem;
    border-radius: 50%;
}

.md-index__legend-item--current::before {
    background: var(--bs-success);
}

.md-index__legend-item--previous::before {
    background: var(--bs-danger);
}

.md-index__rows {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    padding: 0.85rem;
    min-height: 0;
}

.md-index__row {
    flex: 1;
    display: grid;
    grid-template-columns: 1fr 1fr;
    border: 1px solid var(--bs-border-color);
    border-radius: 0.75rem;
    background: var(--bs-body-bg);
    overflow: hidden;
    transition: box-shadow 0.15s ease, border-color 0.15s ease;
}

.md-index__row:hover {
    border-color: var(--bs-gray-300);
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.06);
}

.md-index__cell {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    gap: 0;
    min-width: 0;
    padding: 0.55rem 1rem;
    text-align: left;
}

.md-index__cell--current {
    background: linear-gradient(135deg, var(--bs-light-success) 0%, transparent 75%);
}

.md-index__cell--previous {
    border-left: 1px dashed var(--bs-border-color);
}

.md-index__chip {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    align-self: flex-start;
    margin: 0 0 0.55rem;
    padding: 0.2rem 0.65rem 0.2rem 0.5rem;
    border-radius: 999px;
    font-size: 0.85rem;
    font-weight: 600;
    line-height: 1.4;
}

.md-index__chip .ki-outline {
    font-size: 1.05rem;
    color: inherit;
}

.md-index__cell--current .md-index__chip {
    background: var(--bs-light-success);
    color: var(--bs-success);
}

.md-index__cell--previous .md-index__chip {
    background: var(--bs-light-danger);
    color: var(--bs-danger);
}

.md-index__value {
    display: block;
    width: 100%;
    margin: 0 0 0.15rem;
    padding: 0;
    overflow: hidden;
    font-size: clamp(1.3rem, 1.6vw, 1.7rem);
    font-weight: 700;
    line-height: 1.25;
    color: var(--bs-primary);
    font-variant-numeric: tabular-nums;
    text-align: left;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.md-index__cell--previous .md-index__value {
    color: var(--bs-gray-700);
}

.md-index__value.is-expired {
    font-size: 0.95rem;
    color: var(--bs-danger);
    white-space: normal;
}

.md-index__price {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.2rem;
    width: 100%;
    margin-top: 0.55rem;
    padding-top: 0.55rem;
    border-top: 1px dashed var(--bs-border-color);
    text-align: left;
}

.md-index__price-label {
    display: block;
    width: 100%;
    font-size: 0.92rem;
    color: var(--bs-gray-500);
    text-align: left;
}

.md-index__price-value {
    display: block;
    width: 100%;
    font-size: 1.15rem;
    font-weight: 600;
    color: var(--bs-gray-800);
    font-variant-numeric: tabular-nums;
    text-align: left;
}

.md-index__price-value--missing {
    font-size: 0.8rem;
    font-weight: 600;
    color: #b7791f;
}

/* Sayaç / analizör detay hero — inverter tesis adı kartı yüksekliğine yakın */
.scada-hero.md-hero-compact .card-body {
    padding: 0.85rem 1.35rem 0.85rem;
    min-height: 0;
}

.md-hero-compact .scada-hero__row {
    align-items: center;
    gap: 0.75rem;
    margin-top: 0.35rem;
}

.md-hero-compact .scada-hero__title {
    font-size: 1.1875rem;
    line-height: 1.3;
    font-weight: 700;
    color: #181c32;
}

.md-hero-subtitle,
.md-hero-compact .scada-hero__subtitle {
    margin-top: 0.1rem;
    font-size: 0.8125rem;
    font-weight: 500;
    color: #a1a5b7;
    line-height: 1.3;
}

/* Ortak hero bilgi şeridi — sayaç / SCADA / analizör / inverter */
.md-hero-info-card {
    display: inline-flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 0;
    margin: 0;
    flex: 0 1 auto;
    align-self: center;
    width: max-content;
    max-width: 100%;
    height: 2.5rem;
    min-height: 2.5rem;
    border-radius: 0.5rem;
    border: 1px solid #e4e9f2;
    background: linear-gradient(105deg, #f7fafc 0%, #eef5ff 48%, #f5f3ff 100%);
    box-shadow: 0 1px 2px rgba(16, 24, 40, 0.04);
    overflow: hidden;
}

.md-hero-info-card__item {
    flex: 0 1 auto;
    min-width: 0;
    height: 100%;
    min-height: 0;
    padding: 0 0.95rem;
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    gap: 0.45rem;
    border-right: 1px solid rgba(226, 232, 240, 0.95);
    white-space: nowrap;
}

.md-hero-info-card__item:last-child {
    border-right: 0;
    padding-right: 1.05rem;
}

.md-hero-info-card__item:first-child {
    padding-left: 1.05rem;
}

.md-hero-info-card__label {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #98a1b3;
    line-height: 1;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
}

.md-hero-info-card__sep {
    width: 1px;
    height: 0.9rem;
    background: #d8dde8;
    flex-shrink: 0;
    align-self: center;
}

.md-hero-info-card__value {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.875rem;
    font-weight: 700;
    color: #3f4254;
    line-height: 1;
    min-width: 0;
}

.md-hero-info-card__value > i {
    font-size: 1.05rem;
    line-height: 1;
    display: inline-block;
    flex-shrink: 0;
    width: 1.15rem;
    text-align: center;
    color: inherit;
    vertical-align: middle;
}

.md-hero-info-card__value > i:before {
    color: inherit;
}

.md-hero-info-card__facility-icon {
    width: 14px;
    height: 14px;
    flex-shrink: 0;
    object-fit: contain;
    display: inline-block;
    vertical-align: middle;
}

.md-hero-info-card__value--consumption { color: #1b84ff; }
.md-hero-info-card__value--production { color: #0d9488; }
.md-hero-info-card__value--osos { color: #3e97ff; }
.md-hero-info-card__value--comm { color: #3f4254; }
.md-hero-info-card__value--warning { color: #9a6700; }
.md-hero-info-card__value--license-ok { color: #0f7a45; }
.md-hero-info-card__value--license-warning { color: #9a6700; }
.md-hero-info-card__value--license-danger { color: #c0294a; }

.md-hero-info-card__dot {
    width: 0.45rem;
    height: 0.45rem;
    border-radius: 50%;
    flex-shrink: 0;
    background: #a1a5b7;
}

.md-hero-info-card__dot.is-on {
    background: #50cd89;
    box-shadow: 0 0 0 2px rgba(80, 205, 137, 0.2);
}

.md-hero-info-card__dot.is-off {
    background: #f1416c;
    box-shadow: 0 0 0 2px rgba(241, 65, 108, 0.15);
}

.md-hero-info-card__muted {
    color: #7e8299;
    font-weight: 600;
    font-size: 0.8rem;
}

.md-hero-info-card__days {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.12rem 0.45rem;
    border-radius: 999px;
    font-size: 0.7rem;
    font-weight: 700;
    background: #fff;
    border: 1px solid transparent;
}

.md-hero-info-card__days.is-ok {
    color: #0f7a45;
    border-color: rgba(80, 205, 137, 0.35);
}

.md-hero-info-card__days.is-warning {
    color: #9a6700;
    border-color: rgba(255, 199, 0, 0.45);
}

.md-hero-info-card__days.is-danger {
    color: #c0294a;
    border-color: rgba(241, 65, 108, 0.35);
}

.md-hero-info-card__renew-btn {
    flex-shrink: 0;
}

.md-hero-info-card__renew-note {
    font-size: 0.72rem;
    font-weight: 600;
    color: #c0294a;
}

.md-hero-info-card__item--license {
    gap: 0.4rem;
}

@media (max-width: 991.98px) {
    .md-hero-info-card {
        height: auto;
        min-height: 0;
        flex-wrap: wrap;
        overflow: visible;
        width: 100%;
        max-width: 100%;
    }
}

@media (max-width: 767.98px) {
    .md-hero-info-card {
        display: flex;
        flex-wrap: wrap;
        width: 100%;
        max-width: 100%;
        border-radius: 0.5rem;
    }

    .md-hero-info-card__item {
        flex: 1 1 auto;
        border-right: 0;
        border-bottom: 1px solid rgba(226, 232, 240, 0.95);
        padding: 0.65rem 1rem;
        white-space: normal;
    }

    .md-hero-info-card__item:last-child {
        border-bottom: 0;
        padding-right: 1rem;
    }

    .md-hero-info-card__item:first-child {
        padding-left: 1rem;
    }
}

.md-hero-compact .scada-hero__license-row {
    margin-top: 0.85rem;
}

.md-hero-compact .scada-hero__license-row .license-strip {
    align-items: stretch;
    width: 100%;
}

.md-hero-compact .scada-hero__license-row .license-strip__modules-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.65rem 1rem;
    min-height: 2.5rem;
}

.md-hero-compact .scada-hero__license-row .license-strip__modules-actions,
.md-hero-compact .scada-hero__license-row .scada-hero__actions,
.md-hero-compact .scada-hero__license-row .scada-toolbar-bar,
.md-hero-compact .meter-detail-hero-actions {
    display: flex;
    align-items: center;
    align-self: center;
    min-height: 2.5rem;
}

.md-hero-compact .meter-detail-hero-tabs {
    display: flex;
    align-items: center;
    height: 2.5rem;
}

.md-hero-compact .meter-detail-hero-tabs .nav-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 2.5rem;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    line-height: 1.2;
    box-sizing: border-box;
}

.md-hero-compact .meter-detail-hero-actions .app-btn {
    align-self: center;
    height: 1.7rem !important;
    min-height: 1.7rem !important;
    padding: 0 0.55rem !important;
    font-size: 0.7rem !important;
    line-height: 1.1 !important;
    margin: 0;
    gap: 0.3rem;
}

.md-hero-compact .meter-detail-hero-actions .app-btn i {
    font-size: 0.85rem !important;
}

/* Sayaç / analizör detay: üst boşluğu inverter ile hizala */
.app-content:has(.scada-detail-page) {
    padding-top: var(--app-page-gap, 20px) !important;
}

/*
 * Üst hero kartı: lisans / tesis chip’leri inverter tesis kartı ile aynı ölçü.
 */
.md-hero-compact .license-strip__modules-row {
    min-height: 2.5rem;
    align-items: center;
}

.md-hero-compact .license-strip__chip {
    min-height: 0;
    padding: 0.45rem 0.95rem;
    font-size: 0.875rem !important;
    line-height: 1.25;
}

.md-hero-compact .license-strip__section-title,
.md-hero-compact .license-strip__section-title--inline {
    font-size: 0.75rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.02em !important;
    text-transform: uppercase;
    line-height: 1.25 !important;
}

.md-hero-compact .license-strip__value {
    font-size: 0.875rem !important;
    font-weight: 500 !important;
    line-height: 1.25 !important;
}

.md-hero-compact .license-strip__inline-sep {
    font-size: 0.875rem !important;
}

.md-hero-compact .license-strip__dot {
    width: 0.55rem;
    height: 0.55rem;
}

/*
 * Mobil: tesis / cihaz adı kartı + hemen altındaki bilgi kartı.
 * Masaüstü (lg+) değişmez. Ortak sınıflar: scada-hero, md-hero-compact,
 * scada-comm-board, device-list-hero, inv-facility-monitor, monitoring-detail-action-header.
 */
@media (max-width: 991.98px) {
    /* —— Üst hero (tesis / sayaç / analizör / SCADA / inverter) —— */
    .scada-hero .card-body {
        padding: 1rem 1rem 0.9rem !important;
        min-height: 0 !important;
    }

    .scada-hero.md-hero-compact .card-body {
        padding: 0.85rem 1rem 0.75rem !important;
    }

    .scada-hero__row {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 0.65rem !important;
    }

    .scada-hero__row > .d-flex.flex-column.align-items-end,
    .scada-hero__row > .d-flex.flex-wrap.align-items-center.justify-content-end,
    .scada-hero__row > .d-flex.align-items-center.gap-2 {
        align-items: flex-start !important;
        justify-content: flex-start !important;
        width: 100%;
        flex-wrap: wrap;
    }

    .scada-hero__title {
        font-size: 1.05rem !important;
        word-break: break-word;
        white-space: normal !important;
    }

    .scada-hero__subtitle {
        font-size: 0.75rem !important;
    }

    .scada-hero__license-row {
        margin-top: 0.65rem !important;
    }

    .scada-hero__license-row .license-strip,
    .scada-hero__license-row .scada-hero__licenses,
    .md-hero-compact .scada-hero__license-row .license-strip {
        width: 100%;
        align-items: stretch !important;
    }

    .scada-hero__license-row .license-strip__modules-row,
    .scada-hero__license-row .license-strip__facility-row,
    .md-hero-compact .scada-hero__license-row .license-strip__modules-row,
    .md-hero-compact .license-strip__modules-row,
    .license-strip__facility-row,
    .license-strip__modules-row {
        flex-direction: column !important;
        align-items: stretch !important;
        justify-content: flex-start !important;
        gap: 0.65rem !important;
        min-height: 0 !important;
        height: auto !important;
        flex-wrap: nowrap !important;
    }

    .scada-hero__license-row .license-strip__modules-actions,
    .md-hero-compact .scada-hero__license-row .license-strip__modules-actions,
    .md-hero-compact .license-strip__modules-actions,
    .license-strip__modules-actions {
        margin-left: 0 !important;
        width: 100%;
        max-width: 100%;
        justify-content: flex-start !important;
        align-self: stretch !important;
        min-height: 0 !important;
        height: auto !important;
    }

    .scada-setup-actions {
        display: flex !important;
        flex-wrap: wrap !important;
        justify-content: flex-start !important;
        align-items: center !important;
        gap: 0.4rem !important;
        width: 100%;
        max-width: 100%;
    }

    /* Masaüstü buton şeridi mobilde gizlenir; tek dropdown kalır */
    .scada-setup-actions--desktop {
        display: none !important;
    }

    .scada-setup-actions--mobile {
        display: flex !important;
        width: 100%;
        max-width: 100%;
    }

    .scada-mobile-nav {
        position: relative;
        width: 100%;
        z-index: 20;
    }

    .scada-mobile-nav__toggle {
        display: flex !important;
        align-items: center;
        justify-content: space-between;
        width: 100%;
        height: 2.35rem !important;
        padding: 0.4rem 0.75rem !important;
        font-size: 0.8125rem !important;
        font-weight: 600;
        text-align: left;
    }

    .scada-mobile-nav__menu {
        position: absolute !important;
        inset-inline: 0;
        top: calc(100% + 0.25rem);
        width: 100% !important;
        max-height: min(70vh, 28rem);
        overflow-y: auto;
        z-index: 1060;
        box-shadow: 0 0.5rem 1.5rem rgba(24, 28, 50, 0.12);
    }

    .scada-setup-actions__split {
        display: none;
    }

    .scada-hero__actions,
    .scada-toolbar-bar,
    .md-hero-compact .scada-hero__actions,
    .md-hero-compact .scada-toolbar-bar,
    .md-hero-compact .meter-detail-hero-actions,
    .scada-hero .scada-setup-actions,
    .scada-toolbar-bar .scada-setup-actions {
        width: 100%;
        max-width: 100%;
        margin-left: 0 !important;
        margin-top: 0 !important;
        justify-content: flex-start !important;
        flex-wrap: wrap !important;
        align-items: center !important;
        min-height: 0 !important;
        height: auto !important;
    }

    /* Sabit 2.5rem yükseklik sarılmış sekmeleri kesiyordu */
    .md-hero-compact .meter-detail-hero-tabs,
    .md-hero-compact .meter-detail-hero-actions ul.nav,
    .scada-hero .meter-detail-hero-tabs,
    .scada-hero ul.nav.nav-line-tabs {
        display: flex !important;
        flex-wrap: wrap !important;
        align-items: center !important;
        height: auto !important;
        min-height: 0 !important;
        row-gap: 0.15rem;
        width: 100%;
        overflow: visible !important;
    }

    .md-hero-compact .meter-detail-hero-tabs .nav-link,
    .scada-hero .meter-detail-hero-tabs .nav-link {
        height: auto !important;
        min-height: 2.25rem;
        padding: 0.4rem 0.55rem !important;
    }

    .md-hero-compact .license-strip__chip,
    .scada-hero .license-strip__chip {
        max-width: 100%;
        flex-wrap: wrap;
    }

    .et-facility-identity-card__license-row {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 0.65rem !important;
    }

    .et-facility-identity-card__license-row > .d-flex {
        justify-content: flex-start !important;
        width: 100%;
    }

    /* —— Bilgi kartı (Sayaç / Analizör / SCADA Haberleşme meta şeridi) —— */
    .scada-comm-board__header.card-header,
    .scada-detail-page .scada-comm-board__header.card-header {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 0.65rem;
        padding-top: 0.85rem;
        padding-bottom: 0.55rem;
    }

    .scada-comm-board__header .card-title {
        width: 100%;
        margin: 0;
        padding: 0;
    }

    .scada-comm-board__header .card-toolbar,
    .scada-comm-board__meta,
    .scada-comm-board__meta--popover {
        display: flex !important;
        flex-direction: column !important;
        flex-wrap: nowrap !important;
        align-items: stretch !important;
        justify-content: flex-start !important;
        width: 100% !important;
        max-width: 100% !important;
        margin-top: 0 !important;
        margin-left: 0 !important;
        padding: 0 !important;
        gap: 0 !important;
        overflow: visible !important;
        text-align: left;
    }

    .scada-comm-board__meta-item {
        width: 100%;
        flex: 0 0 auto !important;
        padding: 0.55rem 0 !important;
        border-left: 0 !important;
        border-top: 1px solid #e4e6ef;
        gap: 0.65rem;
    }

    .scada-comm-board__meta-item:first-child {
        border-top: 0;
        padding-top: 0.15rem !important;
        padding-left: 0 !important;
    }

    .scada-comm-board__meta-item:last-child {
        padding-bottom: 0.15rem !important;
        padding-right: 0 !important;
    }

    .scada-comm-board__meta-label,
    .scada-comm-board__meta-value {
        white-space: normal !important;
        word-break: break-word;
    }

    /* —— DeviceListHero (modem vb.) —— */
    .device-list-hero > .card-header {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 0.65rem;
        padding-top: 1.15rem;
        padding-bottom: 0.55rem;
    }

    .device-list-hero > .card-header .card-toolbar {
        width: 100%;
        justify-content: flex-start !important;
        flex-wrap: wrap;
        padding-top: 0;
        gap: 0.4rem;
    }

    .device-list-tabs-bar {
        align-items: flex-start !important;
        flex-direction: column;
        gap: 0.35rem 0.75rem;
    }

    .device-list-tabs {
        width: 100%;
        flex-wrap: wrap;
    }

    /* —— Monitoring action header (SCADA üst aksiyon kartı) —— */
    .monitoring-detail-action-header.card .card-header {
        flex-direction: column !important;
        align-items: stretch !important;
    }

    .monitoring-detail-action-header.card .card-header .card-toolbar {
        width: 100%;
        justify-content: flex-start !important;
    }

    /* —— İnverter tesis durumu paneli: solda dar kutu yerine tam genişlik —— */
    .inv-facility-monitor .inv-status-facility-panel {
        min-width: 0 !important;
        max-width: none !important;
        width: 100%;
        flex: 1 1 auto;
    }

    .inv-facility-monitor .inv-status-headline {
        padding-right: 0;
        width: 100%;
    }

    .inv-detail-hero > .card-body {
        padding-left: 1rem !important;
        padding-right: 1rem !important;
    }

    .inv-hero-meta {
        gap: 0.4rem;
    }

    .inv-hero-meta__chip {
        max-width: 100%;
        white-space: normal;
        flex-wrap: wrap;
    }

    /* —— SCADA rapor / ops hero: başlık + Görev Oluştur / Tesise Dön üst üste binmesin —— */
    .scada-ops-hero > .card-header,
    .scada-history-page .scada-ops-hero > .card-header,
    .scada-history-page > .card.scada-report-section > .card-header,
    .scada-report-section > .card-header {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 0.65rem !important;
        padding-left: 1rem !important;
        padding-right: 1rem !important;
    }

    .scada-ops-hero > .card-header .card-title,
    .scada-report-section > .card-header .card-title {
        width: 100%;
        max-width: 100%;
        margin: 0;
        padding: 0;
    }

    .scada-ops-hero > .card-header .card-toolbar,
    .scada-history-page .scada-ops-hero > .card-header .card-toolbar,
    .scada-report-section > .card-header .card-toolbar {
        width: 100%;
        margin: 0 !important;
        padding: 0 !important;
        align-self: stretch !important;
        justify-content: flex-start !important;
        flex-wrap: wrap;
        gap: 0.4rem;
    }

    .scada-report-title {
        font-size: 1.05rem !important;
        word-break: break-word;
    }

    .scada-report-filters {
        gap: 0.4rem;
    }

    .scada-report-filters .btn {
        flex: 1 1 auto;
        min-width: 0;
    }

    .scada-history-page {
        --scada-report-pad-x: 1rem;
        --scada-report-pad-y: 0.85rem;
        display: flex;
        flex-direction: column;
        gap: 0.85rem;
    }

    /* Sticky hero mobilde alttaki kartın üstüne binmesin */
    .scada-hero.scada-hero--sticky {
        position: relative !important;
        top: auto !important;
        z-index: auto !important;
        box-shadow: none !important;
    }

    /*
     * Genel: monitoring sayfalarında kart başlığı (title + toolbar) yan yana
     * kalıp çakışmasın. Masaüstü dokunulmaz.
     */
    .monitoring-detail-page > .card > .card-header,
    .monitoring-detail-page .monitoring-page-section > .card > .card-header,
    .scada-ops-page > .card > .card-header,
    .scada-detail-page .monitoring-page-section > .card > .card-header,
    .inv-facility-monitor .card > .card-header {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 0.65rem;
    }

    .monitoring-detail-page > .card > .card-header .card-toolbar,
    .monitoring-detail-page .monitoring-page-section > .card > .card-header .card-toolbar,
    .scada-ops-page > .card > .card-header .card-toolbar,
    .scada-detail-page .monitoring-page-section > .card > .card-header .card-toolbar,
    .inv-facility-monitor .card > .card-header .card-toolbar {
        width: 100%;
        margin-left: 0 !important;
        justify-content: flex-start !important;
        flex-wrap: wrap;
        gap: 0.4rem;
    }

    /*
     * Uygulama geneli (mobil): başlık + toolbar yan yana olan tüm kartlar
     * dikey yığılsın — sayfa sayfa düzeltme yerine tek kural.
     */
    .app-content .card > .card-header:has(> .card-title):has(> .card-toolbar),
    .app-content .card > .card-header:has(.card-title):has(.card-toolbar) {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 0.65rem;
    }

    .app-content .card > .card-header:has(> .card-title):has(> .card-toolbar) > .card-toolbar,
    .app-content .card > .card-header:has(.card-title):has(.card-toolbar) .card-toolbar {
        width: 100%;
        max-width: 100%;
        margin-left: 0 !important;
        margin-right: 0 !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        align-self: stretch !important;
        justify-content: flex-start !important;
        flex-wrap: wrap;
        gap: 0.4rem;
    }

    .app-content .card > .card-header:has(> .card-title):has(> .card-toolbar) > .card-title,
    .app-content .card > .card-header:has(.card-title):has(.card-toolbar) .card-title {
        width: 100%;
        max-width: 100%;
        margin: 0;
    }
}

/* Sayaç Bilgileri başlığı altındaki fazla boşluğu daralt (üst karta taşındı) */
.scada-detail-page .scada-comm-board__header.card-header {
    padding-top: 0.85rem;
    padding-bottom: 0.35rem;
}

.scada-detail-page .scada-comm-board > .card-header + .card-body.pt-0 {
    padding-top: 0.35rem !important;
}

.md-home {
    /* Üst menü + inverter-ölçülü hero + bilgi kartı + sayfa boşlukları */
    --md-home-h: clamp(360px, calc(100vh - 460px), 520px);
}

.md-home__card {
    height: var(--md-home-h);
}

.md-home .md-index__head {
    padding: 0.7rem 1.1rem;
}

.md-home .md-index__rows {
    gap: 0.5rem;
    padding: 0.65rem;
}

.md-home .md-index__cell {
    gap: 0;
    justify-content: center;
    padding: 0.4rem 0.85rem;
}

.md-home .md-index__chip {
    margin-bottom: 0.45rem;
    font-size: 0.78rem;
    padding: 0.1rem 0.55rem 0.1rem 0.45rem;
}

.md-home .md-index__value {
    font-size: clamp(1.2rem, 1.45vw, 1.55rem);
    margin-bottom: 0.1rem;
}

.md-home .md-index__price {
    margin-top: 0.45rem;
    padding-top: 0.45rem;
    gap: 0.15rem;
}

.md-home .md-index__price-label {
    font-size: 0.88rem;
}

.md-home .md-index__price-value {
    font-size: 1.05rem;
}

.md-home .md-index__legend {
    font-size: 0.86rem;
}

.md-ratio .card-body {
    display: flex;
    flex-direction: column;
    padding: 0.85rem 1.1rem;
}

.md-ratio__head {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 168px;
    /* Daire altta taştığı için metni kırmızı alanın görsel ortasına indir */
    padding-top: 0.35rem;
    padding-bottom: 2.75rem;
    margin-bottom: 48px;
}

.md-ratio__head .card-title {
    margin-top: 0.85rem;
    margin-bottom: 0;
    font-size: 1.1rem;
    letter-spacing: 0.04em;
}

.md-ratio__circle-wrap {
    left: calc(50% - 36px);
    bottom: -36px;
}

.md-ratio__circle {
    width: 72px;
    height: 72px;
    line-height: 1.1;
}

.md-ratio__rows {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    justify-content: space-evenly;
    font-size: 0.95rem !important;
}

.md-ratio__rows > .border-bottom-dashed {
    border-bottom-width: 0.5px !important;
    border-bottom-color: rgba(33, 37, 41, 0.18) !important;
}

@media (max-width: 1199.98px) {
    .md-home__card {
        height: auto;
        min-height: 360px;
    }
}

/* Analizör detay: kompakt anasayfa */
.ad-home .ad-index {
    min-height: var(--md-home-h);
}

.ad-home .ad-live__body {
    gap: 0.6rem;
    padding: 0.65rem;
}

@media (min-width: 1400px) {
    .ad-home .ad-metric-grid {
        flex: 1 1 auto;
        grid-auto-rows: 1fr;
    }

    .ad-home .ad-metric__rows {
        flex: 1 1 auto;
        justify-content: space-evenly;
    }
}

.ad-home .ad-live__notice {
    padding: 0.5rem 0.85rem;
}

.ad-home .ad-metric-grid {
    gap: 12px;
}

.ad-home .ad-metric__head {
    gap: 0.5rem;
    padding: 0.45rem 0.8rem;
}

.ad-home .ad-metric__icon {
    width: 24px;
    height: 24px;
    font-size: 0.95rem;
}

.ad-home .ad-metric__rows {
    padding: 0.15rem 0.8rem;
}

.ad-home .ad-metric__row {
    padding: 0.25rem 0;
}

.md-price-warning {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.15rem 0.55rem;
    border: 1px solid rgba(183, 121, 31, 0.35);
    border-radius: 999px;
    background: rgba(255, 199, 0, 0.1);
    font-size: 0.78rem;
    font-weight: 600;
    color: #b7791f;
    cursor: pointer;
}

.md-price-warning i {
    color: inherit;
}

.md-price-warning:hover {
    background: rgba(255, 199, 0, 0.2);
}

/* ---------- Analizör detayı: Anlık ölçümler ---------- */

.ad-index {
    min-height: 520px;
}

.ad-live {
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.ad-live__head-meta {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    min-width: 0;
}

.ad-live__subtitle {
    font-size: 0.72rem;
    color: var(--bs-gray-500);
    white-space: nowrap;
}

.ad-live__body {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
    padding: 0.85rem;
    min-height: 0;
}

.ad-live__notice {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 0.75rem 1rem;
    border: 1px solid rgba(var(--bs-danger-rgb), 0.2);
    border-radius: 0.65rem;
    background: rgba(var(--bs-danger-rgb), 0.05);
    font-size: 0.85rem;
    color: var(--bs-gray-800);
}

.ad-live__notice .ki-outline {
    color: var(--bs-danger);
    margin-top: 0.1rem;
}

.ad-metric-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
}

@media (max-width: 1399.98px) {
    .ad-metric-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767.98px) {
    .ad-metric-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

.ad-metric {
    display: flex;
    flex-direction: column;
    border: 1px solid var(--bs-border-color);
    border-radius: 0.75rem;
    background: var(--bs-body-bg);
    overflow: hidden;
    transition: box-shadow 0.15s ease, border-color 0.15s ease;
}

.ad-metric:hover {
    border-color: var(--bs-gray-300);
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.06);
}

.ad-metric__head {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.7rem 0.9rem;
    border-bottom: 1px solid var(--bs-border-color);
}

.ad-metric__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    flex-shrink: 0;
    border-radius: 8px;
    font-size: 1.05rem;
    background: rgba(var(--bs-primary-rgb), 0.1);
    color: var(--bs-primary);
}

.ad-metric__icon .ki-outline { color: inherit; }
.ad-metric__icon--success { background: rgba(var(--bs-success-rgb), 0.1); color: var(--bs-success); }
.ad-metric__icon--warning { background: rgba(var(--bs-warning-rgb), 0.14); color: #b7791f; }
.ad-metric__icon--danger { background: rgba(var(--bs-danger-rgb), 0.1); color: var(--bs-danger); }
.ad-metric__icon--info { background: rgba(var(--bs-info-rgb), 0.1); color: var(--bs-info); }

.ad-metric__title {
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--bs-gray-800);
}

.ad-metric__rows {
    display: flex;
    flex-direction: column;
    padding: 0.3rem 0.9rem;
}

.ad-metric__row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.45rem 0;
    border-bottom: 1px dashed var(--bs-border-color);
}

.ad-metric__row:last-child {
    border-bottom: 0;
}

.ad-metric__label {
    font-size: 0.78rem;
    color: var(--bs-gray-500);
}

.ad-metric__value {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--bs-gray-800);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.ad-metric__unit {
    margin-left: 0.25rem;
    font-size: 0.72rem;
    font-weight: 500;
    color: var(--bs-gray-500);
}

.ad-metric__empty {
    color: var(--bs-gray-400);
}

.ad-settings-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 1rem 1.25rem;
}

.ad-settings-grid__label {
    font-size: 0.75rem;
    color: var(--bs-gray-500);
}

.ad-settings-grid__value {
    margin-top: 0.15rem;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--bs-gray-800);
    word-break: break-word;
}

/* ---- Cihaz ayarları kartları (Sayaç Ayarları / Fiziksel Konum / Elektrik Fiyatlandırması) ---- */
.et-settings-stack {
    display: flex;
    flex-direction: column;
    gap: var(--app-page-gap, 20px);
}

.et-settings-pair > [class*="col-"] > .et-settings-stack {
    height: 100%;
}

.et-settings-pair > [class*="col-"] > .et-settings-card,
.et-settings-pair > [class*="col-"] > .et-settings-stack > .et-settings-card:first-child {
    height: 100%;
}

.et-settings-card {
    border: 1px solid #eef0f6;
    border-radius: 14px;
    box-shadow: 0 6px 18px rgba(24, 28, 50, 0.05);
    overflow: hidden;
}

.et-settings-card__header {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem 1.1rem;
    border-bottom: 1px solid #f1f1f4;
    background: linear-gradient(180deg, #fbfcfe 0%, #ffffff 100%);
}

.et-settings-card__header--split {
    justify-content: space-between;
    flex-wrap: wrap;
    row-gap: 0.65rem;
}

.et-settings-card__header-main {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    min-width: 0;
    flex: 1 1 14rem;
}

.et-settings-card__header-side {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    flex-shrink: 0;
    margin-left: auto;
}

.et-settings-card__header-side .form-label {
    color: #5e6278;
}

.et-settings-card__icon {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(var(--bs-primary-rgb), 0.1);
    color: var(--bs-primary);
}

.et-settings-card__icon .ki-duotone { color: inherit; }
.et-settings-card__icon--info { background: rgba(var(--bs-info-rgb), 0.1); color: var(--bs-info); }
.et-settings-card__icon--success { background: rgba(var(--bs-success-rgb), 0.1); color: var(--bs-success); }
.et-settings-card__icon--warning { background: rgba(var(--bs-warning-rgb), 0.12); color: #b7791f; }
.et-settings-card__icon--danger { background: rgba(var(--bs-danger-rgb), 0.1); color: var(--bs-danger); }

.et-settings-card__title {
    margin: 0;
    font-size: 1.1rem;
    font-weight: 700;
    color: #252f4a;
    line-height: 1.3;
}

.et-settings-card__subtitle {
    margin-top: 2px;
    font-size: 0.8rem;
    color: #99a1b7;
    line-height: 1.35;
}

.et-settings-card__link {
    margin-left: auto;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.45rem 0.8rem;
    border-radius: 8px;
    background: rgba(var(--bs-primary-rgb), 0.08);
    color: var(--bs-primary);
    font-size: 0.8rem;
    font-weight: 600;
    white-space: nowrap;
    transition: background 0.15s ease;
}

.et-settings-card__link:hover {
    background: rgba(var(--bs-primary-rgb), 0.15);
    color: var(--bs-primary);
}

.et-settings-card__link .ki-duotone { color: inherit; }

.et-settings-card__body {
    padding: 0.75rem 1.1rem 0.9rem;
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
}

.et-settings-card__body--tight {
    padding-top: 0.55rem;
    gap: 0.4rem;
}

.et-settings-card__body--center {
    justify-content: flex-start;
    align-items: stretch;
    text-align: start;
    min-height: 0;
}

.et-settings-card__body--center > * {
    width: 100%;
    max-width: none;
}

.et-settings-card__footer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
    padding: 0.85rem 1.4rem;
    border-top: 1px solid #f1f1f4;
    background: #fcfcfd;
}

.et-settings-card__error,
.et-settings-card__success {
    padding: 0.4rem 0.7rem;
    border-radius: 6px;
    font-size: 0.8rem;
    font-weight: 600;
}

.et-settings-card__error { color: #f8285a; background: rgba(248, 40, 90, 0.07); }
.et-settings-card__success { color: #0e8a3e; background: rgba(23, 198, 83, 0.1); }

.et-settings-section {
    border: 1px solid #f1f1f4;
    border-radius: 12px;
    padding: 0.75rem 0.9rem 0.85rem;
    background: #ffffff;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: stretch;
    height: auto !important;
}

.et-settings-section__head {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    margin: 0 0 0.65rem;
    padding: 0 0 0.65rem;
    border-bottom: 1px solid #eef0f6;
    flex-shrink: 0;
}

.et-settings-section__icon {
    flex-shrink: 0;
    width: 34px;
    height: 34px;
    border-radius: 9px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(var(--bs-primary-rgb), 0.1);
    color: var(--bs-primary);
}

.et-settings-section__icon .ki-duotone { color: inherit; }
.et-settings-section__icon--info {
    background: rgba(var(--bs-info-rgb), 0.1);
    color: var(--bs-info);
}

.et-settings-section__text {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    min-width: 0;
}

/* Başlık altındaki alan satırında üst gutter’ı sıfırla */
.et-settings-section > .row {
    --bs-gutter-x: 0.9rem !important;
    --bs-gutter-y: 0.75rem !important;
    margin-top: 0 !important;
}

.et-settings-section > .row > [class*="col-"]:nth-child(-n+2) {
    padding-top: 0 !important;
}

.et-settings-section .form-label {
    margin-bottom: 0.25rem;
}

.ep-source-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 0.85rem 0;
    margin: 0 0 0.85rem;
    padding: 0 0 0.85rem;
    border-bottom: 1px solid #e4e6ef;
}

.ep-source-bar__main {
    flex: 1 1 16rem;
    min-width: 0;
    padding-right: 1.35rem;
}

.ep-source-options {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(11.5rem, 1fr));
    gap: 0.65rem;
    width: 100%;
}

.ep-source-option {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    height: 100%;
    overflow: hidden;
    white-space: normal;
}

.ep-source-option__body {
    display: block;
    min-width: 0;
    overflow: hidden;
}

.ep-source-option__desc {
    margin-top: 0.2rem;
    line-height: 1.35;
    overflow-wrap: anywhere;
    word-break: break-word;
    white-space: normal;
}

.ep-source-bar__side {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    padding-left: 1.35rem;
    border-left: 1px solid #cfd3de;
    min-width: 12rem;
}

.ep-source-bar__title {
    margin: 0 0 0.45rem;
    font-size: 0.88rem;
    font-weight: 700;
    color: #252f4a;
    line-height: 1.2;
    letter-spacing: -0.01em;
}

@media (max-width: 991.98px) {
    .ep-source-bar__main {
        padding-right: 0;
    }

    .ep-source-bar__side {
        width: 100%;
        padding-left: 0;
        padding-top: 0.75rem;
        border-left: 0;
        border-top: 1px solid #cfd3de;
    }
}

.ep-kind-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
}

.ep-kind-tab {
    display: inline-flex;
    align-items: center;
    gap: 0.65rem;
    min-width: 11.5rem;
    padding: 0.7rem 0.9rem;
    border: 1px solid #e4e6ef;
    border-radius: 0.75rem;
    background: #f9f9f9;
    color: #5e6278;
    text-align: left;
    transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease, color 0.15s ease;
}

.ep-kind-tab:hover {
    border-color: #c4cada;
    background: #fff;
    color: #181c32;
}

.ep-kind-tab__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 0.55rem;
    background: #eef0f6;
    color: #7e8299;
    flex-shrink: 0;
}

.ep-kind-tab__text {
    display: flex;
    flex-direction: column;
    min-width: 0;
    gap: 0.1rem;
}

.ep-kind-tab__title {
    font-size: 0.95rem;
    font-weight: 700;
    line-height: 1.2;
    color: inherit;
}

.ep-kind-tab__hint {
    font-size: 0.7rem;
    color: #a1a5b7;
    line-height: 1.2;
}

.ep-kind-tab__check {
    margin-left: auto;
    color: inherit;
    opacity: 0.95;
}

.ep-kind-tab.is-active {
    background: #fff;
    box-shadow: 0 0.35rem 1rem rgba(24, 28, 50, 0.06);
}

.ep-kind-tab.is-active.is-consumption {
    border-color: #009ef7;
    color: #009ef7;
}

.ep-kind-tab.is-active.is-consumption .ep-kind-tab__icon {
    background: rgba(0, 158, 247, 0.12);
    color: #009ef7;
}

.ep-kind-tab.is-active.is-production {
    border-color: #50cd89;
    color: #17c653;
}

.ep-kind-tab.is-active.is-production .ep-kind-tab__icon {
    background: rgba(80, 205, 137, 0.14);
    color: #17c653;
}

.ep-kind-tab.is-active.is-distribution {
    border-color: #7239ea;
    color: #7239ea;
}

.ep-kind-tab.is-active.is-distribution .ep-kind-tab__icon {
    background: rgba(114, 57, 234, 0.12);
    color: #7239ea;
}

.ep-kind-tab.is-active .ep-kind-tab__hint {
    color: inherit;
    opacity: 0.72;
}

.md-energy-role {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.35rem 0.65rem;
    border-radius: 0.5rem;
    font-size: 0.78rem;
    font-weight: 700;
    line-height: 1.2;
}

.md-energy-role--consumption {
    background: rgba(0, 158, 247, 0.12);
    color: #009ef7;
}

.md-energy-role--production {
    background: rgba(80, 205, 137, 0.14);
    color: #17c653;
}

.md-energy-role--both {
    background: rgba(114, 57, 234, 0.12);
    color: #7239ea;
}

.md-osos-instant__banner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.85rem 1rem;
    margin-bottom: 1rem;
    border-radius: 0.75rem;
    background: linear-gradient(135deg, rgba(0, 158, 247, 0.1), rgba(80, 205, 137, 0.08));
    border: 1px solid rgba(0, 158, 247, 0.18);
}

.md-osos-instant__brand {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    font-weight: 700;
    color: #181c32;
}

.md-osos-instant__brand-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.25rem 0.55rem;
    border-radius: 999px;
    background: #009ef7;
    color: #fff;
    font-size: 0.72rem;
    font-weight: 700;
}

.md-osos-instant__times {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
    gap: 0.65rem;
    margin-bottom: 1rem;
}

.md-osos-instant__time-card {
    padding: 0.75rem 0.9rem;
    border-radius: 0.65rem;
    border: 1px solid #e4e6ef;
    background: #fff;
}

.md-osos-instant__time-card.is-primary {
    border-color: rgba(0, 158, 247, 0.35);
    background: rgba(0, 158, 247, 0.04);
}

.md-osos-instant__time-label {
    display: block;
    font-size: 0.7rem;
    font-weight: 600;
    color: #a1a5b7;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    margin-bottom: 0.25rem;
}

.md-osos-instant__time-value {
    font-size: 0.95rem;
    font-weight: 700;
    color: #181c32;
}

.md-osos-instant__values {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(8.5rem, 1fr));
    gap: 0.65rem;
}

.md-osos-instant__value {
    padding: 0.75rem 0.85rem;
    border-radius: 0.65rem;
    background: #f9f9f9;
    border: 1px solid #eef0f6;
}

.md-osos-instant__value-label {
    display: block;
    font-size: 0.7rem;
    color: #a1a5b7;
    font-weight: 600;
    margin-bottom: 0.2rem;
}

.md-osos-instant__value-num {
    font-size: 1rem;
    font-weight: 700;
    color: #181c32;
}

.md-osos-instant__value-unit {
    font-size: 0.72rem;
    color: #7e8299;
    font-weight: 600;
    margin-left: 0.2rem;
}

.md-osos-instant__hint {
    margin-top: 0.85rem;
    font-size: 0.78rem;
    color: #7e8299;
    line-height: 1.4;
}

@media (max-width: 767.98px) {
    .ep-kind-tab {
        flex: 1 1 100%;
    }
}

/* Ayarlar kartlarındaki dış sütun satırında üst boşluğu da kes */
.et-settings-card__body > .row {
    --bs-gutter-y: 0.75rem !important;
}

.et-settings-card__body > .row > [class*="col-"] {
    padding-top: 0 !important;
}

.et-settings-section__title {
    font-size: 0.95rem;
    font-weight: 700;
    color: #252f4a;
    line-height: 1.25;
}

.et-settings-section__hint {
    font-size: 0.75rem;
    color: #99a1b7;
    line-height: 1.3;
}

.et-settings-card .form-label {
    margin-bottom: 0.35rem;
    font-size: 0.78rem;
    font-weight: 600;
    color: #4b5675;
}

.et-settings-card .form-control,
.et-settings-card .form-select {
    font-size: 0.85rem;
    font-weight: 500;
    color: #252f4a;
    border: 1px solid #e8ebf1;
    border-radius: 8px;
    background-color: #f9fafc;
    transition: border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease;
}

.et-settings-card .form-control:not(.form-control-sm),
.et-settings-card .form-select:not(.form-select-sm) {
    min-height: 2.5rem;
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
    padding-left: 0.85rem;
}

.et-settings-card .form-control:not(.form-control-sm) {
    padding-right: 0.85rem;
}

.et-settings-card .form-control:hover,
.et-settings-card .form-select:hover {
    border-color: #dbdfe9;
}

.et-settings-card .form-control:focus,
.et-settings-card .form-select:focus {
    border-color: var(--bs-primary);
    background-color: #ffffff;
    box-shadow: 0 0 0 3px rgba(var(--bs-primary-rgb), 0.12);
}

.et-settings-card .form-control::placeholder {
    color: #b5b5c3;
    font-weight: 400;
}

.et-settings-card .form-control:disabled,
.et-settings-card .form-select:disabled {
    opacity: 0.65;
    cursor: not-allowed;
}

.et-settings-card .rounded.border {
    border-color: #f1f1f4 !important;
    border-radius: 12px !important;
}

@media (max-width: 575.98px) {
    .et-settings-card__header {
        flex-wrap: wrap;
    }

    .et-settings-card__link {
        margin-left: 0;
    }
}

/* ── Sayaç analiz raporu (mar-*) ───────────────────────────── */
.mar-filter__body {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: .75rem 1rem;
    padding: 1rem 1.25rem;
}

.mar-filter__body.inv-report-controls {
    align-items: center;
    padding: .85rem 1.1rem;
}

.mar-filter__body .mar-filter__actions {
    margin-left: auto;
}

.mar-filter__field--source .app-form-field {
    margin-bottom: 0;
}

.mar-filter__field--source .app-dd__trigger {
    min-width: 11.5rem;
}

.mar-filter__field {
    display: flex;
    flex-direction: column;
    gap: .3rem;
}

.mar-filter__date {
    min-width: 150px;
}

.mar-filter__field--month,
.mar-filter__field--source {
    min-width: 11.5rem;
}

.mar-filter__field .app-form-field {
    margin-bottom: 0;
}

.mar-filter__select,
.mar-filter__field .app-dd__trigger.mar-filter__select {
    min-width: 11.5rem;
    width: 100%;
}

.mar-filter__quick {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
}

.mar-filter__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin-left: auto;
}

.mar-filter__actions .btn i {
    font-size: 1rem;
    margin-right: .25rem;
}

.mar-caption {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem 1.25rem;
    margin: 1rem 0 .75rem;
    font-size: .82rem;
    font-weight: 600;
    color: #4b5675;
}

.mar-caption i {
    margin-right: .3rem;
    color: #99a1b7;
}

.mar-notice {
    display: flex;
    gap: .6rem;
    padding: .7rem 1rem;
    margin-bottom: 1rem;
    border: 1px dashed #f6c000;
    border-radius: .6rem;
    background: #fff8dd;
    color: #7a5b00;
    font-size: .8rem;
}

.mar-notice i {
    font-size: 1.1rem;
    margin-top: .1rem;
}

.mar-notice ul {
    margin: 0;
    padding-left: 1rem;
}

.mar-kpis {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: .9rem;
    margin-top: 1.25rem;
}

.mar-kpi {
    display: flex;
    flex-direction: column;
    gap: .3rem;
    padding: 1rem 1.1rem;
    border: 1px solid #f1f1f4;
    border-left: 4px solid #3e97ff;
    border-radius: .75rem;
    background: #fff;
    box-shadow: 0 3px 4px rgba(0, 0, 0, .03);
    min-width: 0;
}

.mar-kpi--success { border-left-color: #17c653; }
.mar-kpi--danger { border-left-color: #f1416c; }
.mar-kpi--muted { border-left-color: #b5b5c3; }

.mar-kpi__label {
    font-size: .75rem;
    font-weight: 600;
    color: #78829d;
}

.mar-kpi__label i {
    margin-right: .3rem;
}

.mar-kpi__value {
    font-size: 1.35rem;
    font-weight: 700;
    color: #071437;
    line-height: 1.2;
    word-break: break-word;
}

.mar-kpi__value--text {
    font-size: 1rem;
}

.mar-kpi--danger .mar-kpi__value--text { color: #f1416c; }
.mar-kpi--success .mar-kpi__value--text { color: #17c653; }
.mar-kpi--muted .mar-kpi__value--text { color: #78829d; }

.mar-kpi__sub {
    font-size: .72rem;
    color: #99a1b7;
}

.mar-card__title {
    font-size: 1rem;
    font-weight: 700;
}

.mar-reason {
    padding: .6rem .85rem;
    margin-bottom: 1rem;
    border-radius: .5rem;
    background: #f9f9f9;
    color: #4b5675;
    font-size: .8rem;
}

.mar-reactive-table th {
    font-size: .75rem;
    font-weight: 600;
    color: #99a1b7;
}

.mar-days {
    margin-bottom: .75rem;
}

.mar-days__title {
    font-size: .78rem;
    font-weight: 600;
    color: #4b5675;
    margin-bottom: .35rem;
}

.mar-days__list {
    display: flex;
    flex-wrap: wrap;
    gap: .3rem;
}

.mar-days__chip {
    padding: .15rem .45rem;
    border-radius: .35rem;
    background: #fff5f8;
    color: #f1416c;
    font-size: .72rem;
    font-weight: 600;
}

.mar-footnote {
    margin: .75rem 0;
    font-size: .75rem;
    color: #78829d;
}

.mar-rules {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: .35rem 1rem;
    margin: 0;
    font-size: .8rem;
}

.mar-rules dt {
    font-weight: 600;
    color: #99a1b7;
}

.mar-rules dd {
    margin: 0;
    color: #071437;
    word-break: break-word;
}

.mar-cost__value {
    font-size: 1.75rem;
    font-weight: 700;
    color: #071437;
}

.mar-cost__value--muted {
    color: #99a1b7;
}

.mar-cost__caption {
    font-size: .8rem;
    color: #78829d;
}

.mar-charts {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    margin-top: 1.25rem;
}

.mar-charts--active-first {
    margin-top: 1.25rem;
}

.mar-charts--reactive {
    margin-top: 1.25rem;
}

.mar-charts__active .mar-chart {
    width: 100%;
}

.mar-charts__reactive-label {
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: #78829d;
    margin-bottom: .65rem;
}

.mar-charts__reactive-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.mar-charts__reactive-grid .mar-chart:last-child:nth-child(odd) {
    grid-column: 1 / -1;
}

.mar-chart {
    padding: 1rem 1.1rem .75rem;
    border: 1px solid #f1f1f4;
    border-radius: .75rem;
    background: #fff;
    box-shadow: 0 3px 4px rgba(0, 0, 0, .03);
    min-width: 0;
}

.mar-chart__head {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-bottom: .5rem;
}

.mar-chart__title {
    font-size: .9rem;
    font-weight: 700;
    color: #071437;
}

.mar-chart__unit {
    font-size: .72rem;
    color: #99a1b7;
}

.mar-chart__empty {
    padding: 2.5rem 0;
    text-align: center;
    font-size: .8rem;
    color: #99a1b7;
}

.mar-chart__empty--rich {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .35rem;
    padding: 2.75rem 1rem;
}

.mar-chart__empty-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3.25rem;
    height: 3.25rem;
    border-radius: 50%;
    background: #f5f8fa;
    color: #a1a5b7;
    margin-bottom: .35rem;
}

.mar-chart__empty-title {
    font-size: .95rem;
    font-weight: 700;
    color: #3f4254;
}

.mar-chart__empty-detail {
    font-size: .8rem;
    color: #99a1b7;
}

.meter-range-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: .45rem;
    padding: 3rem 1.5rem;
    border: 1px dashed #e1e3ea;
    border-radius: .85rem;
    background:
        radial-gradient(circle at 20% 20%, rgba(62, 151, 255, .06), transparent 45%),
        radial-gradient(circle at 80% 70%, rgba(80, 205, 137, .05), transparent 40%),
        #fafbfc;
}

.meter-range-empty__visual {
    position: relative;
    width: 4.5rem;
    height: 4.5rem;
    margin-bottom: .4rem;
}

.meter-range-empty__ring {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    border: 1px solid #e4e6ef;
    background: #fff;
    box-shadow: 0 6px 18px rgba(15, 23, 42, .06);
}

.meter-range-empty__icon {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #7e8299;
}

.meter-range-empty__title {
    font-size: 1.05rem;
    font-weight: 700;
    color: #181c32;
}

.meter-range-empty__detail {
    max-width: 28rem;
    font-size: .88rem;
    color: #5e6278;
    line-height: 1.45;
}

.meter-range-empty__hint {
    max-width: 28rem;
    font-size: .78rem;
    color: #99a1b7;
    line-height: 1.4;
}

.meter-range-empty__action {
    margin-top: .55rem;
}

.mar-chart__svg {
    display: block;
    width: 100%;
    height: auto;
    max-height: 200px;
}

/* Tam genişlik: günlük aktif + reaktif oran */
.mar-charts__active .mar-chart__svg,
.mar-charts__reactive-grid > .mar-chart:last-child:nth-child(odd) .mar-chart__svg {
    height: 190px;
    max-height: 190px;
}

.mar-charts__reactive-grid > .mar-chart:not(:last-child) .mar-chart__svg,
.mar-charts__reactive-grid > .mar-chart:nth-child(even) .mar-chart__svg {
    max-height: 170px;
}

.mar-chart__grid {
    stroke: #f1f1f4;
    stroke-width: 1;
}

.mar-chart__axis {
    font-size: 10px;
    fill: #99a1b7;
}

.mar-chart__missing {
    fill: #e1e3ea;
}

.mar-chart__baseline {
    stroke: #dbdfe9;
    stroke-width: 1;
}

.mar-chart__limit {
    stroke-width: 1.5;
    stroke-dasharray: 6 4;
}

.mar-chart__limit-label {
    font-size: 10px;
    font-weight: 600;
}

.mar-chart__hit {
    fill: transparent;
    cursor: crosshair;
}

.mar-chart__slot:hover .mar-chart__hit {
    fill: rgba(27, 132, 255, .07);
}

.mar-chart__tip {
    opacity: 0;
    pointer-events: none;
    transition: opacity .08s ease-in;
}

.mar-chart__slot:hover .mar-chart__tip {
    opacity: 1;
}

.mar-chart__tip-box {
    fill: #071437;
    fill-opacity: .92;
}

.mar-chart__tip-title {
    font-size: 10.5px;
    font-weight: 600;
    fill: #c4cada;
}

.mar-chart__tip-value {
    font-size: 11.5px;
    font-weight: 700;
    fill: #fff;
}

.mar-chart__guide {
    stroke: #99a1b7;
    stroke-width: 1;
    stroke-dasharray: 3 3;
}

.mar-chart__legend {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem 1.1rem;
    margin-top: 0.7rem;
    padding-top: 0.55rem;
    border-top: 1px solid #f1f1f4;
    font-size: 0.8rem;
    font-weight: 650;
    color: #3f4254;
    line-height: 1.3;
}

.mar-chart__legend-item {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.mar-chart__legend-note {
    font-size: 0.72rem;
    font-weight: 500;
    color: #99a1b7;
}

.mar-chart__swatch {
    display: inline-block;
    width: 0.85rem;
    height: 0.85rem;
    border-radius: 0.2rem;
    flex-shrink: 0;
}

.mar-chart__swatch--striped {
    background: repeating-linear-gradient(45deg, var(--mar-swatch, #3e97ff) 0 3px, #eef0f4 3px 6px);
}

.mar-chart__swatch--missing {
    background: #e1e3ea;
}

.mar-chart__swatch--dashed {
    height: 0;
    width: 1.1rem;
    border-top: 2px dashed #78829d;
    border-radius: 0;
    align-self: center;
}

.mar-table-wrap {
    max-height: 560px;
    overflow: auto;
}

.mar-table {
    font-size: .8rem;
    margin-bottom: 0;
}

.mar-table thead th {
    position: sticky;
    top: 0;
    z-index: 1;
    background: #fff;
    font-size: .72rem;
    font-weight: 600;
    color: #99a1b7;
    white-space: nowrap;
}

.mar-table__sortable {
    cursor: pointer;
    user-select: none;
}

.mar-table__sortable.is-sorted {
    color: #1b84ff !important;
}

.mar-table td {
    white-space: nowrap;
}

.mar-table__row--excluded td {
    background: #fcfcfc;
    color: #99a1b7;
}

.mar-table__note {
    max-width: 280px;
    margin-top: .2rem;
    font-size: .7rem;
    color: #99a1b7;
    white-space: normal;
}

.mar-table__total td {
    position: sticky;
    bottom: 0;
    background: #f9f9f9;
    font-weight: 700;
    color: #071437;
}

@media (max-width: 1399.98px) {
    .mar-kpis {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 991.98px) {
    .mar-charts__reactive-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .mar-filter__actions {
        margin-left: 0;
    }
}

@media (max-width: 575.98px) {
    .mar-kpis {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .mar-kpi__value {
        font-size: 1.1rem;
    }

    .mar-filter__field,
    .mar-filter__date,
    .mar-filter__field--month,
    .mar-filter__field--source,
    .mar-filter__select {
        width: 100%;
        min-width: 0;
    }

    .mar-rules {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* ── Faturalama (bl-*) — dh-page dili üzerine ── */
.bl-toolbar {
    display: flex;
    align-items: flex-start;
    flex-wrap: wrap;
    gap: 0.75rem 1rem;
    padding: 0.85rem 0.95rem;
    border: 1px solid #f1f1f4;
    border-radius: 0.6rem;
    background: linear-gradient(180deg, #fcfcfd 0%, #fff 100%);
}

.bl-field {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    min-width: 0;
}

.bl-field .dh-page__label {
    font-size: 0.875rem;
}

.bl-field--wide {
    flex: 1 1 240px;
    max-width: 340px;
}

.bl-field--narrow {
    width: 140px;
}

.bl-field--date {
    width: 165px;
}

.bl-field--period {
    width: 230px;
}

.bl-period-data {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1.5rem;
    margin-top: 0.75rem;
    padding: 0.55rem 0.95rem;
    background: #f8faff;
    border: 1px solid #e4ebfb;
    border-radius: 0.6rem;
}

.bl-period-data__item {
    display: inline-flex;
    align-items: baseline;
    gap: 0.45rem;
    font-size: 0.85rem;
    color: #181c32;
}

.bl-period-data__label {
    font-size: 0.78rem;
    color: #78829d;
}

.bl-gaps {
    margin-bottom: 1rem;
    padding: 0.75rem 0.95rem;
    background: #fff8dd;
    border: 1px solid #f6e3a1;
    border-radius: 0.6rem;
}

.bl-gaps__head {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    font-size: 0.85rem;
    color: #7a5b00;
}

.bl-gaps__list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-top: 0.6rem;
}

.bl-gaps__item {
    padding: 0.25rem 0.7rem;
    font-size: 0.8rem;
    font-weight: 600;
    color: #7a5b00;
    background: #fff;
    border: 1px solid #f1d27a;
    border-radius: 999px;
    cursor: pointer;
}

.bl-gaps__item:hover {
    background: #f6c000;
    border-color: #f6c000;
    color: #181c32;
}

.bl-field .form-select,
.bl-field .form-control {
    font-size: 0.95rem;
}

.bl-field__hint {
    font-size: 0.8rem;
    line-height: 1.35;
    color: #a1a5b7;
}

.bl-field__hint--warning { color: #b7791f; }
.bl-field__hint--danger { color: var(--bs-danger); }
.bl-field__hint--info { color: var(--bs-primary); font-weight: 600; }

.bl-toolbar__end {
    margin-left: auto;
    padding-top: 1.4rem;
}

.btn.bl-calc-btn,
.btn.bl-add-btn,
.btn.bl-create-btn,
.btn.bl-pdf-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    font-size: 0.925rem;
}

.btn.bl-calc-btn {
    min-width: 140px;
}

.bl-items {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem 1rem;
    margin-top: 0.9rem;
    padding-top: 0.9rem;
    border-top: 1px dashed #eef0f4;
}

.bl-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.bl-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    height: 32px;
    margin: 0;
    padding: 0 0.8rem;
    border: 1px solid #e4e6ef;
    border-radius: 999px;
    background: #fff;
    font-size: 0.85rem;
    font-weight: 600;
    color: #5e6278;
    cursor: pointer;
    user-select: none;
    transition: border-color 0.15s ease, background-color 0.15s ease, color 0.15s ease;
}

.bl-chip .form-check-input {
    width: 1rem;
    height: 1rem;
    margin: 0;
    cursor: pointer;
}

.bl-chip:hover,
.bl-chip.is-active {
    border-color: rgba(var(--bs-primary-rgb), 0.35);
    background: rgba(var(--bs-primary-rgb), 0.06);
    color: var(--bs-primary);
}

.bl-chip--all {
    border-style: dashed;
}

.bl-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.45rem;
    margin-top: 1rem;
    padding: 2rem 1rem;
    border: 1px dashed #e4e6ef;
    border-radius: 0.6rem;
    font-size: 0.9rem;
    color: #a1a5b7;
    text-align: center;
}

.bl-empty i {
    color: #c4c6d0;
}

.bl-empty--inline {
    margin: 0;
    padding: 1.25rem 1rem;
    border: 0;
}

.bl-price {
    margin-bottom: 1.1rem;
    padding: 0.8rem 0.9rem;
    border: 1px solid rgba(var(--bs-primary-rgb), 0.16);
    border-radius: 0.6rem;
    background: rgba(var(--bs-primary-rgb), 0.035);
}

.bl-price__head {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.25rem 0.75rem;
    margin-bottom: 0.6rem;
    font-size: 0.82rem;
    font-weight: 600;
    color: #5e6278;
}

.bl-price__source {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    align-items: center;
}

.bl-price__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: 0.5rem;
}

.bl-price__item {
    padding: 0.5rem 0.65rem;
    border: 1px solid #eef0f4;
    border-radius: 0.5rem;
    background: #fff;
}

.bl-price__label {
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: #7e8299;
}

.bl-price__value {
    margin-top: 0.15rem;
    font-size: 1rem;
    font-weight: 700;
    color: #181c32;
    font-variant-numeric: tabular-nums;
}

.bl-price__item--accent .bl-price__value {
    color: var(--bs-primary);
}

.bl-price__item--total {
    border-color: var(--bs-primary);
    background: var(--bs-primary);
}

.bl-price__item--total .bl-price__label,
.bl-price__item--total .bl-price__value {
    color: #fff;
}

.bl-price__warn {
    display: flex;
    align-items: flex-start;
    gap: 0.35rem;
    margin-top: 0.6rem;
    font-size: 0.8rem;
    color: #b7791f;
}

.bl-price__warn i {
    margin-top: 0.1rem;
    color: inherit;
}

.bl-form .form-control {
    font-size: 0.95rem;
}

.bl-amount {
    display: flex;
    align-items: baseline;
    gap: 0.3rem;
    height: calc(1.5em + 0.55rem + 2px);
    padding: 0 0.75rem;
    border-radius: 0.475rem;
    background: rgba(var(--bs-primary-rgb), 0.06);
    font-size: 1.08rem;
    font-weight: 800;
    line-height: calc(1.5em + 0.55rem + 2px);
    color: var(--bs-primary);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.bl-amount small {
    font-size: 0.78rem;
    font-weight: 600;
}

.bl-section-title {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin: 1.4rem 0 0.6rem;
    font-size: 0.925rem;
    font-weight: 700;
    color: #181c32;
}

.bl-section-title__hint {
    margin-left: auto;
    font-size: 0.85rem;
    font-weight: 500;
    color: #7e8299;
}

.bl-desc-cell {
    min-width: 220px;
}

.bl-desc-input.form-control {
    padding: 0.3rem 0.5rem;
    font-weight: 600;
    color: #181c32;
    background: transparent;
    border: 1px dashed transparent;
    border-radius: 0.45rem;
    transition: border-color 0.15s ease, background-color 0.15s ease;
}

.bl-desc-input.form-control:hover {
    border-color: #d8dbe6;
}

.bl-desc-input.form-control:focus {
    background: #fff;
    border: 1px solid var(--bs-primary, #3e97ff);
    box-shadow: none;
}

.bl-desc-input.form-control.is-invalid {
    border-color: var(--bs-danger, #f8285a);
    background: #fff5f8;
}

.dh-table-wrap.bl-table-wrap {
    min-height: 0;
    max-height: none;
    padding-right: 0.75rem;
}

.dh-table-wrap.bl-table-wrap .dh-table th:last-child,
.dh-table-wrap.bl-table-wrap .dh-table td:last-child,
.dh-table-wrap.bl-table-wrap .bl-actions-cell {
    padding-right: 1.25rem !important;
}

.bl-email-badge {
    cursor: pointer;
}

.bl-email-badge:hover {
    filter: brightness(0.96);
}

.bl-num {
    text-align: right;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.bl-num-input {
    min-width: 96px;
    text-align: right;
}

.bl-desc-input.form-control.bl-price-input {
    display: inline-block;
    width: 120px;
    border-color: #e1e3ea;
}

.bl-desc-input.form-control.bl-price-input--empty {
    border-color: var(--bs-warning, #f6c000);
    background: #fff8dd;
}

.bl-price-cell {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.4rem;
}

.bl-price-cell .badge {
    flex-shrink: 0;
}

.bl-index-pick {
    position: relative;
    display: inline-block;
    text-align: left;
}

.bl-index-pick.is-open {
    z-index: 1060;
}

.bl-index-pick__toggle {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.2rem 0.45rem;
    font: inherit;
    color: inherit;
    background: transparent;
    border: 1px dashed #d8dbe6;
    border-radius: 0.45rem;
    cursor: pointer;
    white-space: nowrap;
}

.bl-index-pick__toggle:hover,
.bl-index-pick.is-open .bl-index-pick__toggle {
    border-color: var(--bs-primary, #3e97ff);
    background: #fff;
}

.bl-index-pick__time {
    color: #99a1b7;
}

.bl-index-pick__caret {
    font-size: 0.7rem;
    color: #99a1b7;
}

.bl-index-pick__menu {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    min-width: 100%;
    width: max-content;
    max-height: 280px;
    overflow-y: auto;
    padding: 0.25rem;
    background: #fff;
    border: 1px solid #e1e3ea;
    border-radius: 0.5rem;
    box-shadow: 0 10px 30px rgba(24, 28, 50, 0.12);
}

.bl-index-pick__head {
    padding: 0.3rem 0.5rem;
    font-size: 0.74rem;
    color: #99a1b7;
    border-bottom: 1px solid #f1f1f4;
    margin-bottom: 0.2rem;
}

.bl-index-pick__option {
    display: flex;
    justify-content: flex-start;
    gap: 0.75rem;
    width: 100%;
    padding: 0.3rem 0.5rem;
    font: inherit;
    color: #3f4254;
    text-align: left;
    background: transparent;
    border: 0;
    border-radius: 0.35rem;
    cursor: pointer;
    font-variant-numeric: tabular-nums;
}

.bl-index-pick__option:hover {
    background: #f1f6ff;
}

.bl-index-pick__option.is-selected {
    color: #fff;
    background: var(--bs-primary, #3e97ff);
}

.bl-index-pick__option.is-selected .bl-index-pick__time {
    color: rgba(255, 255, 255, 0.8);
}

.dh-table-wrap.bl-table-wrap.bl-table-wrap--picker-open {
    overflow: visible;
}

.bl-picker-backdrop {
    position: fixed;
    inset: 0;
    z-index: 1055;
    background: transparent;
}

.bl-row--editing {
    background: rgba(var(--bs-primary-rgb), 0.04);
}

.bl-total-row td {
    background: #f9f9f9;
    font-weight: 700;
    color: #181c32;
    border-top: 1px solid #eef0f4 !important;
}

.bl-footer {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 0.75rem 1.25rem;
    margin-top: 1rem;
}

.bl-footer__total {
    font-size: 0.875rem;
    color: #5e6278;
}

.bl-footer__total strong {
    margin-left: 0.35rem;
    font-size: 1.15rem;
    color: #181c32;
    font-variant-numeric: tabular-nums;
}

@media (max-width: 767.98px) {
    .bl-field--wide,
    .bl-field--narrow,
    .bl-field--period,
    .bl-field--date {
        flex: 1 1 100%;
        width: 100%;
        max-width: none;
    }

    .bl-toolbar__end {
        width: 100%;
        margin-left: 0;
        padding-top: 0;
    }

    .btn.bl-calc-btn {
        width: 100%;
    }
}

/* Faturalama sayfasında ortak dh-* yazıları bir kademe büyük */
.bl-page .dh-page__title { font-size: 1.15rem; }
.bl-page .dh-page__desc { font-size: 0.875rem; }
.bl-page .dh-stat { font-size: 0.8rem; }
.bl-page .dh-table { font-size: 0.85rem; }
.bl-page .dh-table thead th { font-size: 0.74rem; }
.bl-page .form-label,
.bl-page .form-control,
.bl-page .form-select { font-size: 0.925rem; }

/* ── Abone grubu / tarife / üretim fiyatı uyarı şeridi ── */
.et-tariff-strip {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.75rem 1rem;
    padding: 0.85rem 1rem;
    border: 1px solid rgba(183, 121, 31, 0.28);
    border-left: 4px solid #f6c000;
    border-radius: 0.6rem;
    background: linear-gradient(90deg, rgba(255, 199, 0, 0.12) 0%, rgba(255, 199, 0, 0.04) 100%);
}

.et-tariff-strip--production {
    border-color: rgba(62, 151, 255, 0.28);
    border-left-color: #3e97ff;
    background: linear-gradient(90deg, rgba(62, 151, 255, 0.12) 0%, rgba(62, 151, 255, 0.04) 100%);
}

.et-tariff-strip--production .et-tariff-strip__icon {
    background: rgba(62, 151, 255, 0.18);
    color: #3e97ff;
}

.et-tariff-strip--production .et-tariff-strip__blocking {
    color: #1b84ff;
}

.et-tariff-strip__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 36px;
    height: 36px;
    border-radius: 0.5rem;
    background: rgba(255, 199, 0, 0.2);
    color: #b7791f;
}

.et-tariff-strip__icon i {
    color: inherit;
}

.et-tariff-strip__text {
    flex: 1 1 280px;
    min-width: 0;
}

.et-tariff-strip__title {
    font-size: 0.95rem;
    font-weight: 700;
    color: #181c32;
}

.et-tariff-strip__facility {
    font-weight: 600;
    color: #7e8299;
}

.et-tariff-strip__detail {
    margin-top: 0.15rem;
    font-size: 0.85rem;
    color: #5e6278;
}

.et-tariff-strip__blocking {
    margin-left: 0.25rem;
    color: #b54708;
}

.btn.et-tariff-strip__action {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    flex: 0 0 auto;
    white-space: nowrap;
}

@media (max-width: 575.98px) {
    .btn.et-tariff-strip__action {
        width: 100%;
        justify-content: center;
    }
}

/* ── Faturalama: dönemde veri yok durumu ── */
.bl-data-check {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.6rem;
    margin-top: 1rem;
    padding: 1.25rem 1rem;
    border: 1px dashed #e4e6ef;
    border-radius: 0.6rem;
    font-size: 0.9rem;
    color: #7e8299;
}

.bl-nodata {
    display: flex;
    align-items: flex-start;
    gap: 1.5rem;
    margin-top: 1rem;
    padding: 1.5rem 1.6rem;
    border: 1px solid #eef0f4;
    border-radius: 0.8rem;
    background:
        radial-gradient(circle at 0% 0%, rgba(var(--bs-danger-rgb), 0.07) 0, transparent 45%),
        linear-gradient(180deg, #fff 0%, #fcfcfd 100%);
    box-shadow: 0 1px 2px rgba(16, 24, 40, 0.04);
}

.bl-nodata__visual {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 76px;
    height: 76px;
    border-radius: 50%;
    background: rgba(var(--bs-danger-rgb), 0.08);
    color: var(--bs-danger);
}

.bl-nodata__visual i {
    font-size: 2.1rem;
    color: inherit;
}

.bl-nodata__ring {
    position: absolute;
    inset: -6px;
    border: 2px dashed rgba(var(--bs-danger-rgb), 0.25);
    border-radius: 50%;
}

.bl-nodata__body {
    flex: 1 1 auto;
    min-width: 0;
}

.bl-nodata__badge {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.2rem 0.6rem;
    border-radius: 999px;
    background: rgba(var(--bs-danger-rgb), 0.1);
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: var(--bs-danger);
}

.bl-nodata__badge i {
    color: inherit;
}

.bl-nodata__title {
    margin: 0.6rem 0 0.35rem;
    font-size: 1.15rem;
    font-weight: 700;
    color: #181c32;
}

.bl-nodata__desc {
    margin: 0;
    font-size: 0.9rem;
    line-height: 1.55;
    color: #5e6278;
}

.bl-nodata__facts {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
    gap: 0.5rem;
    margin-top: 1rem;
}

.bl-nodata__fact {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    padding: 0.55rem 0.75rem;
    border: 1px solid #eef0f4;
    border-radius: 0.5rem;
    background: #fff;
}

.bl-nodata__fact-label {
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: #a1a5b7;
}

.bl-nodata__fact-value {
    font-size: 0.95rem;
    font-weight: 700;
    color: #181c32;
    font-variant-numeric: tabular-nums;
}

.bl-nodata__hint {
    display: flex;
    gap: 0.4rem;
    margin-top: 0.9rem;
    padding: 0.6rem 0.8rem;
    border-left: 3px solid #f6c000;
    border-radius: 0.4rem;
    background: rgba(255, 199, 0, 0.08);
    font-size: 0.85rem;
    color: #5e6278;
}

.bl-nodata__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 1rem;
}

.bl-nodata__actions .btn {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
}

@media (max-width: 575.98px) {
    .bl-nodata {
        flex-direction: column;
        align-items: center;
        text-align: center;
        padding: 1.25rem 1rem;
    }

    .bl-nodata__actions {
        justify-content: center;
    }
}

/* ---- Uyarı / sarı arka plan okunabilirliği (Metronic alert-warning sarı-üzerine-sarı kırılır) ---- */
.alert-warning {
    color: #3f4254 !important;
    background-color: #fff6db !important;
    border-color: #e4b11c !important;
}

.alert-warning .alert-link,
.alert-warning a:not(.btn) {
    color: #8a6d0b !important;
    text-decoration: underline;
}

.alert-warning .fw-semibold,
.alert-warning .fw-bold,
.alert-warning strong,
.alert-warning b,
.alert-warning h1,
.alert-warning h2,
.alert-warning h3,
.alert-warning h4,
.alert-warning h5,
.alert-warning h6 {
    color: #181c32 !important;
}

.alert-warning .text-muted,
.alert-warning .text-gray-500,
.alert-warning .text-gray-600,
.alert-warning .fs-7,
.alert-warning .fs-8,
.alert-warning .table,
.alert-warning .table td,
.alert-warning .table th {
    color: #5e6278 !important;
}

.alert-warning .table thead th,
.alert-warning .table .text-muted {
    color: #7e8299 !important;
}

.badge-light-warning {
    color: #7a5b00 !important;
    background-color: #fff1c2 !important;
}

.bg-light-warning {
    color: #3f4254 !important;
}

.bg-light-warning .text-muted,
.bg-warning-subtle {
    color: #5e6278 !important;
}

/* Sarı arka planlı genel uyarı kutuları (inline style / özel sınıflar) */
[class*="alert"][style*="background"][style*="yellow"],
[class*="alert"][style*="background"][style*="#ff"],
[class*="alert"][style*="background"][style*="#FF"] {
    color: #3f4254;
}

/* ---- Günlük enerji raporu tanım düzenleme ---- */
.der-edit {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.der-edit-panel {
    border: 1px solid #e4e6ef;
    border-radius: 0.65rem;
    background: #fafbfc;
    padding: 0.95rem 1.1rem;
}

.der-edit-panel__title {
    font-size: 0.8rem;
    font-weight: 700;
    color: #3f4254;
    letter-spacing: 0.01em;
    margin-bottom: 0.7rem;
}

.der-edit-list {
    max-height: 200px;
    overflow: auto;
    border: 1px solid #eef0f4;
    border-radius: 0.5rem;
    background: #fff;
    padding: 0.75rem 0.85rem;
}

.der-edit-devices {
    border: 1px dashed #d8dbe4;
    border-radius: 0.5rem;
    background: #fff;
    padding: 0.85rem;
}

.der-edit-sections {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem 1.1rem;
}

.der-edit-check {
    min-height: 0;
    padding-left: 1.35rem;
    margin: 0;
}

.der-edit-check .form-check-input {
    width: 0.95rem;
    height: 0.95rem;
    margin-top: 0.2rem;
    margin-left: -1.35rem;
    border-radius: 0.2rem;
    cursor: pointer;
}

.der-edit-check .form-check-label {
    cursor: pointer;
    line-height: 1.35;
}

.der-edit-switch .form-check-input {
    width: 2rem !important;
    height: 1.15rem !important;
    cursor: pointer;
}

.der-edit-scada {
    border: 1px solid #e4e6ef;
    border-radius: 0.55rem;
    background: #fff;
    padding: 0.7rem 0.85rem;
    transition: border-color 0.15s ease, background 0.15s ease;
}

.der-edit-scada.is-on {
    border-color: #b5d4f5;
    background: #f3f8fd;
}

.der-edit-scada__label {
    display: block;
    font-size: 0.825rem;
    font-weight: 600;
    color: #181c32;
}

.der-edit-scada__hint {
    display: block;
    margin-top: 0.2rem;
    font-size: 0.72rem;
    color: #7e8299;
    font-weight: 400;
    line-height: 1.4;
}

.der-edit-scada__hint a {
    font-weight: 600;
}

/* ── Liste tabloları (Görevler / Bildirimler) ── */
.app-list-table-wrap {
    border: 1px solid #e8edf5;
    border-radius: 0.95rem;
    overflow: hidden;
    background: #fff;
}

.app-list-table {
    --app-list-row-gap: 0;
}

.app-list-table thead tr {
    background: #f4f7fb;
    border-bottom: 1px solid #e4e9f2;
}

.app-list-table thead th {
    color: #7e8299;
    font-size: 0.72rem;
    font-weight: 750;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    padding: 1.35rem 1.15rem !important;
    min-height: 3.5rem;
    border-bottom: 0 !important;
    white-space: nowrap;
    vertical-align: middle;
}

.app-list-table tbody td {
    padding: 1.35rem 1.15rem !important;
    border-bottom: 1px solid #eef1f6 !important;
    vertical-align: top;
}

.app-list-table tbody tr:last-child td {
    border-bottom: 0 !important;
}

.app-list-table tbody tr:hover {
    background: #f7fbff;
}

.app-list-table tbody tr + tr td {
    box-shadow: inset 0 1px 0 #f3f5f9;
}

.app-list-table__title {
    display: block;
    color: #181c32;
    font-weight: 700;
    font-size: 0.95rem;
    text-decoration: none;
    line-height: 1.35;
    margin-bottom: 0.35rem;
}

.app-list-table__title:hover {
    color: #009ef7;
}

.app-list-table__message {
    color: #7e8299;
    font-size: 0.8rem;
    line-height: 1.45;
    margin: 0;
    max-width: 420px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.app-list-table__meta {
    color: #a1a5b7;
    font-size: 0.75rem;
    margin-top: 0.4rem;
}

.app-list-table__parent {
    background: #eef1f6;
}

.app-list-table__child {
    background: #fafbfd;
}

.app-list-table__tree {
    font-family: monospace;
    font-size: 0.85rem;
    line-height: 1;
    min-width: 0.9rem;
}

.app-list-table__unread-dot {
    width: 0.45rem;
    height: 0.45rem;
    border-radius: 50%;
    background: #009ef7;
    display: inline-block;
    flex-shrink: 0;
}

/* Bildirimler üst araç çubuğu / filtreler */
.notif-center__toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
}

.notif-center__toolbar .badge {
    padding: 0.55rem 0.85rem;
    font-weight: 700;
}

.notif-center__filters {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.65rem;
    padding: 0.85rem 1rem;
    margin-bottom: 1.25rem;
    border: 1px solid #eef1f6;
    border-radius: 0.85rem;
    background: #f8fafc;
}

.notif-center__filters .form-control,
.notif-center__filters .form-select {
    min-height: 2.45rem;
    border-radius: 0.65rem;
}

.notif-center__filters-search {
    flex: 1 1 16rem;
    min-width: 14rem;
}

.notif-center__filters-select {
    flex: 0 1 9.5rem;
    min-width: 8.5rem;
}

.notif-center__filters-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin-left: auto;
}

.notif-center__filters-actions .btn {
    min-height: 2.45rem;
    padding-left: 0.95rem;
    padding-right: 0.95rem;
    border-radius: 0.65rem;
    font-weight: 650;
}

[data-bs-theme=dark] .app-list-table-wrap {
    background: #1e1e2d;
    border-color: #2b2b40;
}

[data-bs-theme=dark] .app-list-table thead tr {
    background: #1a1a27;
    border-bottom-color: #2b2b40;
}

[data-bs-theme=dark] .app-list-table tbody td {
    border-bottom-color: #2b2b40;
}

[data-bs-theme=dark] .app-list-table__title {
    color: #e4e6ef;
}

[data-bs-theme=dark] .notif-center__filters {
    background: #1a1a27;
    border-color: #2b2b40;
}

/* ── Alarm Merkezi istasyonu ── */
.alarm-station__shell > .card-header {
    align-items: flex-start;
}

.alarm-station__mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 0.65rem;
    background: rgba(241, 65, 108, 0.08);
    flex-shrink: 0;
}

.alarm-station__live {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.35rem 0.7rem;
    border-radius: 999px;
    background: #e8fff3;
    color: #0bb783;
    font-size: 0.75rem;
    font-weight: 700;
}

.alarm-station__live.is-busy {
    background: #fff8dd;
    color: #b78103;
}

.alarm-station__live-dot {
    width: 0.45rem;
    height: 0.45rem;
    border-radius: 50%;
    background: currentColor;
    box-shadow: 0 0 0 0 currentColor;
    animation: alarm-station-pulse 1.6s ease-out infinite;
}

@keyframes alarm-station-pulse {
    0% { box-shadow: 0 0 0 0 rgba(11, 183, 131, 0.45); }
    70% { box-shadow: 0 0 0 0.45rem rgba(11, 183, 131, 0); }
    100% { box-shadow: 0 0 0 0 rgba(11, 183, 131, 0); }
}

.alarm-station__strip {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0.75rem;
}

.alarm-station__kpi {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.25rem;
    text-align: left;
    border: 1px solid #eef0f4;
    border-radius: 0.85rem;
    background: #fff;
    padding: 0.9rem 1rem;
    transition: border-color .15s ease, background .15s ease, box-shadow .15s ease;
}

.alarm-station__kpi:hover {
    border-color: #d8dce7;
}

.alarm-station__kpi.is-active {
    box-shadow: 0 0 0 1px rgba(0, 158, 247, 0.25);
    border-color: #009ef7;
}

.alarm-station__kpi-label {
    color: #a1a5b7;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.alarm-station__kpi-value {
    color: #181c32;
    font-size: 1.65rem;
    font-weight: 800;
    line-height: 1.1;
}

.alarm-station__kpi--danger .alarm-station__kpi-value { color: #f1416c; }
.alarm-station__kpi--warning .alarm-station__kpi-value { color: #ffc700; }
.alarm-station__kpi--critical {
    background: #fff5f8;
    border-color: #ffc6d3;
}
.alarm-station__kpi--critical .alarm-station__kpi-value { color: #f1416c; }
.alarm-station__kpi--success .alarm-station__kpi-value { color: #50cd89; }

.alarm-station__workspace {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(300px, 0.9fr);
    gap: 1rem;
    min-height: 34rem;
}

.alarm-station__queue,
.alarm-station__inspector {
    display: flex;
    flex-direction: column;
    min-height: 34rem;
    overflow: hidden;
}

.alarm-station__queue-head,
.alarm-station__inspector-head {
    padding: 1rem 1.15rem;
    border-bottom: 1px solid #eef0f4;
    background: #fafbfc;
}

.alarm-station__queue-title {
    color: #3f4254;
    font-weight: 700;
    font-size: 1.05rem;
    line-height: 1.3;
}

.alarm-station__inspector-title {
    font-size: 1.2rem;
    line-height: 1.35;
}

.alarm-station__inspector-msg {
    font-size: 0.95rem;
    line-height: 1.45;
}

.alarm-station__queue-list {
    flex: 1;
    overflow: auto;
    max-height: 42rem;
}

.alarm-station__row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.85rem;
    width: 100%;
    text-align: left;
    border: 0;
    border-bottom: 1px solid #f1f1f4;
    background: #fff;
    padding: 0.95rem 1.1rem;
    transition: background .12s ease;
}

.alarm-station__row:hover {
    background: #fbfcfe;
}

.alarm-station__row.is-selected {
    background: #f1faff;
}

.alarm-station__row-main {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    min-width: 0;
    flex: 1 1 auto;
}

.alarm-station__row-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.65rem;
    width: 100%;
}

.alarm-station__row-title {
    display: block;
    color: #181c32;
    font-weight: 700;
    font-size: 1.05rem;
    line-height: 1.35;
    min-width: 0;
    word-break: break-word;
}

.alarm-station__row-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
    color: #a1a5b7;
    font-size: 0.82rem;
    line-height: 1.4;
}

.alarm-station__row-msg {
    display: block;
    color: #7e8299;
    font-size: 0.88rem;
    line-height: 1.4;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.alarm-station__row-state {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.35rem;
    flex: 0 0 auto;
    padding-top: 0.1rem;
}

.alarm-station__row-state .badge {
    white-space: nowrap;
}

.alarm-station__queue-foot {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
    padding: 0.85rem 1rem;
    border-top: 1px solid #eef0f4;
    background: #fafbfc;
}

.alarm-station__inspector-body {
    flex: 1;
    padding: 1.15rem;
    overflow: auto;
}

.alarm-station__facts {
    display: grid;
    gap: 0.7rem;
}

.alarm-station__facts > div {
    display: grid;
    grid-template-columns: 7.5rem minmax(0, 1fr);
    gap: 0.75rem;
    align-items: start;
}

.alarm-station__facts span {
    color: #a1a5b7;
    font-size: 0.78rem;
}

.alarm-station__facts strong {
    color: #181c32;
    font-size: 0.88rem;
    font-weight: 650;
    word-break: break-word;
}

.alarm-station__inspector-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    padding: 1rem 1.15rem;
    border-top: 1px solid #eef0f4;
    background: #fafbfc;
}

.alarm-station__empty {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 2.5rem 1.5rem;
}

@media (max-width: 991.98px) {
    .alarm-station__strip {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .alarm-station__workspace {
        grid-template-columns: 1fr;
        min-height: 0;
    }

    .alarm-station__queue,
    .alarm-station__inspector {
        min-height: 0;
    }

    .alarm-station__queue-list {
        max-height: 28rem;
    }
}

[data-bs-theme=dark] .alarm-station__kpi,
[data-bs-theme=dark] .alarm-station__row,
[data-bs-theme=dark] .alarm-station__queue-head,
[data-bs-theme=dark] .alarm-station__inspector-head,
[data-bs-theme=dark] .alarm-station__queue-foot,
[data-bs-theme=dark] .alarm-station__inspector-actions {
    background: #1e1e2d;
    border-color: #2b2b40;
}

[data-bs-theme=dark] .alarm-station__row {
    border-bottom-color: #2b2b40;
}

[data-bs-theme=dark] .alarm-station__row.is-selected {
    background: #212e48;
}

[data-bs-theme=dark] .alarm-station__row-title,
[data-bs-theme=dark] .alarm-station__facts strong,
[data-bs-theme=dark] .alarm-station__kpi-value {
    color: #e4e6ef;
}

[data-bs-theme=dark] .alarm-station__kpi--critical {
    background: rgba(241, 65, 108, 0.12);
}

/* —— Header Alarm Merkezi —— */
.et-alarm-hdr {
    position: relative;
    z-index: 1058;
}

.et-alarm-hdr__btn {
    position: relative;
}

.et-alarm-hdr__btn.is-alerting i {
    animation: et-alarm-hdr-icon-pulse 1.8s ease-in-out infinite;
}

.et-alarm-hdr__badge {
    animation: et-alarm-hdr-badge-pulse 1.8s ease-in-out infinite;
}

@keyframes et-alarm-hdr-icon-pulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.82; transform: scale(1.08); }
}

@keyframes et-alarm-hdr-badge-pulse {
    0%, 100% {
        transform: scale(1);
        box-shadow: 0 0 0 1.5px var(--bs-body-bg, #fff), 0 0 0 0 rgba(241, 65, 108, 0.45);
    }
    50% {
        transform: scale(1.12);
        box-shadow: 0 0 0 1.5px var(--bs-body-bg, #fff), 0 0 0 5px rgba(241, 65, 108, 0.12);
    }
}

@media (prefers-reduced-motion: reduce) {
    .et-alarm-hdr__btn.is-alerting i,
    .et-alarm-hdr__badge {
        animation: none;
    }
}

/* —— Header bildirim paneli —— */
.et-notif {
    position: relative;
    z-index: 1060;
}

/* Dropdown/badge taşması için; header köşe radius #kt_app_header.app-header'da kalır */
.app-navbar,
.app-navbar-item,
#kt_app_header_container,
#kt_app_header_wrapper {
    overflow: visible !important;
}

.et-notif__btn {
    position: relative;
}

.et-notif__badge {
    position: absolute;
    top: 3px;
    right: 3px;
    min-width: 13px;
    height: 13px;
    padding: 0 3px;
    border-radius: 999px;
    background: #f1416c;
    color: #fff !important;
    font-size: 8px !important;
    font-weight: 700;
    line-height: 13px;
    text-align: center;
    box-shadow: 0 0 0 1.5px var(--bs-body-bg, #fff);
    pointer-events: none;
    z-index: 2;
}

.et-notif__backdrop {
    position: fixed;
    inset: 0;
    z-index: 1055;
    background: transparent;
    cursor: default;
}

.et-notif__panel {
    position: absolute;
    top: calc(100% + 10px);
    right: 0;
    left: auto;
    z-index: 1061;
    width: min(360px, calc(100vw - 1.25rem));
    max-height: min(70vh, 480px);
    display: flex;
    flex-direction: column;
    border-radius: 14px;
    background: #fff;
    border: 1px solid rgba(15, 23, 42, 0.08);
    box-shadow: 0 18px 40px rgba(15, 23, 42, 0.14);
    overflow: hidden;
    animation: et-notif-in 0.16s ease-out;
}

@keyframes et-notif-in {
    from { opacity: 0; transform: translateY(-6px); }
    to { opacity: 1; transform: translateY(0); }
}

.et-notif__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.9rem 1rem 0.75rem;
    border-bottom: 1px solid rgba(15, 23, 42, 0.06);
    background: linear-gradient(180deg, #f8fafc 0%, #fff 100%);
}

.et-notif__title {
    font-size: 0.95rem;
    font-weight: 700;
    color: #0f172a;
    line-height: 1.2;
}

.et-notif__subtitle {
    margin-top: 0.15rem;
    font-size: 0.75rem;
    color: #64748b;
}

.et-notif__close {
    width: 28px;
    height: 28px;
    border-radius: 8px;
}

.et-notif__body {
    flex: 1 1 auto;
    overflow-y: auto;
    max-height: 320px;
    padding: 0.35rem;
}

.et-notif__empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 2rem 1rem;
    color: #94a3b8;
    font-size: 0.85rem;
}

.et-notif__item {
    width: 100%;
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    padding: 0.7rem 0.75rem;
    border: 0;
    border-radius: 10px;
    background: transparent;
    text-align: left;
    cursor: pointer;
    transition: background 0.12s ease;
}

.et-notif__item:hover {
    background: #f1f5f9;
}

.et-notif__item.is-unread {
    background: rgba(62, 151, 255, 0.06);
}

.et-notif__item.is-unread:hover {
    background: rgba(62, 151, 255, 0.1);
}

.et-notif__dot {
    width: 8px;
    height: 8px;
    margin-top: 0.4rem;
    border-radius: 50%;
    background: #cbd5e1;
    flex-shrink: 0;
}

.et-notif__item.is-unread .et-notif__dot {
    background: #3e97ff;
    box-shadow: 0 0 0 3px rgba(62, 151, 255, 0.2);
}

.et-notif__item-text {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.et-notif__item-title {
    font-size: 0.85rem;
    font-weight: 650;
    color: #0f172a;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.et-notif__item-msg {
    font-size: 0.78rem;
    color: #64748b;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.et-notif__pill {
    flex-shrink: 0;
    margin-top: 0.15rem;
    padding: 0.1rem 0.4rem;
    border-radius: 999px;
    background: rgba(62, 151, 255, 0.12);
    color: #1b84ff;
    font-size: 0.65rem;
    font-weight: 700;
}

.et-notif__foot {
    padding: 0.65rem 0.85rem;
    border-top: 1px solid rgba(15, 23, 42, 0.06);
    text-align: center;
    background: #fafbfc;
}

.et-notif__all {
    font-size: 0.8rem;
    font-weight: 600;
    color: #3e97ff;
    text-decoration: none;
}

.et-notif__all:hover {
    color: #1b84ff;
    text-decoration: underline;
}

[data-bs-theme=dark] .et-notif__panel {
    background: #1e1e2d;
    border-color: rgba(255, 255, 255, 0.08);
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.45);
}

[data-bs-theme=dark] .et-notif__head {
    background: linear-gradient(180deg, #252536 0%, #1e1e2d 100%);
    border-bottom-color: rgba(255, 255, 255, 0.06);
}

[data-bs-theme=dark] .et-notif__title,
[data-bs-theme=dark] .et-notif__item-title {
    color: #e4e6ef;
}

[data-bs-theme=dark] .et-notif__item:hover {
    background: rgba(255, 255, 255, 0.04);
}

[data-bs-theme=dark] .et-notif__item.is-unread {
    background: rgba(62, 151, 255, 0.1);
}

[data-bs-theme=dark] .et-notif__foot {
    background: #1a1a27;
    border-top-color: rgba(255, 255, 255, 0.06);
}

[data-bs-theme=dark] .et-notif__badge {
    box-shadow: 0 0 0 1.5px #1e1e2d;
}

/* Tasks page — scope KPI cards + persona */
.tasks-persona {
    display: flex;
    align-items: center;
    gap: 0.45rem;
}

.tasks-persona__label {
    margin: 0;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: #a1a5b7;
    white-space: nowrap;
}

.tasks-persona__select {
    min-width: 11rem;
}

.tasks-scope-row .tasks-scope-card {
    width: 100%;
    border: 1px solid #eef0f4;
    border-radius: 0.85rem;
    background: #fff;
    cursor: pointer;
    text-align: left;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}

.tasks-scope-row .tasks-scope-card .inv-detail-kpi__icon {
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 0.75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.tasks-scope-row .tasks-scope-card:hover {
    border-color: #d7dbe7;
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.06);
}

.tasks-scope-row .tasks-scope-card.is-active {
    box-shadow: 0 6px 18px rgba(15, 23, 42, 0.08);
}

.tasks-scope-card__icon--pending {
    background: rgba(255, 199, 0, 0.15);
    color: #c9a000;
}

.tasks-scope-card__icon--completed {
    background: rgba(80, 205, 137, 0.12);
    color: #50cd89;
}

.tasks-scope-card__icon--all {
    background: rgba(62, 151, 255, 0.12);
    color: #3e97ff;
}

.tasks-scope-card--pending.is-active {
    border-color: rgba(255, 199, 0, 0.45);
    background: rgba(255, 199, 0, 0.06);
}

.tasks-scope-card--completed.is-active {
    border-color: rgba(80, 205, 137, 0.4);
    background: rgba(80, 205, 137, 0.06);
}

.tasks-scope-card--all.is-active {
    border-color: rgba(62, 151, 255, 0.4);
    background: rgba(62, 151, 255, 0.06);
}

.tasks-scope-row .tasks-scope-card .inv-detail-kpi__value {
    font-size: 1.35rem;
    line-height: 1.2;
    color: #181c32;
}

/* Görevler sayfası — sıkı tipografi / satır yüksekliği */
.tasks-page {
    font-size: 0.8125rem;
}

.tasks-page .card-header .card-title h3 {
    font-size: 1.05rem !important;
}

.tasks-page .tasks-persona__label {
    font-size: 0.65rem;
}

.tasks-page .tasks-persona__select,
.tasks-page .form-control-sm,
.tasks-page .form-select-sm,
.tasks-page .btn-sm {
    font-size: 0.75rem !important;
}

.tasks-page .tasks-scope-row {
    margin-bottom: 0.85rem !important;
}

.tasks-page .tasks-scope-card .card-body {
    padding-top: 0.65rem !important;
    padding-bottom: 0.65rem !important;
}

.tasks-page .tasks-scope-card .inv-detail-kpi__icon {
    width: 2.15rem;
    height: 2.15rem;
}

.tasks-page .tasks-scope-card .text-muted {
    font-size: 0.68rem !important;
}

.tasks-page .tasks-scope-card .inv-detail-kpi__value {
    font-size: 1.1rem !important;
}

/* Görevler tablosu — lisans / bildirimler app-list-table ile aynı başlık ve satır ölçüleri */
.tasks-page .app-list-table thead th {
    font-size: 0.72rem !important;
    font-weight: 750;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    padding: 1.35rem 1.15rem !important;
    min-height: 3.5rem;
    color: #7e8299;
}

.tasks-page .app-list-table tbody td {
    padding: 0.85rem 1.15rem !important;
    vertical-align: middle;
    font-size: 0.875rem;
}

.tasks-page .app-list-table .tasks-task-no {
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 0.7rem;
    letter-spacing: 0.02em;
    color: #5e6278;
}

.tasks-page .app-list-table tbody tr.tasks-row--parent td {
    background: #f7f8fb;
    padding: 0.85rem 1.15rem !important;
    border-bottom-color: #e8ebf0;
}

.tasks-page .app-list-table tbody tr.tasks-row--child td {
    background: #fbfcfe;
    padding: 0.65rem 1.15rem !important;
    font-size: 0.8125rem;
    border-bottom-color: #f0f2f6;
}

.tasks-page .app-list-table tbody tr.tasks-row--child .app-list-table__title {
    font-size: 0.875rem;
    font-weight: 600;
}

.tasks-page .app-list-table tbody tr.tasks-row--child .badge {
    font-size: 0.68rem !important;
    padding: 0.25em 0.5em;
}

.tasks-page .tasks-row-menu {
    position: relative;
    display: inline-block;
}

.tasks-page .tasks-row-menu__trigger {
    width: 2.05rem;
    height: 2.05rem;
    padding: 0;
    border: 1px solid #e4e9f2;
    border-radius: 0.55rem;
    background: #fff;
    color: #7e8299;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    cursor: pointer;
    transition: color 0.15s ease, background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}

.tasks-page .tasks-row-menu__trigger .ki-outline {
    font-size: 1.15rem;
    letter-spacing: 0.02em;
}

.tasks-page .tasks-row-menu__trigger:hover {
    color: #3f4254;
    background: #f5f8fa;
    border-color: #d8dee9;
}

.tasks-page .tasks-row-menu__trigger:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px rgba(0, 158, 247, 0.18);
    border-color: #7ec8f5;
}

.tasks-page .tasks-row-menu__trigger.is-open {
    color: #009ef7;
    background: #f1faff;
    border-color: #7ec8f5;
    box-shadow: 0 0 0 3px rgba(0, 158, 247, 0.12);
}

.tasks-page .tasks-row-menu__backdrop {
    position: fixed;
    inset: 0;
    z-index: 20;
}

/* Popper yok: sağ kenarda sola aç (dropdown-menu-end tek başına yetmez) */
.tasks-page .tasks-row-menu__panel {
    position: absolute !important;
    top: calc(100% + 0.25rem) !important;
    right: 0 !important;
    left: auto !important;
    z-index: 1055;
    min-width: 12.5rem;
    padding: 0.35rem 0;
    border: 1px solid #e4e9f2;
    border-radius: 0.65rem;
    box-shadow: 0 8px 24px rgba(24, 28, 50, 0.12);
    inset-inline-end: 0;
    inset-inline-start: auto;
}

/* table-responsive overflow menüyü kesmesin */
.tasks-page .app-list-table-wrap.table-responsive:has(.tasks-row-menu.show),
.tasks-page .app-list-table-wrap.table-responsive:has(.tasks-row-menu__panel.show) {
    overflow: visible;
}

.tasks-page .tasks-row-menu__panel .dropdown-item {
    display: flex;
    align-items: center;
    gap: 0.15rem;
    font-size: 0.8125rem;
    padding: 0.5rem 0.95rem;
    border-radius: 0.4rem;
    margin: 0 0.25rem;
    width: calc(100% - 0.5rem);
}

.tasks-page .tasks-row-menu__panel .dropdown-item .ki-outline {
    color: #a1a5b7;
    flex-shrink: 0;
}

.tasks-page .tasks-row-menu__panel .dropdown-item:hover .ki-outline {
    color: #009ef7;
}

.tasks-page .tasks-row-menu__panel .dropdown-item.text-danger .ki-outline {
    color: #f1416c;
}

.tasks-page .app-list-table__title {
    font-size: 0.95rem;
    line-height: 1.35;
}

.tasks-page .app-list-table .badge {
    font-size: 0.75rem !important;
    padding: 0.35em 0.65em;
}

.tasks-page .app-list-table .text-muted.fs-8,
.tasks-page .app-list-table .fs-8 {
    font-size: 0.8rem !important;
}

.tasks-page .app-list-table .fs-9 {
    font-size: 0.75rem !important;
}

.tasks-page .app-list-table .btn-icon.btn-sm {
    width: 2rem;
    height: 2rem;
}

.tasks-page .app-list-table .btn-icon.btn-sm .ki-outline {
    font-size: 1.1rem !important;
}

/* Ortak mobil liste kartları — masaüstü tablo d-none d-lg-block ile saklanır */
.app-mobile-list {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.app-mobile-card {
    border: 1px solid var(--bs-gray-200, #e4e6ef);
    border-radius: 0.75rem;
    background: var(--bs-body-bg, #fff);
    padding: 0.9rem 1rem;
}

.app-mobile-card__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.75rem;
}

.app-mobile-card__title {
    font-weight: 700;
    font-size: 0.95rem;
    line-height: 1.35;
    color: var(--bs-gray-900, #181c32);
    word-break: break-word;
}

.app-mobile-card__title a {
    color: inherit;
    text-decoration: none;
}

.app-mobile-card__title a:hover {
    color: var(--bs-primary, #009ef7);
}

.app-mobile-card__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.65rem 0.75rem;
    margin-bottom: 0.75rem;
}

.app-mobile-card__grid--3 {
    grid-template-columns: 1fr 1fr 1fr;
}

.app-mobile-card__label {
    font-size: 0.7rem;
    color: var(--bs-gray-500, #a1a5b7);
    margin-bottom: 0.1rem;
}

.app-mobile-card__value {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--bs-gray-800, #3f4254);
    word-break: break-word;
}

.app-mobile-card__foot {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding-top: 0.65rem;
    border-top: 1px solid var(--bs-gray-200, #e4e6ef);
}

.app-mobile-card__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

@media (max-width: 991.98px) {
    .app-mobile-scroll-host,
    .app-mobile-scroll-host .card,
    .app-mobile-scroll-host .card-body {
        overflow-x: hidden !important;
        overflow-y: visible !important;
        max-width: 100%;
    }

    #kt_app_content:has(.app-mobile-scroll-host),
    #kt_app_main:has(.app-mobile-scroll-host) {
        overflow-x: hidden !important;
        overflow-y: auto !important;
        -webkit-overflow-scrolling: touch;
        touch-action: pan-y;
    }

    /* Üst navbar ikonları — dokunma alanı + sıkışıklık */
    #kt_app_header .app-navbar {
        gap: 0.1rem;
    }

    #kt_app_header .app-navbar-item.ms-1,
    #kt_app_header .app-navbar-item.ms-md-2 {
        margin-left: 0.2rem !important;
    }

    #kt_app_header .app-navbar .btn.btn-icon {
        width: 2rem !important;
        height: 2rem !important;
    }

    /* Sayfalar arası kart yığını — dikey nefes */
    .app-content .row.g-3,
    .app-content .row.g-4,
    .app-content .row.g-5 {
        --bs-gutter-y: 0.85rem;
    }

    .monitoring-detail-page,
    .inv-section-stack,
    .et-board-stack,
    .fh-health-page {
        gap: 0.85rem;
    }

    /* Ortak: yapışık btn-group periyot / tarih şeritleri */
    .inv-report .btn-group.btn-group-sm,
    .inv-section-stack .btn-group.btn-group-sm,
    .inv-inverter-detail .btn-group.btn-group-sm,
    .inv-inverter-detail .btn-group:not(.btn-group-sm):not(.dropdown),
    .meter-detail-page .btn-group.btn-group-sm,
    .scada-history-page .btn-group.btn-group-sm {
        display: inline-flex;
        flex-wrap: wrap;
        gap: 0.35rem;
    }

    .inv-report .btn-group.btn-group-sm > .btn,
    .inv-section-stack .btn-group.btn-group-sm > .btn,
    .inv-inverter-detail .btn-group.btn-group-sm > .btn,
    .inv-inverter-detail .btn-group:not(.btn-group-sm):not(.dropdown) > .btn,
    .meter-detail-page .btn-group.btn-group-sm > .btn,
    .scada-history-page .btn-group.btn-group-sm > .btn,
    .inv-report .inv-chart-nav__date-wrap .inv-chart-nav__date,
    .inv-section-stack .inv-chart-nav__date-wrap .inv-chart-nav__date {
        border-radius: 0.4rem !important;
        margin: 0 !important;
        min-height: 1.75rem !important;
        padding: 0.2rem 0.45rem !important;
        font-size: 0.68rem !important;
        line-height: 1.2 !important;
    }

    /* Kart başlıkları üste yapışmasın */
    .inv-report > .card.card-flush > .card-header,
    .inv-section-stack > .card.card-flush > .card-header,
    .monitoring-detail-page .card.card-flush > .card-header {
        padding-top: 0.85rem !important;
    }
}

/* Görevler — mobil kart listesi (masaüstü tablo aynı kalır) */
.tasks-mobile-list {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.tasks-mobile-card {
    border: 1px solid var(--bs-gray-200, #e4e6ef);
    border-radius: 0.75rem;
    background: var(--bs-body-bg, #fff);
    padding: 0.9rem 1rem;
}

.tasks-mobile-card--child {
    margin-left: 0.75rem;
    border-left: 3px solid var(--bs-primary, #009ef7);
    background: var(--bs-gray-100, #f9f9f9);
}

.tasks-mobile-card__head {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    margin-bottom: 0.75rem;
}

.tasks-mobile-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    font-size: 0.75rem;
    margin-bottom: 0.25rem;
}

.tasks-mobile-card__title {
    display: block;
    font-weight: 700;
    font-size: 0.95rem;
    line-height: 1.35;
    color: var(--bs-gray-900, #181c32);
    text-decoration: none;
    word-break: break-word;
}

.tasks-mobile-card__title:hover {
    color: var(--bs-primary, #009ef7);
}

.tasks-mobile-card__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.65rem 0.75rem;
    margin-bottom: 0.75rem;
}

.tasks-mobile-card__label {
    font-size: 0.7rem;
    color: var(--bs-gray-500, #a1a5b7);
    margin-bottom: 0.1rem;
}

.tasks-mobile-card__value {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--bs-gray-800, #3f4254);
    word-break: break-word;
}

.tasks-mobile-card__foot {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding-top: 0.65rem;
    border-top: 1px solid var(--bs-gray-200, #e4e6ef);
}

.tasks-mobile-card .tasks-row-menu__panel {
    z-index: 1055;
}

.task-auto-mobile-list,
.work-task-mobile-list {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.task-auto-mobile-card,
.work-task-mobile-card {
    border: 1px solid var(--bs-gray-200, #e4e6ef);
    border-radius: 0.75rem;
    background: var(--bs-body-bg, #fff);
    padding: 0.9rem 1rem;
}

/* Mobil: görev sayfalarında yatay taşma / scroll kilidi */
@media (max-width: 991.98px) {
    .tasks-page,
    .task-auto-page,
    .work-task-page,
    .tasks-page .card,
    .task-auto-page.card,
    .work-task-page .card,
    .tasks-page .card-body,
    .task-auto-page .card-body,
    .work-task-page .card-body {
        overflow-x: hidden !important;
        overflow-y: visible !important;
        max-width: 100%;
    }

    .tasks-page .app-list-table-wrap,
    .task-auto-page .table-responsive,
    .work-task-page .table-responsive {
        overflow: visible !important;
    }

    #kt_app_content:has(.tasks-page),
    #kt_app_content:has(.task-auto-page),
    #kt_app_content:has(.work-task-page),
    #kt_app_main:has(.tasks-page),
    #kt_app_main:has(.task-auto-page),
    #kt_app_main:has(.work-task-page) {
        overflow-x: hidden !important;
        overflow-y: auto !important;
        -webkit-overflow-scrolling: touch;
        touch-action: pan-y;
    }

    body.app-default:has(.tasks-page),
    body.app-default:has(.task-auto-page),
    body.app-default:has(.work-task-page) {
        overflow-x: hidden !important;
        overflow-y: auto !important;
        -webkit-overflow-scrolling: touch;
    }
}

.account-logout-form {
    display: contents;
}

.account-logout-form button.menu-link {
    cursor: pointer;
    color: inherit;
    font: inherit;
}

/* light-primary hover: mavi zemin üzerinde ikonlar beyaz (keenicons ::before dahil) */
.app-default .btn.btn-light-primary:hover,
.app-blank .btn.btn-light-primary:hover,
.app-default .btn.btn-light-primary:focus,
.app-blank .btn.btn-light-primary:focus,
.app-default .btn.btn-light-primary:active,
.app-blank .btn.btn-light-primary:active,
.app-list-table .btn-icon.btn-light-primary:hover,
.app-list-table .btn-icon.btn-light-primary:focus,
.app-list-table .btn-icon.btn-light-primary:active,
.btn.btn-icon.btn-light-primary:hover,
.btn.btn-icon.btn-light-primary:focus,
.btn.btn-icon.btn-light-primary:active {
    color: #fff !important;
}

.app-default .btn.btn-light-primary:hover i,
.app-blank .btn.btn-light-primary:hover i,
.app-default .btn.btn-light-primary:focus i,
.app-blank .btn.btn-light-primary:focus i,
.app-default .btn.btn-light-primary:active i,
.app-blank .btn.btn-light-primary:active i,
.app-default .btn.btn-light-primary:hover .ki-outline,
.app-blank .btn.btn-light-primary:hover .ki-outline,
.app-default .btn.btn-light-primary:focus .ki-outline,
.app-blank .btn.btn-light-primary:focus .ki-outline,
.app-default .btn.btn-light-primary:active .ki-outline,
.app-blank .btn.btn-light-primary:active .ki-outline,
.app-default .btn.btn-light-primary:hover .ki-outline:before,
.app-blank .btn.btn-light-primary:hover .ki-outline:before,
.app-default .btn.btn-light-primary:hover .text-primary,
.app-blank .btn.btn-light-primary:hover .text-primary,
.app-list-table .btn-icon.btn-light-primary:hover i,
.app-list-table .btn-icon.btn-light-primary:hover .ki-outline,
.app-list-table .btn-icon.btn-light-primary:hover .ki-outline:before,
.app-list-table .btn-icon.btn-light-primary:hover .ki-duotone,
.app-list-table .btn-icon.btn-light-primary:hover .ki-duotone [class^="path"]:before,
.app-list-table .btn-icon.btn-light-primary:hover .ki-duotone [class*=" path"]:before,
.btn.btn-light-primary:hover i,
.btn.btn-light-primary:focus i,
.btn.btn-light-primary:active i,
.btn.btn-light-primary:hover .ki-outline,
.btn.btn-light-primary:focus .ki-outline,
.btn.btn-light-primary:active .ki-outline,
.btn.btn-light-primary:hover .ki-outline:before,
.btn.btn-light-primary:focus .ki-outline:before,
.btn.btn-light-primary:active .ki-outline:before,
.btn.btn-light-primary:hover .text-primary,
.btn.btn-light-primary:focus .text-primary,
.btn.btn-light-primary:active .text-primary,
.btn.btn-light-primary:hover .ki-duotone,
.btn.btn-light-primary:hover .ki-duotone [class^="path"]:before,
.btn.btn-light-primary:hover .ki-duotone [class*=" path"]:before,
.btn.btn-icon.btn-light-primary:hover i,
.btn.btn-icon.btn-light-primary:hover .ki-outline,
.btn.btn-icon.btn-light-primary:hover .ki-outline:before,
.btn.btn-icon.btn-light-primary:hover .ki-duotone {
    color: #fff !important;
}

.app-list-table .btn-icon.btn-light:hover,
.app-list-table .btn-icon.btn-light:hover .ki-outline {
    color: #5e6278 !important;
}

/* ── AppLoader — premium enerji yükleme ── */
:root {
    --app-loader-primary: #009ef7;
    --app-loader-accent: #50cd89;
    --app-loader-ink: #181c32;
    --app-loader-muted: #7e8299;
    --app-loader-surface: rgba(255, 255, 255, 0.88);
}

[data-bs-theme=dark] {
    --app-loader-ink: #f5f8fa;
    --app-loader-muted: #9aa1b5;
    --app-loader-surface: rgba(26, 29, 41, 0.9);
}

.app-loader-shell {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.5rem;
    width: 100%;
    box-sizing: border-box;
}

/* Kart / bölüm loader: üstte yapışmasın, blok ortasında dursun */
.app-loader-shell--block {
    width: 100%;
    flex: 1 1 auto;
    align-self: stretch;
}

.app-loader-shell--block-md {
    min-height: 12rem;
}

.app-loader-shell--block-lg {
    min-height: 16rem;
}

/* Loader tek çocuksa kart gövdesi de ortalasın / uzasın */
.card-body:has(> .app-loader-shell--block:only-child),
.card-body:has(> .app-loader-shell--block:first-child:last-child) {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: stretch;
    min-height: 16rem;
}

.card:has(> .card-body > .app-loader-shell--block:only-child),
.card-flush:has(> .card-body > .app-loader-shell--block:only-child) {
    display: flex;
    flex-direction: column;
    min-height: 18rem;
}

.card:has(> .card-body > .app-loader-shell--block:only-child) > .card-body,
.card-flush:has(> .card-body > .app-loader-shell--block:only-child) > .card-body {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

/*
 * Sayfa yüklemeleri: ana içerik paneline sabitlenir.
 * SPA nav'da sidebar kısa süre kaybolursa içerik genişler; flow-ortalı loader
 * sağa kayıyordu. Fixed + sidebar CSS değişkeni ile konum sabit kalır.
 */
.app-loader-shell--fill {
    width: 100%;
    flex: 1 1 auto;
    min-height: 18rem;
}

@media (min-width: 992px) {
    .app-loader-shell--fill {
        position: fixed;
        top: var(--bs-app-header-height, 70px);
        left: calc(var(--bs-app-sidebar-width, 265px) + var(--app-sidebar-gap, 20px));
        right: 0;
        bottom: 0;
        z-index: 90;
        width: auto;
        min-height: 0;
        margin: 0;
        padding: 2rem;
        pointer-events: none;
        background: transparent;
    }

    .app-loader-shell--fill .app-loader {
        pointer-events: none;
    }
}

@media (max-width: 991.98px) {
    .app-loader-shell--fill {
        min-height: calc(100svh - 8rem);
        min-height: calc(100dvh - 8rem);
    }
}

/* Navigasyon sırasında sidebar'ın off-canvas kaymasını engelle (loader kayması kök nedeni) */
@media (min-width: 992px) {
    html.et-navigating #kt_app_sidebar,
    html.et-navigating #kt_app_sidebar.drawer,
    html.et-navigating #kt_app_sidebar.drawer-start,
    html.et-navigating #kt_app_sidebar.drawer-end {
        transform: none !important;
        visibility: visible !important;
        opacity: 1 !important;
        left: 0 !important;
        display: flex !important;
    }
}

.app-loader-shell--overlay,
.app-loader-shell--boot {
    position: fixed;
    inset: 0;
    z-index: 20050;
    padding: 2rem;
    background:
        radial-gradient(1200px 600px at 50% 35%, rgba(0, 158, 247, 0.12), transparent 60%),
        radial-gradient(900px 500px at 70% 80%, rgba(80, 205, 137, 0.08), transparent 55%),
        linear-gradient(160deg, #f7fafc 0%, #eef3f8 45%, #f5f8fa 100%);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}

[data-bs-theme=dark] .app-loader-shell--overlay,
[data-bs-theme=dark] .app-loader-shell--boot {
    background:
        radial-gradient(1200px 600px at 50% 35%, rgba(0, 158, 247, 0.16), transparent 60%),
        radial-gradient(900px 500px at 70% 80%, rgba(80, 205, 137, 0.1), transparent 55%),
        linear-gradient(160deg, #12141c 0%, #171a24 50%, #10121a 100%);
}

.app-loader-shell--boot {
    transition: opacity 0.45s ease, visibility 0.45s ease;
}

.app-loader-shell--boot.is-leaving {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

/* İlk boot sonrası / sayfa geçişlerinde "Hazırlanıyor" asla tekrar görünmesin */
html.et-booted #et-boot-loader {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

.app-loader {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.1rem;
}

.app-loader__stage {
    position: relative;
    width: 4.5rem;
    height: 4.5rem;
}

.app-loader--sm .app-loader__stage {
    width: 2.25rem;
    height: 2.25rem;
}

.app-loader--lg .app-loader__stage {
    width: 5.75rem;
    height: 5.75rem;
}

.app-loader__glow {
    position: absolute;
    inset: 12%;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(0, 158, 247, 0.28) 0%, rgba(80, 205, 137, 0.1) 45%, transparent 72%);
    filter: blur(2px);
    animation: app-loader-glow 2.4s ease-in-out infinite;
}

.app-loader__ring {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    border: 2px solid transparent;
    box-sizing: border-box;
}

.app-loader__ring--a {
    border-top-color: var(--app-loader-primary);
    border-right-color: rgba(0, 158, 247, 0.25);
    animation: app-loader-spin 1.15s cubic-bezier(0.55, 0.15, 0.35, 0.9) infinite;
}

.app-loader__ring--b {
    inset: 14%;
    border-bottom-color: var(--app-loader-accent);
    border-left-color: rgba(80, 205, 137, 0.28);
    animation: app-loader-spin-rev 1.55s cubic-bezier(0.45, 0.1, 0.3, 1) infinite;
}

.app-loader__ring--c {
    inset: 28%;
    border-top-color: rgba(0, 158, 247, 0.55);
    border-right-color: transparent;
    border-width: 1.5px;
    animation: app-loader-spin 2.1s linear infinite;
    opacity: 0.85;
}

.app-loader__core {
    position: absolute;
    inset: 34%;
    border-radius: 50%;
    background: linear-gradient(145deg, #009ef7 0%, #3ec6ff 45%, #50cd89 100%);
    box-shadow:
        0 0 0 3px rgba(255, 255, 255, 0.55),
        0 8px 20px rgba(0, 158, 247, 0.28);
    display: grid;
    place-items: center;
    overflow: hidden;
}

.app-loader--sm .app-loader__core {
    inset: 32%;
    box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.45), 0 4px 10px rgba(0, 158, 247, 0.25);
}

.app-loader__core-pulse {
    width: 38%;
    height: 38%;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.92);
    animation: app-loader-core 1.35s ease-in-out infinite;
}

.app-loader__copy {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.45rem;
}

.app-loader__brand {
    font-size: 0.95rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--app-loader-ink);
}

.app-loader__text,
.app-loader__caption {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--app-loader-ink);
    letter-spacing: 0.01em;
}

.app-loader--sm .app-loader__text {
    font-size: 0.78rem;
}

.app-loader__caption {
    font-size: 0.8rem;
    font-weight: 500;
    color: var(--app-loader-muted);
}

.app-loader__dots {
    display: inline-flex;
    align-items: center;
    gap: 0.28rem;
    height: 0.5rem;
}

.app-loader__dots i {
    width: 0.35rem;
    height: 0.35rem;
    border-radius: 50%;
    background: var(--app-loader-primary);
    opacity: 0.35;
    animation: app-loader-dot 1.2s ease-in-out infinite;
}

.app-loader__dots i:nth-child(2) {
    animation-delay: 0.16s;
    background: #3ec6ff;
}

.app-loader__dots i:nth-child(3) {
    animation-delay: 0.32s;
    background: var(--app-loader-accent);
}

@keyframes app-loader-spin {
    to { transform: rotate(360deg); }
}

@keyframes app-loader-spin-rev {
    to { transform: rotate(-360deg); }
}

@keyframes app-loader-glow {
    0%, 100% { opacity: 0.55; transform: scale(0.92); }
    50% { opacity: 1; transform: scale(1.05); }
}

@keyframes app-loader-core {
    0%, 100% { transform: scale(0.72); opacity: 0.75; }
    50% { transform: scale(1); opacity: 1; }
}

@keyframes app-loader-dot {
    0%, 80%, 100% { transform: translateY(0); opacity: 0.3; }
    40% { transform: translateY(-3px); opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
    .app-loader__ring,
    .app-loader__glow,
    .app-loader__core-pulse,
    .app-loader__dots i {
        animation: none !important;
    }

    .app-loader__ring--a {
        border-color: rgba(0, 158, 247, 0.45);
    }
}

/* Ortak cihaz ikonları (MonitoringDeviceIcon) */
.et-device-icon {
    display: inline-block;
    object-fit: contain;
    vertical-align: middle;
    flex-shrink: 0;
}

/* Sayaç tipi + çift yönlü rozet (aynı satır) */
.et-meter-type-cell {
    white-space: nowrap;
    min-width: 9.5rem;
}

.et-meter-type-cell .badge {
    flex-shrink: 0;
}

/* Reaktif Takip (/reactive-tracking) */
.rt-page {
    max-width: 100%;
}

.rt-page__rule {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.4rem 0.85rem;
    border-radius: 999px;
    font-size: 0.8rem;
    font-weight: 650;
    letter-spacing: 0.01em;
    white-space: nowrap;
    cursor: help;
}

.rt-page__rule-dot {
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 50%;
    flex-shrink: 0;
}

.rt-page__rule.is-on {
    color: #0d7a4f;
    background: rgba(80, 205, 137, 0.14);
}

.rt-page__rule.is-on .rt-page__rule-dot {
    background: #50cd89;
    box-shadow: 0 0 0 3px rgba(80, 205, 137, 0.22);
}

.rt-page__rule.is-off {
    color: #7e8299;
    background: rgba(126, 130, 153, 0.1);
}

.rt-page__rule.is-off .rt-page__rule-dot {
    background: #a1a5b7;
}

.rt-page__filters .card-body {
    padding-top: 1.35rem;
    padding-bottom: 1.35rem;
}

.rt-page__filter-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem 1.25rem;
}

.rt-page__filter-field {
    min-width: 0;
}

.rt-page__filter-label {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    margin-bottom: 0.45rem;
    font-size: 0.78rem;
    font-weight: 650;
    color: var(--bs-gray-700, #5e6278);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.rt-page__filter-control {
    min-height: 2.75rem;
}

.rt-page__period-box {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.5rem;
    min-height: 2.75rem;
    padding: 0.55rem 0.9rem;
    border-radius: 0.55rem;
    border: 1px dashed var(--bs-border-color, #e4e6ef);
    background: #f9fafc;
    color: var(--bs-gray-600, #7e8299);
    font-size: 0.86rem;
    font-weight: 600;
}

.rt-page__period-box.is-ready {
    border-style: solid;
    border-color: rgba(0, 158, 247, 0.22);
    background: linear-gradient(180deg, #f7fbff 0%, #f3f8fc 100%);
    color: var(--bs-gray-900, #181c32);
}

.rt-page__period-arrow {
    color: var(--bs-gray-500, #a1a5b7);
    font-weight: 700;
}

.rt-page__period-placeholder {
    font-weight: 500;
    color: var(--bs-gray-500, #a1a5b7);
}

.rt-page__overview {
    align-items: stretch;
}

.rt-page__summary {
    height: 100%;
}

.rt-page__summary .card-body {
    padding: 1.45rem 1.5rem 1.35rem;
    height: 100%;
    display: flex;
    flex-direction: column;
}

.rt-page__summary-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.65rem;
    margin-bottom: 1.15rem;
    padding-bottom: 0.9rem;
    border-bottom: 1px solid var(--app-card-border, #eceef2);
}

.rt-page__summary-title {
    font-size: 1rem;
    font-weight: 700;
    color: var(--bs-gray-900, #181c32);
}

.rt-page__meta {
    display: flex;
    flex-direction: column;
    gap: 0.95rem;
    flex: 1 1 auto;
}

.rt-page__meta-item {
    display: grid;
    grid-template-columns: 2.35rem 1fr;
    gap: 0.8rem;
    align-items: start;
    padding: 1.05rem 1.05rem;
    border-radius: 0.65rem;
    background: #f8fafc;
    border: 1px solid transparent;
}

.rt-page__period-select {
    min-height: 2.75rem;
    font-weight: 600;
}

.rt-page__period-select--compact {
    min-height: 2.35rem;
    font-size: 0.86rem;
    font-weight: 600;
    padding-top: 0.4rem;
    padding-bottom: 0.4rem;
}

.rt-page__ratios-col {
    display: flex;
    flex-direction: column;
    height: 100%;
}

.rt-page__ratios-row {
    flex: 1 1 auto;
    display: flex;
    align-items: stretch;
}

.rt-page__ratios-row > [class*="col-"] {
    display: flex;
}

/* Oran kartları: eşit yükseklik, alt aksiyon dipte */
.rt-page__ratio {
    height: 100% !important;
    min-height: 0 !important;
    width: 100%;
    display: flex;
    flex-direction: column;
}

.rt-page__ratio .card-body {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    gap: 0;
    padding: 0.85rem 1.1rem 1rem !important;
    height: 100%;
}

.rt-page__ratio .md-ratio__head {
    height: 150px;
    margin-bottom: 42px;
    flex-shrink: 0;
}

.rt-page__ratio .md-ratio__rows {
    flex: 1 1 auto !important;
    justify-content: flex-start !important;
    gap: 0;
    margin-top: 0.15rem;
}

.rt-page__ratio-row {
    padding-top: 0.7rem !important;
    padding-bottom: 0.7rem !important;
    line-height: 1.45;
}

.rt-page__ratio-action {
    margin-top: auto;
    padding-top: 0.85rem;
}

.rt-page__meta-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 0.55rem;
    background: #fff;
    border: 1px solid var(--app-card-border, #eceef2);
    color: #009ef7;
    font-size: 1.05rem;
}

.rt-page__meta-copy {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
}

.rt-page__meta-label {
    font-size: 0.72rem;
    font-weight: 650;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--bs-gray-500, #a1a5b7);
}

.rt-page__meta-value {
    font-size: 0.92rem;
    font-weight: 650;
    color: var(--bs-gray-900, #181c32);
    word-break: break-word;
}

.rt-page__meta-value--period {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.3rem 0.4rem;
    font-size: 0.82rem;
    line-height: 1.35;
}

@media (max-width: 991.98px) {
    .rt-page__filter-grid {
        grid-template-columns: 1fr;
    }
}

[data-bs-theme=dark] .rt-page__period-box {
    background: rgba(255, 255, 255, 0.03);
}

[data-bs-theme=dark] .rt-page__period-box.is-ready {
    background: rgba(0, 158, 247, 0.08);
}

[data-bs-theme=dark] .rt-page__meta-item {
    background: rgba(255, 255, 255, 0.03);
}

[data-bs-theme=dark] .rt-page__meta-icon {
    background: rgba(255, 255, 255, 0.04);
}



/* ── Tesis Sağlığı ── */
.fh-health-page {
    display: flex;
    flex-direction: column;
    gap: var(--et-board-stack-gap, 0.85rem);
    margin-bottom: 2rem;
}

.fh-health-page .scada-ops-kpi {
    cursor: pointer;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
    background: #fff;
}
.fh-health-page button.scada-ops-kpi {
    appearance: none;
}
.fh-health-page .scada-ops-kpi.is-active {
    border-color: rgba(var(--bs-primary-rgb), 0.45) !important;
    box-shadow: 0 0 0 1px rgba(var(--bs-primary-rgb), 0.18);
}

.fh-health-toolbar {
    align-items: center;
    gap: 0.75rem 1rem;
}

.fh-health-layout {
    display: grid;
    gap: 0.85rem;
    align-items: start;
}
.fh-health-layout--inspect {
    grid-template-columns: minmax(0, 1fr) minmax(300px, 380px);
}
.fh-health-layout--browse { grid-template-columns: 1fr; }

.fh-health-page .tum-tesisler-facility-row {
    cursor: pointer;
}
.fh-health-page .tum-tesisler-facility-row.is-selected {
    background: rgba(var(--bs-primary-rgb), 0.06);
}

.fh-score {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    gap: 0.15rem;
    min-width: 3.25rem;
}
.fh-score__ring {
    --fh-score: 0;
    width: 2.55rem;
    height: 2.55rem;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background:
        radial-gradient(circle at center, #fff 58%, transparent 59%),
        conic-gradient(var(--fh-score-color, #50cd89) calc(var(--fh-score) * 1%), #eef0f4 0);
}
.fh-score__ring strong {
    font-size: 0.78rem;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    color: #181c32;
}
.fh-score__label {
    font-size: 0.68rem;
    font-weight: 650;
    letter-spacing: 0.01em;
}
.fh-score--good { --fh-score-color: #50cd89; }
.fh-score--good .fh-score__label { color: #50cd89; }
.fh-score--mid { --fh-score-color: #ffc700; }
.fh-score--mid .fh-score__label { color: #9a6b00; }
.fh-score--bad { --fh-score-color: #f1416c; }
.fh-score--bad .fh-score__label { color: #f1416c; }
.fh-score--lg .fh-score__ring {
    width: 3.1rem;
    height: 3.1rem;
}
.fh-score--lg .fh-score__ring strong { font-size: 0.92rem; }

.fh-page__date {
    display: flex;
    align-items: center;
    gap: 0.45rem;
}
.fh-page__date .form-control { width: 138px; font-size: 0.8rem; }
.fh-page__date-sep { color: #a1a5b7; font-size: 0.8rem; }
.fh-page__count {
    margin-top: 0.6rem;
    font-size: 0.8rem;
    color: #a1a5b7;
}

.fh-seg {
    display: inline-flex;
    border: 1px solid #e4e6ef;
    border-radius: 0.475rem;
    overflow: hidden;
    background: #fff;
}
.fh-seg__btn {
    border: 0;
    background: transparent;
    padding: 0.4rem 0.7rem;
    font-size: 0.78rem;
    font-weight: 600;
    color: #5e6278;
}
.fh-seg__btn + .fh-seg__btn { border-left: 1px solid #e4e6ef; }
.fh-seg__btn.is-active {
    background: rgba(var(--bs-primary-rgb), 0.08);
    color: var(--bs-primary);
}

.fh-notice {
    padding: 0.55rem 0.85rem;
    border-radius: 0.475rem;
    background: #fff8dd;
    color: #7a6210;
    font-size: 0.82rem;
}

.fh-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 1.35rem;
    padding: 0.1rem 0.55rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 650;
    line-height: 1.2;
    white-space: nowrap;
}
.fh-pill--success { background: rgba(var(--bs-success-rgb), 0.12); color: var(--bs-success); }
.fh-pill--warning { background: rgba(var(--bs-warning-rgb), 0.18); color: #9a6b00; }
.fh-pill--danger { background: rgba(var(--bs-danger-rgb), 0.12); color: var(--bs-danger); }
.fh-pill--neutral { background: #f1f1f4; color: #5e6278; }

.fh-detail {
    border: var(--et-board-border, 1px solid #eef0f4);
    border-radius: var(--et-board-radius, 0.65rem);
    box-shadow: var(--et-board-shadow, none);
    background: #fff;
    padding: 1rem 1.1rem 1.15rem;
    position: sticky;
    top: 0.75rem;
    max-height: calc(100vh - 180px);
    overflow: auto;
}
.fh-detail__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.85rem;
}
.fh-detail__title {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 700;
    color: #181c32;
}
.fh-detail__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.55rem;
    margin-top: 0.45rem;
}
.fh-detail__metrics {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.55rem;
    margin-bottom: 0.85rem;
}
.fh-metric {
    background: #fbfbfc;
    border: 1px solid #eef0f4;
    border-radius: 0.5rem;
    padding: 0.55rem 0.65rem;
}
.fh-metric__label {
    display: block;
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #a1a5b7;
    margin-bottom: 0.2rem;
}
.fh-metric strong {
    display: block;
    font-size: 0.82rem;
    font-weight: 650;
    color: #181c32;
    line-height: 1.35;
}
.fh-metric__hint {
    display: block;
    margin-top: 0.15rem;
    font-size: 0.72rem;
    color: #a1a5b7;
}
.fh-detail__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-bottom: 0.85rem;
}
.fh-detail__loading { padding: 1.25rem 0; }
.fh-cards {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}
.fh-card {
    background: #fbfbfc;
    border: 1px solid #eef0f4;
    border-radius: 0.5rem;
    padding: 0.7rem 0.8rem;
}
.fh-card--warn { border-color: rgba(var(--bs-warning-rgb), 0.45); background: #fffdf5; }
.fh-card__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.45rem;
}
.fh-card__head h5 {
    margin: 0;
    font-size: 0.82rem;
    font-weight: 700;
    color: #181c32;
}
.fh-card__link {
    font-size: 0.75rem;
    font-weight: 600;
    text-decoration: none;
}
.fh-card__empty {
    margin: 0;
    font-size: 0.8rem;
    color: #7e8299;
}
.fh-card__stats {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem 0.85rem;
    font-size: 0.8rem;
    color: #5e6278;
    margin-bottom: 0.45rem;
}
.fh-card__stats strong { color: #181c32; font-variant-numeric: tabular-nums; }
.fh-card__stats--wrap { gap: 0.4rem; }
.fh-card__list {
    list-style: none;
    margin: 0;
    padding: 0;
}
.fh-card__list li {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.28rem 0;
    border-top: 1px solid #f4f4f7;
    font-size: 0.8rem;
}
.fh-card__list li:first-child { border-top: 0; }
.fh-card__list--plain li {
    display: list-item;
    list-style: disc;
    margin-left: 1.1rem;
    border: 0;
    padding: 0.15rem 0;
    color: #5e6278;
}
.fh-card__list-primary { font-weight: 600; color: #181c32; }
.fh-detail__cta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-top: 0.9rem;
    padding-top: 0.85rem;
    border-top: 1px solid #eef0f4;
}
.fh-detail__cta .btn {
    font-size: 0.78rem;
    padding: 0.4rem 0.7rem;
}

@media (max-width: 1199.98px) {
    .fh-health-layout--inspect { grid-template-columns: 1fr; }
    .fh-detail {
        position: static;
        max-height: none;
    }
}

/* ==========================================================================
   Global mobil UI — tüm sayfalar (masaüstü lg+ değişmez)
   ========================================================================== */
@media (max-width: 991.98px) {
    /* Sidebar drawer mobilde daha dar — içerik görünsün */
    #kt_app_sidebar.drawer,
    #kt_app_sidebar.drawer-start,
    #kt_app_sidebar.drawer-end {
        width: min(18.5rem, 82vw) !important;
        max-width: 82vw !important;
    }

    /* Kart başlık / gövde nefes */
    .app-content .card.card-flush > .card-header {
        min-height: 0 !important;
        padding-top: 0.85rem !important;
        padding-bottom: 0.65rem !important;
    }

    .app-content .card > .card-body {
        padding-left: 0.85rem !important;
        padding-right: 0.85rem !important;
    }

    /* Büyük birincil butonları kompaktlaştır */
    .app-content .btn:not(.btn-icon):not(.btn-sm):not(.dropdown-toggle) {
        min-height: 2.15rem;
        padding-top: 0.4rem;
        padding-bottom: 0.4rem;
        font-size: 0.8125rem;
    }

    .app-content .btn-sm,
    .app-content .btn-group-sm > .btn {
        min-height: 1.65rem;
        padding: 0.2rem 0.5rem;
        font-size: 0.7rem;
        line-height: 1.2;
    }

    /* Yapışık btn-group’lar — genel */
    .app-content .btn-group.btn-group-sm {
        display: inline-flex;
        flex-wrap: wrap;
        gap: 0.3rem;
    }

    .app-content .btn-group.btn-group-sm > .btn {
        border-radius: 0.4rem !important;
        margin-left: 0 !important;
    }

    /* Tarih wrap — yan oklarla aynı yükseklik (tüm sayfalar) */
    .app-content .inv-chart-nav.btn-group {
        display: inline-flex !important;
        align-items: center;
        gap: 0.3rem !important;
        width: auto !important;
    }

    .app-content .inv-chart-nav.btn-group > .btn,
    .app-content .inv-chart-nav__date-wrap,
    .app-content .inv-chart-nav__date-wrap .inv-chart-nav__date {
        flex: 0 0 auto !important;
        height: 1.65rem !important;
        min-height: 1.65rem !important;
        padding: 0.12rem 0.4rem !important;
        font-size: 0.68rem !important;
        line-height: 1.2 !important;
        border-radius: 0.4rem !important;
        margin: 0 !important;
    }

    .app-content .inv-chart-nav__date-wrap .inv-chart-nav__date {
        min-width: 5.5rem;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }

    /* ApexCharts araç çubuğu — tüm sayfalar */
    .app-content .apexcharts-toolbar svg,
    .app-content .apexcharts-menu-icon,
    .app-content .apexcharts-zoom-icon,
    .app-content .apexcharts-zoomin-icon,
    .app-content .apexcharts-zoomout-icon,
    .app-content .apexcharts-pan-icon,
    .app-content .apexcharts-reset-icon,
    .app-content .apexcharts-selection-icon {
        width: 18px !important;
        height: 18px !important;
    }

    .app-content .apexcharts-toolbar > div {
        min-width: 22px !important;
        min-height: 22px !important;
    }

    /* Liste / tablo yatay taşma */
    .app-content .table-responsive,
    .app-content .app-list-table-wrap {
        max-width: 100%;
    }

    /* Hero aksiyon butonları */
    .scada-hero__actions .btn,
    .et-board-hero__btn,
    .md-hero-compact .btn {
        min-height: 2.1rem !important;
        font-size: 0.78rem !important;
    }

    /* KPI / özet kartları sıkılaştır */
    .app-content .inv-kpi,
    .app-content .et-board-kpi,
    .app-content .scada-ops-kpi {
        padding: 0.75rem 0.85rem;
    }

    /* Form kontrolleri dokunmaya uygun ama şişkin değil */
    .app-content .form-control,
    .app-content .form-select {
        min-height: 2.25rem;
        font-size: 0.875rem;
    }

    .app-content .form-control-sm,
    .app-content .form-select-sm {
        min-height: 1.85rem;
        font-size: 0.78rem;
    }

    /* Kartlar arası boşluk */
    .app-content .card + .card,
    .app-content .row > [class*="col-"] > .card {
        margin-bottom: 0;
    }

    .app-content .g-3,
    .app-content .gy-3 {
        --bs-gutter-y: 0.85rem;
    }

    .app-content .g-4,
    .app-content .gy-4 {
        --bs-gutter-y: 1rem;
    }

    /* Tesis detay hero — sabit 350px mobilde boğuyor */
    .et-facility-hero {
        min-height: 0 !important;
    }

    .et-facility-hero > img {
        max-height: 180px;
        object-fit: cover;
    }

    /* Enerji grafiği host — mobilde daha alçak */
    .inv-facility-monitor .inv-energy-chart,
    .app-content .inv-energy-chart {
        min-height: 240px !important;
        height: 240px !important;
    }

    /* Gap’siz büyük btn-group’lar */
    .app-content .btn-group:not(.btn-group-sm):not(.dropdown) {
        display: inline-flex;
        flex-wrap: wrap;
        gap: 0.35rem;
    }

    .app-content .btn-group:not(.btn-group-sm):not(.dropdown) > .btn {
        border-radius: 0.4rem !important;
        margin-left: 0 !important;
    }

    /* Klasik ana sayfa tablo host — mobilde max-height gevşet */
    .et-classic-home__main .et-classic-table-host {
        max-height: none !important;
    }
}

/* Yazılım Güncelleme — Dosya Seç + Kaydet aynı satır */
.et-fw-upload-row {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 0.65rem;
    width: 100%;
}

.et-fw-upload-row__file {
    flex: 1 1 auto;
    min-width: 0;
    width: auto !important;
    box-sizing: border-box !important;
    min-height: 2.5rem !important;
    height: 2.5rem !important;
    max-height: 2.5rem !important;
    /* form-control padding’i Dosya Seç / metni üste iter; sıfırla ve ortala */
    padding: 0 0.75rem 0 0.4rem !important;
    margin: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    line-height: 2.5rem !important;
    vertical-align: middle;
}

/* Dosya Seç düğmesi + dosya adı input içinde dikey ortada */
.et-fw-upload-row__file::file-selector-button,
.et-fw-upload-row__file::-webkit-file-upload-button {
    box-sizing: border-box;
    margin: 0 0.65rem 0 0 !important;
    padding: 0 0.85rem !important;
    height: 1.85rem !important;
    line-height: 1.85rem !important;
    border: 1px solid var(--bs-gray-300, #e1e3ea);
    border-radius: 0.45rem;
    background: #fff;
    color: #5e6278;
    font-size: 0.8125rem;
    font-weight: 600;
    cursor: pointer;
    vertical-align: middle !important;
}

.et-fw-upload-row__file:hover::file-selector-button,
.et-fw-upload-row__file:hover::-webkit-file-upload-button {
    border-color: #c4c8d4;
    color: #3f4254;
}

.et-fw-upload-row__save {
    flex: 0 0 auto;
    white-space: nowrap;
    min-height: 2.5rem;
    height: 2.5rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding-top: 0;
    padding-bottom: 0;
}

/* Yazılım Güncelleme — protokol bilgi ikonu (hover) */
.et-fw-proto-tip {
    position: relative;
    display: inline-flex;
    z-index: 5;
}

.et-fw-proto-tip__btn {
    width: 2rem;
    height: 2rem;
}

.app-modal-header__trailing {
    margin-top: 0.1rem; /* başlık satırı ile dikey hiza */
}

.app-modal-header__trailing .app-modal-close,
.app-modal-header__trailing .et-fw-proto-tip__btn,
.app-modal-header__trailing .et-fw-header-icon {
    width: 2rem;
    height: 2rem;
    margin: 0;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.app-modal-header__actions {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

/* Mevcut firmware — açılır liste (aynı card yüzey) */
.et-fw-file-select {
    border: 1px solid var(--bs-border-color, #e4e6ef);
    border-radius: 0.55rem;
    min-height: 2.75rem;
    padding-top: 0.65rem;
    padding-bottom: 0.65rem;
}

.et-fw-proto-tip__panel {
    position: absolute;
    right: 0;
    top: calc(100% + 0.35rem);
    z-index: 20;
    width: min(26rem, 85vw);
    padding: 0.85rem 1rem;
    border-radius: 0.55rem;
    background: #fff;
    border: 1px solid var(--bs-border-color, #e4e6ef);
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.12);
    font-size: 0.78rem;
    line-height: 1.45;
    color: #3f4254;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(-4px);
    transition: opacity 0.15s ease, transform 0.15s ease, visibility 0.15s ease;
}

.et-fw-proto-tip__panel code {
    font-size: 0.72rem;
    word-break: break-all;
}

.et-fw-proto-tip:hover .et-fw-proto-tip__panel,
.et-fw-proto-tip:focus-within .et-fw-proto-tip__panel {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
}

[data-bs-theme="dark"] .et-fw-proto-tip__panel {
    background: #1e2130;
    color: #c7cde0;
    border-color: #2f3545;
}

