/* Carte « Organisation course » — partagée app + page publique /parcours */
.rmw{display:flex;flex-direction:column;gap:10px;}
.rm-tabs{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding:1px;margin:0 -1px;}
.rm-tabs::-webkit-scrollbar{display:none;}
.rm-tabs{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent);}
.rm-tabs.at-end{-webkit-mask-image:none;mask-image:none;}
.rm-tab{flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-start;gap:1px;border:1.5px solid #d6e2f5;background:#fff;border-radius:12px;padding:7px 12px;cursor:pointer;font-family:inherit;text-align:left;transition:background .15s,border-color .15s;}
.rm-tab b{font-size:12px;font-weight:800;color:#0C447C;white-space:nowrap;}
.rm-tab span{font-size:10.5px;color:#6b7f99;white-space:nowrap;}
.rm-tab[aria-selected="true"]{background:#0C447C;border-color:#0C447C;}
.rm-tab[aria-selected="true"] b,.rm-tab[aria-selected="true"] span{color:#fff;}
.rm-tab:focus-visible,.rm-fs:focus-visible,.rm-row:focus-visible{outline:2px solid #1B4FD8;outline-offset:2px;}
#race-map{height:320px;border-radius:12px;overflow:hidden;border:1px solid #e0e8f5;background:#e8f0fb;display:flex;align-items:center;justify-content:center;}
#race-map.leaflet-container{display:block;}
#race-map .leaflet-tile-pane{filter:saturate(.65) brightness(1.03) contrast(.96);}
.rm-fs{height:36px;border:none;border-radius:10px;background:#fff;color:#0C447C;box-shadow:0 1px 6px rgba(0,0,0,.25);cursor:pointer;display:flex;align-items:center;gap:6px;padding:0 12px 0 10px;font:800 12.5px/1 system-ui,-apple-system,sans-serif;}
.rm-close{display:none;position:absolute;top:calc(env(safe-area-inset-top) + 12px);right:12px;z-index:1001;width:44px;height:44px;border-radius:50%;border:none;background:#fff;color:#0C447C;box-shadow:0 2px 10px rgba(0,0,0,.3);cursor:pointer;align-items:center;justify-content:center;padding:0;}
.rm-close:focus-visible{outline:2px solid #1B4FD8;outline-offset:2px;}
.rm-sum{display:none;position:absolute;left:12px;right:12px;bottom:calc(env(safe-area-inset-bottom) + 26px);z-index:1000;background:#fff;border-radius:14px;box-shadow:0 2px 12px rgba(0,0,0,.22);padding:10px 14px;font-size:12.5px;color:#1f2d3d;}
.rm-sum b{color:#0C447C;}
.rm-legend{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:11px;color:#4a5b73;}
.rm-legend i{display:inline-block;width:18px;height:4px;border-radius:2px;vertical-align:middle;margin-right:6px;}
.rm-legend span{display:inline-flex;align-items:center;}
.rm-legend i.walk{height:0;border-top:3px dotted #1D4ED8;border-radius:0;}
.rm-legend i.dir{width:14px;height:14px;border-radius:50%;background:#16A34A;display:inline-flex;align-items:center;justify-content:center;transform:rotate(90deg);}
.rm-legend i.km{width:14px;height:14px;border-radius:50%;background:#fff;border:2px solid #DC2626;}
.rm-legend .course-item{flex-basis:100%;display:block;font-size:12px;line-height:1.45;color:#1f2d3d;}
.rm-legend .course-item i{vertical-align:-1px;}
.rm-legend .course-item b{color:#B91C1C;margin-right:4px;}
.rm-legend i.course,.rm-sum-leg i.course{width:28px;height:7px;border-radius:2px;background:linear-gradient(#DC2626,#DC2626) top/100% 2px no-repeat,linear-gradient(#DC2626,#DC2626) bottom/100% 2px no-repeat,repeating-linear-gradient(90deg,#DC2626 0 6px,#fff 6px 10px);}
.rm-sum-leg{display:flex;gap:12px;flex-wrap:wrap;font-size:11px;color:#4a5b73;margin-bottom:6px;padding-bottom:6px;border-bottom:1px solid #e6ecf4;}
.rm-sum-leg span{display:inline-flex;align-items:center;gap:5px;}
.rm-sum-leg i{display:inline-block;width:18px;height:4px;border-radius:2px;}
.rm-sum-leg i.car,.rm-legend i.car{background:linear-gradient(90deg,#14532D 0 33%,#16A34A 33% 66%,#A3E635 66%);}
.rm-sum-leg i.walk{height:0;border-top:3px dotted #1D4ED8;border-radius:0;}
.rm-info{background:#F5F8FD;border-radius:12px;padding:12px 14px;font-size:12.5px;color:#1f2d3d;}
.rm-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:8px;}
.rm-head b{font-size:13.5px;color:#0C447C;}
.rm-head span{font-size:11px;color:#6b7f99;white-space:nowrap;}
.rm-stats{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px;}
.rm-stat{background:#fff;border:1px solid #e0e8f5;border-radius:8px;padding:4px 9px;font-size:11.5px;font-weight:700;color:#0C447C;font-variant-numeric:tabular-nums;}
.rm-steps{margin:0;padding:0;list-style:none;counter-reset:s;display:flex;flex-direction:column;gap:6px;}
.rm-steps li{position:relative;padding-left:26px;line-height:1.4;}
.rm-steps li::before{counter-increment:s;content:counter(s);position:absolute;left:0;top:0;width:18px;height:18px;border-radius:50%;background:var(--c,#16A34A);color:var(--ink,#fff);font-size:10.5px;font-weight:800;display:flex;align-items:center;justify-content:center;}
.rm-steps li.walk::before{content:"";background:#fff;border:2px dashed #1B4FD8;width:14px;height:14px;}
.rm-row{display:flex;align-items:center;gap:10px;width:100%;background:#fff;border:1px solid #e0e8f5;border-radius:10px;padding:8px 10px;margin-top:6px;cursor:pointer;font-family:inherit;text-align:left;}
.rm-row .n{width:22px;height:22px;border-radius:50%;background:#1DA054;color:#fff;font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.rm-row .t{flex:1;min-width:0;font-size:12px;color:#1f2d3d;}
.rm-row .t b{color:#0C447C;}
.rm-row .m{font-size:11px;color:#6b7f99;white-space:nowrap;font-variant-numeric:tabular-nums;}
.rmw.is-fs{position:fixed;inset:0;z-index:9000;background:#e8f0fb;gap:0;}
.rmw.is-fs #race-map{position:absolute !important;inset:0;height:auto;border-radius:0;border:none;}
.rmw.is-fs .rm-tabs{position:absolute;top:calc(env(safe-area-inset-top) + 12px);left:12px;right:68px;z-index:1000;margin:0;padding:0;}
.rmw.is-fs .rm-tab{box-shadow:0 2px 8px rgba(0,0,0,.18);border-color:#fff;}
.rmw.is-fs .rm-tab[aria-selected="true"]{border-color:#0C447C;}
.rmw.is-fs .leaflet-top{top:calc(env(safe-area-inset-top) + 70px);}
.rmw.is-fs .rm-fs,.rmw.is-fs .rm-legend,.rmw.is-fs .rm-info{display:none;}
.rmw.is-fs .rm-close{display:flex;}
.rmw.is-fs .rm-sum{display:block;}
.rm-share{flex-shrink:0;display:flex;align-items:center;gap:6px;height:34px;padding:0 12px;border:1.5px solid #d6e2f5;border-radius:10px;background:#fff;color:#0C447C;font:800 12.5px/1 system-ui,-apple-system,sans-serif;cursor:pointer;}
.rm-share:focus-visible{outline:2px solid #1B4FD8;outline-offset:2px;}
.rm-hint{margin:-2px 0 8px;font-size:12px;color:#4a5b73;}
.rm-row .chev{font-size:20px;line-height:1;color:#0C447C;font-weight:700;margin-left:2px;}
.rm-tab b{display:inline-flex;align-items:center;gap:6px;}
.rm-dot{display:inline-block;width:10px;height:10px;border-radius:50%;box-shadow:0 0 0 1.5px #fff;}
.rm-legend i.car{width:30px;}
.rm-legend i.pt{width:auto;height:16px;display:inline-flex;align-items:center;border:1.5px solid #1B4FD8;border-radius:8px;overflow:hidden;background:#fff;color:#1B4FD8;font:800 9px/1 system-ui,sans-serif;font-style:normal;padding-right:4px;gap:3px;}
.rm-legend i.pt b{background:#1B4FD8;color:#fff;height:100%;display:flex;align-items:center;padding:0 3px;}
.rm-loc{width:34px;height:34px;border:none;border-radius:8px;background:#fff;color:#0C447C;box-shadow:0 1px 5px rgba(0,0,0,.25);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;margin-top:8px !important;}
.rm-loc.on{color:#1A73E8;}
.rm-loc.follow{background:#1A73E8;color:#fff;}
.rm-loc:focus-visible,.rm-nav:focus-visible{outline:2px solid #1B4FD8;outline-offset:2px;}
.rm-gps{font-size:12.5px;line-height:1.4;color:#0C2D57;background:#E8F0FE;border:1px solid #BFD3F5;border-radius:10px;padding:8px 11px;}
.rm-gps.warn{background:#FFF7E6;border-color:#F5D08A;color:#7A4B00;}
.rm-gps.alert{background:#FDECEC;border-color:#F3A9A9;color:#991B1B;}
.rm-gps .acc{color:#5b6675;font-size:11.5px;}
.rmw.is-fs .rm-gps{position:absolute;z-index:1000;left:12px;right:12px;top:calc(env(safe-area-inset-top) + 70px);box-shadow:0 2px 10px rgba(0,0,0,.2);}
.rmw.is-fs .rm-gps:not([hidden]) ~ #race-map .leaflet-top{top:calc(env(safe-area-inset-top) + 128px);}
.rm-me{position:relative;width:44px;height:44px;}
.rm-me-dot{position:absolute;left:14px;top:14px;width:16px;height:16px;border-radius:50%;background:#1A73E8;border:3px solid #fff;box-sizing:border-box;box-shadow:0 0 0 0 rgba(26,115,232,.5);animation:rm-pulse 2s infinite;}
.rm-me-head{position:absolute;left:0;top:0;width:44px;height:44px;}
.rm-me-head::before{content:"";position:absolute;left:15px;top:1px;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:14px solid rgba(26,115,232,.75);}
@keyframes rm-pulse{0%{box-shadow:0 0 0 0 rgba(26,115,232,.5);}70%{box-shadow:0 0 0 12px rgba(26,115,232,0);}100%{box-shadow:0 0 0 0 rgba(26,115,232,0);}}
@media (prefers-reduced-motion:reduce){.rm-me-dot{animation:none;}}
.rm-nav{display:flex;align-items:center;justify-content:center;margin-top:12px;height:42px;border-radius:10px;background:#1A73E8;color:#fff;font:800 13.5px/1 system-ui,-apple-system,sans-serif;text-decoration:none;}
.rm-nav.sm{display:inline-flex;height:28px;margin:6px 0 0;padding:0 12px;font-size:12px;}
.rm-nav-note{margin:6px 0 0;font-size:11.5px;color:#5b6675;line-height:1.4;}
/* ─── Guidage GPS intégré ─── */
.rm-guide{background:#0C447C;color:#fff;border-radius:12px;padding:12px;margin-bottom:12px;}
.rm-guide>b{display:block;font-size:14px;}
.rm-guide>span{display:block;font-size:11.5px;color:#BFD3EE;margin:2px 0 10px;}
.rm-guide-btns{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;}
.rm-guide-btns button{display:flex;flex-direction:column;align-items:center;gap:2px;padding:9px 4px;border:none;border-radius:10px;background:#fff;color:#0C447C;cursor:pointer;font-family:inherit;}
.rm-guide-btns b{font-size:14px;font-weight:900;}
.rm-guide-btns span{font-size:10.5px;color:#5b6675;}
.rm-guide-btns button:focus-visible{outline:2px solid #FFD54F;outline-offset:2px;}
button.rm-nav{width:100%;border:none;cursor:pointer;font-family:inherit;}
button.rm-nav.sm{width:auto;}
.rm-nav-note a{color:#1A73E8;}
.rn-top,.rn-bot{display:none;}
.rmw.is-nav .rm-tabs,.rmw.is-nav .rm-sum,.rmw.is-nav .rm-close,.rmw.is-nav .rm-gps,.rmw.is-nav .rm-loc,.rmw.is-nav .rm-fs{display:none !important;}
.rmw.is-nav .leaflet-top{top:calc(env(safe-area-inset-top) + 118px);}
.rmw.is-nav .rn-top:not([hidden]){display:grid;grid-template-columns:52px 1fr;align-items:center;gap:4px 10px;position:absolute;z-index:1100;left:10px;right:10px;top:calc(env(safe-area-inset-top) + 10px);background:#0F5132;color:#fff;border-radius:16px;padding:10px 14px;box-shadow:0 4px 16px rgba(0,0,0,.3);}
.rmw.is-nav .rn-top.rn-msg:not([hidden]){background:#0C447C;grid-template-columns:1fr;}
.rmw.is-nav .rn-top.rn-warn:not([hidden]),.rmw.is-nav .rn-top.rn-alert:not([hidden]){background:#9A3412;}
.rmw.is-nav .rn-top.rn-ok:not([hidden]){background:#15803D;}
.rn-top.rn-msg .rn-ic,.rn-top.rn-warn .rn-ic,.rn-top.rn-ok .rn-ic{display:none;}
.rn-ic{display:flex;align-items:center;justify-content:center;color:#fff;}
.rn-dist{font:900 30px/1.05 system-ui,-apple-system,sans-serif;font-variant-numeric:tabular-nums;}
.rn-txt{font:700 15px/1.3 system-ui,-apple-system,sans-serif;}
.rn-next{grid-column:1/-1;font-size:12.5px;color:#C8E6D2;border-top:1px solid rgba(255,255,255,.2);padding-top:6px;margin-top:2px;}
.rmw.is-nav .rn-bot:not([hidden]){display:flex;align-items:center;gap:8px;position:absolute;z-index:1100;left:10px;right:10px;bottom:calc(env(safe-area-inset-bottom) + 26px);background:#fff;border-radius:14px;padding:10px 12px;box-shadow:0 2px 12px rgba(0,0,0,.25);}
.rn-eta{flex:1;min-width:0;font-size:13px;color:#1f2d3d;line-height:1.35;}
.rn-eta b{color:#0F5132;font-size:21px;font-weight:900;font-variant-numeric:tabular-nums;}
.rn-eta i{font-style:normal;font-weight:700;font-size:14px;color:#5b6675;margin-left:8px;font-variant-numeric:tabular-nums;}
.rn-eta span{display:block;font-size:11.5px;color:#5b6675;}
.rn-btns{display:flex;gap:6px;flex-shrink:0;}
.rn-b{height:40px;min-width:40px;padding:0 12px;border-radius:10px;border:1.5px solid #d6e2f5;background:#fff;color:#0C447C;font:800 13px/1 system-ui,-apple-system,sans-serif;cursor:pointer;}
.rn-b.rn-stop{background:#B91C1C;border-color:#B91C1C;color:#fff;}
.rn-b.rn-parked{background:#1D4ED8;border-color:#1D4ED8;color:#fff;}
.rn-b:focus-visible{outline:2px solid #1B4FD8;outline-offset:2px;}
.rn-me{position:relative;width:40px;height:40px;}
.rn-me-dot{position:absolute;left:12px;top:12px;width:16px;height:16px;border-radius:50%;background:#1A73E8;border:3px solid #fff;box-sizing:border-box;box-shadow:0 1px 4px rgba(0,0,0,.4);}
.rn-me-cone{position:absolute;inset:0;}
.rn-me-cone::before{content:"";position:absolute;left:12px;top:0;border-left:8px solid transparent;border-right:8px solid transparent;border-bottom:16px solid rgba(26,115,232,.8);}
/* Guidage — vue 3D derrière la voiture (MapLibre) */
.rmw .rn-gl{position:absolute;inset:0;z-index:1050;opacity:0;pointer-events:none;transition:opacity .4s;background:#e8eef5;}
.rn-gl.on{opacity:1;pointer-events:auto;}
.rn-credit{position:absolute;z-index:2;left:0;right:0;bottom:calc(env(safe-area-inset-bottom) + 6px);text-align:center;font:600 10px/1.2 system-ui,-apple-system,sans-serif;color:#4b5563;text-decoration:none;text-shadow:0 0 3px #fff,0 0 3px #fff;}
.rn-fab,.rn-chips{display:none;}
.rmw.is-nav .rn-fab:not([hidden]){display:flex;flex-direction:column;gap:10px;position:absolute;z-index:1100;right:12px;bottom:calc(env(safe-area-inset-bottom) + 112px);}
.rn-f{width:50px;height:50px;border-radius:50%;border:none;background:#fff;color:#0C447C;box-shadow:0 2px 10px rgba(0,0,0,.25);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;}
.rn-f.is-off{color:#B91C1C;}
.rn-f.rn-over[aria-pressed="true"]{background:#0C447C;color:#fff;}
.rn-f:focus-visible,.rn-recenter:focus-visible{outline:2px solid #1B4FD8;outline-offset:2px;}
.rmw.is-nav .rn-chips:not([hidden]){display:flex;justify-content:center;position:absolute;z-index:1100;left:74px;right:74px;bottom:calc(env(safe-area-inset-bottom) + 116px);pointer-events:none;}
.rn-chips>*{pointer-events:auto;}
.rn-road{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:rgba(17,24,39,.84);color:#fff;font:700 13.5px/1 system-ui,-apple-system,sans-serif;padding:10px 15px;border-radius:999px;box-shadow:0 2px 10px rgba(0,0,0,.25);}
.rn-recenter{display:flex;align-items:center;gap:7px;background:#fff;color:#1A73E8;border:none;border-radius:999px;padding:11px 18px;font:800 14px/1 system-ui,-apple-system,sans-serif;box-shadow:0 2px 10px rgba(0,0,0,.25);cursor:pointer;}
.rn-recenter[hidden],.rn-road[hidden]{display:none;}
.rn-recenter:not([hidden])~.rn-road{display:none;}
.rn-puck{position:relative;width:56px;height:56px;}
.rn-puck .rn-arrow{display:block;filter:drop-shadow(0 3px 3px rgba(0,0,0,.35));}
.rn-puck .rn-dot{display:none;position:absolute;left:17px;top:17px;width:22px;height:22px;border-radius:50%;background:#1A73E8;border:4px solid #fff;box-sizing:border-box;box-shadow:0 1px 5px rgba(0,0,0,.4);}
.rn-puck.is-dot .rn-arrow{display:none;}
.rn-puck.is-dot .rn-dot{display:block;}
.rn-pin{width:max-content;font-family:system-ui,-apple-system,sans-serif;line-height:1;}
.rn-pin-in.is-p b{display:block;width:30px;height:30px;border-radius:8px;background:#1D4ED8;color:#fff;border:2.5px solid #fff;box-sizing:border-box;font-size:16px;font-weight:900;line-height:25px;text-align:center;box-shadow:0 2px 6px rgba(0,0,0,.35);}
.rn-pin-in.is-rdv{position:relative;display:flex;align-items:baseline;gap:5px;margin-bottom:8px;background:#15803D;color:#fff;border:2.5px solid #fff;border-radius:12px;padding:5px 9px;box-shadow:0 2px 8px rgba(0,0,0,.35);white-space:nowrap;}
.rn-pin-in.is-rdv b{font-size:15px;font-weight:900;}
.rn-pin-in.is-rdv span{font-size:12px;font-weight:700;opacity:.92;}
.rn-pin-in.is-rdv::after{content:"";position:absolute;left:50%;bottom:-10px;margin-left:-7px;border:7px solid transparent;border-top:8px solid #fff;border-bottom:0;}
@media (prefers-reduced-motion: reduce){.rn-gl{transition:none;}}
.rn-car{position:relative;width:100px;height:85px;pointer-events:none;}
.rn-car img{position:relative;display:block;width:100%;height:100%;filter:drop-shadow(0 3px 4px rgba(0,0,0,.35));-webkit-user-select:none;user-select:none;}
.rn-car-sh{position:absolute;left:12%;right:12%;bottom:2px;height:16px;border-radius:50%;background:radial-gradient(closest-side,rgba(0,0,0,.35),rgba(0,0,0,0));}
.rn-car.rn-car-2d{width:72px;height:61px;}
