/* JOMSILAT_DRAWER_FORCE_V4
   Drawer only. Force light. Brand fixed.
*/

.jsf-drawer-final {
  background: #ffffff !important;
  color: #0f172a !important;
  color-scheme: light !important;
  border-color: #e5e7eb !important;
}

.jsf-drawer-final *,
.jsf-drawer-final a,
.jsf-drawer-final button,
.jsf-drawer-final div,
.jsf-drawer-final span,
.jsf-drawer-final small,
.jsf-drawer-final strong,
.jsf-drawer-final b {
  color: #0f172a !important;
  -webkit-text-fill-color: currentColor !important;
  opacity: 1 !important;
  visibility: visible !important;
  text-shadow: none !important;
}

.jsf-force-brand-v4 {
  display: flex !important;
  align-items: center !important;
  gap: 14px !important;
  width: 100% !important;
  margin: 4px 0 22px 0 !important;
  padding: 0 2px !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

.jsf-force-logo-v4 {
  width: 64px !important;
  height: 64px !important;
  min-width: 64px !important;
  object-fit: contain !important;
  border-radius: 14px !important;
  background: #ffffff !important;
}

.jsf-force-brand-text-v4 {
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  min-width: 0 !important;
}

.jsf-force-title-v4 {
  font-size: 30px !important;
  line-height: 1 !important;
  font-weight: 900 !important;
  letter-spacing: .16em !important;
  white-space: nowrap !important;
  color: #0f172a !important;
  -webkit-text-fill-color: #0f172a !important;
}

.jsf-force-subtitle-v4 {
  display: block !important;
  margin-top: 8px !important;
  font-size: 11px !important;
  line-height: 1.15 !important;
  font-weight: 800 !important;
  letter-spacing: .10em !important;
  text-transform: uppercase !important;
  white-space: nowrap !important;
  color: #64748b !important;
  -webkit-text-fill-color: #64748b !important;
}

/* Hide old split JOM/SILAT only inside drawer */
.jsf-drawer-final .jsf-hide-old-brand-v4,
.jsf-drawer-final .jsf-brand,
.jsf-drawer-final .jsf-v2-brand,
.jsf-drawer-final .jsf-drawer-brand-v3 {
  display: none !important;
}

/* Dark/theme control disabled inside drawer */
.jsf-drawer-final .theme-toggle,
.jsf-drawer-final .dark-toggle,
.jsf-drawer-final .mode-toggle,
.jsf-drawer-final #themeToggle,
.jsf-drawer-final #darkModeToggle,
.jsf-drawer-final [data-theme-toggle],
.jsf-drawer-final button[title*="Siang" i],
.jsf-drawer-final button[title*="Malam" i],
.jsf-drawer-final button[title*="dark" i],
.jsf-drawer-final button[title*="mode" i],
.jsf-drawer-final button[aria-label*="Siang" i],
.jsf-drawer-final button[aria-label*="Malam" i],
.jsf-drawer-final button[aria-label*="dark" i],
.jsf-drawer-final button[aria-label*="mode" i] {
  display: none !important;
  pointer-events: none !important;
}

/* Menu readable */
.jsf-drawer-final a,
.jsf-drawer-final button {
  border-color: #e5e7eb !important;
}

.jsf-drawer-final [class*="icon"] {
  background: #f1f5f9 !important;
  color: #0f172a !important;
  -webkit-text-fill-color: #0f172a !important;
}

.jsf-drawer-final .active,
.jsf-drawer-final [class*="active"] {
  background: #eef2ff !important;
  color: #3730a3 !important;
  -webkit-text-fill-color: #3730a3 !important;
}

/* prevent old wrong page injection from showing */
.page-shell .jsf-force-brand-v4,
.page-content .jsf-force-brand-v4,
main .jsf-force-brand-v4,
body > .jsf-force-brand-v4 {
  display: none !important;
}

/* DRAWER_BRAND_SIZE_SUBTITLE_V5 */
.jsf-drawer-final .jsf-force-brand-v4 {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  margin: 0 0 18px 0 !important;
  padding: 0 2px !important;
  max-width: 100% !important;
  overflow: visible !important;
}

.jsf-drawer-final .jsf-force-logo-v4 {
  width: 54px !important;
  height: 54px !important;
  min-width: 54px !important;
  max-width: 54px !important;
}

.jsf-drawer-final .jsf-force-brand-text-v4 {
  min-width: 0 !important;
  max-width: calc(100% - 70px) !important;
  overflow: visible !important;
}

.jsf-drawer-final .jsf-force-title-v4 {
  font-size: 24px !important;
  letter-spacing: .13em !important;
  line-height: 1 !important;
  white-space: nowrap !important;
  overflow: visible !important;
  text-overflow: clip !important;
}

.jsf-drawer-final .jsf-force-subtitle-v4 {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  margin-top: 7px !important;
  font-size: 9.5px !important;
  line-height: 1.15 !important;
  letter-spacing: .075em !important;
  white-space: nowrap !important;
  overflow: visible !important;
  text-overflow: clip !important;
  color: #64748b !important;
  -webkit-text-fill-color: #64748b !important;
}

/* phone narrow drawer */
@media (max-width: 430px) {
  .jsf-drawer-final .jsf-force-logo-v4 {
    width: 48px !important;
    height: 48px !important;
    min-width: 48px !important;
  }

  .jsf-drawer-final .jsf-force-title-v4 {
    font-size: 21px !important;
    letter-spacing: .11em !important;
  }

  .jsf-drawer-final .jsf-force-subtitle-v4 {
    font-size: 8.5px !important;
    letter-spacing: .055em !important;
  }
}

/* DRAWER_SUBTITLE_FORCE_V6 */
.jsf-drawer-final .jsf-force-brand-v4 {
  align-items: center !important;
  min-height: 78px !important;
  margin-bottom: 18px !important;
}

.jsf-drawer-final .jsf-force-title-v4 {
  display: block !important;
  font-size: 22px !important;
  letter-spacing: .12em !important;
  line-height: 1.05 !important;
  margin: 0 !important;
  padding: 0 !important;
}

.jsf-drawer-final .jsf-force-subtitle-v4,
.jsf-drawer-final .jsf-force-brand-text-v4::after {
  display: block !important;
  content: "SISTEM PENGURUSAN PSSCM" !important;
  margin-top: 8px !important;
  font-size: 9px !important;
  line-height: 1.15 !important;
  font-weight: 800 !important;
  letter-spacing: .07em !important;
  text-transform: uppercase !important;
  white-space: nowrap !important;
  color: #64748b !important;
  -webkit-text-fill-color: #64748b !important;
  opacity: 1 !important;
  visibility: visible !important;
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
}

@media (max-width: 430px) {
  .jsf-drawer-final .jsf-force-title-v4 {
    font-size: 20px !important;
    letter-spacing: .10em !important;
  }

  .jsf-drawer-final .jsf-force-subtitle-v4,
  .jsf-drawer-final .jsf-force-brand-text-v4::after {
    font-size: 8px !important;
    letter-spacing: .045em !important;
  }
}


/* MENU_LABEL_SPACING_SAFE_V4E */
.jsf-drawer-final .nav-collapse{
  margin: 14px 0 !important;
}

.jsf-drawer-final .nav-collapse summary{
  min-height: 46px !important;
  padding: 12px 14px !important;
  border-radius: 14px !important;
  line-height: 1.25 !important;
  white-space: normal !important;
}

.jsf-drawer-final .nav-collapse-body{
  margin-top: 10px !important;
  margin-bottom: 16px !important;
  margin-left: 18px !important;
  padding-left: 13px !important;
  border-left: 2px solid rgba(99,102,241,.18) !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
}

.jsf-drawer-final .nav-collapse-body .nav-item{
  margin: 0 !important;
  padding: 10px 12px !important;
  border-radius: 12px !important;
  line-height: 1.35 !important;
  white-space: normal !important;
}

.jsf-drawer-final > .nav-item{
  margin: 10px 0 16px 0 !important;
}

/* MENU_VISIBILITY_FIX_V4I
   Fix V4E: jangan paksa submenu terbuka bila <details> closed.
   Hanya details[open] sahaja paparkan nav-collapse-body.
*/
.jsf-drawer-final details.nav-collapse:not([open]) > .nav-collapse-body{
  display: none !important;
  height: 0 !important;
  max-height: 0 !important;
  overflow: hidden !important;
  margin: 0 !important;
  padding: 0 !important;
  border-left: 0 !important;
}

.jsf-drawer-final details.nav-collapse[open] > .nav-collapse-body{
  display: flex !important;
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
}

/* Pastikan drawer boleh scroll bila menu panjang */
.jsf-drawer-final{
  overflow-y: auto !important;
  max-height: 100vh !important;
  padding-bottom: 90px !important;
  box-sizing: border-box !important;
}

/* SIDEBAR_WIDTH_CSS_ONLY_V4N
   Besarkan sidebar supaya label menu tidak terpotong.
   CSS only - tidak ubah struktur app.py.
*/
:root{
  --jomsilat-sidebar-width-v4n: 292px;
}

body > .nav,
.nav,
.jsf-drawer-final{
  width: var(--jomsilat-sidebar-width-v4n) !important;
  min-width: var(--jomsilat-sidebar-width-v4n) !important;
  max-width: var(--jomsilat-sidebar-width-v4n) !important;
}

.page-shell{
  margin-left: var(--jomsilat-sidebar-width-v4n) !important;
}

.nav .jm15-label,
.nav .nav-item,
.nav summary,
.nav .nav-group-toggle,
.jsf-drawer-final .jm15-label,
.jsf-drawer-final .nav-item,
.jsf-drawer-final summary,
.jsf-drawer-final .nav-group-toggle{
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: unset !important;
  line-height: 1.25 !important;
}

.nav .jm15-label,
.jsf-drawer-final .jm15-label{
  max-width: 205px !important;
  display: inline-block !important;
}

.nav .jm15-icon,
.jsf-drawer-final .jm15-icon{
  flex: 0 0 auto !important;
}

.nav .nav-item,
.nav details.nav-collapse summary,
.jsf-drawer-final .nav-item,
.jsf-drawer-final details.nav-collapse summary{
  min-height: 46px !important;
  padding-top: 11px !important;
  padding-bottom: 11px !important;
}

@media (max-width: 900px){
  body > .nav,
  .nav,
  .jsf-drawer-final{
    width: 86vw !important;
    min-width: 280px !important;
    max-width: 360px !important;
  }

  .page-shell{
    margin-left: 0 !important;
  }
}

/* USER_CARD_POLISH_V1
   Kemas user/account card sahaja.
   Tidak ubah menu structure.
*/
.sidebar-user-fixed-v4,
.jsf-drawer-final .sidebar-user-fixed-v4{
  width: calc(100% - 24px) !important;
  max-width: calc(100% - 24px) !important;
  margin: 14px auto 16px auto !important;
  padding: 14px !important;
  border-radius: 18px !important;
  background: linear-gradient(180deg, rgba(255,255,255,.96), rgba(248,250,252,.96)) !important;
  border: 1px solid rgba(148,163,184,.28) !important;
  box-shadow: 0 12px 30px rgba(15,23,42,.08) !important;
  box-sizing: border-box !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 42px 42px !important;
  gap: 10px !important;
  align-items: center !important;
}

.sidebar-user-name-v4,
.jsf-drawer-final .sidebar-user-name-v4{
  min-width: 0 !important;
  height: 42px !important;
  padding: 0 12px !important;
  border-radius: 13px !important;
  background: #ffffff !important;
  border: 1px solid rgba(148,163,184,.22) !important;
  box-shadow: 0 5px 14px rgba(15,23,42,.05) !important;
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  color: #0f172a !important;
  overflow: hidden !important;
}

.sidebar-user-name-v4 .jm15-label,
.jsf-drawer-final .sidebar-user-name-v4 .jm15-label{
  max-width: 145px !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  display: block !important;
}

.sidebar-user-buttons-v4,
.jsf-drawer-final .sidebar-user-buttons-v4{
  grid-column: 1 / -1 !important;
  display: grid !important;
  grid-template-columns: 42px 42px 1fr !important;
  gap: 10px !important;
  align-items: center !important;
  margin: 0 !important;
  width: 100% !important;
}

.sidebar-user-buttons-v4 a,
.sidebar-user-buttons-v4 button,
.jsf-drawer-final .sidebar-user-buttons-v4 a,
.jsf-drawer-final .sidebar-user-buttons-v4 button,
.jsf-drawer-final .sidebar-user-fixed-v4 a,
.jsf-drawer-final .sidebar-user-fixed-v4 button{
  height: 42px !important;
  min-width: 42px !important;
  border-radius: 13px !important;
  border: 1px solid rgba(148,163,184,.24) !important;
  background: #ffffff !important;
  color: #334155 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  text-decoration: none !important;
  box-shadow: 0 5px 14px rgba(15,23,42,.05) !important;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease !important;
  overflow: hidden !important;
}

.sidebar-user-buttons-v4 a:hover,
.sidebar-user-buttons-v4 button:hover,
.jsf-drawer-final .sidebar-user-fixed-v4 a:hover,
.jsf-drawer-final .sidebar-user-fixed-v4 button:hover{
  transform: translateY(-1px) !important;
  box-shadow: 0 9px 20px rgba(15,23,42,.10) !important;
  border-color: rgba(99,102,241,.34) !important;
}

.sidebar-settings-v4,
.jsf-drawer-final .sidebar-settings-v4{
  background: #f8fafc !important;
  color: #1e293b !important;
}

.sidebar-logout-v4,
.jsf-drawer-final .sidebar-logout-v4{
  background: #fff7ed !important;
  border-color: rgba(251,146,60,.35) !important;
  color: #9a3412 !important;
}

/* BM / BI language buttons if present */
.sidebar-user-fixed-v4 a[href*="lang"],
.sidebar-user-fixed-v4 button[name*="lang"],
.sidebar-user-fixed-v4 button[value="BM"],
.sidebar-user-fixed-v4 button[value="BI"],
.sidebar-user-fixed-v4 a:has(.jm15-label),
.jsf-drawer-final .sidebar-user-fixed-v4 a[href*="lang"],
.jsf-drawer-final .sidebar-user-fixed-v4 button[name*="lang"],
.jsf-drawer-final .sidebar-user-fixed-v4 button[value="BM"],
.jsf-drawer-final .sidebar-user-fixed-v4 button[value="BI"]{
  background: #eef2ff !important;
  border-color: rgba(99,102,241,.28) !important;
  color: #4338ca !important;
}

.sidebar-user-fixed-v4 .jm19-action-icon-only,
.jsf-drawer-final .sidebar-user-fixed-v4 .jm19-action-icon-only{
  width: 42px !important;
  max-width: 42px !important;
}

.sidebar-user-fixed-v4 svg,
.jsf-drawer-final .sidebar-user-fixed-v4 svg{
  width: 18px !important;
  height: 18px !important;
}

/* pastikan card tidak kacau footer */
.sidebar-mazagroup-footer-v2{
  grid-column: 1 / -1 !important;
  margin-top: 6px !important;
  font-size: 10px !important;
  opacity: .72 !important;
  text-align: center !important;
}


/* USER_CARD_RELAYOUT_V4Q
   - atas tinggal nama sahaja
   - BM / BI pindah ke bawah
   - butang bulan/theme dibuang
   - sidebar dibesarkan sedikit supaya label kurang terpotong
*/
:root{
  --jomsilat-sidebar-width-v4q: 318px;
}

/* sidebar width */
body > .nav,
.nav,
.jsf-drawer-final{
  width: var(--jomsilat-sidebar-width-v4q) !important;
  min-width: var(--jomsilat-sidebar-width-v4q) !important;
  max-width: var(--jomsilat-sidebar-width-v4q) !important;
}

.page-shell{
  margin-left: var(--jomsilat-sidebar-width-v4q) !important;
}

/* main menu / submenu label room */
.nav .nav-item,
.nav details > summary,
.nav .jm15-label{
  box-sizing: border-box !important;
}

.nav .nav-item{
  padding-right: 14px !important;
}

.nav details > summary{
  padding-right: 14px !important;
}

.nav details > summary span,
.nav .nav-item{
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

.nav details > summary span:last-child{
  display: inline-block !important;
  max-width: calc(100% - 42px) !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

/* user card relayout */
.sidebar-user-fixed-v4,
.jsf-drawer-final .sidebar-user-fixed-v4{
  width: calc(100% - 18px) !important;
  max-width: calc(100% - 18px) !important;
  margin: 12px auto 16px auto !important;
  padding: 14px !important;
  box-sizing: border-box !important;
  border-radius: 18px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
  align-items: stretch !important;
}

.sidebar-user-fixed-v4 > *{
  min-width: 0 !important;
}

.sidebar-user-name-v4,
.jsf-drawer-final .sidebar-user-name-v4{
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  height: 44px !important;
  padding: 0 14px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 8px !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
  white-space: nowrap !important;
  text-overflow: ellipsis !important;
}

.sidebar-user-name-v4 .jm15-label,
.jsf-drawer-final .sidebar-user-name-v4 .jm15-label{
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

/* injected lower row */
.user-card-actions-v4q{
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 10px !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

.user-card-actions-v4q a,
.user-card-actions-v4q button{
  width: 100% !important;
  min-width: 0 !important;
  height: 42px !important;
  border-radius: 13px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

/* style BM/BI more compact */
.user-card-actions-v4q .lang-btn-v4q{
  background: #eef2ff !important;
  border: 1px solid rgba(99,102,241,.28) !important;
  color: #4338ca !important;
  font-weight: 800 !important;
}

/* style settings */
.user-card-actions-v4q .settings-btn-v4q{
  background: #ffffff !important;
  border: 1px solid rgba(148,163,184,.24) !important;
  color: #334155 !important;
}

/* style logout */
.user-card-actions-v4q .logout-btn-v4q{
  background: #fff7ed !important;
  border: 1px solid rgba(251,146,60,.35) !important;
  color: #9a3412 !important;
}

/* theme toggle remove */
.user-card-theme-hidden-v4q{
  display: none !important;
}

/* footer spacing */
.sidebar-mazagroup-footer-v2{
  margin-top: 4px !important;
}

/* USER_CARD_FORCE_RELAYOUT_V4R
   Paksa user card:
   - atas nama sahaja
   - BM / BI / settings / logout ke row bawah
   - theme/moon button hide
*/
.sidebar-user-fixed-v4,
.jsf-drawer-final .sidebar-user-fixed-v4{
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
  width: calc(100% - 18px) !important;
  max-width: calc(100% - 18px) !important;
  margin: 12px auto 16px auto !important;
  padding: 14px !important;
  box-sizing: border-box !important;
  border-radius: 18px !important;
}

.sidebar-user-fixed-v4 > .sidebar-user-name-v4{
  order: 1 !important;
  display: flex !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  height: 44px !important;
  align-items: center !important;
  justify-content: flex-start !important;
  padding: 0 14px !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
}

.sidebar-user-name-v4 .jm15-label,
.sidebar-user-name-v4 span{
  max-width: 100% !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

.user-card-actions-v4r{
  order: 2 !important;
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 10px !important;
  width: 100% !important;
}

.user-card-actions-v4r a,
.user-card-actions-v4r button,
.user-card-actions-v4r [role="button"]{
  width: 100% !important;
  min-width: 0 !important;
  height: 42px !important;
  border-radius: 13px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
  white-space: nowrap !important;
  text-overflow: ellipsis !important;
}

.user-card-actions-v4r .lang-btn-v4r{
  background: #eef2ff !important;
  border: 1px solid rgba(99,102,241,.30) !important;
  color: #4338ca !important;
  font-weight: 900 !important;
}

.user-card-actions-v4r .settings-btn-v4r{
  background: #ffffff !important;
  border: 1px solid rgba(148,163,184,.28) !important;
  color: #334155 !important;
}

.user-card-actions-v4r .logout-btn-v4r{
  background: #fff7ed !important;
  border: 1px solid rgba(251,146,60,.38) !important;
  color: #9a3412 !important;
}

.user-card-theme-hidden-v4r{
  display: none !important;
}

/* Sembunyi apa-apa direct child lama selain nama, row baru dan footer */
.sidebar-user-fixed-v4 > *:not(.sidebar-user-name-v4):not(.user-card-actions-v4r):not(.sidebar-mazagroup-footer-v2){
  display: none !important;
}

.sidebar-mazagroup-footer-v2{
  order: 3 !important;
  width: 100% !important;
  text-align: center !important;
  margin-top: 4px !important;
  font-size: 10px !important;
  opacity: .70 !important;
}
