/* v54.1 — dashboard desktop: peta besar kiri, panel informasi penuh kanan. */
#app .map-panel {
  left:42px!important; top:372px!important; width:632px!important;
  height:458px!important; min-height:0!important; display:flex!important;
  flex-direction:column!important;
}
#app .map-panel > .head {flex:0 0 50px!important;}
#app .map-panel > .map-caption {flex:0 0 auto!important;}
#app .map-panel .dashboard-map-wrap {
  flex:1 1 0!important; min-height:0!important; height:auto!important;
  position:relative!important; padding:0 14px 14px!important; display:flex!important;
}
#app .map-panel #dashboardMapMini {
  flex:1 1 auto!important; width:100%!important; height:100%!important;
  min-height:0!important; aspect-ratio:auto!important; position:relative!important;
}
#app .map-panel #dashboardMapMini .brin-static-map-shell {
  position:absolute!important; inset:0!important; width:100%!important; height:100%!important;
}
#app .map-panel #dashboardMapMini .brin-static-svg {width:100%!important;height:100%!important;}

/* Information box: Lost / Found / Informasi PJ Gedung. */
#app .lf-panel.strict-tab-panel {
  left:690px!important; top:585px!important; width:838px!important; height:245px!important;
  padding:0!important; border-radius:20px!important; overflow:hidden!important;
}
#app .lf-panel .strict-tabbar {height:44px!important;padding:6px 10px 0!important;gap:6px!important;}
#app .lf-panel .strict-tabbar button {height:38px!important;min-width:128px!important;padding:0 15px!important;font-size:13px!important;}
#app .lf-panel .strict-tab-stage {
  height:calc(100% - 44px)!important; padding:10px 42px 16px!important; overflow:hidden!important;
}
#app .lf-panel .strict-tab-content {height:100%!important;}
#app .lf-panel .strict-carousel {height:100%!important;overflow:visible!important;}
#app .lf-panel .strict-empty {height:88px!important;min-height:88px!important;font-size:12.5px!important;}

/* Exactly two Lost/Found items visible per slide, enlarged. */
#app .lf-panel .strict-slide-page.strict-list {
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  grid-template-rows:1fr!important;
  gap:16px!important; align-content:stretch!important;
}
#app .lf-panel .strict-row {
  grid-template-columns:118px minmax(0,1fr)!important;
  gap:16px!important; min-height:162px!important; height:162px!important;
  padding:12px 14px!important; border-radius:17px!important;
  background:rgba(255,255,255,.58)!important;
}
#app .lf-panel .strict-row .lf-thumb,
#app .lf-panel .strict-row .lf-thumb-placeholder {
  width:118px!important;height:138px!important;border-radius:15px!important;object-fit:cover!important;
}
#app .lf-panel .strict-row b {
  display:block!important;font-size:18px!important;line-height:1.15!important;
  white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;
}
#app .lf-panel .strict-row small {
  display:-webkit-box!important;margin-top:8px!important;font-size:13px!important;line-height:1.42!important;
  white-space:normal!important;-webkit-line-clamp:2!important;-webkit-box-orient:vertical!important;overflow:hidden!important;
}

/* Visible manual next/previous controls plus automatic slideshow dots. */
#app .lf-panel .strict-slide-arrows {
  position:absolute!important;inset:0!important;display:block!important;
  pointer-events:none!important;z-index:8!important;
}
#app .lf-panel .strict-slide-arrows button {
  position:absolute!important;top:50%!important;transform:translateY(-50%)!important;
  width:30px!important;height:30px!important;pointer-events:auto!important;
  background:rgba(255,255,255,.92)!important;box-shadow:0 7px 18px rgba(18,50,46,.14)!important;
}
#app .lf-panel .strict-slide-arrows button[data-slide-prev] {left:-34px!important;}
#app .lf-panel .strict-slide-arrows button[data-slide-next] {right:-34px!important;}
#app .lf-panel .strict-slide-dots {
  top:auto!important;right:auto!important;left:50%!important;bottom:-10px!important;
  transform:translateX(-50%)!important;gap:5px!important;
}

/* PJ remains the third tab; 3 cards per PJ slide. */
#app .lf-panel .strict-pj-slide {grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:10px!important;align-items:stretch!important;}
#app .lf-panel .strict-pj-card {height:162px!important;min-height:0!important;padding:8px!important;overflow:hidden!important;}
#app .lf-panel .strict-pj-card img {max-height:146px!important;max-width:100%!important;object-fit:contain!important;}


.monitor-link-notice {
  max-width:420px;width:calc(100% - 32px);padding:24px;border:1px solid rgba(255,255,255,.75);
  border-radius:23px;background:rgba(245,251,248,.94);color:var(--ink,#12322e);
  box-shadow:0 22px 60px rgba(20,51,45,.2);backdrop-filter:blur(18px);font:inherit;
}
.monitor-link-notice::backdrop {background:rgba(18,50,46,.22);backdrop-filter:blur(3px);}
.monitor-link-notice h2 {margin:0 0 12px;font-family:Georgia,serif;font-size:23px;}
.monitor-link-notice p {margin:0 0 20px;line-height:1.6;font-size:14px;color:var(--muted,#536a65);}
.monitor-link-notice button {min-height:42px;border:0;border-radius:12px;background:var(--green,#3d8b72);color:white;padding:0 20px;font:inherit;font-weight:700;cursor:pointer;}

/* Mobile keeps the existing dedicated mobile layout. */
body.dashboard-mobile-v41 .main-grid {grid-template-columns:minmax(0,1fr)!important;}
body.dashboard-mobile-v41 #monitoring {margin:10px 0!important;}
body.dashboard-mobile-v41 #monitoring .monitor-grid {grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:7px!important;}
body.dashboard-mobile-v41 #monitoring .monitor-card {min-height:64px!important;padding:7px 4px!important;}
body.dashboard-mobile-v41 #monitoring .monitor-card b {font-size:11px!important;line-height:1.2!important;}
body.dashboard-mobile-v41 #monitoring .monitor-card .leaf {background:linear-gradient(135deg,#86b56b,#507e46)!important;}

