:root{--rv-navy:#07182f;--rv-ink:#10233f;--rv-blue:#0875e1;--rv-teal:#04b9aa;--rv-soft:#f6f9fd;--rv-border:#dce9f5;--rv-muted:#5e718a;--rv-shadow:0 24px 70px rgba(7,24,47,.14)}*{box-sizing:border-box}html,body{height:100%;margin:0;overflow:hidden;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--rv-ink);background:#eef5fb}.rv-map-page{height:100vh;height:100dvh;display:grid;grid-template-columns:430px minmax(0,1fr)}.rv-map-panel{height:100vh;height:100dvh;display:flex;flex-direction:column;background:rgba(255,255,255,.82);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);border-right:1px solid rgba(170,198,224,.45);box-shadow:var(--rv-shadow);z-index:10}.rv-map-top{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:20px 18px;border-bottom:1px solid var(--rv-border);background:rgba(255,255,255,.72)}.rv-map-logo img{height:44px;width:auto}.rv-map-actions{display:flex;align-items:center;gap:8px;font-weight:900}.rv-map-actions a{color:var(--rv-ink);text-decoration:none}.rv-lang{display:flex;gap:4px;background:#f4f9fd;border:1px solid var(--rv-border);border-radius:999px;padding:4px}.rv-lang a{padding:5px 7px;border-radius:999px;font-size:11px;color:#60758e}.rv-lang a.is-active{background:#fff;color:var(--rv-blue)}.rv-btn{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 14px;border-radius:999px;border:1px solid var(--rv-border);background:#fff;color:var(--rv-ink);font-weight:950;font-family:inherit;cursor:pointer;text-decoration:none;white-space:nowrap}.rv-btn-blue{background:linear-gradient(135deg,var(--rv-blue),#1b8cff);border-color:transparent;color:#fff}.rv-btn-teal{background:linear-gradient(135deg,var(--rv-teal),#02cfc0);border-color:transparent;color:#fff}.rv-panel-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;padding:24px 20px 30px}.rv-pill{display:inline-flex;padding:8px 13px;border-radius:999px;background:#e9fbf7;border:1px solid #bdeee7;color:#078b7f;font-weight:950;font-size:12px;margin-bottom:24px}.rv-map-panel h1{font-size:34px;line-height:1.05;letter-spacing:-.05em;margin:0;color:var(--rv-navy)}.rv-map-panel p{color:#52677f;line-height:1.6;font-size:15px}.rv-searchbox{display:grid;gap:10px;background:#fff;border:1px solid var(--rv-border);border-radius:22px;padding:14px;box-shadow:0 14px 38px rgba(7,24,47,.08);margin:22px 0}.rv-searchbox input,.rv-searchbox select{width:100%;height:46px;border:1px solid var(--rv-border);border-radius:999px;padding:0 14px;font-weight:800;color:var(--rv-ink);outline:none;background:#fff}.rv-search-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.rv-status{font-size:13px;font-weight:850;color:#b3261e}.rv-map-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0}.rv-stat{background:#fff;border:1px solid var(--rv-border);border-radius:16px;padding:14px;box-shadow:0 10px 24px rgba(7,24,47,.06)}.rv-stat strong{display:block;font-size:21px;color:var(--rv-navy)}.rv-stat span{font-size:11px;color:var(--rv-muted);font-weight:850}.rv-list-title{display:flex;justify-content:space-between;margin:20px 2px 12px;font-size:13px;font-weight:950}.rv-machine-list{display:grid;gap:12px}.rv-machine-card{width:100%;display:grid;grid-template-columns:68px 1fr;gap:12px;align-items:center;text-align:left;background:#fff;border:1px solid var(--rv-border);border-radius:18px;padding:12px;cursor:pointer;font-family:inherit;box-shadow:0 10px 28px rgba(7,24,47,.06)}.rv-machine-card img{width:68px;height:68px;border-radius:15px;object-fit:cover}.rv-machine-card strong{display:block;color:var(--rv-navy);font-size:14px}.rv-machine-card small,.rv-machine-card em{display:block;color:#60758e;font-size:12px;line-height:1.35;font-style:normal;margin-top:2px}.rv-map-canvas{position:relative;height:100vh;height:100dvh;background:#dceaf5}.rv-map-canvas-inner{position:absolute;inset:0}.leaflet-container{font-family:Inter,system-ui,sans-serif;background:#dceaf5}.rv-map-pin{display:block;width:30px;height:30px;background:var(--pin,#0875e1);border-radius:50% 50% 50% 0;transform:rotate(-45deg);box-shadow:0 10px 24px rgba(7,24,47,.24);border:3px solid #fff}.rv-map-pin i{position:absolute;width:10px;height:10px;background:#fff;border-radius:50%;left:7px;top:7px}.rv-map-user-dot{display:block;width:22px;height:22px;border-radius:50%;background:#04b9aa;border:4px solid #fff;box-shadow:0 0 0 8px rgba(4,185,170,.16),0 10px 24px rgba(7,24,47,.22)}.rv-popup-title{font-weight:950;color:var(--rv-navy);font-size:15px}.rv-popup-line,.rv-popup-goods{font-size:12px;color:#52677f;line-height:1.45}.rv-map-empty{border:1px dashed var(--rv-border);border-radius:16px;color:#60758e;padding:18px;font-size:13px;background:#fff}.leaflet-tile{max-width:none!important;max-height:none!important}@media(max-width:900px){html,body{overflow:auto}.rv-map-page{height:auto;display:block}.rv-map-panel{height:auto;min-height:42vh}.rv-map-canvas{height:58vh}.rv-map-actions{gap:6px}.rv-map-actions .rv-btn{padding:0 10px;font-size:12px}.rv-map-logo img{height:36px}}@media(max-width:560px){.rv-map-top{align-items:flex-start}.rv-map-actions{flex-wrap:wrap;justify-content:flex-end}.rv-search-actions,.rv-map-stats{grid-template-columns:1fr}.rv-map-panel h1{font-size:30px}}

/* 2026-05-30 final map/layout fix */
.rv-map-canvas,
.rv-map-canvas-inner,
.rv-map-canvas-inner .leaflet-container{width:100%;height:100%;min-height:100%;}
.leaflet-container img,
.leaflet-tile,
.leaflet-marker-icon,
.leaflet-marker-shadow{max-width:none!important;max-height:none!important;}
.leaflet-tile{width:256px!important;height:256px!important;min-width:0!important;min-height:0!important;margin:0!important;padding:0!important;border:0!important;object-fit:initial!important;}
.leaflet-pane,.leaflet-map-pane,.leaflet-tile-pane,.leaflet-overlay-pane,.leaflet-shadow-pane,.leaflet-marker-pane,.leaflet-tooltip-pane,.leaflet-popup-pane{position:absolute!important;}
.rv-map-top{min-height:92px;align-items:center;position:relative;z-index:50;background:rgba(255,255,255,.86);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
.rv-map-logo img{height:54px;max-width:170px;object-fit:contain;display:block}
.rv-map-actions{white-space:nowrap;flex-wrap:wrap;justify-content:flex-end;font-size:14px}
.rv-panel-scroll{scrollbar-width:thin;scrollbar-color:#b9cbe0 transparent;}
.rv-machine-card:hover{border-color:#9ccbf6;box-shadow:0 16px 34px rgba(7,24,47,.1);transform:translateY(-1px)}
.rv-searchbox input:focus,.rv-searchbox select:focus{border-color:#7abdf5;box-shadow:0 0 0 4px rgba(8,117,225,.1)}
@media(max-width:1180px){.rv-map-page{grid-template-columns:390px minmax(0,1fr)}.rv-map-logo img{height:42px}.rv-map-actions{font-size:13px}.rv-map-actions .rv-btn{min-height:38px;padding:0 12px}}
@media(max-width:760px){.rv-map-page{display:flex;flex-direction:column;height:100dvh}.rv-map-panel{height:48dvh;min-height:390px;max-height:58dvh}.rv-map-canvas{height:52dvh;min-height:360px}.rv-map-top{min-height:auto;padding:14px 14px}.rv-map-logo img{height:38px}.rv-panel-scroll{padding:18px 16px}.rv-map-panel h1{font-size:28px}.rv-map-actions .rv-lang{display:none}}

/* 2026-05-30 OpenStreetMap / Leaflet hard fix
   Some global image rules and cached/blocked CDN CSS can break Leaflet tiles.
   These rules restore the real Leaflet layout so OSM tiles fill the whole map. */
.rv-map-canvas,
.rv-map-canvas-inner,
.rv-map-canvas-inner .leaflet-container{
    position:relative;
    width:100%!important;
    height:100%!important;
    min-height:100%!important;
}
.leaflet-container{
    position:relative!important;
    overflow:hidden!important;
    background:#dceaf5!important;
    font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
.leaflet-pane,
.leaflet-tile,
.leaflet-marker-icon,
.leaflet-marker-shadow,
.leaflet-tile-container,
.leaflet-pane > svg,
.leaflet-pane > canvas,
.leaflet-zoom-box,
.leaflet-image-layer,
.leaflet-layer{
    position:absolute!important;
    left:0;
    top:0;
}
.leaflet-tile{
    width:256px!important;
    height:256px!important;
    max-width:none!important;
    max-height:none!important;
    min-width:0!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    object-fit:initial!important;
    display:block!important;
}
.leaflet-tile-pane{z-index:200!important;}
.leaflet-overlay-pane{z-index:400!important;}
.leaflet-shadow-pane{z-index:500!important;}
.leaflet-marker-pane{z-index:600!important;}
.leaflet-tooltip-pane{z-index:650!important;}
.leaflet-popup-pane{z-index:700!important;}
.leaflet-top,
.leaflet-bottom{position:absolute!important;z-index:1000!important;pointer-events:none!important;}
.leaflet-top{top:0!important;}
.leaflet-bottom{bottom:0!important;}
.leaflet-left{left:0!important;}
.leaflet-right{right:0!important;}
.leaflet-control{position:relative!important;z-index:1000!important;pointer-events:auto!important;float:left!important;clear:both!important;}
.leaflet-right .leaflet-control{float:right!important;}
.leaflet-top .leaflet-control{margin-top:10px!important;}
.leaflet-left .leaflet-control{margin-left:10px!important;}
.leaflet-right .leaflet-control{margin-right:10px!important;}
.leaflet-bottom .leaflet-control{margin-bottom:10px!important;}
.leaflet-control-zoom{border:1px solid rgba(0,0,0,.18)!important;border-radius:4px!important;overflow:hidden!important;}
.leaflet-control-zoom a{display:block!important;width:30px!important;height:30px!important;line-height:30px!important;text-align:center!important;background:#fff!important;color:#111!important;text-decoration:none!important;border-bottom:1px solid #ddd!important;font:700 18px/30px Arial,sans-serif!important;}
.leaflet-control-zoom a:last-child{border-bottom:0!important;}
.leaflet-control-attribution{background:rgba(255,255,255,.85)!important;font-size:11px!important;padding:2px 6px!important;border-radius:4px!important;color:#334!important;}
.leaflet-popup{position:absolute!important;text-align:center!important;margin-bottom:20px!important;}
.leaflet-popup-content-wrapper{background:#fff!important;border-radius:12px!important;box-shadow:0 12px 32px rgba(7,24,47,.16)!important;padding:1px!important;text-align:left!important;}
.leaflet-popup-content{margin:13px 18px!important;line-height:1.45!important;}
.leaflet-popup-tip-container{width:40px!important;height:20px!important;position:absolute!important;left:50%!important;margin-left:-20px!important;overflow:hidden!important;pointer-events:none!important;}
.leaflet-popup-tip{width:17px!important;height:17px!important;padding:1px!important;margin:-10px auto 0!important;transform:rotate(45deg)!important;background:#fff!important;box-shadow:0 12px 32px rgba(7,24,47,.16)!important;}
