/* AssetKube - tema eklemeleri */
.table-sm td, .table-sm th { vertical-align: middle; }
.table th { white-space: nowrap; }
.barcode-text { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-weight: 600; letter-spacing: .02em; }
.kpi-card .kpi-icon { width: 42px; height: 42px; display: inline-flex; align-items: center; justify-content: center; border-radius: .5rem; }
.kpi-card h4 { font-weight: 600; }
a.kpi-card:hover { transform: translateY(-2px); transition: transform .15s; }
.category-tile { cursor: pointer; transition: all .15s; border: 1px solid transparent; }
.category-tile:hover { border-color: var(--bs-primary); transform: translateY(-2px); }
.category-tile i { font-size: 2rem; }
.timeline-compact .timeline-item { padding-bottom: 1rem; }
.required-mark::after { content: " *"; color: #ea5455; }
.dl-grid { display: grid; grid-template-columns: 170px 1fr; gap: .45rem 1rem; margin: 0; }
.dl-grid dt { color: #8a8d93; font-weight: 400; }
.dl-grid dd { margin: 0; font-weight: 500; word-break: break-word; }
@media (max-width: 576px) { .dl-grid { grid-template-columns: 1fr; } .dl-grid dt { margin-top: .5rem; } }

/* Kabin görünümü */
.rack { border: 3px solid #4b4b4b; border-radius: 6px; background: #2f3349; padding: 6px 6px 6px 34px; position: relative; max-width: 520px; }
.rack-u { height: 22px; border-bottom: 1px dashed rgba(255,255,255,.08); position: relative; }
.rack-u .u-no { position: absolute; left: -30px; width: 24px; text-align: right; font-size: 10px; color: #a8aaae; top: 4px; }
.rack-device { position: absolute; left: 0; right: 0; background: linear-gradient(180deg,#7367f0,#5e50ee); color: #fff; border-radius: 3px;
  font-size: 12px; padding: 2px 8px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; border: 1px solid rgba(255,255,255,.35); z-index: 2; display: flex; align-items: center; }
.rack-device:hover { filter: brightness(1.15); color: #fff; }
.rack-device.grp-Network { background: linear-gradient(180deg,#00bad1,#0097a7); }
.rack-device.grp-DataCenter-STR { background: linear-gradient(180deg,#ff9f43,#f08c2e); }
.rack-device.st-InRepair { background: linear-gradient(180deg,#ea5455,#d43f40); }

/* Sayım ekranı */
.scan-input { font-size: 1.5rem; height: 3.5rem; }
.scan-feed .list-group-item { font-size: .9rem; }
#scanVideo { width: 100%; max-height: 320px; background: #000; border-radius: .5rem; }

/* Yazdırılabilir alanlar ekranda */
.select2-container--default .select2-selection--single { height: calc(2.2rem + 2px); }

/* Kategori ikon seçici */
.icon-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(92px, 1fr)); gap: .5rem; }
.icon-cell { display: flex; flex-direction: column; align-items: center; gap: .35rem; padding: .75rem .25rem; border: 1px solid var(--bs-border-color); border-radius: .5rem; background: transparent; color: inherit; cursor: pointer; transition: all .12s; }
.icon-cell i { font-size: 1.75rem; }
.icon-cell span { font-size: .68rem; color: #8a8d93; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.icon-cell:hover { border-color: var(--bs-primary); color: var(--bs-primary); }
.icon-cell.active { border-color: var(--bs-primary); background: rgba(115,103,240,.08); color: var(--bs-primary); }

/* Yazdırma (kabin detay ekranı vb.): A4 dikey; menü, üst çubuk ve butonlar gizlenir; kabin renkleri korunur.
   Kabin çizimi ile cihaz listesi aynı sayfada yan yana basılır; 42U kabin sayfaya sığacak şekilde küçültülür. */
.rack-print-only { display: none; }
@media print {
  @page { size: A4 portrait; margin: 10mm; }
  html, body { background: #fff !important; }
  .layout-menu, .layout-navbar, .content-footer, .no-print, .layout-overlay, .drag-target, .alert, .template-customizer, .buy-now { display: none !important; }
  .layout-page::before, .layout-navbar-fixed .layout-page::before { display: none !important; content: none !important; }
  .layout-page, .layout-wrapper, .layout-container, .content-wrapper { padding: 0 !important; margin: 0 !important; }
  /* Tema, sabit üst çubuk için .layout-page'e üst boşluk verir; yazdırmada kaldırılır */
  html body .layout-wrapper .layout-container .layout-page:not(#_p1):not(#_p2) { padding-top: 0 !important; }
  html body .content-wrapper .container-p-y:not(#_p1):not(#_p2), html body .content-wrapper .container-fluid:not(#_p1):not(#_p2) { padding: 0 !important; max-width: none !important; }
  .container-fluid, .container-xxl, .container-p-y { padding: 0 !important; max-width: none !important; }
  .card { box-shadow: none !important; border: 1px solid #ddd !important; }
  body, .rack, .rack-device { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .rack-print-only { display: block; font-size: 10px; color: #555; }
  .rack-print-head { margin-bottom: 6px !important; }
  .rack-print-head h4 { font-size: 16px; }
  .rack-print-head p { font-size: 10px; }
  .rack-print-page { display: flex !important; flex-wrap: nowrap !important; gap: 6px; margin: 0 !important; }
  .rack-print-page > .rack-col-diagram { flex: 0 0 37% !important; max-width: 37% !important; padding: 0 !important; }
  .rack-print-page > .rack-col-list { flex: 1 1 auto !important; max-width: 63% !important; padding: 0 !important; }
  .rack-print-page .card-body { padding: 6px 6px 6px 26px !important; }
  .rack-print-page .card-header { padding: 6px 8px !important; }
  .rack-print-page .card-header h5 { font-size: 11px; }
  .rack-body { height: calc(var(--rack-u) * 18px) !important; }
  .rack-device { font-size: 8px; padding: 0 3px; border-radius: 2px; }
  .rack-device .ti, .rack-device .small { font-size: 7px !important; }
  .rack-print-page .table small, .rack-print-page .table .text-muted { font-size: 7.5px !important; }
  .rack-u .u-no { font-size: 7px; top: 1px; left: -22px; }
  .rack-print-page .table { font-size: 8.5px; }
  .rack-print-page .table td, .rack-print-page .table th { padding: 2px 4px !important; }
  .rack-print-page .badge { font-size: 7px; padding: 1px 4px; }
  .rack-print-page tr { break-inside: avoid; }
  a { text-decoration: none !important; color: inherit !important; }
  a.rack-device, .rack-device { color: #fff !important; }
}
.rack-device.st-Faulty { background: linear-gradient(180deg,#ff9f43,#e8892c); }
/* Varlık detayı: marka logosu (Varlık Bilgileri kartının sağ üstü) */
.brand-logo { max-width: 120px; max-height: 40px; object-fit: contain; }
/* Sol menü: sağa açılan alt menüler (Tanımlar, Sistem) */
.menu-flyout-caret { font-size: 1rem; opacity: .6; transition: transform .15s ease; }
.menu-flyout-panel { display: none; position: fixed; z-index: 1200; min-width: 250px; margin: 0; padding: .5rem;
  background: var(--bs-paper-bg, #fff); border: 1px solid var(--bs-border-color); border-radius: .5rem; box-shadow: 0 .25rem 1.125rem rgba(0, 0, 0, .18); }
.menu-flyout.flyout-open > .menu-flyout-panel { display: block; }
.menu-flyout.flyout-open:not(.active) > .menu-link { background: rgba(var(--bs-primary-rgb), .08); }
.menu-flyout-title { font-size: .75rem; text-transform: uppercase; letter-spacing: .4px; color: var(--bs-secondary-color); padding: .35rem .75rem .5rem; }
.menu-flyout-link { display: flex; align-items: center; gap: .65rem; padding: .5rem .75rem; border-radius: .375rem; white-space: nowrap;
  color: var(--bs-heading-color, var(--bs-body-color)); text-decoration: none; }
.menu-flyout-link i { font-size: 1.2rem; }
.menu-flyout-link:hover, .menu-flyout-link:focus-visible { background: rgba(var(--bs-primary-rgb), .08); color: var(--bs-primary); outline: none; }
.menu-flyout-link.active { background: rgba(var(--bs-primary-rgb), .16); color: var(--bs-primary); font-weight: 500; }
@media (max-width: 1199.98px) {
  .menu-flyout-panel { position: static; min-width: 0; padding: .25rem 0 .25rem 1.25rem; background: transparent; border: 0; box-shadow: none; }
  .menu-flyout-title { display: none; }
  .menu-flyout.flyout-open .menu-flyout-caret { transform: rotate(90deg); }
}

/* Salt okunur lisans modu: pasif işlem düğmeleri / bağlantıları */
.ro-disabled, a.ro-disabled, .dropdown-item.ro-disabled, .menu-link.ro-disabled { pointer-events: none !important; opacity: .45 !important; cursor: not-allowed !important; }
.tr-file { position: relative; cursor: pointer; min-height: calc(1.5em + .85rem + 2px); } .tr-file-input { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; } .tr-file:focus-within { border-color: var(--bs-primary); box-shadow: 0 0 0 .15rem rgba(var(--bs-primary-rgb), .15); }
