html,body,.viewer-body{height:100%;overflow:hidden}.viewer-body{background:#02040a}.viewer-vignette{position:fixed;inset:0;z-index:2;pointer-events:none;background:radial-gradient(circle at 50% 45%,transparent 0 34%,rgba(2,4,10,.10) 52%,rgba(2,4,10,.64) 100%),linear-gradient(180deg,rgba(2,4,10,.42),transparent 26%,rgba(2,4,10,.48))}#panorama{position:fixed;inset:0;background:#02040a;z-index:1}.viewer-topbar{position:fixed;z-index:30;top:16px;left:16px;right:16px;border-radius:30px;padding:13px 14px;display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.topbar-left{display:flex;align-items:flex-start;gap:14px;min-width:0}.round-link{white-space:nowrap;padding:11px 14px;border-radius:999px;background:rgba(255,255,255,.075);border:1px solid rgba(255,255,255,.12);font-weight:900}.scene-meta{min-width:0}.scene-meta h1{margin:5px 0 4px;font-size:clamp(1.05rem,2vw,1.6rem);line-height:1.1;letter-spacing:-.045em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:58vw}.scene-meta p{margin:0;color:var(--muted);line-height:1.45;max-width:76ch}.topbar-actions{display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end}.street-status{position:fixed;z-index:24;top:108px;left:22px;border-radius:999px;padding:9px 13px;display:flex;align-items:center;gap:10px}.status-dot{width:10px;height:10px;border-radius:999px;background:var(--green);box-shadow:0 0 0 7px rgba(52,211,153,.16)}.street-status strong{font-size:.9rem}.street-status small{color:var(--muted);font-weight:800;display:flex;gap:5px;align-items:center}.street-status kbd{font-size:.7rem;min-width:22px;height:22px;border-radius:7px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);display:inline-grid;place-items:center}.zoom-control{position:fixed;z-index:25;right:22px;top:112px;border-radius:24px;padding:8px;display:grid;gap:8px}.zoom-control button{width:44px;height:44px;border-radius:17px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.075);color:#fff;font-size:1.25rem;font-weight:950}.zoom-control button:hover{background:rgba(255,255,255,.13)}.minimap-card{position:fixed;z-index:26;left:18px;bottom:112px;width:320px;height:258px;border-radius:30px;padding:12px;overflow:hidden}.minimap-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:4px 4px 10px}.minimap-head span{display:block;color:var(--muted);font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.11em}.minimap-head strong{display:block;margin-top:3px;font-size:.9rem}#miniMap{height:calc(100% - 53px);border-radius:22px;overflow:hidden;background:#101620}.minimap-card.expanded{width:min(720px,calc(100vw - 36px));height:min(590px,calc(100vh - 158px))}.info-drawer{position:fixed;z-index:28;right:18px;top:92px;bottom:112px;width:min(408px,calc(100vw - 36px));border-radius:32px;padding:18px;transform:translateX(calc(100% + 28px));transition:transform .25s ease}.info-drawer.open{transform:translateX(0)}.drawer-head{display:flex;justify-content:space-between;gap:16px}.drawer-head h2{margin:8px 0 0;letter-spacing:-.045em}.drawer-body{display:grid;gap:14px;margin-top:16px}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.stat-card{border-radius:22px;padding:15px}.stat-card span,.detail-list dt{color:var(--muted);font-size:.79rem;font-weight:800}.stat-card strong{font-size:1.5rem;letter-spacing:-.05em}.detail-list,.drawer-copy{border-radius:24px;padding:16px;margin:0}.detail-list{display:grid;gap:12px}.detail-list div{display:flex;justify-content:space-between;gap:14px}.detail-list dd{margin:0;font-weight:900;text-align:right}.drawer-copy p{color:var(--muted);line-height:1.6;margin:.5rem 0 0}.viewer-bottom{position:fixed;z-index:27;left:50%;bottom:16px;transform:translateX(-50%);width:min(1080px,calc(100vw - 32px));border-radius:32px;padding:10px;display:flex;align-items:center;gap:10px}.scene-rail{display:flex;gap:10px;overflow:auto;scrollbar-width:none;flex:1;padding:2px}.scene-rail::-webkit-scrollbar{display:none}.scene-chip{position:relative;flex:0 0 180px;height:70px;border:1px solid rgba(255,255,255,.12);border-radius:24px;background:#101827;color:#fff;padding:0;overflow:hidden;text-align:left}.scene-chip .thumb{position:absolute;inset:0;background-size:cover;background-position:center;filter:saturate(1.05);opacity:.58}.scene-chip .thumb:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.72),rgba(0,0,0,.15))}.scene-chip .label{position:absolute;left:12px;right:12px;bottom:11px;z-index:1;font-weight:950;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.scene-chip .index{position:absolute;z-index:1;left:12px;top:10px;color:rgba(255,255,255,.72);font-size:.76rem;font-weight:900}.scene-chip.active{border-color:rgba(104,199,255,.78);box-shadow:0 0 0 3px rgba(10,132,255,.20),0 16px 35px rgba(10,132,255,.18)}.nav-btn{width:50px;height:50px;padding:0;border-radius:20px;font-size:1.25rem}.empty-state{position:fixed;z-index:40;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:34px;padding:30px;text-align:center;width:min(570px,calc(100vw - 32px))}.empty-state h2{font-size:clamp(1.8rem,4vw,2.8rem);line-height:1.05;letter-spacing:-.06em;margin:12px 0}.empty-state p{color:var(--muted);line-height:1.7}.pnlm-container{background:#02040a!important}.pnlm-hotspot-base{filter:drop-shadow(0 14px 24px rgba(0,0,0,.50))}.street-hotspot{background:rgba(10,132,255,.96)!important;border:2px solid #fff!important;border-radius:50%!important;width:42px!important;height:42px!important}.street-hotspot:after{content:"➜";position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-weight:950}.leaflet-container{background:#0d1522}@media(max-width:840px){.viewer-topbar{flex-direction:column;padding:12px}.topbar-left{flex-direction:column;gap:10px}.scene-meta h1{max-width:calc(100vw - 64px)}.scene-meta p{display:none}.street-status{display:none}.zoom-control{right:12px;top:184px}.minimap-card{width:245px;height:196px;bottom:100px}.viewer-bottom{gap:6px;border-radius:26px}.scene-chip{flex-basis:132px;height:62px}.nav-btn{width:42px;height:42px}.info-drawer{top:144px;bottom:100px}}@media(max-width:560px){.topbar-actions .icon-btn{padding:9px 11px}.minimap-card{left:12px;width:215px}.zoom-control{top:174px}.scene-chip{flex-basis:118px}.scene-chip .label{font-size:.83rem}}


/* v4 viewer */
.viewer-topbar::after{content:'VIEWER PAGE';position:absolute;right:18px;bottom:-32px;padding:8px 12px;border-radius:999px;background:rgba(255,255,255,.72);font-size:11px;font-weight:1000;letter-spacing:.14em;color:#111827;backdrop-filter:blur(16px)}

/* v14 viewer: neutral field-inspection interface, no neon */
.viewer-body{background:#070b0a}.viewer-vignette{background:radial-gradient(circle at 50% 46%,transparent 0 42%,rgba(7,11,10,.18) 66%,rgba(7,11,10,.68) 100%),linear-gradient(180deg,rgba(7,11,10,.36),transparent 32%,rgba(7,11,10,.44))}#panorama{background:#070b0a}.viewer-topbar{border-radius:22px;padding:12px;background:rgba(18,28,25,.84);box-shadow:0 12px 30px rgba(0,0,0,.20)}.round-link{background:rgba(246,243,234,.08);border-color:rgba(230,224,211,.14);font-weight:730}.scene-meta h1{letter-spacing:-.03em;font-weight:800}.scene-meta p{color:rgba(246,243,234,.68)}.street-status,.zoom-control,.minimap-card,.info-drawer,.viewer-bottom,.empty-state{border-radius:22px;background:rgba(18,28,25,.86);border-color:rgba(230,224,211,.14);box-shadow:0 12px 30px rgba(0,0,0,.20)}.zoom-control button{border-radius:13px;background:rgba(246,243,234,.08);border-color:rgba(230,224,211,.14)}#miniMap{border-radius:16px;background:#e8ebe4}.scene-chip{border-radius:16px;background:#121c19;border-color:rgba(230,224,211,.14)}.scene-chip.active{border-color:rgba(143,184,198,.66);box-shadow:0 0 0 2px rgba(143,184,198,.16)}.nav-btn{border-radius:15px}.street-hotspot{background:#2d7468!important}.viewer-topbar::after{background:rgba(18,28,25,.72);color:#f6f3ea;border:1px solid rgba(230,224,211,.14)}.stat-card,.detail-list,.drawer-copy{border-radius:16px;background:rgba(246,243,234,.055)}.empty-state .btn-primary{background:#2d7468}.app-watermark{font-size:11px}

/* v15 viewer — keep Street View focus, refine controls */
.viewer-body{background:#090d0c;color:#f8f5ec}.viewer-topbar,.street-status,.zoom-control,.minimap-card,.info-drawer,.viewer-bottom,.empty-state{background:rgba(17,31,27,.88);border:1px solid rgba(255,255,255,.10);box-shadow:0 12px 32px rgba(0,0,0,.20);border-radius:20px}.viewer-topbar{padding:11px 12px}.round-link,.icon-btn,.nav-btn{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.12);color:#f8f5ec}.scene-meta h1{font-weight:800;letter-spacing:-.025em}.scene-meta p{color:rgba(248,245,236,.66)}.zoom-control button{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.11);border-radius:12px}.minimap-head span{color:rgba(248,245,236,.52)}#miniMap{border-radius:14px;background:#e8ede6}.scene-chip{border-radius:14px;border-color:rgba(255,255,255,.12)}.scene-chip.active{border-color:#e6d7ae;box-shadow:0 0 0 2px rgba(230,215,174,.20)}.street-hotspot{background:#1f6b58!important}.viewer-topbar::after{background:rgba(17,31,27,.82);color:#f8f5ec;border-color:rgba(255,255,255,.10)}.empty-state .btn-primary{background:#1f6b58;border-color:#1f6b58}.app-watermark{background:rgba(17,31,27,.82);color:#f8f5ec;border-color:rgba(255,255,255,.10)}


/* v16 — Viewer dibuat lebih bersih dan Apple-like tanpa mengubah fitur */
.viewer-body,.viewer-v6-body{background:#000!important;color:#f5f5f7!important}.viewer-shell,.viewer-page,.viewer-stage{background:#000!important}.viewer-topbar,.topbar,.viewer-header{background:rgba(25,25,27,.72)!important;border:1px solid rgba(255,255,255,.10)!important;border-radius:24px!important;box-shadow:none!important;backdrop-filter:saturate(180%) blur(20px)!important;-webkit-backdrop-filter:saturate(180%) blur(20px)!important}.viewer-title h1,.viewer-topbar h1{font-weight:720!important;letter-spacing:-.045em!important}.viewer-title p,.viewer-topbar p{color:rgba(245,245,247,.68)!important}.viewer-controls .btn,.viewer-actions .btn,.control-btn,.nav-btn,.icon-btn{background:rgba(255,255,255,.12)!important;color:#f5f5f7!important;border-color:rgba(255,255,255,.12)!important;border-radius:999px!important}.viewer-controls .btn-primary,.viewer-actions .btn-primary,.icon-btn.solid,.nav-btn.active{background:#0071e3!important;border-color:#0071e3!important}.mini-map,.viewer-minimap,.data-drawer,.scene-rail,.rail,.bottom-rail{background:rgba(25,25,27,.72)!important;border:1px solid rgba(255,255,255,.10)!important;border-radius:24px!important;box-shadow:none!important;backdrop-filter:saturate(180%) blur(20px)!important}.app-watermark{display:none!important}

/* v20 — viewer inspection metadata */
.status-badge{display:inline-flex;align-items:center;width:max-content;gap:6px;padding:5px 10px;border-radius:999px;font-size:.78rem;line-height:1;font-weight:900;border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.12);color:#fff;vertical-align:middle}
.status-badge::before{content:"";width:8px;height:8px;border-radius:999px;background:currentColor}.status-normal{color:#35d07f}.status-pantau{color:#ffd166}.status-rusak_ringan{color:#ffaf45}.status-rusak_sedang{color:#ff7a45}.status-rusak_berat{color:#ff4d4f}.status-prioritas{color:#ffb3b3}.detail-list dd .status-badge{margin-top:0}

/* v21 — Viewer dibuat lebih bersih sebagai hasil akhir inspeksi, bukan halaman edit. */
.viewer-body,.viewer-v6-body{background:#000!important;color:#f5f5f7!important}.viewer-vignette{background:linear-gradient(180deg,rgba(0,0,0,.38),transparent 28%,rgba(0,0,0,.36))!important}.viewer-topbar{left:16px!important;right:16px!important;top:14px!important;border-radius:22px!important;padding:10px 12px!important;background:rgba(20,20,22,.72)!important;border:1px solid rgba(255,255,255,.10)!important;box-shadow:none!important;backdrop-filter:blur(22px) saturate(180%)!important}.round-link,.icon-btn,.nav-btn,.zoom-control button{border-radius:999px!important;background:rgba(255,255,255,.12)!important;border:1px solid rgba(255,255,255,.12)!important;color:#fff!important;box-shadow:none!important}.icon-btn.solid,.btn-primary{background:#0071e3!important;border-color:#0071e3!important}.scene-meta h1{font-size:1.12rem!important;font-weight:720!important;letter-spacing:-.03em!important}.scene-meta p{font-size:.82rem!important;color:rgba(245,245,247,.66)!important}.street-status{display:none!important}.zoom-control{right:18px!important;top:96px!important;background:rgba(20,20,22,.72)!important;border:1px solid rgba(255,255,255,.10)!important;border-radius:22px!important;box-shadow:none!important}.minimap-card{left:18px!important;bottom:96px!important;width:286px!important;height:220px!important;border-radius:24px!important;background:rgba(20,20,22,.72)!important;border:1px solid rgba(255,255,255,.10)!important;box-shadow:none!important;backdrop-filter:blur(22px) saturate(180%)!important}.minimap-head span{color:rgba(245,245,247,.52)!important}.info-drawer{right:18px!important;top:86px!important;bottom:96px!important;border-radius:24px!important;background:rgba(20,20,22,.82)!important;border:1px solid rgba(255,255,255,.10)!important;box-shadow:none!important;backdrop-filter:blur(22px) saturate(180%)!important}.viewer-bottom{bottom:14px!important;border-radius:24px!important;background:rgba(20,20,22,.72)!important;border:1px solid rgba(255,255,255,.10)!important;box-shadow:none!important;backdrop-filter:blur(22px) saturate(180%)!important}.scene-chip{border-radius:16px!important;background:#171719!important;border:1px solid rgba(255,255,255,.12)!important}.scene-chip.active{border-color:#0071e3!important;box-shadow:0 0 0 2px rgba(0,113,227,.25)!important}.empty-state{border-radius:28px!important;background:rgba(20,20,22,.84)!important;border:1px solid rgba(255,255,255,.10)!important;box-shadow:none!important}.viewer-topbar::after{display:none!important}.app-watermark{display:none!important}@media(max-width:720px){.viewer-topbar{left:10px!important;right:10px!important;top:10px!important}.minimap-card{width:230px!important;height:180px!important;left:10px!important}.info-drawer{right:10px!important;width:calc(100vw - 20px)!important}.viewer-bottom{width:calc(100vw - 20px)!important}}

/* v22 — Fix area yang dilingkari: topbar tidak memanjang, minimap lebih kecil, viewer lebih bersih. */
.viewer-topbar{
  top:18px!important;
  left:18px!important;
  right:auto!important;
  width:min(560px,calc(100vw - 36px))!important;
  min-height:unset!important;
  padding:8px 10px!important;
  border-radius:18px!important;
  align-items:center!important;
  gap:10px!important;
  background:rgba(19,19,20,.52)!important;
  border:1px solid rgba(255,255,255,.11)!important;
  backdrop-filter:blur(18px) saturate(170%)!important;
  -webkit-backdrop-filter:blur(18px) saturate(170%)!important;
}
.viewer-topbar .topbar-left{
  align-items:center!important;
  gap:10px!important;
  width:100%!important;
}
.viewer-topbar .round-link{
  padding:8px 11px!important;
  font-size:.82rem!important;
  line-height:1!important;
  background:rgba(255,255,255,.13)!important;
}
.viewer-topbar .scene-meta{
  min-width:0!important;
  flex:1!important;
}
.viewer-topbar .scene-meta .eyebrow{
  display:none!important;
}
.viewer-topbar .scene-meta h1{
  margin:0!important;
  font-size:.98rem!important;
  line-height:1.1!important;
  max-width:100%!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.viewer-topbar .scene-meta p{
  margin:3px 0 0!important;
  font-size:.72rem!important;
  line-height:1.25!important;
  max-width:100%!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  color:rgba(245,245,247,.62)!important;
}
.viewer-topbar .topbar-actions{
  position:fixed!important;
  top:18px!important;
  right:18px!important;
  z-index:36!important;
  display:flex!important;
  gap:8px!important;
  padding:0!important;
  background:transparent!important;
}
.viewer-topbar .topbar-actions .icon-btn{
  padding:9px 13px!important;
  min-height:36px!important;
  font-size:.84rem!important;
  font-weight:760!important;
  background:rgba(19,19,20,.52)!important;
  border:1px solid rgba(255,255,255,.12)!important;
  backdrop-filter:blur(18px) saturate(170%)!important;
  -webkit-backdrop-filter:blur(18px) saturate(170%)!important;
}
.viewer-topbar .topbar-actions .icon-btn.solid{
  background:#0071e3!important;
  border-color:#0071e3!important;
}
.zoom-control{
  top:76px!important;
  right:18px!important;
  padding:6px!important;
  gap:6px!important;
  border-radius:18px!important;
  background:rgba(19,19,20,.46)!important;
}
.zoom-control button{
  width:34px!important;
  height:34px!important;
  font-size:1rem!important;
}
.minimap-card{
  left:18px!important;
  bottom:84px!important;
  width:232px!important;
  height:166px!important;
  padding:9px!important;
  border-radius:18px!important;
  background:rgba(19,19,20,.58)!important;
  border:1px solid rgba(255,255,255,.11)!important;
  backdrop-filter:blur(18px) saturate(170%)!important;
  -webkit-backdrop-filter:blur(18px) saturate(170%)!important;
}
.minimap-card.expanded{
  width:min(560px,calc(100vw - 36px))!important;
  height:min(420px,calc(100vh - 150px))!important;
}
.minimap-head{
  padding:0 0 8px!important;
  align-items:center!important;
}
.minimap-head span{
  font-size:.62rem!important;
  letter-spacing:.12em!important;
}
.minimap-head strong{
  font-size:.76rem!important;
  font-weight:760!important;
  max-width:130px!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.minimap-head .chip-btn{
  padding:7px 10px!important;
  font-size:.76rem!important;
}
#miniMap{
  height:calc(100% - 42px)!important;
  border-radius:13px!important;
  background:#d7eef3!important;
}
.viewer-bottom{
  bottom:14px!important;
  width:min(860px,calc(100vw - 36px))!important;
  padding:7px!important;
  border-radius:20px!important;
  background:rgba(19,19,20,.62)!important;
}
.scene-chip{
  flex-basis:148px!important;
  height:58px!important;
  border-radius:13px!important;
}
.scene-chip .label{
  left:10px!important;
  right:10px!important;
  bottom:8px!important;
  font-size:.78rem!important;
}
.scene-chip .index{
  left:10px!important;
  top:8px!important;
  font-size:.66rem!important;
}
.nav-btn{
  width:40px!important;
  height:40px!important;
  font-size:1rem!important;
}
.info-drawer{
  top:72px!important;
  bottom:84px!important;
  width:min(380px,calc(100vw - 36px))!important;
}
.viewer-vignette{
  background:linear-gradient(180deg,rgba(0,0,0,.22),transparent 22%,rgba(0,0,0,.22))!important;
}
@media(max-width:900px){
  .viewer-topbar{width:min(470px,calc(100vw - 168px))!important}
  .viewer-topbar .scene-meta p{display:none!important}
}
@media(max-width:640px){
  .viewer-topbar{left:10px!important;right:10px!important;width:auto!important;top:10px!important}
  .viewer-topbar .topbar-actions{top:64px!important;right:10px!important}
  .viewer-topbar .topbar-actions .icon-btn{padding:8px 10px!important;font-size:.78rem!important}
  .zoom-control{top:112px!important;right:10px!important}
  .minimap-card{left:10px!important;bottom:76px!important;width:206px!important;height:146px!important}
  .viewer-bottom{bottom:10px!important;width:calc(100vw - 20px)!important}
  .scene-chip{flex-basis:118px!important;height:54px!important}
}

/* v23 — minimap wajib tampil: base map, node panorama, dan garis antar titik dibuat jelas. */
#miniMap{
  position:relative!important;
  background:#eef3f4!important;
  isolation:isolate!important;
}
#miniMap.tile-warning::after{
  content:'Peta online lambat/gagal. Node tetap ditampilkan.';
  position:absolute;
  left:8px;
  right:8px;
  bottom:8px;
  z-index:900;
  padding:6px 8px;
  border-radius:10px;
  background:rgba(0,0,0,.64);
  color:#fff;
  font-size:.64rem;
  font-weight:800;
  text-align:center;
  pointer-events:none;
}
#miniMap .leaflet-tile-pane{
  opacity:.98!important;
}
#miniMap .leaflet-overlay-pane,
#miniMap .leaflet-marker-pane,
#miniMap .leaflet-shadow-pane{
  z-index:650!important;
}
.inspekta-mini-scene-icon{
  position:relative;
  width:24px!important;
  height:24px!important;
  transform:translate(-12px,-12px);
  pointer-events:auto;
}
.inspekta-mini-scene-icon .dot{
  position:absolute;
  inset:4px;
  border-radius:999px;
  background:#0b75ff;
  border:3px solid #fff;
  box-shadow:0 3px 12px rgba(0,0,0,.35),0 0 0 2px rgba(11,117,255,.26);
}
.inspekta-mini-scene-icon.status-normal .dot{background:#1f8f5f}
.inspekta-mini-scene-icon.status-pantau .dot{background:#b7791f}
.inspekta-mini-scene-icon.status-rusak_ringan .dot{background:#d97706}
.inspekta-mini-scene-icon.status-rusak_sedang .dot{background:#c2410c}
.inspekta-mini-scene-icon.status-rusak_berat .dot{background:#b91c1c}
.inspekta-mini-scene-icon.status-prioritas .dot{background:#7f1d1d}
.inspekta-mini-scene-icon .pulse{
  position:absolute;
  inset:0;
  border-radius:999px;
  border:2px solid rgba(255,255,255,.82);
  opacity:.72;
}
.inspekta-mini-scene-icon.active{
  width:30px!important;
  height:30px!important;
  transform:translate(-15px,-15px);
  z-index:9999!important;
}
.inspekta-mini-scene-icon.active .dot{
  inset:3px;
  background:#0071e3!important;
  border:4px solid #fff;
  box-shadow:0 5px 18px rgba(0,0,0,.42),0 0 0 5px rgba(0,113,227,.34);
}
.inspekta-mini-scene-icon.active .pulse{
  inset:-4px;
  border-color:rgba(0,113,227,.88);
  box-shadow:0 0 0 5px rgba(0,113,227,.16);
}
.inspekta-mini-scene-icon .mini-label{
  position:absolute;
  left:50%;
  top:28px;
  transform:translateX(-50%);
  min-width:max-content;
  max-width:120px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  padding:3px 7px;
  border-radius:999px;
  background:rgba(0,0,0,.68);
  color:#fff;
  font-size:10px;
  line-height:1.1;
  font-weight:800;
  opacity:0;
  transition:opacity .15s ease;
  pointer-events:none;
}
.minimap-card.expanded .inspekta-mini-scene-icon .mini-label,
.inspekta-mini-scene-icon.active .mini-label{
  opacity:1;
}
.inspekta-mini-geo-icon{
  width:14px!important;
  height:14px!important;
  transform:translate(-7px,-7px);
}
.inspekta-mini-geo-icon span{
  display:block;
  width:10px;
  height:10px;
  margin:2px;
  border-radius:999px;
  background:#0071e3;
  border:2px solid #fff;
  box-shadow:0 2px 8px rgba(0,0,0,.28);
}
.minimap-card .leaflet-popup-content-wrapper{
  border-radius:14px!important;
  background:rgba(20,20,22,.92)!important;
  color:#fff!important;
  box-shadow:0 12px 32px rgba(0,0,0,.32)!important;
}
.minimap-card .leaflet-popup-tip{background:rgba(20,20,22,.92)!important}
.minimap-card.hidden{display:none!important}

/* v24 — Hard fix minimap: fallback lokal selalu menampilkan node meskipun tile Leaflet/OSM gagal. */
#miniMap{
  overflow:hidden!important;
  position:relative!important;
  background:
    linear-gradient(90deg,rgba(255,255,255,.28) 1px,transparent 1px),
    linear-gradient(0deg,rgba(255,255,255,.28) 1px,transparent 1px),
    linear-gradient(135deg,#cfe8ef,#eaf2ef)!important;
  background-size:64px 64px,64px 64px,100% 100%!important;
}
#miniMap .leaflet-container,
#miniMap .leaflet-map-pane{z-index:2!important}
#miniMap .leaflet-tile-pane{z-index:2!important;opacity:.96!important}
#miniMap .leaflet-overlay-pane{z-index:4!important}
#miniMap .leaflet-marker-pane{z-index:8!important}
#miniMap .leaflet-popup-pane{z-index:20!important}
.mini-fallback-overlay{
  position:absolute;
  inset:0;
  z-index:12;
  pointer-events:none;
  border-radius:inherit;
  overflow:hidden;
}
.mini-fallback-svg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  filter:drop-shadow(0 2px 5px rgba(0,0,0,.16));
}
.mini-fallback-bg{fill:rgba(224,239,241,.50)}
.mini-grid{stroke:rgba(255,255,255,.68);stroke-width:1}
.mini-fallback-canal{fill:none;stroke:#b7791f;stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round;opacity:.92}
.mini-fallback-scene{filter:drop-shadow(0 4px 10px rgba(0,0,0,.32))}
.mini-fallback-building{filter:drop-shadow(0 2px 7px rgba(0,0,0,.24))}
.mini-fallback-label{
  position:absolute;
  left:8px;
  bottom:8px;
  max-width:calc(100% - 16px);
  padding:5px 8px;
  border-radius:999px;
  background:rgba(16,24,22,.76);
  color:#fff;
  font-size:10px;
  font-weight:850;
  letter-spacing:.01em;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  box-shadow:0 5px 14px rgba(0,0,0,.22);
}
.mini-fallback-clicks{position:absolute;inset:0;pointer-events:none}
.mini-fallback-hit{
  position:absolute;
  width:28px;
  height:28px;
  transform:translate(-50%,-50%);
  border:0;
  border-radius:999px;
  background:transparent;
  pointer-events:auto;
  cursor:pointer;
}
.mini-fallback-hit.active{width:38px;height:38px}
#miniMap.tile-warning .mini-fallback-overlay{z-index:30}
#miniMap.tile-warning .mini-fallback-bg{fill:rgba(220,239,241,.88)}
.minimap-card.expanded .mini-fallback-label{font-size:11px;padding:6px 10px}


/* v25 — minimap diperbaiki agar peta dasar tampil saat tile berhasil dimuat, dan fallback lokal hanya muncul saat offline/gagal. */
#miniMap{background:#dfe8e4!important;position:relative!important}
#miniMap.tile-ready .mini-fallback-overlay{opacity:0;visibility:hidden}
#miniMap.tile-warning .mini-fallback-overlay,
#miniMap:not(.tile-ready) .mini-fallback-overlay.visible{opacity:1;visibility:visible}
.mini-fallback-overlay{opacity:0;visibility:hidden;transition:opacity .18s ease, visibility .18s ease;z-index:14}
.mini-fallback-svg{filter:none}
.mini-fallback-bg{fill:rgba(227,238,239,.92)}
.mini-fallback-route-shadow{fill:none;stroke:rgba(255,255,255,.92);stroke-width:5;stroke-linecap:round;stroke-linejoin:round}
.mini-fallback-route{fill:none;stroke:#2d7468;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.mini-fallback-active-ring{fill:none;stroke:rgba(10,132,255,.28);stroke-width:4}
.mini-fallback-scene-label{font-size:11px;font-weight:800;fill:#23312d;paint-order:stroke;stroke:rgba(255,255,255,.94);stroke-width:3px;stroke-linejoin:round}
.mini-fallback-hit{width:30px;height:30px}
.mini-fallback-hit.active{width:42px;height:42px}
#miniMap .leaflet-control-attribution{display:block!important;font-size:8px!important;line-height:1.2!important;padding:0 4px!important;background:rgba(20,20,22,.55)!important;color:rgba(245,245,247,.7)!important;border-radius:6px 0 0 0!important}
#miniMap .leaflet-control-attribution a{color:rgba(245,245,247,.85)!important}
#miniMap .leaflet-tile-pane{opacity:1!important;filter:saturate(.95) contrast(1.02)}
#miniMap .leaflet-popup-content-wrapper{background:rgba(20,20,22,.94)!important;color:#fff!important}
#miniMap .leaflet-popup-tip{background:rgba(20,20,22,.94)!important}

/* v26 — Leaflet minimap asli: tile map dipaksa tampil dan fallback tidak menutup map kecuali tile gagal total. */
#miniMap{
  min-height:140px!important;
  background:#dbe5df!important;
  isolation:isolate!important;
}
#miniMap.leaflet-container{
  font-family:inherit!important;
}
#miniMap .leaflet-map-pane{z-index:2!important}
#miniMap .leaflet-tile-pane{
  z-index:2!important;
  opacity:1!important;
  visibility:visible!important;
  filter:none!important;
}
#miniMap .leaflet-tile{
  opacity:1!important;
  visibility:visible!important;
}
#miniMap .leaflet-overlay-pane{z-index:410!important}
#miniMap .leaflet-marker-pane{z-index:520!important}
#miniMap .leaflet-tooltip-pane{z-index:540!important}
#miniMap .leaflet-popup-pane{z-index:560!important}
#miniMap .mini-fallback-overlay{
  z-index:900!important;
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
}
#miniMap.tile-warning .mini-fallback-overlay.visible,
#miniMap.tile-warning .mini-fallback-overlay{
  opacity:1!important;
  visibility:visible!important;
}
#miniMap.tile-ready .mini-fallback-overlay{
  opacity:0!important;
  visibility:hidden!important;
}
#miniMap.leaflet-loading::before{
  content:"Memuat peta Leaflet…";
  position:absolute;
  left:10px;
  top:10px;
  z-index:850;
  padding:5px 8px;
  border-radius:999px;
  background:rgba(20,20,22,.72);
  color:white;
  font-size:10px;
  font-weight:800;
}
#miniMap.tile-ready::before{display:none!important}
.inspekta-mini-scene-icon{
  background:transparent!important;
  border:0!important;
}
.inspekta-mini-scene-icon .dot{
  display:block;
  width:16px;
  height:16px;
  border-radius:999px;
  background:#2d7468;
  border:3px solid #fff;
  box-shadow:0 4px 12px rgba(0,0,0,.30);
}
.inspekta-mini-scene-icon.active .dot{
  width:22px;
  height:22px;
  background:#0a84ff;
  box-shadow:0 0 0 8px rgba(10,132,255,.22),0 6px 16px rgba(0,0,0,.32);
}
.inspekta-mini-scene-icon .pulse{display:none!important}
.inspekta-mini-scene-icon .mini-label{
  position:absolute;
  left:18px;
  top:-10px;
  white-space:nowrap;
  padding:3px 6px;
  border-radius:999px;
  background:rgba(20,20,22,.72);
  color:#fff;
  font-size:10px;
  font-weight:850;
}
.inspekta-mini-scene-icon.active .mini-label{
  left:24px;
  top:-8px;
  background:rgba(10,132,255,.92);
}

/* v27 — minimap tidak boleh kosong: fallback node tampil dulu, Leaflet tile menimpa setelah siap. */
#miniMap{
  background:#c7e2e8!important;
  position:relative!important;
}
#miniMap .mini-fallback-overlay{
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
  z-index:760!important;
}
#miniMap.tile-ready .mini-fallback-overlay{
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
}
#miniMap.tile-warning .mini-fallback-overlay{
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
}
#miniMap .mini-fallback-clicks{pointer-events:none!important}
#miniMap .mini-fallback-hit{pointer-events:auto!important}
#miniMap .leaflet-tile-pane{
  opacity:1!important;
  visibility:visible!important;
  z-index:1!important;
}
#miniMap .leaflet-overlay-pane{z-index:410!important}
#miniMap .leaflet-marker-pane{z-index:520!important}
#miniMap .leaflet-tooltip-pane{z-index:540!important}
#miniMap .leaflet-popup-pane{z-index:560!important}
#miniMap.tile-ready .leaflet-tile-pane{opacity:1!important}
.mini-fallback-bg{fill:#c7e2e8!important}
.mini-grid{stroke:rgba(255,255,255,.72)!important;stroke-width:1!important}
.mini-fallback-route-shadow{stroke:rgba(255,255,255,.95)!important;stroke-width:5.5!important}
.mini-fallback-route{stroke:#247466!important;stroke-width:3!important}
.mini-fallback-scene{filter:drop-shadow(0 4px 10px rgba(0,0,0,.28))}
.mini-fallback-scene-label{
  font-size:11px!important;
  font-weight:900!important;
  fill:#10201c!important;
  paint-order:stroke!important;
  stroke:rgba(255,255,255,.94)!important;
  stroke-width:3px!important;
}
.mini-fallback-label{
  background:rgba(16,24,22,.78)!important;
  color:#fff!important;
}
#miniMap::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  border-radius:inherit;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.30);
  z-index:980;
}

/* v28 — tampilkan peta Leaflet asli pada minimap. Fallback tidak boleh menutupi tile map. */
#miniMap{
  background:#d7e4df!important;
  position:relative!important;
}
#miniMap.tile-ready .mini-fallback-overlay,
#miniMap:not(.tile-warning) .mini-fallback-overlay{
  display:none!important;
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
}
#miniMap.tile-warning .mini-fallback-overlay{
  display:block!important;
  opacity:1!important;
  visibility:visible!important;
}
#miniMap .leaflet-pane,
#miniMap .leaflet-map-pane,
#miniMap .leaflet-tile-pane,
#miniMap .leaflet-overlay-pane,
#miniMap .leaflet-marker-pane{
  visibility:visible!important;
}
#miniMap .leaflet-map-pane{z-index:100!important}
#miniMap .leaflet-tile-pane{z-index:100!important;opacity:1!important;filter:none!important}
#miniMap .leaflet-overlay-pane{z-index:250!important}
#miniMap .leaflet-marker-pane{z-index:350!important}
#miniMap .leaflet-tooltip-pane{z-index:360!important}
#miniMap .leaflet-popup-pane{z-index:420!important}
#miniMap .leaflet-tile{
  opacity:1!important;
  visibility:visible!important;
}
#miniMap .leaflet-container{background:#d7e4df!important}
#miniMap::before{
  display:none!important;
}
#miniMap.tile-warning::before{
  content:"Tile peta online gagal dimuat";
  display:block!important;
  position:absolute;
  left:8px;
  top:8px;
  z-index:950;
  padding:5px 8px;
  border-radius:999px;
  background:rgba(20,20,22,.72);
  color:white;
  font-size:10px;
  font-weight:800;
}

/* v29 — alternatif final: minimap skematik offline, bukan tile online. Selalu muncul dan tetap klik node. */
#miniMap{
  background:#f4f1e8!important;
  position:relative!important;
}
#miniMap .leaflet-map-pane,
#miniMap .leaflet-tile-pane,
#miniMap .leaflet-overlay-pane,
#miniMap .leaflet-marker-pane{
  opacity:0!important;
  visibility:hidden!important;
}
#miniMap .mini-fallback-overlay{
  display:block!important;
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
  z-index:900!important;
}
#miniMap.tile-ready .mini-fallback-overlay,
#miniMap:not(.tile-warning) .mini-fallback-overlay{
  display:block!important;
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
}
#miniMap::before{display:none!important}
.mini-fallback-overlay{
  background:#f4f1e8!important;
}
.mini-fallback-svg{
  filter:none!important;
}
.mini-grid{
  stroke:rgba(64,84,78,.13)!important;
  stroke-width:1!important;
}
.mini-schematic-road-shadow{
  fill:none;
  stroke:rgba(255,255,255,.88);
  stroke-width:12;
  stroke-linecap:round;
}
.mini-schematic-road{
  fill:none;
  stroke:#d6906b;
  stroke-width:6;
  stroke-linecap:round;
  stroke-dasharray:0;
  opacity:.82;
}
.mini-schematic-water{
  fill:none;
  stroke:#7cc7d4;
  stroke-width:7;
  stroke-linecap:round;
  opacity:.60;
}
.mini-schematic-water.thin{
  stroke-width:4;
  opacity:.42;
}
.mini-fallback-route-shadow{
  stroke:rgba(255,255,255,.98)!important;
  stroke-width:7!important;
}
.mini-fallback-route{
  stroke:#176b5d!important;
  stroke-width:3.8!important;
  stroke-dasharray:0!important;
}
.mini-fallback-scene{
  filter:drop-shadow(0 4px 10px rgba(0,0,0,.26))!important;
}
.mini-fallback-scene.active{
  filter:drop-shadow(0 0 0 rgba(0,0,0,0)) drop-shadow(0 8px 16px rgba(10,132,255,.34))!important;
}
.mini-fallback-active-ring{
  stroke:rgba(10,132,255,.30)!important;
  stroke-width:5!important;
}
.mini-fallback-scene-label{
  font-size:10.5px!important;
  font-weight:900!important;
  fill:#1d2a25!important;
  paint-order:stroke!important;
  stroke:rgba(255,255,255,.96)!important;
  stroke-width:3px!important;
}
.mini-mode-badge{
  position:absolute;
  right:8px;
  top:8px;
  padding:4px 8px;
  border-radius:999px;
  background:rgba(255,255,255,.84);
  color:#26342f;
  font-size:9px;
  line-height:1;
  font-weight:900;
  letter-spacing:.02em;
  box-shadow:0 4px 12px rgba(0,0,0,.12);
}
.mini-compass{
  position:absolute;
  right:8px;
  bottom:8px;
  width:24px;
  height:24px;
  border-radius:999px;
  background:#fff;
  color:#26342f;
  display:grid;
  place-items:center;
  font-size:10px;
  font-weight:950;
  box-shadow:0 4px 12px rgba(0,0,0,.14);
}
.mini-fallback-label{
  background:rgba(25,36,32,.82)!important;
  color:white!important;
}
#miniMap .mini-fallback-clicks{pointer-events:none!important}
#miniMap .mini-fallback-hit{pointer-events:auto!important}

/* v30 — Minimap Leaflet OSM/CARTO. Default: CARTO Positron, fallback OSM. */
#miniMap{
  background:#edf1ed!important;
  position:relative!important;
}
#miniMap .leaflet-map-pane,
#miniMap .leaflet-tile-pane,
#miniMap .leaflet-overlay-pane,
#miniMap .leaflet-marker-pane,
#miniMap .leaflet-tooltip-pane,
#miniMap .leaflet-popup-pane{
  opacity:1!important;
  visibility:visible!important;
}
#miniMap .leaflet-map-pane{z-index:100!important}
#miniMap .leaflet-tile-pane{
  z-index:100!important;
  opacity:1!important;
  filter:saturate(.92) contrast(1.02)!important;
}
#miniMap .leaflet-overlay-pane{z-index:250!important}
#miniMap .leaflet-marker-pane{z-index:360!important}
#miniMap .leaflet-tooltip-pane{z-index:390!important}
#miniMap .leaflet-popup-pane{z-index:430!important}
#miniMap .leaflet-tile{
  opacity:1!important;
  visibility:visible!important;
}
#miniMap .mini-fallback-overlay{
  display:none!important;
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
}
#miniMap.tile-warning .mini-fallback-overlay{
  display:block!important;
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
}
#miniMap.leaflet-loading::before{
  content:"Memuat CARTO / OSM…";
  position:absolute;
  left:8px;
  top:8px;
  z-index:950;
  padding:5px 8px;
  border-radius:999px;
  background:rgba(20,20,22,.74);
  color:#fff;
  font-size:10px;
  font-weight:900;
}
#miniMap.tile-ready::before{display:none!important}
#miniMap::after{
  content:attr(data-base-map);
  position:absolute;
  right:8px;
  bottom:8px;
  z-index:950;
  padding:4px 7px;
  border-radius:999px;
  background:rgba(255,255,255,.84);
  color:#1d2a25;
  font-size:9px;
  font-weight:900;
  pointer-events:none;
  box-shadow:0 4px 12px rgba(0,0,0,.10);
}
#miniMap.tile-warning::after{content:"Fallback node"}
.inspekta-mini-scene-icon{
  background:transparent!important;
  border:0!important;
}
.inspekta-mini-scene-icon .dot{
  display:block;
  width:15px;
  height:15px;
  border-radius:999px;
  background:#1f7a68;
  border:3px solid #fff;
  box-shadow:0 4px 12px rgba(0,0,0,.28);
}
.inspekta-mini-scene-icon.active .dot{
  width:22px;
  height:22px;
  background:#0a84ff;
  box-shadow:0 0 0 8px rgba(10,132,255,.24),0 6px 16px rgba(0,0,0,.30);
}
.inspekta-mini-scene-icon .pulse{display:none!important}
.inspekta-mini-scene-icon .mini-label{
  position:absolute;
  left:18px;
  top:-10px;
  white-space:nowrap;
  padding:3px 6px;
  border-radius:999px;
  background:rgba(20,20,22,.74);
  color:#fff;
  font-size:10px;
  font-weight:850;
}
.inspekta-mini-scene-icon.active .mini-label{
  left:24px;
  top:-8px;
  background:rgba(10,132,255,.92);
}


/* v31 — FINAL: minimap viewer harus Leaflet OSM/CARTO murni, tanpa overlay skematik. */
#miniMap{
  background:#eef2ee!important;
  position:relative!important;
}
#miniMap .mini-fallback-overlay,
#miniMap.tile-warning .mini-fallback-overlay,
#miniMap .mini-mode-badge,
#miniMap .mini-compass,
#miniMap .mini-fallback-label,
#miniMap .mini-fallback-clicks{
  display:none!important;
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
}
#miniMap .leaflet-map-pane,
#miniMap .leaflet-tile-pane,
#miniMap .leaflet-overlay-pane,
#miniMap .leaflet-marker-pane,
#miniMap .leaflet-tooltip-pane,
#miniMap .leaflet-popup-pane,
#miniMap .leaflet-tile-container,
#miniMap .leaflet-tile{
  display:block!important;
  opacity:1!important;
  visibility:visible!important;
}
#miniMap .leaflet-map-pane{z-index:100!important}
#miniMap .leaflet-tile-pane{z-index:100!important;filter:saturate(.96) contrast(1.02)!important}
#miniMap .leaflet-overlay-pane{z-index:260!important}
#miniMap .leaflet-marker-pane{z-index:380!important}
#miniMap .leaflet-tooltip-pane{z-index:400!important}
#miniMap .leaflet-popup-pane{z-index:450!important}
#miniMap.tile-warning::before{display:none!important;content:""!important}
#miniMap.leaflet-loading::before{
  content:"Memuat peta OSM/CARTO…";
  position:absolute;
  left:8px;
  top:8px;
  z-index:950;
  padding:5px 8px;
  border-radius:999px;
  background:rgba(20,20,22,.70);
  color:#fff;
  font-size:10px;
  font-weight:900;
}
#miniMap.tile-ready::before{display:none!important}
#miniMap::after{
  content:attr(data-base-map);
  position:absolute;
  right:8px;
  bottom:8px;
  z-index:950;
  padding:4px 7px;
  border-radius:999px;
  background:rgba(255,255,255,.86);
  color:#1d2a25;
  font-size:9px;
  font-weight:900;
  pointer-events:none;
  box-shadow:0 4px 12px rgba(0,0,0,.10);
}
#miniMap .leaflet-container{background:#eef2ee!important}
/* Route antar panorama di atas OSM/CARTO */
#miniMap path.leaflet-interactive{filter:drop-shadow(0 1px 2px rgba(255,255,255,.9))}

/* v32 — Minimap mengambil konsep peta admin: Leaflet real map + CARTO/OSM. */
#miniMap{
  background:#eef2ee!important;
  position:relative!important;
}
#miniMap .leaflet-container,
#miniMap .leaflet-pane,
#miniMap .leaflet-map-pane,
#miniMap .leaflet-tile-pane,
#miniMap .leaflet-overlay-pane,
#miniMap .leaflet-marker-pane,
#miniMap .leaflet-tooltip-pane,
#miniMap .leaflet-popup-pane,
#miniMap .leaflet-tile{
  opacity:1!important;
  visibility:visible!important;
}
#miniMap .leaflet-map-pane{z-index:100!important}
#miniMap .leaflet-tile-pane{
  z-index:100!important;
  filter:saturate(.92) contrast(1.03)!important;
}
#miniMap .leaflet-overlay-pane{z-index:260!important}
#miniMap .leaflet-marker-pane{z-index:380!important}
#miniMap .leaflet-tooltip-pane{z-index:420!important}
#miniMap .leaflet-popup-pane{z-index:460!important}
#miniMap .mini-fallback-overlay{
  display:none!important;
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
}
#miniMap.tile-warning .mini-fallback-overlay{
  display:block!important;
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
  z-index:900!important;
}
#miniMap.leaflet-loading::before{
  content:"Memuat peta real…";
  position:absolute;
  left:8px;
  top:8px;
  z-index:950;
  padding:5px 8px;
  border-radius:999px;
  background:rgba(20,20,22,.74);
  color:#fff;
  font-size:10px;
  font-weight:900;
}
#miniMap.tile-ready::before,
#miniMap.real-map-ready.tile-ready::before{
  display:none!important;
}
#miniMap::after{
  content:attr(data-base-map);
  position:absolute;
  right:8px;
  bottom:8px;
  z-index:950;
  padding:4px 7px;
  border-radius:999px;
  background:rgba(255,255,255,.88);
  color:#1d2a25;
  font-size:9px;
  font-weight:900;
  pointer-events:none;
  box-shadow:0 4px 12px rgba(0,0,0,.10);
}
#miniMap.tile-warning::after{
  content:"Tile gagal";
}
.inspekta-mini-scene-icon{
  background:transparent!important;
  border:0!important;
}
.inspekta-mini-scene-icon .dot{
  display:block;
  width:15px;
  height:15px;
  border-radius:999px;
  background:#1f7a68;
  border:3px solid #fff;
  box-shadow:0 4px 12px rgba(0,0,0,.28);
}
.inspekta-mini-scene-icon.active .dot{
  width:22px;
  height:22px;
  background:#0a84ff;
  box-shadow:0 0 0 8px rgba(10,132,255,.24),0 6px 16px rgba(0,0,0,.30);
}
.inspekta-mini-scene-icon .pulse{display:none!important}
.inspekta-mini-scene-icon .mini-label{
  position:absolute;
  left:18px;
  top:-10px;
  white-space:nowrap;
  padding:3px 6px;
  border-radius:999px;
  background:rgba(20,20,22,.74);
  color:#fff;
  font-size:10px;
  font-weight:850;
}
.inspekta-mini-scene-icon.active .mini-label{
  left:24px;
  top:-8px;
  background:rgba(10,132,255,.92);
}

/* v33 — Minimap hanya memakai OSM Standard. */
#miniMap::after{
  content:"OSM Standard"!important;
}
#miniMap.tile-warning::after{
  content:"OSM tile gagal"!important;
}

/* v34 — Viewer minimap real Leaflet/OSM seperti contoh, tetapi dalam kotak kecil. */
.minimap-card{
  left:18px!important;
  bottom:92px!important;
  width:360px!important;
  height:270px!important;
  border-radius:18px!important;
  padding:10px!important;
  background:rgba(22,22,24,.82)!important;
  border:1px solid rgba(255,255,255,.12)!important;
  box-shadow:0 18px 42px rgba(0,0,0,.28)!important;
  backdrop-filter:blur(20px) saturate(150%)!important;
}
.minimap-head{
  padding:2px 2px 8px!important;
  min-height:34px!important;
}
.minimap-head span{
  font-size:10px!important;
  letter-spacing:.11em!important;
  color:rgba(245,245,247,.72)!important;
}
.minimap-head strong{
  font-size:11px!important;
  color:#fff!important;
  line-height:1.1!important;
}
.minimap-card .chip-btn{
  min-height:28px!important;
  padding:6px 10px!important;
  border-radius:999px!important;
  background:#fff!important;
  color:#1d1d1f!important;
  font-size:11px!important;
  font-weight:800!important;
}
#miniMap{
  height:calc(100% - 42px)!important;
  border-radius:12px!important;
  overflow:hidden!important;
  background:#eef2ee!important;
  position:relative!important;
}
#miniMap .leaflet-container,
#miniMap .leaflet-pane,
#miniMap .leaflet-map-pane,
#miniMap .leaflet-tile-pane,
#miniMap .leaflet-overlay-pane,
#miniMap .leaflet-marker-pane,
#miniMap .leaflet-tooltip-pane,
#miniMap .leaflet-popup-pane,
#miniMap .leaflet-tile{
  opacity:1!important;
  visibility:visible!important;
}
#miniMap .leaflet-map-pane{z-index:100!important}
#miniMap .leaflet-tile-pane{
  z-index:100!important;
  opacity:1!important;
  filter:saturate(.92) contrast(1.03)!important;
}
#miniMap .leaflet-overlay-pane{z-index:260!important}
#miniMap .leaflet-marker-pane{z-index:380!important}
#miniMap .leaflet-tooltip-pane{z-index:420!important}
#miniMap .leaflet-popup-pane{z-index:460!important}
#miniMap .mini-fallback-overlay{
  display:none!important;
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
}
#miniMap.tile-warning .mini-fallback-overlay{
  display:block!important;
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
  z-index:900!important;
}
#miniMap::after{
  content:"OSM Standard";
  position:absolute;
  right:7px;
  bottom:7px;
  z-index:950;
  padding:3px 6px;
  border-radius:999px;
  background:rgba(255,255,255,.88);
  color:#1d2a25;
  font-size:8.5px;
  font-weight:900;
  pointer-events:none;
  box-shadow:0 4px 12px rgba(0,0,0,.10);
}
#miniMap.tile-warning::after{
  content:"OSM tile gagal";
}
#miniMap .leaflet-control-container .leaflet-top.leaflet-left{
  top:6px!important;
  left:6px!important;
}
#miniMap .leaflet-control-zoom{
  border:0!important;
  box-shadow:0 4px 14px rgba(0,0,0,.16)!important;
}
#miniMap .leaflet-control-zoom a{
  width:24px!important;
  height:24px!important;
  line-height:24px!important;
  font-size:15px!important;
}
.inspekta-mini-scene-icon{
  background:transparent!important;
  border:0!important;
}
.inspekta-mini-scene-icon .dot{
  display:block;
  width:13px;
  height:13px;
  border-radius:999px;
  background:#1f7a68;
  border:2.5px solid #fff;
  box-shadow:0 4px 12px rgba(0,0,0,.28);
}
.inspekta-mini-scene-icon.active .dot{
  width:20px;
  height:20px;
  background:#0a84ff;
  box-shadow:0 0 0 7px rgba(10,132,255,.22),0 6px 16px rgba(0,0,0,.30);
}
.inspekta-mini-scene-icon .pulse{display:none!important}
.inspekta-mini-scene-icon .mini-label{
  position:absolute;
  left:16px;
  top:-10px;
  white-space:nowrap;
  padding:3px 6px;
  border-radius:999px;
  background:rgba(20,20,22,.74);
  color:#fff;
  font-size:9.5px;
  font-weight:850;
}
.inspekta-mini-scene-icon.active .mini-label{
  left:22px;
  top:-8px;
  background:rgba(10,132,255,.92);
}
.minimap-card.expanded{
  width:min(640px,calc(100vw - 36px))!important;
  height:min(470px,calc(100vh - 140px))!important;
}
@media(max-width:720px){
  .minimap-card{
    left:10px!important;
    bottom:84px!important;
    width:250px!important;
    height:190px!important;
  }
  .minimap-head span{font-size:8.5px!important}
  .minimap-head strong{font-size:9.5px!important}
}

/* v36 — Panel daftar titik melayang (pengganti minimap). Klik titik => panorama terdekat. */
.minimap-card.point-card{
  width:312px!important;
  height:340px!important;
  display:flex!important;
  flex-direction:column!important;
  padding:12px!important;
  gap:8px;
}
.minimap-card.point-card.expanded{
  width:min(420px,calc(100vw - 24px))!important;
  height:min(70vh,560px)!important;
}
.point-card .minimap-head{padding:0 2px 2px!important;flex:0 0 auto}
.point-card #pointCount{font-size:.82rem!important;font-weight:800!important}
.point-search{
  flex:0 0 auto;width:100%;box-sizing:border-box;
  padding:8px 11px;border-radius:12px;
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);
  color:#fff;font-size:.84rem;outline:none;
}
.point-search::placeholder{color:rgba(245,245,247,.45)}
.point-filters{flex:0 0 auto;display:flex;gap:6px;flex-wrap:wrap}
.point-filter{
  padding:5px 10px;border-radius:999px;font-size:.72rem;font-weight:800;
  background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);color:#f5f5f7;cursor:pointer;
}
.point-filter.active{background:#0071e3;border-color:#0071e3;color:#fff}
.point-list{
  flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;
  display:flex;flex-direction:column;gap:6px;padding-right:2px;
  scrollbar-width:thin;
}
.point-list::-webkit-scrollbar{width:7px}
.point-list::-webkit-scrollbar-thumb{background:rgba(255,255,255,.18);border-radius:99px}
.point-row{
  display:flex;align-items:center;gap:10px;width:100%;text-align:left;
  padding:9px 10px;border-radius:13px;cursor:pointer;
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.09);color:#f5f5f7;
}
.point-row:hover{background:rgba(255,255,255,.11)}
.point-row.active{border-color:#0071e3;background:rgba(0,113,227,.18);box-shadow:0 0 0 1px rgba(0,113,227,.35)}
.point-ico{
  flex:0 0 auto;width:26px;height:26px;border-radius:9px;display:grid;place-items:center;
  font-size:.9rem;background:rgba(255,255,255,.1);
}
.point-row.pt-pano .point-ico{background:rgba(0,113,227,.22);color:#7fb6ff}
.point-row.pt-build .point-ico{background:rgba(255,175,69,.20);color:#ffc680}
.point-row.pt-canal .point-ico{background:rgba(53,208,127,.18);color:#7fe0ac}
.point-main{min-width:0;flex:1 1 auto;display:flex;flex-direction:column;gap:1px}
.point-name{font-weight:800;font-size:.84rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.point-sub{font-size:.7rem;color:rgba(245,245,247,.55);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.point-dist{flex:0 0 auto;font-size:.68rem;font-weight:800;color:rgba(245,245,247,.6);padding-left:4px}
.point-empty{padding:14px 8px;text-align:center;color:rgba(245,245,247,.5);font-size:.78rem}
@media(max-width:560px){
  .minimap-card.point-card{width:calc(100vw - 24px)!important;height:300px!important;left:12px!important}
}

/* v37 — Peta D.I selector + no-photo guard */
.minimap-card.point-card{
  height:410px!important;
}
.minimap-card.point-card.expanded{
  width:min(460px,calc(100vw - 24px))!important;
  height:min(76vh,640px)!important;
}
.di-switcher{
  flex:0 0 auto;
  display:grid;
  gap:5px;
  padding:8px;
  border-radius:14px;
  background:rgba(255,255,255,.055);
  border:1px solid rgba(255,255,255,.10);
}
.di-switcher label{
  color:rgba(245,245,247,.70);
  font-size:.68rem;
  line-height:1;
  font-weight:900;
  letter-spacing:.10em;
  text-transform:uppercase;
}
.di-select-row{
  display:grid;
  grid-template-columns:1fr auto;
  gap:6px;
  align-items:center;
}
.di-select,
.di-focus-btn{
  min-height:32px;
  border-radius:10px;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.08);
  color:#fff;
  font-size:.78rem;
  font-weight:800;
  outline:none;
}
.di-select{
  width:100%;
  padding:0 9px;
}
.di-select option{
  background:#111827;
  color:#fff;
}
.di-focus-btn{
  padding:0 11px;
  cursor:pointer;
  background:#fff;
  color:#1d1d1f;
}
.di-focus-btn:hover{filter:brightness(.94)}
.di-switcher small{
  color:rgba(245,245,247,.52);
  font-size:.68rem;
  line-height:1.35;
}
.point-dist.ok{
  color:#7fb6ff;
}
.point-dist.no-photo{
  color:#fbbf24;
  border-left:1px solid rgba(255,255,255,.13);
  padding-left:7px;
}
.point-row.pt-build.active,
.point-row.pt-canal.active{
  border-color:rgba(251,191,36,.78);
  background:rgba(251,191,36,.14);
  box-shadow:0 0 0 1px rgba(251,191,36,.28);
}
@media(max-width:560px){
  .minimap-card.point-card{height:360px!important;}
  .di-select-row{grid-template-columns:1fr;}
}

/* v39 — filter sudah/belum foto per D.I */
.minimap-card.point-card{height:260px!important}.minimap-card.point-card.expanded{height:min(520px,calc(100vh - 150px))!important}.point-filter[data-point-filter="with_photo"]{border-color:rgba(53,208,127,.32);color:#d9ffe9}.point-filter[data-point-filter="without_photo"]{border-color:rgba(255,209,102,.35);color:#ffe7a4}.point-filter[data-point-filter="with_photo"].active{background:#168a55!important;border-color:#168a55!important;color:#fff!important}.point-filter[data-point-filter="without_photo"].active{background:#b7791f!important;border-color:#b7791f!important;color:#fff!important}@media(max-width:640px){.minimap-card.point-card{height:210px!important}}

/* v40 — Irigasi Street View Mode: pengalaman utama dibuat seperti Google Street View.
   Perubahan bersifat additive, tidak membongkar fungsi v39. */
body.viewer-body{
  overflow:hidden!important;
}
#panorama{
  position:fixed!important;
  inset:0!important;
  z-index:1!important;
  background:#05070b!important;
}
.viewer-vignette{z-index:2!important;pointer-events:none!important}
.viewer-topbar{z-index:40!important}
.viewer-topbar .topbar-actions{z-index:45!important}
.viewer-topbar .topbar-actions .street-primary-action{
  background:rgba(10,132,255,.88)!important;
  border-color:rgba(10,132,255,.95)!important;
  color:#fff!important;
}
.street-nav-overlay{
  position:fixed;
  inset:0;
  z-index:22;
  pointer-events:none;
}
.street-arrow{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  display:flex;
  align-items:center;
  gap:10px;
  min-width:118px;
  min-height:56px;
  padding:10px 15px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(10,14,20,.46);
  color:#fff;
  box-shadow:0 18px 44px rgba(0,0,0,.28);
  backdrop-filter:blur(18px) saturate(160%);
  -webkit-backdrop-filter:blur(18px) saturate(160%);
  cursor:pointer;
  pointer-events:auto;
  transition:transform .18s ease, background .18s ease, opacity .18s ease;
}
.street-arrow:hover{background:rgba(10,132,255,.72);transform:translateY(-50%) scale(1.03)}
.street-arrow:disabled{opacity:.28;cursor:not-allowed;filter:grayscale(.4)}
.street-arrow:disabled:hover{background:rgba(10,14,20,.46);transform:translateY(-50%)}
.street-arrow span{
  width:34px;height:34px;border-radius:999px;display:grid;place-items:center;
  background:rgba(255,255,255,.15);font-size:1.15rem;font-weight:900;
}
.street-arrow small{font-size:.75rem;font-weight:900;letter-spacing:.02em;text-transform:uppercase;color:rgba(255,255,255,.82)}
.street-arrow-left{left:24px}
.street-arrow-right{right:24px}
.street-minimap-card{
  position:fixed;
  right:18px;
  bottom:92px;
  width:300px;
  height:228px;
  z-index:34;
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:10px;
  border-radius:22px;
  background:rgba(14,18,24,.64)!important;
  border:1px solid rgba(255,255,255,.12)!important;
  box-shadow:0 24px 70px rgba(0,0,0,.28)!important;
  backdrop-filter:blur(22px) saturate(170%)!important;
  -webkit-backdrop-filter:blur(22px) saturate(170%)!important;
}
.street-minimap-card.is-collapsed{
  height:auto;
  width:210px;
}
.street-minimap-card.is-collapsed .street-minimap-canvas,
.street-minimap-card.is-collapsed .street-minimap-legend{display:none!important}
.street-minimap-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  flex:0 0 auto;
}
.street-minimap-head span{
  display:block;
  color:rgba(245,245,247,.56);
  font-size:.62rem;
  font-weight:900;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.street-minimap-head strong{
  display:block;
  margin-top:2px;
  max-width:190px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  color:#fff;
  font-size:.82rem;
  font-weight:900;
}
.street-minimap-canvas{
  position:relative;
  flex:1 1 auto;
  min-height:0;
  overflow:hidden;
  border-radius:16px;
  background:
    radial-gradient(circle at 20% 20%, rgba(10,132,255,.15), transparent 26%),
    radial-gradient(circle at 75% 70%, rgba(53,208,127,.12), transparent 28%),
    rgba(238,244,247,.92);
  border:1px solid rgba(255,255,255,.14);
}
.street-minimap-svg,
.street-minimap-markers{position:absolute;inset:0;width:100%;height:100%}
.street-route-line{
  fill:none;
  stroke:rgba(10,132,255,.68);
  stroke-width:2.6;
  stroke-linecap:round;
  stroke-linejoin:round;
  vector-effect:non-scaling-stroke;
  filter:drop-shadow(0 2px 4px rgba(0,0,0,.20));
}
.street-map-marker{
  position:absolute;
  transform:translate(-50%,-50%);
  width:21px;
  height:21px;
  border-radius:999px;
  border:2.5px solid #fff;
  background:#9ca3af;
  color:#fff;
  display:grid;
  place-items:center;
  box-shadow:0 5px 12px rgba(0,0,0,.30);
  cursor:pointer;
  z-index:2;
}
.street-map-marker span{font-size:0;line-height:1}
.street-map-marker.has-photo{background:#0a84ff}
.street-map-marker.no-photo{background:#9ca3af;border-style:dashed;opacity:.86}
.street-map-marker.kind-saluran{box-shadow:0 0 0 4px rgba(53,208,127,.20),0 5px 12px rgba(0,0,0,.30)}
.street-map-marker.kind-bangunan{box-shadow:0 0 0 4px rgba(255,175,69,.18),0 5px 12px rgba(0,0,0,.30)}
.street-map-marker.active{
  width:31px;
  height:31px;
  background:#ff3b30;
  z-index:4;
  box-shadow:0 0 0 7px rgba(255,59,48,.22),0 10px 20px rgba(0,0,0,.36);
}
.street-map-marker.active::after{
  content:'';
  position:absolute;
  left:50%;
  top:-11px;
  transform:translateX(-50%);
  border-left:7px solid transparent;
  border-right:7px solid transparent;
  border-bottom:11px solid #ff3b30;
}
.street-minimap-empty{
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  color:#334155;
  font-size:.78rem;
  font-weight:850;
  text-align:center;
  padding:18px;
}
.street-minimap-legend{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  color:rgba(245,245,247,.64);
  font-size:.64rem;
  font-weight:850;
}
.street-minimap-legend span{display:inline-flex;align-items:center;gap:4px}
.legend-dot{width:8px;height:8px;border-radius:999px;display:inline-block;border:1.5px solid #fff}
.legend-dot.has-photo{background:#0a84ff}
.legend-dot.no-photo{background:#9ca3af;border-style:dashed}
.legend-dot.active{background:#ff3b30}
.viewer-bottom{
  z-index:33!important;
  width:min(780px,calc(100vw - 420px))!important;
  left:50%!important;
  transform:translateX(-50%)!important;
}
.scene-chip{
  flex-basis:132px!important;
  height:52px!important;
}
.scene-chip .thumb{filter:saturate(1.05) contrast(1.02)}
.minimap-card.point-card{
  z-index:35!important;
  bottom:92px!important;
  height:300px!important;
  width:324px!important;
  background:rgba(14,18,24,.72)!important;
}
.minimap-card.point-card:not(.expanded){
  transform:translateX(calc(-100% + 48px));
  transition:transform .22s ease;
}
.minimap-card.point-card:not(.expanded)::after{
  content:'Peta D.I';
  position:absolute;
  right:-42px;
  top:50%;
  transform:translateY(-50%) rotate(-90deg);
  padding:7px 12px;
  border-radius:999px;
  background:rgba(10,132,255,.92);
  color:#fff;
  font-size:.72rem;
  font-weight:900;
  letter-spacing:.04em;
  box-shadow:0 12px 26px rgba(0,0,0,.25);
  pointer-events:none;
}
.minimap-card.point-card:hover,
.minimap-card.point-card.expanded{
  transform:translateX(0);
}
.point-row.pt-build.active,
.point-row.pt-canal.active{
  border-color:rgba(251,191,36,.78)!important;
}
.zoom-control{z-index:36!important}
.empty-state{z-index:50!important}
@media(max-width:1100px){
  .street-minimap-card{width:260px;height:200px;right:14px;bottom:86px}
  .viewer-bottom{width:min(650px,calc(100vw - 330px))!important}
  .street-arrow{min-width:54px;padding:10px;border-radius:999px}
  .street-arrow small{display:none}
}
@media(max-width:820px){
  .street-minimap-card{right:10px;bottom:82px;width:220px;height:168px}
  .viewer-bottom{width:calc(100vw - 20px)!important;bottom:10px!important}
  .street-arrow{top:auto;bottom:88px;transform:none;min-height:46px}
  .street-arrow:hover{transform:scale(1.03)}
  .street-arrow-left{left:12px}
  .street-arrow-right{right:12px}
  .minimap-card.point-card{bottom:148px!important;width:calc(100vw - 24px)!important;max-width:360px;height:280px!important}
  .minimap-card.point-card:not(.expanded){transform:translateX(calc(-100% + 44px))}
}
@media(max-width:640px){
  .street-minimap-card{display:none!important}
  .street-arrow{bottom:76px}
  .viewer-topbar .topbar-actions{max-width:calc(100vw - 20px);overflow-x:auto;padding-bottom:2px!important}
  .viewer-topbar .topbar-actions .icon-btn{white-space:nowrap}
  .minimap-card.point-card{bottom:132px!important;height:245px!important}
  .scene-chip{flex-basis:116px!important;height:50px!important}
}

/* v41 — Street View Enhancement: arah pandang, label lokasi, fullscreen bersih, dan nearest panorama. */
.street-location-badge{
  position:fixed;
  z-index:38;
  left:50%;
  top:108px;
  transform:translateX(-50%);
  min-width:min(420px,calc(100vw - 44px));
  max-width:min(680px,calc(100vw - 44px));
  padding:11px 15px;
  border-radius:999px;
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:10px;
  background:rgba(10,14,20,.54)!important;
  border:1px solid rgba(255,255,255,.14)!important;
  box-shadow:0 18px 46px rgba(0,0,0,.26)!important;
  backdrop-filter:blur(20px) saturate(170%)!important;
  -webkit-backdrop-filter:blur(20px) saturate(170%)!important;
}
.street-location-badge span,
.street-location-badge small{
  color:rgba(245,245,247,.68);
  font-size:.72rem;
  font-weight:900;
  white-space:nowrap;
}
.street-location-badge strong{
  min-width:0;
  color:#fff;
  font-size:.92rem;
  font-weight:1000;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  text-align:center;
}
.street-location-badge.is-empty{background:rgba(76,48,12,.66)!important;border-color:rgba(245,158,11,.28)!important}
.street-compass{
  position:fixed;
  z-index:37;
  right:22px;
  top:228px;
  width:70px;
  padding:9px 8px 8px;
  border-radius:22px;
  display:grid;
  justify-items:center;
  gap:6px;
  background:rgba(10,14,20,.50)!important;
  border:1px solid rgba(255,255,255,.13)!important;
}
.compass-dial{
  position:relative;
  width:46px;
  height:46px;
  border-radius:999px;
  background:radial-gradient(circle,rgba(255,255,255,.12),rgba(255,255,255,.04));
  border:1px solid rgba(255,255,255,.16);
}
.compass-north{
  position:absolute;
  left:50%;
  top:3px;
  transform:translateX(-50%);
  color:#ff453a;
  font-size:.62rem;
  font-weight:1000;
}
#compassNeedle{
  position:absolute;
  left:50%;
  top:50%;
  width:4px;
  height:30px;
  border-radius:999px;
  background:linear-gradient(180deg,#ff453a 0 48%,#f5f5f7 48% 100%);
  transform:translate(-50%,-50%) rotate(0deg);
  transform-origin:50% 50%;
  box-shadow:0 3px 10px rgba(0,0,0,.28);
}
.street-compass strong{font-size:.72rem;color:rgba(245,245,247,.78);font-weight:950}
.street-nearest-hint{
  position:fixed;
  z-index:39;
  left:50%;
  bottom:94px;
  transform:translateX(-50%);
  width:min(660px,calc(100vw - 32px));
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:12px 13px 12px 16px;
  border-radius:24px;
  background:rgba(76,48,12,.76)!important;
  border:1px solid rgba(245,158,11,.30)!important;
  box-shadow:0 18px 50px rgba(0,0,0,.28)!important;
}
.street-nearest-hint.hidden{display:none!important}
.street-nearest-hint div{display:grid;gap:3px;min-width:0}
.street-nearest-hint strong{color:#fff;font-size:.9rem;font-weight:1000}
.street-nearest-hint span{color:rgba(255,255,255,.76);font-size:.8rem;font-weight:800;line-height:1.35}
.street-nearest-hint .chip-btn:disabled{opacity:.45;cursor:not-allowed}
.street-in-pano-nav{
  position:fixed;
  inset:0;
  z-index:23;
  pointer-events:none;
}
.street-floor-arrow{
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  border:1px solid rgba(255,255,255,.22);
  background:rgba(10,14,20,.42);
  color:#fff;
  min-width:116px;
  min-height:62px;
  padding:10px 18px;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  pointer-events:auto;
  cursor:pointer;
  backdrop-filter:blur(18px) saturate(160%);
  -webkit-backdrop-filter:blur(18px) saturate(160%);
  box-shadow:0 18px 44px rgba(0,0,0,.30);
  transition:transform .18s ease, background .18s ease, opacity .18s ease;
}
.street-floor-arrow:hover{background:rgba(10,132,255,.72);transform:translateX(-50%) scale(1.035)}
.street-floor-arrow:disabled{opacity:.25;cursor:not-allowed;filter:grayscale(.35)}
.street-floor-arrow:disabled:hover{background:rgba(10,14,20,.42);transform:translateX(-50%)}
.street-forward{bottom:178px}
.street-back{bottom:108px;opacity:.86}
.street-floor-arrow span{
  width:34px;
  height:34px;
  border-radius:999px;
  display:grid;
  place-items:center;
  background:rgba(255,255,255,.16);
  font-size:1.12rem;
  font-weight:1000;
}
.street-floor-arrow small{
  color:rgba(255,255,255,.82);
  font-size:.73rem;
  font-weight:1000;
  letter-spacing:.03em;
  text-transform:uppercase;
}
.street-map-marker.active::after{
  top:-13px!important;
  transform:translateX(-50%) rotate(var(--yaw,0deg))!important;
  transform-origin:50% 21px!important;
}
.street-fullscreen .viewer-topbar{
  transform:translateY(calc(-100% - 18px));
  opacity:0;
  pointer-events:none;
}
.street-fullscreen .app-watermark,
.street-fullscreen .street-status,
.street-fullscreen .viewer-bottom,
.street-fullscreen .minimap-card.point-card:not(.expanded){
  opacity:0!important;
  pointer-events:none!important;
}
.street-fullscreen .street-location-badge{top:18px}
.street-fullscreen .zoom-control{top:18px}
.street-fullscreen .street-compass{top:132px}
.street-fullscreen .street-forward{bottom:92px}
.street-fullscreen .street-back{bottom:22px}
.street-fullscreen .street-minimap-card{bottom:18px}
.street-fullscreen .street-nearest-hint{bottom:18px}
@media(max-width:1100px){
  .street-location-badge{top:100px;min-width:min(360px,calc(100vw - 36px));grid-template-columns:1fr;gap:2px;border-radius:22px;text-align:center}
  .street-compass{top:206px;right:14px}
  .street-forward{bottom:148px}.street-back{bottom:88px}
}
@media(max-width:820px){
  .street-location-badge{top:154px;left:12px;right:12px;transform:none;max-width:none;min-width:0}
  .street-compass{top:242px;right:10px;width:58px;border-radius:18px}.compass-dial{width:38px;height:38px}#compassNeedle{height:25px}
  .street-nearest-hint{bottom:70px;align-items:flex-start;flex-direction:column}
  .street-floor-arrow{min-width:92px;min-height:48px;padding:8px 11px}.street-floor-arrow small{display:none}
  .street-forward{bottom:139px}.street-back{bottom:84px}
}
@media(max-width:640px){
  .street-location-badge{top:142px;padding:9px 12px}.street-location-badge small{display:none}
  .street-compass{display:none!important}
  .street-floor-arrow{bottom:72px}.street-forward{left:64%;bottom:72px}.street-back{left:36%;bottom:72px}
  .street-nearest-hint{bottom:128px}
}
