.pimm-page{display:grid;grid-template-rows:auto 1fr;height:100vh;overflow:hidden;padding-top:4rem;box-sizing:border-box;position:relative;z-index:1}.pimm-header{padding:.7rem 1.25rem .65rem;background:#081020f5;border-bottom:1px solid rgba(77,184,212,.15);display:flex;align-items:center;gap:1rem;flex-wrap:wrap;flex-shrink:0}[data-theme=light] .pimm-header{background:#fffffff7;border-bottom-color:#1a65801f}.pimm-header-brand{display:flex;align-items:center;gap:.5rem;margin-right:auto}.pimm-header-title{font-size:.95rem;font-weight:800;color:#fff;margin:0;letter-spacing:-.01em}[data-theme=light] .pimm-header-title{color:var(--text-light, #0b1a2e)}.pimm-kpis{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.pimm-kpi{display:flex;align-items:baseline;gap:.2rem;font-size:.78rem;color:var(--text-muted, #8ba3bd)}.pimm-kpi i{color:#4db8d4;margin-right:.15rem;font-size:.7rem}.pimm-kpi-val{font-weight:700;color:#e8ecf0}[data-theme=light] .pimm-kpi-val{color:#0b1a2e}.pimm-kpi-sep{color:#4db8d459;font-size:.75rem}.pimm-header-controls{display:flex;align-items:center;gap:.5rem}.pimm-status{display:flex;align-items:center;gap:.4rem;font-size:.72rem;color:var(--text-muted, #8ba3bd)}.pimm-status-dot{width:7px;height:7px;border-radius:50%;background:#f59e0b;flex-shrink:0}.pimm-status-dot--ok{background:#10b981}.pimm-status-dot--err{background:#ef4444}.pimm-btn{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .75rem;border:1px solid rgba(77,184,212,.25);background:#4db8d412;color:#c8dde8;border-radius:6px;font-size:.75rem;font-weight:600;cursor:pointer;text-decoration:none;transition:background .15s,border-color .15s;white-space:nowrap}.pimm-btn:hover{background:#4db8d429;border-color:#4db8d480}.pimm-btn--accent{background:#4db8d42e;border-color:#4db8d480;color:#4db8d4}.pimm-btn--accent:hover{background:#4db8d447}[data-theme=light] .pimm-btn{color:#1a6580;border-color:#1a658040;background:#1a65800f}.pimm-body{display:flex;overflow:hidden;min-height:0}.pimm-resize-handle{position:relative;flex-shrink:0;width:12px;cursor:col-resize;display:flex;align-items:center;justify-content:center;background:#4db8d40f;border-left:1px solid rgba(77,184,212,.08);border-right:1px solid rgba(77,184,212,.08);touch-action:none;z-index:50}.pimm-resize-handle:hover,.pimm-resize-handle.is-dragging{background:#4db8d438}.pimm-resize-handle-grip{display:flex;align-items:center;justify-content:center;width:18px;height:46px;border-radius:6px;background:#4db8d42e;color:#c8e6f0d9;font-size:.7rem;pointer-events:none;transition:background .12s,transform .12s}.pimm-resize-handle:hover .pimm-resize-handle-grip,.pimm-resize-handle.is-dragging .pimm-resize-handle-grip{background:#4db8d480;color:#fff;transform:scaleX(1.15)}.pimm-resize-handle.is-collapsed{width:22px;background:#060e1ceb}.pimm-resize-handle.is-collapsed .pimm-resize-handle-grip{display:none}.pimm-resize-handle-chevron{display:none;font-size:.8rem;color:#4db8d4;pointer-events:none}.pimm-resize-handle.is-collapsed .pimm-resize-handle-chevron{display:block}[data-theme=light] .pimm-resize-handle.is-collapsed{background:#f8fbfdf2}[data-theme=light] .pimm-resize-handle-grip{color:#0b1a2ebf}body.pimm-resizing{cursor:col-resize;user-select:none}.pimm-sidebar{width:320px;min-width:0;flex-shrink:0;background:#060e1cf7;border-right:1px solid rgba(77,184,212,.1);display:flex;flex-direction:column;overflow:hidden;transition:width .2s ease}body.pimm-resizing .pimm-sidebar{transition:none}[data-theme=light] .pimm-sidebar{background:#f8fbfdfa;border-right-color:#1a65801a}.pimm-sidebar-hint{padding:.75rem 1rem .5rem;font-size:.75rem;color:var(--text-muted, #8ba3bd);border-bottom:1px solid rgba(77,184,212,.07);margin:0}.pimm-sidebar-hint i{color:#4db8d4;margin-right:.3rem}.pimm-etape-list{list-style:none;padding:.5rem 0;margin:0;overflow-y:auto;flex:1}.pimm-list-loading{padding:1.5rem 1rem;font-size:.8rem;color:var(--text-muted, #8ba3bd);text-align:center}.pimm-photos-panel{width:300px;min-width:0;flex-shrink:0;background:#060e1cf7;border-left:1px solid rgba(77,184,212,.1);overflow-y:auto;padding-bottom:1rem;transition:width .2s ease}body.pimm-resizing .pimm-photos-panel{transition:none}[data-theme=light] .pimm-photos-panel{background:#f8fbfdfa;border-left-color:#1a65801a}.pimm-photos-panel-tabs{display:flex;border-bottom:1px solid rgba(77,184,212,.07)}.pimm-photos-panel-tab{flex:1;padding:.75rem .6rem;margin:0;font-size:.72rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--text-muted, #8ba3bd);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;font-family:inherit}.pimm-photos-panel-tab i{color:#4db8d4;margin-right:.35rem}.pimm-photos-panel-tab.is-active{color:#c3d7e6f2;border-bottom-color:#4db8d4}[data-theme=light] .pimm-photos-panel-tab{color:#557}[data-theme=light] .pimm-photos-panel-tab.is-active{color:#1a3a52}.pimm-photos-panel-hint,.pimm-photos-panel-empty{padding:1rem;font-size:.75rem;color:var(--text-muted, #8ba3bd);margin:0}.pimm-photos-panel-loading{padding:1.5rem 1rem;font-size:.8rem;color:var(--text-muted, #8ba3bd);text-align:center}.pimm-photos-panel-grid{display:grid;grid-template-columns:1fr 1fr;gap:.4rem;padding:.75rem}.pimm-photo-frame{position:relative;display:block;width:100%;aspect-ratio:1;overflow:hidden;border-radius:4px;border:1px solid rgba(77,184,212,.12);transition:border-color .12s}.pimm-photo-frame:hover{border-color:#4db8d466}.pimm-photos-panel-grid img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;cursor:pointer;transition:transform .12s}.pimm-photo-frame:hover img{transform:scale(1.03)}.pimm-photo-caption{position:absolute;left:0;right:0;bottom:0;padding:.25rem .3rem;font-size:.58rem;line-height:1.35;font-weight:600;color:#fff;background:linear-gradient(to top,#000c,#0000);transform:translateY(100%);opacity:0;transition:transform .15s ease,opacity .15s ease;pointer-events:none}.pimm-photo-frame:hover .pimm-photo-caption{transform:translateY(0);opacity:1}@media (hover: none){.pimm-photo-caption{transform:translateY(0);opacity:1}}.pimm-photos-panel-place{grid-column:1 / -1;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:#4db8d4;margin:.4rem 0 .1rem;padding:0 .1rem;border-radius:3px;transition:background .3s}.pimm-photos-panel-place--flash{background:#4db8d440}.pimm-photos-panel-place.is-dimmed,.pimm-photos-panel-grid.is-dimmed{opacity:.28;filter:grayscale(.6);transition:opacity .2s,filter .2s}.pimm-photos-panel-grid.is-dimmed img{cursor:default;pointer-events:none}.pimm-photos-panel-reset{display:flex;align-items:center;gap:.35rem;width:calc(100% - 1.5rem);margin:.75rem .75rem 0;padding:.45rem .7rem;background:#4db8d41f;border:1px solid rgba(77,184,212,.3);border-radius:6px;color:#4db8d4;font-size:.7rem;font-weight:700;cursor:pointer;font-family:inherit}.pimm-photos-panel-reset:hover{background:#4db8d433}.pimm-etape-item{padding:.65rem 1rem;cursor:pointer;border-bottom:1px solid rgba(77,184,212,.05);transition:background .12s;display:flex;align-items:flex-start;gap:.65rem}.pimm-etape-item:hover{background:#4db8d40f}.pimm-etape-item.is-active{background:#4db8d41f;border-left:3px solid #4db8d4}.pimm-etape-num{width:24px;height:24px;border-radius:50%;background:#fc4c02;color:#fff;font-size:.65rem;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px}.pimm-etape-body{flex:1;min-width:0}.pimm-etape-ville{font-size:.82rem;font-weight:700;color:#e8ecf0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}[data-theme=light] .pimm-etape-ville{color:#0b1a2e}.pimm-etape-meta{font-size:.7rem;color:var(--text-muted, #8ba3bd);margin-top:.15rem}.pimm-etape-indicators{display:flex;gap:.3rem;margin-top:.25rem}.pimm-ind{font-size:.62rem;padding:.1rem .4rem;border-radius:3px;background:#4db8d41f;color:#4db8d4}.pimm-ind--photo{background:#f59e0b1f;color:#f59e0b}.pimm-ind--video{background:#ef44441f;color:#ef4444}.pimm-ind--recit{background:#10b9811f;color:#10b981}#pimmDetailView{display:flex;flex-direction:column;height:100%;overflow:hidden}.pimm-btn-retour{display:flex;align-items:center;gap:.4rem;padding:.6rem 1rem;border:0;border-bottom:1px solid rgba(77,184,212,.1);background:#4db8d40f;color:#4db8d4;font-size:.75rem;font-weight:700;cursor:pointer;width:100%;text-align:left;transition:background .12s;flex-shrink:0}.pimm-btn-retour:hover{background:#4db8d41f}#pimmDetailContent{flex:1;overflow-y:auto;padding:0}.detail-head{padding:.9rem 1rem .7rem;border-bottom:1px solid rgba(77,184,212,.08)}.detail-etape-num{font-size:.68rem;font-weight:800;color:#fc4c02;letter-spacing:.06em;text-transform:uppercase}.detail-ville{font-size:1rem;font-weight:800;color:#e8ecf0;margin:.2rem 0 .1rem;line-height:1.2}[data-theme=light] .detail-ville{color:#0b1a2e}.detail-note{font-size:.72rem;color:var(--text-muted, #8ba3bd);font-style:italic}.detail-photos{padding:.75rem 1rem;border-bottom:1px solid rgba(77,184,212,.06)}.detail-section-title{font-size:.68rem;font-weight:800;color:#4db8d4;letter-spacing:.08em;text-transform:uppercase;margin:0 0 .5rem;display:flex;align-items:center;gap:.3rem}.photos-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}.photo-thumb{width:100%;aspect-ratio:1;object-fit:cover;border-radius:3px;cursor:pointer;transition:opacity .12s,transform .12s}.photo-thumb:hover{opacity:.85;transform:scale(1.02)}.photos-album-link{display:flex;align-items:center;gap:.4rem;padding:.55rem .75rem;margin-top:.5rem;background:#4db8d414;border:1px solid rgba(77,184,212,.2);border-radius:6px;color:#4db8d4;font-size:.75rem;font-weight:600;text-decoration:none;transition:background .12s}.photos-album-link:hover{background:#4db8d429}.photos-empty{font-size:.75rem;color:var(--text-muted, #8ba3bd);font-style:italic;margin:0}.detail-video{padding:.75rem 1rem;border-bottom:1px solid rgba(77,184,212,.06)}.detail-video-embed{width:100%;aspect-ratio:16/9;border:0;border-radius:6px;background:#000}.detail-garmin{padding:.75rem 1rem;border-bottom:1px solid rgba(77,184,212,.06)}.garmin-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:.4rem}.garmin-cell{background:#4db8d40f;border-radius:5px;padding:.4rem .35rem;text-align:center}.garmin-val{display:block;font-size:.9rem;font-weight:700;color:#4db8d4;line-height:1.1}.garmin-lab{display:block;font-size:.6rem;color:var(--text-muted, #8ba3bd);margin-top:.1rem}.garmin-loading{font-size:.72rem;color:var(--text-muted, #8ba3bd);font-style:italic}.detail-recits{padding:.75rem 1rem;border-bottom:1px solid rgba(77,184,212,.06)}.recit-links{display:flex;flex-direction:column;gap:.35rem;margin-top:.4rem}.recit-link{display:flex;align-items:center;gap:.4rem;padding:.45rem .65rem;background:#10b98112;border:1px solid rgba(16,185,129,.18);border-radius:5px;color:#10b981;font-size:.72rem;font-weight:600;text-decoration:none;transition:background .12s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recit-link:hover{background:#10b98124}.recit-link i{flex-shrink:0}.pimm-map-wrap{flex:1;position:relative;overflow:hidden;min-width:0;min-height:0}#pimm-leaflet{position:absolute;inset:0;width:100%;height:100%}.pimm-etape-marker{position:relative;width:30px;height:30px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:#fc4c02;border:2px solid rgba(0,0,0,.4);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 8px #0006;transition:transform .15s}.pimm-etape-marker:hover{transform:rotate(-45deg) scale(1.15)}.pimm-etape-marker.has-media{background:#4db8d4}.pimm-etape-marker.is-repos{background:#22c55e}.pimm-etape-marker-num{transform:rotate(45deg);font-size:.62rem;font-weight:800;color:#fff;line-height:1}.pimm-etape-marker-video-badge{position:absolute;top:-4px;right:-6px;width:15px;height:15px;border-radius:50%;background:#ef4444;border:2px solid rgba(255,255,255,.9);box-shadow:0 1px 3px #00000080;display:flex;align-items:center;justify-content:center;transform:rotate(45deg)}.pimm-etape-marker-video-badge i{font-size:.42rem;color:#fff;transform:rotate(0)}.pimm-popup{font-size:.82rem}.pimm-popup-num{font-size:.64rem;font-weight:800;color:#fc4c02;letter-spacing:.04em;text-transform:uppercase;margin-bottom:.1rem}.pimm-popup-title{font-weight:700;margin-bottom:.3rem;color:#0b1a2e}.pimm-popup-meta{font-size:.72rem;color:#5a7a9a;margin-bottom:.4rem}.pimm-popup-places{font-size:.68rem;line-height:1.5;color:#6b8299;background:#4db8d414;border-radius:5px;padding:.35rem .5rem;margin-bottom:.5rem;max-height:4.5em;overflow-y:auto}.pimm-popup-places i{color:#4db8d4;margin-right:.2rem}.pimm-popup-cluster-list{display:flex;flex-direction:column;gap:.25rem;margin-top:.3rem}.pimm-popup-cluster-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.4rem .6rem;background:#4db8d412;border:1px solid rgba(77,184,212,.18);border-radius:6px;color:#1a3a52;font-size:.72rem;font-weight:600;cursor:pointer;font-family:inherit;text-align:left;transition:background .12s}.pimm-popup-cluster-row:hover{background:#4db8d429}.pimm-popup-cluster-ind{display:flex;gap:.3rem;color:#4db8d4;font-size:.68rem;flex-shrink:0}.pimm-popup-actions{display:flex;gap:.4rem;flex-wrap:wrap}.pimm-popup-btn{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .7rem;background:#1a7f99;color:#fff;border-radius:6px;font-size:.7rem;font-weight:700;text-decoration:none;cursor:pointer;border:0;box-shadow:0 1px 3px #0b1a2e4d;transition:background .12s,transform .12s,box-shadow .12s}.pimm-popup-btn:hover{background:#1c8fac;transform:translateY(-1px);box-shadow:0 3px 8px #0b1a2e59}.pimm-popup-btn--video{background:#b3403a}.pimm-popup-btn--video:hover{background:#c34941}.pimm-place-marker{width:18px;height:18px;border-radius:50%;background:#f59e0b;border:2px solid rgba(255,255,255,.85);box-shadow:0 1px 4px #00000080;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .15s}.pimm-place-marker:hover{transform:scale(1.25)}.pimm-place-marker i{font-size:.55rem;color:#1a1206}.pimm-video-marker{width:18px;height:18px;border-radius:50%;background:#ef4444;border:2px solid rgba(255,255,255,.85);box-shadow:0 1px 4px #00000080;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .15s}.pimm-video-marker:hover{transform:scale(1.25)}.pimm-video-marker i{font-size:.5rem;color:#fff}.pimm-place-popup{font-size:.8rem;max-width:220px}.pimm-place-popup-title{font-weight:700;color:#0b1a2e;margin-bottom:.25rem}.pimm-place-popup-admin{font-size:.72rem;color:#5a7a9a;line-height:1.5;margin-bottom:.4rem}.pimm-place-popup-admin i{width:12px;text-align:center}.pimm-place-popup-count{font-size:.72rem;font-weight:700;color:#b45309;margin-bottom:.3rem}.pimm-place-popup-etape{font-size:.68rem;color:#8b95a5;text-transform:uppercase;letter-spacing:.03em;margin-bottom:.35rem}.pimm-place-popup-btn{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .7rem;background:#1a7f99;color:#fff;border-radius:6px;font-size:.7rem;font-weight:700;cursor:pointer;border:0;box-shadow:0 1px 3px #0b1a2e4d;transition:background .12s,transform .12s,box-shadow .12s}.pimm-place-popup-btn:hover{background:#1c8fac;transform:translateY(-1px);box-shadow:0 3px 8px #0b1a2e59}.pimm-lightbox{position:fixed;inset:0;background:#000000eb;z-index:2000;display:flex;align-items:center;justify-content:center;gap:.75rem;padding:1rem}.pimm-lightbox[hidden]{display:none}.pimm-lb-inner{max-width:90vw;max-height:88vh;display:flex;flex-direction:column;align-items:center;gap:.5rem}.pimm-lb-inner img{max-width:100%;max-height:80vh;object-fit:contain;border-radius:6px}.pimm-lb-caption{font-size:.8rem;color:#ffffffa6;margin:0;text-align:center}.pimm-lb-close{position:fixed;top:1rem;right:1.25rem;font-size:1.5rem;color:#fffc;background:#0006;border:0;border-radius:50%;width:2.2rem;height:2.2rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .12s;z-index:2001}.pimm-lb-close:hover{background:#ffffff26}.pimm-lb-nav{font-size:2.5rem;color:#ffffffb3;background:none;border:0;cursor:pointer;padding:0 .5rem;transition:color .12s;flex-shrink:0;user-select:none}.pimm-lb-nav:hover{color:#fff}.pimm-etape-list::-webkit-scrollbar,#pimmDetailContent::-webkit-scrollbar{width:4px}.pimm-etape-list::-webkit-scrollbar-track,#pimmDetailContent::-webkit-scrollbar-track{background:transparent}.pimm-etape-list::-webkit-scrollbar-thumb,#pimmDetailContent::-webkit-scrollbar-thumb{background:#4db8d433;border-radius:2px}.pimm-mobile-toggles,.pimm-panel-mobile-close,.pimm-mobile-backdrop{display:none}@media (max-width: 700px){.pimm-kpis,.pimm-header-controls,.pimm-resize-handle{display:none}.pimm-body{position:relative}.pimm-map-wrap{position:absolute;inset:0;height:auto;flex:none}.pimm-sidebar{position:absolute;top:0;left:0;bottom:0;width:88%;max-width:340px;z-index:1200;transform:translate(-105%);transition:transform .26s ease;box-shadow:6px 0 24px #00000073}.pimm-sidebar.is-open{transform:translate(0)}.pimm-photos-panel:not([hidden]){position:absolute;left:0;right:0;bottom:0;width:auto;max-height:68vh;z-index:1200;border-left:0;border-top:1px solid rgba(77,184,212,.15);border-radius:14px 14px 0 0;transform:translateY(105%);transition:transform .26s ease;box-shadow:0 -6px 24px #00000073}.pimm-photos-panel.is-open{transform:translateY(0)}.pimm-panel-mobile-close{display:flex;align-items:center;justify-content:center;position:absolute;top:.5rem;right:.5rem;width:30px;height:30px;background:#4db8d426;border:0;border-radius:50%;color:#fff;font-size:.85rem;cursor:pointer;z-index:5}.pimm-mobile-toggles{display:flex;justify-content:space-between;gap:.5rem;position:absolute;top:.75rem;left:.75rem;right:.75rem;z-index:900;pointer-events:none}.pimm-mobile-toggle{pointer-events:auto;display:flex;align-items:center;gap:.4rem;padding:.5rem .85rem;background:#060e1ceb;color:#fff;border:1px solid rgba(77,184,212,.35);border-radius:999px;font-size:.75rem;font-weight:700;box-shadow:0 2px 10px #0006;cursor:pointer}.pimm-mobile-backdrop{display:none;position:absolute;inset:0;background:#00000080;z-index:1100}.pimm-mobile-backdrop.is-open{display:block}.pimm-map-wrap .leaflet-top{top:3.5rem}body.pimm-drawer-open .pimm-page{z-index:150}}.pimm-photos-panel-tabbody{padding-bottom:.5rem}.pimm-video-panel-list{display:flex;flex-direction:column;gap:.85rem;padding:.85rem}.pimm-video-panel-player{display:block;width:100%;aspect-ratio:16 / 9;border-radius:6px;background:#000;border:1px solid rgba(77,184,212,.12)}.pimm-video-panel-item{display:flex;flex-direction:column;gap:.3rem}.pimm-video-panel-size{margin:0;font-size:.68rem;color:var(--text-muted, #8ba3bd);text-align:right}
