/* KREATIF PAI - Peta Sebaran Guru Kabupaten Bekasi */
.bekasi-map-section{position:relative;overflow:hidden}
.bekasi-map-shell{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.75fr);gap:22px;align-items:stretch}
.bekasi-map-card{position:relative;min-height:560px;border:1px solid rgba(148,163,184,.2);border-radius:26px;background:linear-gradient(155deg,#eefcf7 0%,#f5f9ff 47%,#eef2ff 100%);box-shadow:0 18px 55px rgba(15,23,42,.08);overflow:hidden}
.bekasi-map-card:before{content:"";position:absolute;inset:-30%;background:radial-gradient(circle at 20% 10%,rgba(16,185,129,.12),transparent 28%),radial-gradient(circle at 90% 80%,rgba(37,99,235,.12),transparent 30%);pointer-events:none}
.bekasi-leaflet-map{position:absolute;inset:0;z-index:3;background:#edf5f2}
.bekasi-map-fallback{position:absolute;inset:0;z-index:2;padding:28px 24px 24px;transition:opacity .25s ease}
.bekasi-map-card.is-leaflet-ready .bekasi-map-fallback{opacity:0;pointer-events:none}
.bekasi-map-fallback svg{display:block;width:100%;height:100%;overflow:visible}
.bekasi-fallback-grid line{stroke:#cbd5e1;stroke-width:.45;opacity:.45}
.bekasi-fallback-outline{fill:rgba(255,255,255,.58);stroke:#94a3b8;stroke-width:1.2;stroke-dasharray:5 5}
.bekasi-fallback-marker{cursor:pointer;outline:none}.bekasi-fallback-marker circle.outer{fill:#fff;stroke:#fff;stroke-width:5;filter:drop-shadow(0 5px 5px rgba(15,23,42,.18))}.bekasi-fallback-marker circle.inner{fill:var(--map-marker,#0f766e);transition:transform .2s ease,filter .2s ease}.bekasi-fallback-marker text.count{font:800 13px 'Plus Jakarta Sans',sans-serif;fill:#fff;text-anchor:middle;dominant-baseline:middle;pointer-events:none}.bekasi-fallback-marker text.label{font:700 8.6px 'Plus Jakarta Sans',sans-serif;fill:#334155;text-anchor:middle;paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round;pointer-events:none}.bekasi-fallback-marker:hover circle.inner,.bekasi-fallback-marker:focus circle.inner{filter:brightness(1.05);transform:scale(1.12);transform-origin:center}
.bekasi-map-mapnote{position:absolute;left:18px;bottom:16px;z-index:5;max-width:min(78%,520px);background:rgba(255,255,255,.94);backdrop-filter:blur(8px);border:1px solid rgba(148,163,184,.28);border-radius:13px;padding:8px 11px;font-size:.68rem;color:#64748b;box-shadow:0 8px 24px rgba(15,23,42,.07)}
.bekasi-map-side{display:flex;flex-direction:column;gap:14px}
.bekasi-map-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.bekasi-map-kpi{border:1px solid #e5eaf1;background:#fff;border-radius:18px;padding:15px;box-shadow:0 10px 28px rgba(15,23,42,.05)}.bekasi-map-kpi i{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:#ecfdf5;color:#047857;margin-bottom:10px}.bekasi-map-kpi strong{display:block;font-size:1.45rem;line-height:1;color:#0f172a}.bekasi-map-kpi span{display:block;margin-top:6px;font-size:.69rem;font-weight:700;color:#64748b;line-height:1.25}
.bekasi-map-detail{border:1px solid #e5eaf1;background:#fff;border-radius:20px;padding:18px;box-shadow:0 12px 34px rgba(15,23,42,.055)}.bekasi-map-detail .eyebrow{font-size:.66rem;text-transform:uppercase;letter-spacing:.08em;color:#64748b;font-weight:800}.bekasi-map-detail h3{font-size:1.12rem;font-weight:800;color:#0f172a;margin:5px 0 13px}.bekasi-map-detail-metrics{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.bekasi-map-detail-metrics div{background:#f8fafc;border-radius:13px;padding:10px}.bekasi-map-detail-metrics strong{display:block;color:#0f172a;font-size:1.03rem}.bekasi-map-detail-metrics span{font-size:.65rem;color:#64748b;font-weight:700}.bekasi-map-detail .btn{margin-top:13px;width:100%}
.bekasi-map-ranking{border:1px solid #e5eaf1;background:#fff;border-radius:20px;overflow:hidden;box-shadow:0 12px 34px rgba(15,23,42,.05)}.bekasi-map-ranking-head{padding:14px 16px;border-bottom:1px solid #eef2f6;display:flex;justify-content:space-between;gap:10px;align-items:center}.bekasi-map-ranking-head strong{font-size:.82rem;color:#0f172a}.bekasi-map-ranking-head small{font-size:.65rem;color:#64748b}.bekasi-map-rank-list{max-height:275px;overflow:auto}.bekasi-map-rank{display:grid;grid-template-columns:28px 1fr auto;gap:8px;align-items:center;padding:9px 14px;border-bottom:1px solid #f1f5f9;cursor:pointer;transition:background .18s ease}.bekasi-map-rank:last-child{border-bottom:0}.bekasi-map-rank:hover,.bekasi-map-rank.active{background:#f0fdf4}.bekasi-map-rank .rank-no{width:25px;height:25px;border-radius:8px;background:#f1f5f9;color:#64748b;display:grid;place-items:center;font-size:.65rem;font-weight:800}.bekasi-map-rank .rank-name{font-size:.74rem;font-weight:750;color:#334155}.bekasi-map-rank .rank-count{font-size:.76rem;font-weight:850;color:#047857;white-space:nowrap}.bekasi-map-rank .rank-count small{font-weight:700;color:#94a3b8}
.bekasi-map-legend{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.bekasi-map-legend span{display:inline-flex;align-items:center;gap:5px;font-size:.67rem;font-weight:700;color:#64748b}.bekasi-map-legend i{width:9px;height:9px;border-radius:50%;display:inline-block}.bekasi-map-legend .l0{background:#94a3b8}.bekasi-map-legend .l1{background:#10b981}.bekasi-map-legend .l2{background:#0f766e}.bekasi-map-legend .l3{background:#2563eb}
.bekasi-map-public-intro{display:flex;justify-content:space-between;gap:18px;align-items:flex-end;margin-bottom:20px}.bekasi-map-public-intro .section-lead{max-width:760px}
.bekasi-map-public .bekasi-map-card{min-height:600px}
.bekasi-map-public .bekasi-map-side{align-self:stretch}
.bekasi-map-admin-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.bekasi-district-admin-card{background:#fff;border:1px solid #e7edf4;border-radius:17px;padding:14px;display:flex;gap:11px;align-items:center;box-shadow:0 8px 22px rgba(15,23,42,.045)}.bekasi-district-admin-card .pin{width:38px;height:38px;border-radius:13px;display:grid;place-items:center;background:#ecfdf5;color:#047857;flex:0 0 auto}.bekasi-district-admin-card strong{display:block;color:#0f172a;font-size:.79rem}.bekasi-district-admin-card small{display:block;color:#64748b;font-size:.67rem;margin-top:2px}.bekasi-district-admin-card .count{margin-left:auto;text-align:right}.bekasi-district-admin-card .count b{display:block;font-size:1.15rem;color:#0f766e}.bekasi-district-admin-card .count span{font-size:.62rem;color:#94a3b8;font-weight:700}
.bekasi-marker-html{background:transparent!important;border:0!important}.bekasi-marker-bubble{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:var(--marker-color,#0f766e);border:4px solid #fff;color:#fff;font:800 13px 'Plus Jakarta Sans',sans-serif;box-shadow:0 5px 15px rgba(15,23,42,.28)}.leaflet-tooltip.bekasi-tooltip{border:0;border-radius:12px;box-shadow:0 8px 25px rgba(15,23,42,.18);font:700 11px 'Plus Jakarta Sans',sans-serif;padding:8px 10px;color:#0f172a}.leaflet-control-attribution{font-size:8px!important}
@media(max-width:1100px){.bekasi-map-shell{grid-template-columns:1fr}.bekasi-map-card{min-height:520px}.bekasi-map-side{display:grid;grid-template-columns:.75fr 1.25fr}.bekasi-map-ranking{grid-column:1/-1}.bekasi-map-admin-list{grid-template-columns:repeat(2,1fr)}}
@media(max-width:768px){.bekasi-map-card,.bekasi-map-public .bekasi-map-card{min-height:480px;border-radius:20px}.bekasi-map-side{display:flex}.bekasi-map-summary{grid-template-columns:repeat(2,1fr)}.bekasi-map-admin-list{grid-template-columns:1fr}.bekasi-map-public-intro{display:block}.bekasi-map-mapnote{max-width:calc(100% - 26px);left:13px;bottom:12px;font-size:.6rem}.bekasi-map-fallback{padding:18px 10px 50px}.bekasi-fallback-marker text.label{font-size:7.6px}}
@media(max-width:480px){.bekasi-map-card,.bekasi-map-public .bekasi-map-card{min-height:430px}.bekasi-map-kpi{padding:12px}.bekasi-map-kpi strong{font-size:1.25rem}.bekasi-map-detail{padding:15px}.bekasi-map-rank-list{max-height:240px}}
