/* ============================================================
   Kustomisasi Aplikasi Quantum (di atas AdminLTE)
   Simpan perubahan tampilan di sini agar tidak mengubah file inti.
   ============================================================ */

/* --- 1) Perkecil font secara keseluruhan --------------------
   Ubah angka 14px ini bila ingin lebih kecil/besar (default AdminLTE 16px). */
:root {
  --qtm-font-size: 14px;
}
html {
  font-size: var(--qtm-font-size);
}

/* --- 2) Rapatkan ikon di navbar kanan (chat, notif, layar penuh, tema) --- */
.navbar-icons-tight {
  gap: 0;
}
.navbar-icons-tight > .nav-item > .nav-link {
  padding-left: 0.35rem;
  padding-right: 0.35rem;
}

/* --- 3) Rapatkan jarak antar menu di sidebar --------------------
   Mengurangi padding & jarak antar item, tanpa mengganggu responsive.
   Ubah angka di bawah bila ingin lebih rapat/renggang. */
.sidebar-menu .nav-item {
  margin-bottom: 0; /* hilangkan jarak antar item */
}
.sidebar-menu .nav-item > .nav-link {
  padding-top: 0.35rem;
  padding-bottom: 0.35rem;
}
/* jarak sub-menu (treeview) ikut dirapatkan */
.sidebar-menu .nav-treeview > .nav-item > .nav-link {
  padding-top: 0.3rem;
  padding-bottom: 0.3rem;
}
/* rapatkan juga judul kelompok (PAGES, EXAMPLES, dll.) */
.sidebar-menu .nav-header {
  padding-top: 0.5rem;
  padding-bottom: 0.25rem;
}

/* --- 4) Rapatkan ke tepi kiri (lebih mepet) ----------------------
   Berlaku untuk logo header & menu UTAMA saja (bukan sub-menu). */
/* Logo header disejajarkan dengan ikon menu (kiri).
   Wadah brand aslinya rata-tengah, jadi diubah ke rata-kiri
   dan padding-nya disamakan dengan posisi ikon menu (21px). */
.sidebar-brand {
  justify-content: flex-start;
  padding-left: 0.75rem; /* setara posisi ikon menu (~11px) */
}
.sidebar-brand .brand-link {
  padding-left: 0;
}
/* Hanya menu tingkat pertama (anak langsung .sidebar-menu),
   sub-menu di dalam .nav-treeview TIDAK ikut berubah. */
.sidebar-menu > .nav-item > .nav-link {
  padding-left: 0.25rem;
}

/* --- 5) Geser panah (chevron) menu sedikit ke kanan --------------
   Hanya menggeser posisi panah, tidak mengubah lebar/layout,
   jadi responsive tetap aman. */
.sidebar-menu .nav-arrow {
  margin-right: -6px;
}

/* --- 6) Tombol toggle sidebar jadi panah otomatis ----------------
   - Sidebar terlihat  -> panah KIRI  (default)
   - Sidebar disembunyi -> panah KANAN (body.sidebar-collapse)
   Digeser sedikit ke kiri tanpa mengubah layout (margin negatif). */
.sidebar-toggle-arrow {
  /* Ikon toggle disembunyikan (sidebar sudah muncul otomatis saat mouse
     di tepi kiri). */
  display: none !important;
  position: fixed;
  top: 8px;
  left: 8px;
  z-index: 1060;
  margin: 0 !important;
  width: 2rem !important;
  height: 2rem !important;
  min-height: 0 !important;
  line-height: 1;
  padding: 0 !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--bs-body-bg);
  border: 1px solid rgba(0, 0, 0, 0.15);
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
}
/* Panah dibuat lebih tebal & jelas */
.sidebar-toggle-arrow i {
  font-size: 1rem;
  -webkit-text-stroke: 0.06em currentColor; /* efek tebal */
}
/* Di layar lebar (sidebar tampil menetap): taruh panah tepat di garis
   batas sidebar & konten, dan angkat header agar tombol tidak tertutup
   sidebar. Saat sidebar disembunyikan, kembalikan ke tepi kiri. */
.app-header .container-fluid {
  padding-left: 0.75rem;
}
@media (min-width: 992px) {
  .app-header {
    z-index: 1040;
  }
}
.sidebar-toggle-arrow [data-arrow="collapsed"] {
  display: none;
}
.sidebar-toggle-arrow [data-arrow="open"] {
  display: inline-block;
}
body.sidebar-collapse .sidebar-toggle-arrow [data-arrow="open"] {
  display: none;
}
body.sidebar-collapse .sidebar-toggle-arrow [data-arrow="collapsed"] {
  display: inline-block;
}

/* --- 7) Header ramping + selalu menempel di atas ----------------
   Header selalu terlihat (profesional), tinggi diperkecil, dan
   TETAP di atas saat halaman di-scroll (sticky) - hanya konten yang
   ikut scroll. Berlaku di semua halaman & ukuran layar. */
.app-header {
  padding-top: 4px !important;
  padding-bottom: 4px !important;
  position: sticky;
  top: 0;
  z-index: 1040; /* di atas konten & sidebar */
  /* Border bawah abu-abu menyala (terang + sedikit glow) */
  border-bottom: 2px solid #c2c9d1 !important;
  box-shadow: 0 0 8px rgba(200, 208, 216, 0.75) !important;
}

/* --- 8) Sembunyikan judul + breadcrumb di area konten -----------
   (nama halaman sudah pindah ke header). Elemen tetap ada di DOM
   agar teksnya bisa dibaca untuk mengisi nama halaman di header. */
.app-content-header,
.content-header {
  display: none !important;
}

/* --- 9) Beri sedikit jarak atas pada konten (semua halaman) ------
   Agar konten tidak mepet ke header. Ubah 1rem sesuai selera. */
.app-content {
  padding-top: 1rem;
}

/* --- 10) Sembunyikan footer di semua halaman -------------------- */
.app-footer {
  display: none !important;
}

/* --- 14) Mode SHELL (tab iframe) & EMBED ------------------------ */
/* Area utama shell: iframe mengisi ruang di bawah header; konten
   scroll DI DALAM iframe (header tetap diam). */
.quantum-shell-main {
  padding: 0 !important;
  height: calc(100vh - var(--qtm-header-h, 46px));
  overflow: hidden;
}
.quantum-frames {
  position: relative;
  width: 100%;
  height: 100%;
}
.quantum-frames iframe.quantum-frame {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  background: var(--bs-body-bg, #fff);
  visibility: hidden;
}
.quantum-frames iframe.quantum-frame.active {
  visibility: visible;
}
.quantum-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100%;
  gap: 0.5rem;
  color: var(--bs-secondary-color, #6c757d);
  text-align: center;
  padding: 1rem;
}
.quantum-empty i {
  font-size: 2.5rem;
  opacity: 0.5;
}
/* Halaman sambutan (home) saat belum ada tab dibuka.
   Grid: tabel di kanan-atas; baris bawah = welcome (kiri) sejajar peta (kanan). */
.quantum-home {
  display: grid;
  grid-template-columns: minmax(200px, 0.9fr) minmax(0, 1.5fr) 460px;
  grid-template-areas:
    "card  wo  map"
    "card  wo  table";
  /* baris 1 = tinggi peta (auto), baris 2 = isi sisa tinggi layar (1fr) */
  grid-template-rows: auto minmax(0, 1fr);
  gap: 1.25rem 2rem;
  align-items: stretch;
  width: 100%;
  height: 100%;
  /* jarak wajar seperti halaman lain (tidak mepet tepi) */
  padding: 1rem 1.5rem;
}
/* Card tengah: Workorder Today — mengisi penuh tinggi layar */
.quantum-home-wo {
  grid-area: wo;
  align-self: stretch;
  min-width: 0;
  min-height: 0;
}
/* Tabel Daftar Cabang: header tetap terlihat saat body discroll */
.quantum-home-table {
  min-height: 0;
}
.quantum-home-table thead th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: var(--bs-body-bg, #fff);
}
/* Normalkan ikon di dalam semua card home (jangan kena aturan .quantum-empty i) */
.quantum-home .card i {
  font-size: 1rem;
  opacity: 1;
}
/* Tombol Search: samakan tinggi dengan dropdown (form-select-sm) */
.quantum-home-wo .btn {
  min-height: calc(1.5em + 0.5rem + 2px);
}
/* Peta: kanan bawah, sejajar dengan welcome card */
.quantum-home-map {
  grid-area: map;
  width: 460px;
  max-width: 100%;
  text-align: left;
  justify-self: end;
}
/* Header peta: kurangi padding kanan agar ikon maximize mentok kanan */
.quantum-home-map .card-header {
  padding-right: 4px;
}
/* Wadah peta: potong strip atas agar tombol bawaan "Open in Maps" tak terlihat */
.quantum-home-map-frame-wrap {
  height: 300px;
  overflow: hidden;
  position: relative;
}
.quantum-home-map-frame {
  width: 100%;
  height: 352px;
  margin-top: -52px;
  border: 0;
  display: block;
}
/* Placeholder peta (klik untuk memuat) — ringan, tanpa aset eksternal */
.quantum-map-placeholder {
  width: 100%;
  height: 100%;
  border: 0;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: #fff;
  background: linear-gradient(135deg, #4a90d9 0%, #5aa9e6 45%, #7bc47f 100%);
  transition: filter 0.15s ease;
}
.quantum-map-placeholder:hover {
  filter: brightness(1.05);
}
.quantum-map-ph-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.15rem;
  padding: 1rem;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.25);
}
.quantum-map-placeholder .bi {
  font-size: 2.2rem !important;
  opacity: 1 !important;
  margin-bottom: 0.25rem;
}
.quantum-map-ph-text {
  font-weight: 600;
  font-size: 1rem;
}
.quantum-map-ph-sub {
  font-size: 0.8rem;
  opacity: 0.9;
}
/* Ikon maximize -> buka Google Maps (ukuran normal, mentok kanan) */
.quantum-home-map-max {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 2px 4px;
  margin-left: auto;
  font-size: 1rem;
  line-height: 1;
  border-radius: 4px;
  color: var(--bs-secondary-color, #6c757d);
  text-decoration: none;
  transition: background-color 0.15s ease, color 0.15s ease;
}
.quantum-home-map-max:hover {
  background: var(--bs-secondary-bg, #e9ecef);
  color: var(--bs-primary, #0d6efd);
}
/* Tabel Daftar Cabang: kanan atas */
.quantum-home-table {
  grid-area: table;
  width: 460px;
  max-width: 100%;
  text-align: left;
  justify-self: end;
}
/* Welcome card: pojok kiri atas */
.quantum-home-card {
  grid-area: card;
  align-self: start;
  justify-self: start;
  max-width: 520px;
  text-align: center;
  padding: 1rem 1.5rem;
}
/* Identitas user login: nama lengkap (atas) + jabatan (bawah) */
.quantum-home-userinfo {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  padding-bottom: 0.9rem;
  margin-bottom: 1rem;
  border-bottom: 1px solid var(--bs-border-color, #dee2e6);
  text-align: left;
}
.quantum-home-user-avatar .bi {
  font-size: 2.4rem !important;
  opacity: 1 !important;
  color: var(--bs-primary, #0d6efd);
  line-height: 1;
}
.quantum-home-user-text {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.quantum-home-username {
  font-weight: 700;
  font-size: 1.15rem;
  line-height: 1.2;
  color: var(--bs-emphasis-color, #212529);
  word-break: break-word;
}
.quantum-home-userrole {
  font-size: 0.85rem;
  color: var(--bs-secondary-color, #6c757d);
}
/* Small box ringkasan status WO — kompak & warna teks ikut inline */
.quantum-wo-boxes .small-box {
  margin-bottom: 0;
  border-radius: 8px;
}
.quantum-wo-boxes .small-box .inner {
  padding: 0.6rem 0.9rem;
  text-align: center;
}
.quantum-wo-boxes .small-box .inner h3 {
  color: inherit;
  font-size: 2.4rem;
  font-weight: 800;
  margin-bottom: 0.1rem;
}
.quantum-wo-boxes .small-box .inner p {
  color: inherit;
  margin-bottom: 0;
  font-size: 1.15rem;
  font-weight: 600;
  opacity: 0.95;
}
/* Layar sedang: WO Today turun ke bawah welcome, peta/tabel tetap kanan */
@media (max-width: 1200px) {
  .quantum-home {
    grid-template-columns: minmax(0, 1fr) 460px;
    grid-template-areas:
      "card  map"
      "wo    table"
      "wo    .";
  }
  .quantum-home-wo {
    min-height: 320px;
  }
}
/* Layar sempit: tumpuk vertikal biar tetap rapi */
@media (max-width: 900px) {
  .quantum-home {
    grid-template-columns: 1fr;
    grid-template-areas:
      "card"
      "wo"
      "map"
      "table";
    justify-items: center;
  }
  .quantum-home-wo,
  .quantum-home-table,
  .quantum-home-map {
    justify-self: stretch;
    width: 100%;
    max-width: 640px;
  }
}
.quantum-home-logo {
  width: 84px;
  height: 84px;
  border-radius: 50%;
  padding: 12px;
  background: var(--bs-body-bg, #fff);
  box-shadow: 0 6px 24px rgba(0, 0, 0, 0.12);
  margin-bottom: 1.25rem;
  opacity: 0.95;
}
.quantum-home-title {
  font-size: 1.9rem;
  font-weight: 700;
  margin-bottom: 0.5rem;
  color: var(--bs-emphasis-color, #212529);
}
.quantum-home-sub {
  font-size: 1.05rem;
  color: var(--bs-secondary-color, #6c757d);
  margin-bottom: 1.25rem;
}
/* Panah ke kiri beranimasi (memantul), petunjuk menu di kiri */
.quantum-home-arrow {
  margin-top: 0.75rem;
  font-size: 2.4rem;
  line-height: 1;
  color: var(--bs-primary, #0d6efd);
}
.quantum-home-arrow i {
  display: inline-block;
  animation: qh-arrow-left 1.1s ease-in-out infinite !important;
}
@keyframes qh-arrow-left {
  0%, 100% { transform: translateX(0); opacity: 0.55; }
  50% { transform: translateX(-14px); opacity: 1; }
}

.quantum-home-hint {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.85rem;
  color: var(--bs-secondary-color, #6c757d);
  background: var(--bs-secondary-bg, #e9ecef);
  border-radius: 999px;
  padding: 0.35rem 0.9rem;
}

/* --- Animasi "monitoring data" pada halaman sambutan (SVG + CSS) --- */
.quantum-monitor {
  width: 210px;
  margin: 0 auto 1.25rem;
}
.quantum-monitor svg {
  width: 100%;
  height: auto;
  display: block;
}
.qm-frame {
  fill: var(--bs-emphasis-color, #212529);
  opacity: 0.92;
}
.qm-screen {
  fill: #0d1b2a;
} /* layar gelap agar grafik kontras */
.qm-grid line {
  stroke: rgba(255, 255, 255, 0.08);
  stroke-width: 1;
}
.qm-stand,
.qm-base {
  fill: var(--bs-secondary-color, #6c757d);
  opacity: 0.7;
}
/* batang data naik-turun */
.qm-bar {
  transform-box: fill-box;
  transform-origin: bottom;
  animation: qm-bar 1.6s ease-in-out infinite alternate;
}
.qm-bar.b1 { fill: #3b82f6; animation-delay: 0s; }
.qm-bar.b2 { fill: #22c55e; animation-delay: 0.25s; }
.qm-bar.b3 { fill: #f59e0b; animation-delay: 0.5s; }
.qm-bar.b4 { fill: #ef4444; animation-delay: 0.75s; }
@keyframes qm-bar {
  from { transform: scaleY(0.28); }
  to { transform: scaleY(1); }
}
/* garis tren digambar berulang */
.qm-line {
  fill: none;
  stroke: #22d3ee;
  stroke-width: 2.5;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 320;
  stroke-dashoffset: 320;
  animation: qm-draw 2.6s ease-in-out infinite;
}
@keyframes qm-draw {
  0% { stroke-dashoffset: 320; }
  60% { stroke-dashoffset: 0; }
  100% { stroke-dashoffset: 0; }
}
.qm-dot { fill: #22d3ee; }
.qm-pulse-ring {
  fill: none;
  stroke: #22d3ee;
  stroke-width: 2;
  transform-box: fill-box;
  transform-origin: center;
  animation: qm-pulse 1.8s ease-out infinite;
}
@keyframes qm-pulse {
  0% { transform: scale(0.5); opacity: 0.9; }
  100% { transform: scale(2.6); opacity: 0; }
}
/* garis scan bergerak kiri-kanan */
.qm-scan {
  fill: rgba(34, 211, 238, 0.35);
  transform-box: fill-box;
  animation: qm-scan 2.8s linear infinite;
}
@keyframes qm-scan {
  0% { transform: translateX(0); }
  100% { transform: translateX(92px); }
}

/* --- Ilustrasi orang di depan monitor --- */
.il-desk { fill: #94a3b8; }
.il-keyboard { fill: #cbd5e1; }
.il-stand,
.il-base { fill: #64748b; }
.il-chair { fill: #475569; }
.il-body { fill: #3b82f6; } /* baju biru */
.il-arm {
  fill: none;
  stroke: #3b82f6;
  stroke-width: 9;
  stroke-linecap: round;
}
.il-hand { fill: #f1c27d; } /* tangan (kulit) */
.il-head { fill: #f1c27d; } /* kepala (kulit) */
.il-hair { fill: #4b3621; } /* rambut */
/* gerak halus "bernapas" pada orang */
.il-person {
  transform-box: fill-box;
  transform-origin: bottom center;
  animation: il-breathe 3.2s ease-in-out infinite;
}
@keyframes il-breathe {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-1.5px); }
}
/* gerak mengetik pada tangan */
.il-hand {
  transform-box: fill-box;
  transform-origin: center;
  animation: il-type 0.7s ease-in-out infinite alternate;
}
@keyframes il-type {
  from { transform: translateY(0); }
  to { transform: translateY(-1.6px); }
}
/* indikator LIVE berkedip */
.qm-live {
  fill: #ef4444;
  animation: qm-blink 1s steps(1) infinite;
}
@keyframes qm-blink {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.25; }
}
/* Mode EMBED: halaman di dalam iframe -> konten penuh tanpa offset chrome */
.quantum-embed .app-main {
  margin-left: 0 !important;
}

/* --- 15) Sidebar hover-reveal (muncul saat mouse di tepi kiri) --- */
/* Strip tak terlihat di tepi kiri sebagai pemicu hover. */
.quantum-hover-strip {
  position: fixed;
  top: var(--qtm-header-h, 46px);
  left: 0;
  width: 18px; /* area pemicu (perlebar/persempit di sini) */
  height: 100vh;
  z-index: 1035;
}
/* Animasi slide sidebar. */
.app-sidebar {
  transition: margin-left 0.25s ease !important;
}
/* Saat hover aktif: sidebar tampil MENGAMBANG di atas konten (tidak mendorong).
   Sidebar mulai DI BAWAH header agar tidak menutupi tombol/ikon & nama
   halaman di header (tetap terlihat penuh). Spesifisitas dinaikkan agar
   menang atas aturan collapse bawaan AdminLTE. */
body.quantum-hover-open .app-wrapper aside.app-sidebar {
  margin-left: 0 !important;
  z-index: 1045 !important;
  box-shadow: 0 0 24px rgba(0, 0, 0, 0.35) !important;
}

/* --- 11) Hilangkan garis di brand/logo sidebar ------------------ */
.sidebar-brand {
  border-bottom: 0 !important;
}

/* --- 13) Tab halaman di header (inline, di sebelah nama halaman) -
   Tiap halaman yang dibuka jadi 1 tab, tampil di baris header sebelah
   kiri (dekat nama halaman). Ikon kanan tetap paling kanan. */
.quantum-tabs {
  display: flex;
  flex: 0 1 auto;
  min-width: 0; /* boleh menyusut & scroll, tidak mendorong ikon kanan */
  flex-wrap: nowrap;
  align-items: center;
  gap: 5px;
  margin-left: 0.75rem;
  overflow-x: auto;
  scrollbar-width: thin;
}
.quantum-tabs::-webkit-scrollbar {
  height: 5px;
}
.quantum-tabs::-webkit-scrollbar-thumb {
  background: rgba(128, 128, 128, 0.5);
  border-radius: 3px;
}
.quantum-tab {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 6px 12px;
  background: var(--bs-secondary-bg, #e9ecef);
  border: 1px solid var(--bs-border-color, #dee2e6);
  border-radius: 4px; /* kotak (sudut siku), menyesuaikan header */
  font-size: 0.95rem;
  line-height: 1.5;
  white-space: nowrap;
  cursor: pointer;
  color: var(--bs-body-color);
  transition: background 0.15s ease;
}
.quantum-tab:hover {
  background: var(--bs-tertiary-bg, #dee2e6);
}
.quantum-tab.active {
  background: #000 !important; /* tab aktif: latar hitam */
  color: #fff !important; /* teks putih */
  font-weight: 700 !important; /* tebal */
  border: 1px solid #000 !important; /* tepi tegas, sewarna latar */
  box-shadow: none !important; /* hilangkan efek blur/bayangan */
}
/* tombol tutup (x) pada tab aktif ikut putih agar terlihat */
.quantum-tab.active .quantum-tab-close {
  color: #fff;
}
.quantum-tab-label {
  max-width: 160px;
  overflow: hidden;
  text-overflow: ellipsis;
}
.quantum-tab-close {
  border: 0;
  background: transparent;
  padding: 0 2px;
  line-height: 1;
  font-size: 1.3rem;
  color: inherit;
  opacity: 0.55;
  cursor: pointer;
}
.quantum-tab-close:hover {
  opacity: 1;
  color: #dc3545;
}
/* umpan balik saat tab digeser (drag reorder) */
.quantum-tab.dragging {
  opacity: 0.5;
}
/* ikon refresh di kiri tab */
.quantum-tab-refresh {
  border: 0;
  background: transparent;
  padding: 0 2px;
  line-height: 1;
  font-size: 1.1rem;
  color: inherit;
  opacity: 0.55;
  cursor: pointer;
}
.quantum-tab-refresh:hover {
  opacity: 1;
  color: #0d6efd;
}
.quantum-tab.active .quantum-tab-refresh {
  color: #fff;
}

/* --- Tab (nav-tabs) di dalam card: tab AKTIF hitam + teks putih (seragam
   untuk semua halaman/tab). Tab non-aktif pakai warna teks normal. --- */
.nav-tabs .nav-link {
  color: var(--bs-body-color, #212529);
  font-weight: 600;
}
.nav-tabs .nav-link.active {
  background-color: #000 !important;
  color: #fff !important;
  border-color: #000 !important;
  font-weight: 700;
}
.nav-tabs .nav-link.active .bi {
  color: #fff !important;
}

/* --- 12) Profil user (dropdown) tampil 3D ----------------------- */
.user-menu .dropdown-menu {
  border: 0 !important;
  border-radius: 0.9rem !important;
  overflow: hidden;
  /* bayangan berlapis -> kesan mengambang/3D */
  box-shadow:
    0 2px 4px rgba(0, 0, 0, 0.18),
    0 10px 24px rgba(0, 0, 0, 0.28),
    0 18px 40px rgba(0, 0, 0, 0.22) !important;
}
/* bagian atas (biru) diberi gradasi -> ada kedalaman */
.user-menu .user-header {
  background-image: linear-gradient(160deg, #4da3ff 0%, #0d6efd 55%, #0a58ca 100%);
}
/* foto avatar seolah terangkat */
.user-menu .user-header img {
  border: 3px solid rgba(255, 255, 255, 0.9) !important;
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.45) !important;
}
/* tombol Profile/Sign out sedikit terangkat */
.user-menu .user-footer .btn {
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
}

/* Nama halaman di kiri header (otomatis menyesuaikan per halaman) */
.quantum-page-title {
  /* Disembunyikan: nama halaman sudah ditampilkan oleh tab aktif. */
  display: none !important;
}

/* --- 13) Logo OSS bulat + efek denyut/orbit di sidebar --------- */
/* Sama seperti halaman login, tapi diskalakan untuk brand sidebar (34px). */
@keyframes oss-pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(0, 0, 102, 0.35); }
  50% { box-shadow: 0 0 0 7px rgba(0, 0, 102, 0); }
}
@keyframes oss-float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}
@keyframes oss-spin { to { transform: rotate(360deg); } }

/* Posisikan brand (logo + teks SS) di tengah area brand */
.sidebar-brand {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
}
.sidebar-brand .oss-brand {
  animation: oss-float 3.2s ease-in-out infinite !important;
}
.sidebar-brand .oss-logo-wrap {
  position: relative;
  width: 34px;
  height: 34px;
  display: inline-block;
}
.sidebar-brand .oss-logo {
  width: 34px !important;
  height: 34px !important;
  margin: 0 !important;
  border-radius: 50% !important;
  object-fit: cover;
  display: block;
  animation: oss-pulse 2.2s ease-in-out infinite !important;
}
.sidebar-brand .oss-orbit {
  position: absolute;
  inset: -5px;
  border-radius: 50%;
  animation: oss-spin 3s linear infinite !important;
  pointer-events: none;
}
.sidebar-brand .oss-orbit::before {
  content: '';
  position: absolute;
  top: -2px;
  left: 50%;
  width: 7px;
  height: 7px;
  margin-left: -3.5px;
  border-radius: 50%;
  background: #ff0011;
  box-shadow: 0 0 6px rgba(255, 0, 17, 0.8);
}
.sidebar-brand .oss-logo-wrap:hover .oss-orbit { animation-duration: 1s; }

/* ===== Tombol Search "Workorder Today": abu-abu terang + efek hover ===== */
.quantum-search-btn {
  background: #e2e8f0;
  color: #334155;
  border: 1px solid #cbd5e1;
  transition: background-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.quantum-search-btn:hover,
.quantum-search-btn:focus-visible {
  background: #cbd5e1;
  color: #1e293b;
  box-shadow: 0 2px 6px rgba(15, 23, 42, .15);
  transform: translateY(-1px);
}
.quantum-search-btn:active {
  transform: translateY(0);
  box-shadow: none;
  background: #b8c2cf;
}
