        :root {
            --brand-1: #4f6f9f;
            --brand-2: #3f5f86;
            --brand-3: #f1f5f9;
            --ink: #0f172a;
            --muted: #64748b;
            --panel: rgba(255,255,255,.86);
            --panel-strong: rgba(255,255,255,.92);
            --border-soft: rgba(255,255,255,.65);
            --shadow: 0 14px 40px rgba(15,23,42,.10);
            --radius: 22px;
            --radius-sm: 16px;
        }

        html, body { min-height: 100%; margin: 0 !important; padding: 0 !important; }
        body {
            min-height: 100vh;
            display: flex;
            flex-direction: column;
            margin-bottom: 0 !important;
            padding-bottom: 0 !important;
        }

        header, footer { position: relative; z-index: 30; }
        footer {
            position: relative !important;
            bottom: auto !important;
            width: 100%;
            height: auto !important;
            margin-top: 0 !important;
            padding-bottom: 0 !important;
            flex-shrink: 0;
        }

        .activity-page-footer {
            width: 100vw;
            max-width: 100vw;
            margin-left: calc(50% - 50vw);
            margin-right: calc(50% - 50vw);
            flex-shrink: 0;
        }

        .activity-page-footer footer,
        .activity-page-footer .container,
        .activity-page-footer .container-fluid {
            width: 100%;
            max-width: 100%;
        }

        .activity-v2 {
            background:
                radial-gradient(circle at top left, rgba(63, 95, 134,.18), transparent 28%),
                radial-gradient(circle at top right, rgba(111, 147, 181,.10), transparent 30%),
                linear-gradient(180deg, #ffffff 0%, #f6f8fb 100%);
            color: var(--ink);
            padding: 18px 0 0;
            margin-bottom: 0 !important;
            padding-bottom: 0 !important;
            flex: 1 0 auto;
            display: flex;
            flex-direction: column;
        }

        .activity-v2 .dashboard-shell {
            width: min(1680px, 98%);
            margin: 10px auto 0;
            position: relative;
            padding-bottom: 0 !important;
            flex: 1 0 auto;
        }

        .activity-v2 .tab-content,
        .activity-v2 .tab-pane,
        .activity-v2 .content-grid,
        .activity-v2 .section-card:last-child,
        .activity-page-footer {
            margin-bottom: 0 !important;
            padding-bottom: 0 !important;
        }

        .activity-v2 .hero {
            background: linear-gradient(135deg, rgba(79, 111, 159,.96), rgba(63, 95, 134,.84));
            color: white;
            border-radius: 28px;
            padding: 20px;
            box-shadow: var(--shadow);
            overflow: hidden;
        }

        .activity-v2 .hero .eyebrow {
            text-transform: uppercase;
            letter-spacing: .18em;
            font-size: .75rem;
            opacity: .8;
        }

        .activity-v2 .hero h1 {
            font-size: clamp(1.55rem, 2.3vw, 2.4rem);
            margin: .2rem 0 .35rem;
            line-height: 1.05;
        }

        .activity-v2 .hero p {
            color: rgba(255,255,255,.88);
            max-width: 840px;
            margin: 0;
            font-size: .96rem;
        }

        .activity-v2 .hero-main-block {
            display: grid;
            gap: 12px;
        }

        .activity-v2 .hero-stats-band {
            display: flex;
            flex-wrap: wrap;
            gap: 10px;
            margin: 12px 0 10px;
        }

        .activity-v2 .mobile-summary-card,
        .activity-v2 .mobile-action-strip,
        .activity-v2 .mobile-map-slot,
        .activity-v2 .mobile-section-label {
            display: none;
        }

        .activity-v2 .glass-card,
        .activity-v2 .table-card,
        .activity-v2 .side-panel,
        .activity-v2 .tab-shell,
        .activity-v2 .section-card,
        .activity-v2 .icon-card {
            background: var(--panel);
            backdrop-filter: blur(10px);
            border: 1px solid var(--border-soft);
            border-radius: var(--radius);
            box-shadow: var(--shadow);
        }

        .activity-v2 .stats-grid {
            display: grid;
            grid-template-columns: repeat(6, minmax(0, 1fr));
            gap: 10px;
            margin-top: 14px;
        }

        .activity-v2 .mini-stat {
            padding: 12px 13px;
            border-radius: 16px;
            background: rgba(255,255,255,.14);
            border: 1px solid rgba(255,255,255,.18);
            min-height: 104px;
        }

        .activity-v2 .mini-stat .label {
            font-size: .76rem;
            opacity: .82;
            line-height: 1.15;
            min-height: 32px;
        }

        .activity-v2 .mini-stat .value {
            font-size: 1.18rem;
            font-weight: 700;
            line-height: 1.1;
            margin-top: 8px;
        }

        .activity-v2 .content-grid {
            margin-top: 14px;
        }

        .activity-v2 .section-title {
            font-size: 1.15rem;
            font-weight: 700;
            margin-bottom: 12px;
        }

        .activity-v2 .tab-shell,
        .activity-v2 .section-card,
        .activity-v2 .side-panel,
        .activity-v2 .table-card {
            padding: 18px;
        }

        .activity-v2 .hero-media {
            display: grid;
            grid-template-columns: 1fr;
            gap: 0;
            background: #d8f3ef;
            border-radius: 20px;
            overflow: hidden;
        }

        .activity-v2 .hero-media.has-video {
            --hero-media-height: 360px;
            grid-template-columns: minmax(0, 1.4fr) minmax(280px, .8fr);
            align-items: stretch;
            background: transparent;
        }

        .activity-v2 .hero-map {
            height: 420px;
            background: #d8f3ef;
        }

        .activity-v2 .hero-media.has-video .hero-map {
            height: var(--hero-media-height);
            min-height: var(--hero-media-height);
        }

        .activity-v2 .hero-video-wrap {
            display: flex;
            align-items: stretch;
            justify-content: center;
            background: #d8f3ef;
            min-height: 260px;
        }

        .activity-v2 .hero-media.has-video .hero-video-wrap {
            height: var(--hero-media-height);
            min-height: var(--hero-media-height);
        }

        .activity-v2 .hero-video {
            width: 100%;
            height: 100%;
            object-fit: cover;
            display: block;
            background: #d8f3ef;
        }

        .activity-v2 .meta-row {
            display: flex;
            flex-wrap: wrap;
            gap: 12px;
            margin-top: 14px;
        }

        .activity-v2 .badge-soft {
            display: inline-flex;
            align-items: center;
            gap: .45rem;
            background: rgba(255,255,255,.16);
            border: 1px solid rgba(255,255,255,.24);
            border-radius: 999px;
            padding: .45rem .85rem;
            font-size: .88rem;
        }

        .activity-v2 .panel-chip {
            display: inline-flex;
            align-items: center;
            gap: .5rem;
            padding: .5rem .78rem;
            border-radius: 999px;
            background: rgba(255,255,255,.10);
            color: rgba(255,255,255,.94);
            border: 1px solid rgba(255,255,255,.16);
            box-shadow: 0 6px 14px rgba(79, 111, 159, .10);
            font-size: .86rem;
            font-weight: 600;
            margin: 0;
            backdrop-filter: blur(8px);
        }

        .activity-v2 .panel-chip i {
            width: 28px;
            height: 28px;
            border-radius: 999px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            background: rgba(255,255,255,.14);
            color: #fff;
            box-shadow: inset 0 0 0 1px rgba(255,255,255,.12);
            font-size: .82rem;
        }

        .activity-v2 .tabs-nav {
            display: inline-flex;
            gap: 8px;
            background: rgba(255,255,255,.55);
            padding: 8px;
            border-radius: 18px;
            border: 1px solid rgba(255,255,255,.65);
            box-shadow: var(--shadow);
            margin: 18px 0 14px;
            flex-wrap: wrap;
        }

        .activity-v2 .tabs-nav .nav-link {
            border: none;
            border-radius: 12px;
            color: var(--muted);
            font-weight: 600;
            padding: .75rem 1rem;
            background: transparent;
        }

        .activity-v2 .tabs-nav .nav-link.active {
            background: linear-gradient(135deg, rgba(79, 111, 159,.96), rgba(63, 95, 134,.84));
            color: #fff;
        }

        .activity-v2 .side-panel {
            height: 100%;
            overflow: hidden;
        }

        .activity-v2 .quick-actions {
            display: grid;
            gap: 10px;
        }

        .activity-v2 .quick-actions .btn {
            border-radius: 14px;
            padding: .8rem 1rem;
            text-align: left;
            font-weight: 600;
        }

        .activity-v2 .btn-brand {
            background: linear-gradient(135deg, rgba(79, 111, 159,.96), rgba(63, 95, 134,.84));
            border: none;
            color: white;
        }

        .activity-v2 .btn-brand:hover,
        .activity-v2 .btn-brand:focus {
            color: white;
            opacity: .94;
        }

        .activity-v2 .btn-soft {
            background: rgba(79, 111, 159,.08);
            border: 1px solid rgba(63, 95, 134,.18);
            color: var(--ink);
        }

        .activity-v2 .person-card {
            display: flex;
            align-items: center;
            gap: 12px;
            padding: 12px;
            background: rgba(255,255,255,.6);
            border: 1px solid rgba(15,23,42,.06);
            border-radius: 16px;
            text-decoration: none;
            color: inherit;
            transition: transform .2s ease, box-shadow .2s ease;
            min-width: 0;
        }

        .activity-v2 .person-card > div {
            min-width: 0;
            flex: 1 1 auto;
        }

        .activity-v2 .person-card .fw-bold,
        .activity-v2 .icon-card .fw-semibold {
            display: block;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
        }

        @media (max-width: 1475.98px) {
            .activity-v2 .icon-card {
                padding: 12px;
                display: flex;
                align-items: center;
                justify-content: center;
                min-height: 86px;
            }

            .activity-v2 .icon-card .fw-semibold,
            .activity-v2 .person-card > div {
                display: none !important;
            }

            .activity-v2 .icon-card img {
                margin-bottom: 0;
            }

            .activity-v2 .person-card {
                justify-content: center;
                gap: 0;
            }
        }

        .activity-v2 .person-card:hover {
            transform: scale(1.02);
            box-shadow: 0 12px 28px rgba(15,23,42,.08);
            color: inherit;
        }

        .activity-v2 .person-card img,
        .activity-v2 .participant-avatar {
            width: 56px;
            height: 56px;
            object-fit: cover;
            border-radius: 50%;
            border: 2px solid rgba(79, 111, 159,.22);
            background: #fff;
        }

        .activity-v2 .icon-grid {
            display: grid;
            grid-template-columns: repeat(4, minmax(0, 1fr));
            gap: 12px;
        }

        .activity-v2 .icon-card {
            padding: 14px 10px;
            text-align: center;
            text-decoration: none;
            color: var(--ink);
            transition: transform .2s ease, box-shadow .2s ease;
        }

        .activity-v2 .icon-card:hover {
            transform: translateY(-3px);
            color: var(--ink);
        }

        .activity-v2 .icon-card.disabled {
            opacity: .45;
            pointer-events: none;
        }

        .activity-v2 .icon-card img {
            max-height: 62px;
            border-radius: 50%;
            margin-bottom: 8px;
        }

        .activity-v2 .entity-grid {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 14px;
        }

        .activity-v2 .entity-card {
            padding: 14px;
            background: rgba(255,255,255,.56);
            border: 1px solid rgba(15,23,42,.06);
            border-radius: 18px;
            text-align: center;
            transition: transform .2s ease, box-shadow .2s ease;
            display: flex;
            flex-direction: column;
            align-items: center;
            height: 100%;
        }

        .activity-v2 .entity-card:hover {
            transform: scale(1.02);
            box-shadow: 0 12px 28px rgba(15,23,42,.08);
        }

        .activity-v2 .entity-card .fw-bold {
            min-height: 48px;
            display: flex;
            align-items: center;
            justify-content: center;
            width: 100%;
            line-height: 1.25;
        }

        .activity-v2 .entity-card-link {
            width: 100%;
            min-height: 170px;
            display: flex;
            align-items: center;
            justify-content: center;
            margin-top: 10px;
            padding: 12px;
            border-radius: 16px;
            background: rgba(255,255,255,.72);
        }

        .activity-v2 .entity-card img {
            width: 100%;
            max-width: 180px;
            height: 110px;
            object-fit: contain;
            object-position: center;
            display: block;
            margin: 0 auto;
            border-radius: 12px;
        }

        .activity-v2 .rating-wrap {
            display: flex;
            flex-wrap: wrap;
            align-items: center;
            gap: 10px 14px;
            min-width: 0;
        }

        .activity-v2 .mobile-rating-score {
            display: none;
        }

        .activity-v2 #rating {
            display: flex;
            flex-wrap: nowrap;
            align-items: center;
            gap: clamp(1px, 0.35vw, 3px);
            min-width: 0;
            width: 100%;
            max-width: 100%;
            overflow: hidden;
            padding-bottom: 0;
        }

        .activity-v2 .star {
            font-size: clamp(18px, 1.7vw, 24px);
            cursor: pointer;
            color: #cbd5e1;
            transition: color .2s ease, transform .2s ease;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            flex: 1 1 0;
            min-width: 0;
            line-height: 1;
        }

        .activity-v2 .star.selected { color: #ad7f3b; }
        .activity-v2 .star.hover { color: #d2ad74; transform: scale(1.05); }
        .activity-v2 .star.disabled { cursor: default; pointer-events: none; }

        .activity-v2 textarea.note-editor {
            width: 100%;
            min-height: 240px;
            border-radius: 18px;
            border: 1px solid rgba(148,163,184,.35);
            padding: 16px;
            resize: vertical;
            background: rgba(255,255,255,.75);
            color: var(--ink);
        }

        #editActivityModal { z-index: 2000; }
        #editActivityModal .modal-dialog { margin-top: 2rem; margin-bottom: 2rem; }
        #editActivityModal .modal-content { border: 0; border-radius: 20px; overflow: hidden; box-shadow: 0 24px 60px rgba(15,23,42,.22); }
        #editActivityModal .modal-body { max-height: min(75vh, 820px); overflow-y: auto; }
        #editActivityModal textarea.form-control { min-height: 220px; resize: vertical; }
        .modal-backdrop.show { z-index: 1990; opacity: .55; }

        .activity-v2 .map-wrap,
        .activity-v2 .peakfinder-wrap,
        .activity-v2 .comment-wrap iframe,
        .activity-v2 .relive-wrap video {
            border-radius: 18px;
            overflow: hidden;
            background: #d8f3ef;
        }

        .activity-v2 #map {
            position: relative;
            height: 560px;
        }
        .activity-v2 .gpx-panel {
            overflow: hidden;
            padding-bottom: 0;
        }

        .activity-v2 #elevation-div {
            position: relative;
            margin: 18px -18px 0;
            width: calc(100% + 36px);
            min-width: calc(100% + 36px);
            max-width: calc(100% + 36px);
            min-height: 340px;
            height: auto;
            padding: 16px 0 20px;
            overflow: visible;
            box-sizing: border-box;
            border-radius: 0;
            background:
                linear-gradient(180deg, rgba(240,253,250,.98), rgba(255,255,255,.98)),
                radial-gradient(circle at top right, rgba(63, 95, 134,.14), transparent 34%);
            border-top: 1px solid rgba(63, 95, 134,.12);
            box-shadow: inset 0 1px 0 rgba(255,255,255,.75);
        }

        .activity-v2 #elevation-div > * ,
        .activity-v2 #elevation-div .leaflet-control,
        .activity-v2 #elevation-div .elevation-control,
        .activity-v2 #elevation-div .elevation-control.elevation,
        .activity-v2 #elevation-div .elevation,
        .activity-v2 #elevation-div .background,
        .activity-v2 #elevation-div .grid,
        .activity-v2 #elevation-div .area,
        .activity-v2 #elevation-div .line {
            width: 100% !important;
            max-width: 100% !important;
            min-width: 0 !important;
            box-sizing: border-box;
        }

        .activity-v2 #elevation-div .elevation-control.elevation {
            height: auto !important;
            max-height: none !important;
            overflow: visible !important;
            padding: 0 !important;
            margin: 0 !important;
        }

        .activity-v2 #elevation-div svg {
            display: block;
            max-width: 100% !important;
            width: 100% !important;
            min-width: 100% !important;
            height: 330px !important;
            overflow: visible !important;
        }

        .activity-v2 .map-fullscreen-shell {
            position: relative;
        }

        .activity-v2 .map-fullscreen-shell:fullscreen,
        .activity-v2 .map-fullscreen-shell:-webkit-full-screen {
            background: #d8f3ef;
            padding: 12px;
        }

        .activity-v2 .map-fullscreen-shell:fullscreen .map-wrap,
        .activity-v2 .map-fullscreen-shell:-webkit-full-screen .map-wrap {
            height: calc(100vh - 24px);
            border-radius: 18px;
            overflow: hidden;
        }

        .activity-v2 .map-fullscreen-shell:fullscreen #map,
        .activity-v2 .map-fullscreen-shell:-webkit-full-screen #map {
            height: 100% !important;
        }

        .activity-v2 .map-fullscreen-btn-floating {
            position: absolute;
            left: 50%;
            top: 14px;
            right: auto;
            bottom: auto;
            transform: translateX(-50%);
            z-index: 1100;
            display: none;
            align-items: center;
            gap: .5rem;
            border: 0;
            border-radius: 999px;
            padding: .75rem 1rem;
            background: rgba(255,255,255,.96);
            color: var(--ink);
            box-shadow: 0 10px 24px rgba(15,23,42,.18);
            font-weight: 700;
        }

        .activity-v2 .map-wrap .leaflet-top.leaflet-right {
            top: 14px;
            right: 14px;
        }

        .activity-v2 .map-wrap .leaflet-control-layers {
            max-width: min(320px, calc(100vw - 48px));
            box-shadow: 0 10px 24px rgba(15,23,42,.18);
        }

        .activity-v2 .map-wrap .leaflet-control-layers-expanded {
            max-height: min(50vh, 360px);
            overflow-y: auto;
        }

        .activity-v2 .osm-map-marker {
            background: transparent;
            border: 0;
        }

        .activity-v2 .osm-map-marker-badge {
            width: var(--osm-marker-size, 34px);
            height: var(--osm-marker-size, 34px);
            border-radius: 999px;
            display: flex;
            align-items: center;
            justify-content: center;
            color: white;
            border: max(2px, calc(var(--osm-marker-size, 34px) * .06)) solid rgba(255,255,255,.92);
            box-shadow: 0 8px 18px rgba(15,23,42,.18);
            font-size: var(--osm-marker-font-size, 14px);
            line-height: 1;
            transition: width .18s ease, height .18s ease, font-size .18s ease, border-width .18s ease;
        }

        .activity-v2 .map-fullscreen-shell.is-fullscreen .map-fullscreen-btn-floating {
            display: inline-flex;
        }

        .activity-v2 #elevation-div .elevation-hover-guide {
            pointer-events: none;
            stroke: rgba(15, 23, 42, .45);
            stroke-width: 1.5;
            stroke-dasharray: 4 4;
            vector-effect: non-scaling-stroke;
            opacity: 0;
            transition: opacity .12s ease;
        }

        .activity-v2 #elevation-div .elevation-hover-guide.is-horizontal {
            display: none !important;
            opacity: 0 !important;
            stroke-dasharray: 0;
        }

        .activity-v2 #elevation-div .elevation-hover-dot {
            pointer-events: none;
            fill: #4f6f9f;
            stroke: rgba(255,255,255,.98);
            stroke-width: 2;
            vector-effect: non-scaling-stroke;
            opacity: 0;
            transition: opacity .12s ease;
        }

        .activity-v2 .elevation-hover-tooltip {
            position: absolute;
            left: 0;
            top: 0;
            z-index: 1000;
            pointer-events: none;
            opacity: 0;
            transform: translate(-50%, calc(-100% - 8px));
            transition: opacity .12s ease;
            padding: 4px 6px;
            border-radius: 8px;
            background: rgba(15, 23, 42, .68);
            color: rgba(255,255,255,.88);
            box-shadow: 0 4px 10px rgba(15,23,42,.10);
            backdrop-filter: blur(3px);
            -webkit-backdrop-filter: blur(3px);
            min-width: 0;
            width: max-content;
            max-width: 110px;
            display: inline-flex;
            flex-direction: column;
            gap: 1px;
            white-space: nowrap;
        }

        .activity-v2 #elevation-div .elevation-hover-tooltip-value {
            font-size: .70rem;
            font-weight: 600;
            line-height: 1.05;
        }

        .activity-v2 #elevation-div .elevation-hover-tooltip-label {
            display: none !important;
        }

        .activity-v2 #elevation-div .elevation-summary {
            display: none !important;
        }

        .activity-v2 .leaflet-map-pane .height-focus.line,
        .activity-v2 #map .height-focus.line {
            display: none !important;
            opacity: 0 !important;
        }

        .activity-v2 #elevation-div .height-focus.line,
        .activity-v2 #elevation-div svg .height-focus.line,
        .activity-v2 #elevation-div .elevation-hover-guide.is-vertical {
            display: block !important;
            opacity: 1 !important;
        }

        .activity-v2 #elevation-div .elevation-hover-guide.is-vertical {
            stroke: rgba(15, 23, 42, .42);
            stroke-width: 1;
            stroke-dasharray: 0;
        }

        .activity-v2 .height-focus-label {
            transform: translate(-50%, calc(-100% - 4px)) !important;
            margin: 0 !important;
            white-space: nowrap;
        }

        .activity-v2 .height-focus-icon {
            margin-top: 0 !important;
        }

        .activity-v2 #elevation-div.is-hovering-guide .elevation-hover-guide,
        .activity-v2 #elevation-div.is-hovering-guide .elevation-hover-dot,
        .activity-v2.is-hovering-guide .elevation-hover-tooltip {
            opacity: 1;
        }

        .activity-v2 #elevation-div .background,
        .activity-v2 #elevation-div .grid,
        .activity-v2 #elevation-div .area,
        .activity-v2 #elevation-div .line {
            overflow: visible !important;
        }
        .activity-v2 #pfcanvas { width: 100%; height: 460px; display: block; }
        .activity-v2 .comment-wrap {
            width: 100%;
            max-width: 100%;
            min-width: 0;
            border-radius: 0;
            overflow: hidden;
            background: transparent;
            border: 0;
            box-shadow: none;
            padding: 0;
        }

            .activity-v2 .comment-wrap iframe {
                display: block;
                width: 100%;
                max-width: 100%;
                min-width: 0;
                height: 720px;
                min-height: 720px;
                border: 0;
                background: transparent;
                box-shadow: none;
            }

        .activity-v2 #participantsGrid {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 12px;
        }

        .activity-v2 .muted { color: var(--muted); }
        .activity-v2 .empty-state {
            padding: 8px 12px;
            text-align: center;
            color: rgba(100,116,139,.88);
            border: 1px dashed rgba(100,116,139,.18);
            border-radius: 999px;
            background: rgba(255,255,255,.42);
            font-size: .88rem;
            line-height: 1.2;
            white-space: nowrap;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            max-width: 100%;
        }

        .activity-v2 #participantsGrid .empty-state {
            justify-self: start;
        }

        @media (max-width: 1199.98px) {
            .activity-v2 .stats-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
            .activity-v2 .hero-media.has-video { grid-template-columns: 1fr; }
            .activity-v2 .hero-media.has-video .hero-map,
            .activity-v2 .hero-media.has-video .hero-video-wrap {
                height: 320px;
                min-height: 320px;
            }
        }

        @media (max-width: 991.98px) {
            .activity-v2 .icon-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
            .activity-v2 .entity-grid { grid-template-columns: 1fr; }
            .activity-v2 #participantsGrid { grid-template-columns: 1fr; }
            .activity-v2 .photo-gallery-masonry { column-count: 2; }
        }

        @media (max-width: 767.98px) {
            .activity-v2 .dashboard-shell { width: 96%; }
            .activity-v2 .stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
            .activity-v2 .hero { padding: 18px; }
            .activity-v2 .hero-map,
            .activity-v2 #map { height: 380px; }
            .activity-v2 #elevation-div {
                margin: 14px -18px 0;
                width: calc(100% + 36px);
                min-width: calc(100% + 36px);
                max-width: calc(100% + 36px);
                min-height: 240px;
                height: auto !important;
                padding: 12px 0 18px;
                border-radius: 0;
            }
            .activity-v2 #elevation-div .elevation-control.elevation {
                height: auto !important;
                max-height: none !important;
            }
            .activity-v2 #elevation-div svg {
                height: 220px !important;
            }
            .activity-v2 .icon-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
        }

        @media (max-width: 575.98px) {
            .activity-v2 .stats-grid,
            .activity-v2 .icon-grid { grid-template-columns: 1fr; }
            .activity-v2 .photo-gallery-masonry { column-count: 1; }
            .activity-v2 .photo-lightbox { padding: 14px; }
            .activity-v2 .rating-wrap {
                flex-direction: column;
                align-items: flex-start;
            }
            .activity-v2 #rating {
                width: 100%;
            }
            .activity-v2 .star {
                font-size: clamp(16px, 5vw, 22px);
            }
            .activity-v2 .comment-wrap {
                margin-right: 0;
            }
        }


        .activity-v2 .section-intro {
            color: var(--muted);
            margin-bottom: 14px;
            font-size: .96rem;
            line-height: 1.5;
        }

        .activity-v2 .relive-wrap {
            max-height: 520px;
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 8px;
        }

        .activity-v2 .relive-wrap video,
        .activity-v2 .relive-video-player {
            width: 100%;
            height: auto;
            max-height: min(70vh, 520px);
            min-height: 220px;
            aspect-ratio: 16 / 9;
            object-fit: contain;
            display: block;
            background: #d8f3ef;
        }

        .activity-v2 .peakfinder-wrap {
            padding: 0;
            min-height: 360px;
        }

        .activity-v2 #pfcanvas {
            width: 100%;
            height: clamp(320px, 48vh, 500px);
            display: block;
        }

        .activity-v2 .photo-gallery-shell {
            display: grid;
            gap: 18px;
        }

        .activity-v2 .photo-gallery-hero {
            display: flex;
            flex-wrap: wrap;
            align-items: center;
            justify-content: space-between;
            gap: 12px;
            padding: 16px 18px;
            border-radius: 18px;
            background: linear-gradient(135deg, rgba(79, 111, 159,.10), rgba(63, 95, 134,.16));
            border: 1px solid rgba(63, 95, 134,.18);
        }

        .activity-v2 .photo-gallery-count {
            display: inline-flex;
            align-items: center;
            gap: .55rem;
            padding: .55rem .9rem;
            border-radius: 999px;
            background: rgba(255,255,255,.72);
            border: 1px solid rgba(255,255,255,.78);
            font-weight: 600;
        }

        .activity-v2 .photo-gallery-masonry {
            column-count: 3;
            column-gap: 16px;
        }

        .activity-v2 .photo-card {
            position: relative;
            break-inside: avoid;
            margin-bottom: 16px;
            border-radius: 20px;
            overflow: hidden;
            background: white;
            box-shadow: 0 14px 36px rgba(15, 23, 42, .10);
            cursor: pointer;
            transition: transform .2s ease, box-shadow .2s ease;
        }

        .activity-v2 .photo-card img {
            width: 100%;
            height: auto;
            display: block;
            cursor: pointer;
        }

        .activity-v2 .photo-card:hover {
            transform: translateY(-3px);
            box-shadow: 0 18px 40px rgba(15, 23, 42, .14);
        }

        .activity-v2 .photo-card img {
            width: 100%;
            height: auto;
            display: block;
        }

        .activity-v2 .photo-card-caption {
            position: absolute;
            inset: auto 0 0 0;
            padding: 14px 14px 12px;
            color: white;
            background: linear-gradient(180deg, rgba(15,23,42,0) 0%, rgba(15,23,42,.74) 100%);
            font-size: .92rem;
            overflow-wrap: anywhere;
            word-break: break-word;
            white-space: normal;
            padding-right: 58px;
        }

        .activity-v2 .photo-card-favorite {
            position: absolute;
            top: 12px;
            right: 12px;
            z-index: 3;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 44px;
            height: 44px;
        }

        .activity-v2 .photo-card-favorite-source {
            position: absolute;
            inset: 0;
            opacity: 0;
            pointer-events: none;
            overflow: hidden;
        }

        .activity-v2 .photo-card-favorite-source * {
            pointer-events: none !important;
        }

        .activity-v2 .photo-favorite-toggle {
            border: 0;
            border-radius: 999px;
            width: 44px;
            height: 44px;
            padding: 0;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            background: rgba(255,255,255,.94);
            box-shadow: 0 10px 24px rgba(15,23,42,.22);
            color: rgba(148,163,184,.95);
            text-decoration: none;
            transition: transform .2s ease, color .2s ease, box-shadow .2s ease;
        }

        .activity-v2 .photo-favorite-toggle:hover {
            transform: scale(1.06);
            box-shadow: 0 14px 28px rgba(15,23,42,.26);
        }

        .activity-v2 .photo-card-favorite.is-active .photo-favorite-toggle {
            color: #ad7f3b;
        }

        .activity-v2 .photo-favorite-toggle i {
            pointer-events: none;
        }

        .photo-lightbox {
            position: fixed;
            inset: 0;
            z-index: 2000;
            display: none;
            align-items: center;
            justify-content: center;
            padding: 24px;
            background: rgba(2, 6, 23, .82);
            backdrop-filter: blur(6px);
        }

        .photo-lightbox.is-open {
            display: flex;
        }

        .photo-lightbox-inner {
            position: relative;
            max-width: min(1200px, 94vw);
            max-height: 90vh;
            width: 100%;
            display: flex;
            justify-content: center;
            align-items: center;
        }

        .photo-lightbox img {
            max-width: 100%;
            max-height: 90vh;
            border-radius: 18px;
            box-shadow: 0 20px 60px rgba(0,0,0,.35);
            background: white;
        }

        .photo-lightbox-nav,
        .photo-lightbox-favorite,
        .photo-lightbox-close {
            position: absolute;
            border: 0;
            border-radius: 999px;
            background: rgba(255,255,255,.94);
            color: var(--ink);
            box-shadow: 0 10px 24px rgba(15,23,42,.22);
            display: inline-flex;
            align-items: center;
            justify-content: center;
        }

        .photo-lightbox-nav {
            top: 50%;
            transform: translateY(-50%);
            width: 52px;
            height: 52px;
            font-size: 1.15rem;
            z-index: 2;
        }

        .photo-lightbox-nav.prev {
            left: 14px;
        }

        .photo-lightbox-nav.next {
            right: 14px;
        }

        .photo-lightbox-nav[disabled] {
            opacity: .45;
            cursor: default;
        }

        .photo-lightbox-favorite {
            top: 14px;
            left: 14px;
            width: auto;
            min-width: 52px;
            height: 52px;
            padding: 0 16px;
            gap: .6rem;
            font-weight: 700;
            z-index: 2;
            transition: transform .2s ease, color .2s ease, box-shadow .2s ease;
        }

        .photo-lightbox-favorite i {
            pointer-events: none;
        }

        .photo-lightbox-favorite.is-active {
            color: #ad7f3b;
        }

        .photo-lightbox-favorite.is-clickable {
            cursor: pointer;
        }

        .photo-lightbox-favorite.is-clickable:hover {
            transform: scale(1.03);
            box-shadow: 0 14px 28px rgba(15,23,42,.26);
        }

        .photo-lightbox-close {
            top: -12px;
            right: -4px;
            width: 42px;
            height: 42px;
            font-size: 1.4rem;
            line-height: 1;
        }

        @media (max-width: 767.98px) {
            .photo-lightbox-nav.prev { left: 6px; }
            .photo-lightbox-nav.next { right: 6px; }
            .photo-lightbox-favorite {
                top: 8px;
                left: 8px;
                min-width: 46px;
                height: 46px;
                padding: 0 12px;
                gap: .45rem;
                font-size: .92rem;
            }
        }

        .activity-v2 .thematic-stats-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.activity-v2 .thematic-stat-card {
    min-height: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.activity-v2 .detailed-stats-panel {
    position: relative;
    overflow: visible;
    background: var(--panel);
    border: 1px solid var(--border-soft);
    box-shadow: var(--shadow);
}

.activity-v2 .stats-detailed-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-top: 0;
    gap: 14px;
}

.activity-v2 .detailed-stat-card {
    position: relative;
    min-height: 100%;
    padding: 16px;
    border-radius: 18px;
    background: rgba(255,255,255,.72);
    border: 1px solid rgba(15,23,42,.06);
    box-shadow: 0 8px 18px rgba(15,23,42,.04);
    transition: transform .18s ease, box-shadow .18s ease;
}

.activity-v2 .detailed-stat-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 24px rgba(15,23,42,.08);
}

.activity-v2 .detailed-stat-head {
    align-items: center;
    justify-content: flex-start;
    gap: 12px;
    margin-bottom: 12px;
}

.activity-v2 .detailed-stat-icon {
    width: 46px;
    height: 46px;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, rgba(79, 111, 159,.16), rgba(63, 95, 134,.24));
    color: var(--brand-1);
    box-shadow:
        inset 0 0 0 1px rgba(63, 95, 134,.12),
        0 8px 16px rgba(63, 95, 134,.10);
    font-size: 1rem;
}

.activity-v2 .detailed-stat-list {
    gap: 10px;
}

.activity-v2 .detailed-stat-row {
    align-items: center;
    padding: 11px 12px;
    border: 1px solid rgba(79, 111, 159,.08);
    border-radius: 14px;
    background: rgba(255,255,255,.86);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.8);
}

.activity-v2 .detailed-stat-row .thematic-label {
    font-size: .7rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: #6b7280;
}

.activity-v2 .detailed-stat-row .thematic-value {
    font-size: 1rem;
    font-weight: 800;
    color: var(--ink);
}

.activity-v2 .timeline-band {
    position: relative;
    overflow: hidden;
    margin-bottom: 14px;
    padding: 16px 18px;
    border-radius: 20px;
    background:
        linear-gradient(135deg, rgba(79, 111, 159,.09), rgba(63, 95, 134,.14)),
        rgba(255,255,255,.88);
    border: 1px solid rgba(79, 111, 159,.08);
    box-shadow: 0 10px 24px rgba(15,23,42,.06);
}

.activity-v2 .timeline-band::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at top right, rgba(255,255,255,.6), transparent 36%);
    pointer-events: none;
}

.activity-v2 .timeline-shell {
    position: relative;
    z-index: 1;
    display: grid;
    gap: 12px;
}

.activity-v2 .timeline-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.activity-v2 .timeline-title-wrap {
    display: flex;
    align-items: center;
    gap: 12px;
}

.activity-v2 .timeline-summary {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.activity-v2 .timeline-chip {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    padding: .45rem .8rem;
    border-radius: 999px;
    background: rgba(255,255,255,.78);
    border: 1px solid rgba(79, 111, 159,.10);
    color: var(--ink);
    font-weight: 700;
    box-shadow: 0 6px 14px rgba(15,23,42,.04);
    font-size: .88rem;
}

.activity-v2 .timeline-track {
    position: relative;
    display: grid;
    grid-template-columns: minmax(190px, 1fr) auto minmax(190px, 1fr);
    align-items: center;
    gap: 18px;
    min-height: 82px;
}

.activity-v2 .timeline-track::before {
    content: '';
    position: absolute;
    left: clamp(120px, 18%, 240px);
    right: clamp(120px, 18%, 240px);
    top: 50%;
    transform: translateY(-50%);
    height: 4px;
    border-radius: 999px;
    background: linear-gradient(90deg, rgba(79, 111, 159,.92), rgba(63, 95, 134,.5));
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.36);
}

.activity-v2 .timeline-step {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 0;
    background: transparent;
    border: 0;
    box-shadow: none;
}

.activity-v2 .timeline-step.start {
    text-align: left;
    align-items: flex-start;
}

.activity-v2 .timeline-step.end {
    text-align: right;
    align-items: flex-end;
}

.activity-v2 .timeline-step::after {
    content: none;
}

.activity-v2 .timeline-step-label {
    font-size: .68rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--brand-1);
    margin-bottom: 4px;
}

.activity-v2 .timeline-step-day {
    font-size: .98rem;
    font-weight: 800;
    color: var(--ink);
    line-height: 1.15;
}

.activity-v2 .timeline-step-time {
    font-size: 1.2rem;
    font-weight: 800;
    line-height: 1.05;
    color: var(--ink);
}

.activity-v2 .timeline-step-meta {
    font-size: .82rem;
    color: var(--muted);
}

.activity-v2 .timeline-center {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 18px;
}

.activity-v2 .timeline-center::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: calc(100% - 26px);
    max-width: 120px;
    height: 60px;
    border-radius: 999px;
    background: rgba(245, 251, 250, .98);
    z-index: 0;
}

.activity-v2 .timeline-center-badge {
    position: relative;
    z-index: 1;
    min-width: 84px;
    height: 56px;
    padding: 0 16px;
    border-radius: 999px;
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, rgb(79, 111, 159), rgb(63, 95, 134));
    color: white;
    opacity: 1;
    box-shadow: 0 12px 24px rgba(79, 111, 159,.18);
}

.activity-v2 .timeline-center-badge strong {
    font-size: 1rem;
    line-height: 1;
}

.activity-v2 .timeline-center-badge span {
    font-size: .66rem;
    text-transform: uppercase;
    letter-spacing: .08em;
    opacity: .9;
    line-height: 1.1;
}

.activity-v2 .elevation-profile-wrap {
    margin-top: 14px;
}

.activity-v2 .elevation-profile-wrap.is-collapsed {
    display: none;
}

.activity-v2 .gpx-panel.profile-collapsed .map-fullscreen-shell {
    margin-bottom: 14px;
}

.activity-v2 .timeline-center::before {
    content: none;
}

.activity-v2 .stats-under-map {
    margin-top: 18px;
}

.activity-v2 .stats-under-map .thematic-stats-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 0;
}

.activity-v2 .stats-under-map .mini-stat {
    background: linear-gradient(180deg, rgba(79, 111, 159,.08), rgba(255,255,255,.92));
    border: 1px solid rgba(63, 95, 134,.16);
    box-shadow: 0 10px 24px rgba(15, 23, 42, .06);
}

.activity-v2 .thematic-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.activity-v2 .thematic-title {
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.2;
}
.activity-v2 .detailed-stat-card .thematic-title {
    font-size: 1rem;
    font-weight: 800;
}


.activity-v2 .thematic-list {
    display: grid;
    gap: 8px;
    margin-top: 2px;
}

.activity-v2 .thematic-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding-top: 6px;
    border-top: 1px solid rgba(255,255,255,.14);
}

.activity-v2 .thematic-row:first-child {
    border-top: 0;
    padding-top: 0;
}

.activity-v2 .thematic-label {
    font-size: .84rem;
    opacity: .86;
}

.activity-v2 .thematic-value {
    font-size: .98rem;
    font-weight: 700;
    text-align: right;
}

@media (max-width: 991.98px) {
    .activity-v2 .stats-detailed-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .activity-v2 .timeline-head {
        align-items: flex-start;
    }

    .activity-v2 .timeline-track {
        grid-template-columns: 1fr;
        gap: 14px;
        min-height: 0;
        padding-left: 0;
    }

    .activity-v2 .timeline-track::before {
        content: none;
    }

    .activity-v2 .timeline-step.start,
    .activity-v2 .timeline-step.end {
        text-align: left;
        align-items: flex-start;
        padding-left: 0;
    }

    .activity-v2 .timeline-center {
        justify-content: flex-start;
        padding: 2px 0;
    }
}

@media (max-width: 575.98px) {
    .activity-v2 .timeline-band {
        padding: 14px;
    }

    .activity-v2 .timeline-title-wrap {
        align-items: flex-start;
    }

    .activity-v2 .timeline-summary {
        width: 100%;
    }

    .activity-v2 .timeline-chip {
        font-size: .82rem;
        padding: .4rem .7rem;
    }

    .activity-v2 .timeline-step-day {
        font-size: .92rem;
    }

    .activity-v2 .timeline-step-time {
        font-size: 1.1rem;
    }

    .activity-v2 .timeline-step-meta {
        font-size: .78rem;
    }

    .activity-v2 .timeline-center {
        margin: 2px 0;
    }

    .activity-v2 .timeline-center-badge {
        min-width: 74px;
        height: 52px;
        padding: 0 14px;
    }

    .activity-v2 .stats-detailed-grid {
        grid-template-columns: 1fr;
    }

    .activity-v2 #elevationToggleButton,
    .activity-v2 #mapFullscreenToggle {
        width: 100%;
        justify-content: center;
    }
}

.activity-v2 .territory-communes-list {
    display: grid;
    gap: 8px;
}

.activity-v2 .territory-commune-row {
    display: grid;
    grid-template-columns: 34px 1fr auto;
    gap: 10px;
    align-items: center;
    padding: 10px 12px;
    border-radius: 14px;
    text-decoration: none;
    color: var(--ink);
    background: rgba(255,255,255,.7);
    border: 1px solid rgba(79, 111, 159,.08);
    transition: transform .2s ease, box-shadow .2s ease;
}

.activity-v2 .territory-commune-row:hover {
    transform: translateY(-2px);
    color: var(--ink);
    box-shadow: 0 10px 24px rgba(15,23,42,.08);
}

.activity-v2 .territory-commune-rank {
    width: 30px;
    height: 30px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(79, 111, 159,.12);
    color: var(--brand-1);
    font-weight: 800;
    font-size: .88rem;
}

.activity-v2 .territory-commune-name {
    font-weight: 600;
}

.activity-v2 .territory-commune-distance {
    color: var(--muted);
    font-weight: 700;
    white-space: nowrap;
}

.activity-v2 .osm-filter-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.activity-v2 .osm-filter-pill {
    border: 1px solid rgba(79, 111, 159,.12);
    background: rgba(255,255,255,.8);
    color: var(--ink);
    border-radius: 999px;
    padding: .55rem .85rem;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: .45rem;
}

.activity-v2 .osm-filter-pill span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 24px;
    height: 24px;
    padding: 0 6px;
    border-radius: 999px;
    background: rgba(79, 111, 159,.1);
    font-size: .78rem;
}

.activity-v2 .osm-filter-pill.is-active,
.activity-v2 .osm-filter-pill:hover {
    background: var(--pill-bg, rgba(79, 111, 159,.10));
    border-color: var(--pill-color, rgba(79, 111, 159,.22));
    color: var(--pill-color, var(--brand-1));
}

.activity-v2 .osm-display-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(300px, .9fr);
    gap: 18px;
    align-items: start;
}

.activity-v2 .osm-timeline-panel {
    min-width: 0;
}

.activity-v2 .osm-timeline-scroll {
    max-height: 720px;
    overflow-y: auto;
    overflow-x: hidden;
    padding-right: 8px;
}

.activity-v2 .osm-timeline {
    position: relative;
    display: grid;
    gap: 12px;
}

.activity-v2 .osm-timeline::before {
    content: '';
    position: absolute;
    top: 6px;
    bottom: 6px;
    left: 102px;
    width: 2px;
    background: linear-gradient(180deg, rgba(148,163,184,.18), rgba(148,163,184,.48), rgba(148,163,184,.18));
}

.activity-v2 .osm-timeline-item {
    display: grid;
    grid-template-columns: 84px 36px minmax(0, 1fr);
    align-items: start;
    gap: 10px;
}

.activity-v2 .osm-time-col {
    padding-top: 8px;
    text-align: right;
}

.activity-v2 .osm-time-date {
    font-size: .8rem;
    font-weight: 700;
    color: var(--ink);
    line-height: 1.15;
}

.activity-v2 .osm-time-hour {
    margin-top: 2px;
    font-size: .76rem;
    color: var(--muted);
    font-weight: 700;
    line-height: 1.1;
}

.activity-v2 .osm-time-unknown {
    color: var(--muted);
    font-size: .8rem;
    font-weight: 700;
}

.activity-v2 .osm-marker-col {
    position: relative;
    min-height: 100%;
}

.activity-v2 .osm-marker-dot {
    position: absolute;
    top: 18px;
    left: 50%;
    transform: translateX(-50%);
    width: 10px;
    height: 10px;
    border-radius: 999px;
    background: var(--osm-color);
    box-shadow: 0 0 0 4px rgba(255,255,255,.95);
}

.activity-v2 .osm-card {
    position: relative;
    max-width: 460px;
    padding: 12px 14px;
    border-radius: 16px;
    background: rgba(255,255,255,.72);
    border: 1px solid rgba(15,23,42,.06);
    box-shadow: 0 8px 18px rgba(15,23,42,.04);
    transition: transform .18s ease, box-shadow .18s ease;
}

.activity-v2 .osm-card.osm-card-link {
    display: block;
    text-decoration: none;
    color: inherit;
}

.activity-v2 .osm-card.osm-card-link:hover {
    transform: scale(1.02);
    box-shadow: 0 14px 28px rgba(15,23,42,.09);
    color: inherit;
}

.activity-v2 .osm-card.has-wiki {
    padding-right: 44px;
}

.activity-v2 .osm-wiki-corner {
    position: absolute;
    top: 10px;
    right: 10px;
    width: 24px;
    height: 24px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255,255,255,.96);
    border: 1px solid rgba(15,23,42,.08);
    color: #6b7280;
    box-shadow: 0 6px 16px rgba(15,23,42,.08);
    font-size: .72rem;
}

.activity-v2 .osm-card-top {
    display: flex;
    align-items: flex-start;
    gap: 10px;
}

.activity-v2 .osm-icon {
    flex: 0 0 38px;
    width: 38px;
    height: 38px;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--osm-bg);
    color: var(--osm-color);
    font-size: 1rem;
}

.activity-v2 .osm-head {
    flex: 1 1 auto;
    min-width: 0;
}

.activity-v2 .osm-title-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-bottom: 4px;
}

.activity-v2 .osm-title-row h3 {
    margin: 0;
    font-size: .98rem;
    font-weight: 800;
}

.activity-v2 .osm-type-badge {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: .28rem .58rem;
    background: var(--osm-bg);
    color: var(--osm-color);
    font-size: .76rem;
    font-weight: 700;
}

.activity-v2 .osm-meta-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 14px;
    color: var(--muted);
    font-size: .88rem;
}

.activity-v2 .osm-meta-row span {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
}

.activity-v2 .osm-progress-wrap {
    margin-top: 10px;
}

.activity-v2 .osm-progress-track {
    width: 100%;
    height: 7px;
    border-radius: 999px;
    overflow: hidden;
    background: rgba(148,163,184,.16);
}

.activity-v2 .osm-progress-bar {
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--osm-color), rgba(255,255,255,.95));
}

.activity-v2 .osm-progress-label {
    margin-top: 5px;
    color: var(--muted);
    font-size: .8rem;
    font-weight: 600;
}

.activity-v2 .osm-info-grid {
    margin-top: 10px;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.activity-v2 .osm-info-box {
    padding: 9px 10px;
    border-radius: 12px;
    background: rgba(248,250,252,.82);
    border: 1px solid rgba(15,23,42,.05);
    display: grid;
    gap: 2px;
}

.activity-v2 .osm-info-box .label {
    color: var(--muted);
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.activity-v2 .osm-info-box strong,
.activity-v2 .osm-info-box a {
    color: var(--ink);
    font-size: .86rem;
    font-weight: 700;
    text-decoration: none;
}

.activity-v2 .osm-info-box a:hover {
    text-decoration: underline;
}

.activity-v2 .osm-side-panel {
    min-width: 0;
}

.activity-v2 .osm-side-list {
    display: grid;
    gap: 12px;
}

.activity-v2 .osm-side-card {
    position: relative;
    padding: 14px;
    border-radius: 16px;
    background: rgba(255,255,255,.72);
    border: 1px solid rgba(15,23,42,.06);
    box-shadow: 0 8px 18px rgba(15,23,42,.04);
}

.activity-v2 .osm-side-card.osm-card-link:hover {
    transform: translateY(-2px);
}

.activity-v2 .osm-side-card .osm-card-top {
    padding-right: 0;
}

@media (max-width: 991.98px) {
    .activity-v2 .osm-display-grid {
        grid-template-columns: 1fr;
    }

    .activity-v2 .osm-timeline-scroll {
        max-height: 560px;
    }
    .activity-v2 .osm-card {
        max-width: none;
    }
}

@media (max-width: 575.98px) {
    .activity-v2 .territory-commune-row {
        grid-template-columns: 30px 1fr;
    }

    .activity-v2 .territory-commune-distance {
        grid-column: 2;
    }

    .activity-v2 .osm-timeline::before {
        left: 74px;
    }

    .activity-v2 .osm-timeline-item {
        grid-template-columns: 56px 26px minmax(0, 1fr);
        gap: 8px;
    }

    .activity-v2 .osm-time-col {
        padding-top: 10px;
    }

    .activity-v2 .osm-time-date,
    .activity-v2 .osm-time-hour,
    .activity-v2 .osm-time-unknown {
        font-size: .72rem;
    }

    .activity-v2 .osm-card {
        padding: 11px 12px;
    }

    .activity-v2 .osm-card-top {
        gap: 8px;
    }

    .activity-v2 .osm-info-grid {
        grid-template-columns: 1fr;
    }
}

.activity-v2 .osm-side-scroll {
    max-height: 720px;
    overflow-y: auto;
    overflow-x: hidden;
    padding-right: 8px;
}

@media (max-width: 1199.98px) {
    .activity-v2 .thematic-stats-grid,
    .activity-v2 .stats-under-map .thematic-stats-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .activity-v2 .stats-detailed-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 991.98px) {
    .activity-v2 .stats-detailed-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 575.98px) {
    .activity-v2 .thematic-stats-grid,
    .activity-v2 .stats-under-map .thematic-stats-grid,
    .activity-v2 .stats-detailed-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767.98px) {
    .activity-v2 {
        padding-top: 6px;
        background:
            linear-gradient(180deg, #f1fbf8 0%, #f8fafc 42%, #f3f6f8 100%);
    }

    .activity-v2 .dashboard-shell {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 auto !important;
        padding: 0 8px 12px !important;
        overflow-x: hidden;
    }

    .activity-v2 .hero {
        padding: 13px;
        border-radius: 18px;
        background: linear-gradient(145deg, #4f6f9f 0%, #3f5f86 100%);
        box-shadow: 0 10px 24px rgba(79, 111, 159, .16);
    }

    .activity-v2 .hero .d-flex {
        gap: 10px !important;
    }

    .activity-v2 .hero .eyebrow {
        font-size: .62rem;
        letter-spacing: .12em;
    }

    .activity-v2 .hero h1 {
        font-size: clamp(1.18rem, 6.3vw, 1.55rem);
        line-height: 1.12;
        margin: .14rem 0 .35rem;
        overflow-wrap: anywhere;
    }

    .activity-v2 .hero p {
        display: none;
    }

    .activity-v2 .hero-stats-band,
    .activity-v2 .meta-row {
        display: none;
    }

    .activity-v2 .mobile-summary-card {
        display: grid;
        gap: 9px;
        width: 100%;
        margin-top: 8px;
        padding: 9px;
        border-radius: 15px;
        background: rgba(255,255,255,.10);
        border: 1px solid rgba(255,255,255,.2);
        box-shadow: inset 0 1px 0 rgba(255,255,255,.12);
    }

    .activity-v2 .mobile-summary-meta {
        display: flex;
        gap: 6px;
        overflow-x: auto;
        scrollbar-width: none;
        margin: 0 -2px;
        padding: 0 2px;
    }

    .activity-v2 .mobile-summary-meta::-webkit-scrollbar {
        display: none;
    }

    .activity-v2 .mobile-summary-meta span {
        display: inline-flex;
        align-items: center;
        gap: .35rem;
        flex: 0 0 auto;
        max-width: 100%;
        padding: .36rem .55rem;
        border-radius: 999px;
        color: rgba(255,255,255,.94);
        background: rgba(255,255,255,.12);
        border: 1px solid rgba(255,255,255,.16);
        font-size: .72rem;
        font-weight: 700;
        white-space: nowrap;
    }

    .activity-v2 .mobile-key-stats {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 6px;
    }

    .activity-v2 .mobile-key-stat {
        grid-column: span 1;
        min-width: 0;
        padding: 7px 5px;
        border-radius: 11px;
        background: rgba(5, 46, 43, .20);
        color: #ffffff;
        border: 1px solid rgba(255,255,255,.18);
        box-shadow: none;
    }

    .activity-v2 .mobile-key-stat.is-main {
        grid-column: span 2;
        padding: 10px 9px;
    }

    .activity-v2 .mobile-key-label {
        display: flex;
        align-items: center;
        gap: .32rem;
        color: rgba(255,255,255,.74);
        font-size: .56rem;
        font-weight: 800;
        text-transform: uppercase;
        line-height: 1.1;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .activity-v2 .mobile-key-value {
        margin-top: 3px;
        font-size: .72rem;
        font-weight: 900;
        line-height: 1.05;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .activity-v2 .mobile-key-stat.is-main .mobile-key-value {
        font-size: 1.22rem;
    }

    .activity-v2 .mobile-key-stat.is-note {
        background: rgba(210, 173, 116, .18);
        color: #fff7ed;
    }

    .activity-v2 .mobile-key-stat.is-note .mobile-key-label {
        color: rgba(255, 247, 237, .78);
    }

    .activity-v2 .mobile-action-strip {
        display: flex;
        gap: 7px;
        overflow-x: auto;
        scrollbar-width: none;
        padding-bottom: 1px;
    }

    .activity-v2 .mobile-action-strip::-webkit-scrollbar {
        display: none;
    }

    .activity-v2 .mobile-action-strip .btn {
        flex: 1 0 auto;
        min-height: 36px;
        border-radius: 999px;
        padding: .42rem .72rem;
        font-size: .76rem;
        font-weight: 800;
        border-color: rgba(255,255,255,.32);
        white-space: nowrap;
    }

    .activity-v2 .mobile-map-slot {
        display: block;
        min-width: 0;
        margin: 8px 0 0;
    }

    .activity-v2 .mobile-map-slot .gpx-panel {
        margin: 0;
        padding: 8px;
        border-radius: 16px;
        background: #ffffff;
        border: 1px solid rgba(15, 23, 42, .06);
        box-shadow: 0 10px 24px rgba(15, 23, 42, .08);
    }

    .activity-v2 .mobile-map-slot .gpx-panel > .d-flex {
        display: grid !important;
        grid-template-columns: 1fr auto;
        align-items: center !important;
        gap: 7px !important;
        margin-bottom: 7px !important;
    }

    .activity-v2 .mobile-map-slot .gpx-panel > .d-flex > div:first-child {
        width: auto;
        min-width: 0;
    }

    .activity-v2 .mobile-map-slot .gpx-panel .section-title {
        margin: 0;
        font-size: .82rem;
        color: #0f172a;
    }

    .activity-v2 .mobile-map-slot .gpx-panel .d-flex.flex-wrap.align-items-center.gap-2 {
        display: flex !important;
        flex-wrap: nowrap !important;
        gap: 5px !important;
    }

    .activity-v2 .mobile-map-slot #elevationToggleButton,
    .activity-v2 .mobile-map-slot #mapFullscreenToggle {
        flex: 0 0 auto;
        min-height: 30px;
        padding: .34rem .48rem;
        border-radius: 999px;
        font-size: .68rem;
        line-height: 1;
    }

    .activity-v2 .mobile-map-slot #elevationToggleButton .me-2,
    .activity-v2 .mobile-map-slot #mapFullscreenToggle .me-2 {
        margin-right: .25rem !important;
    }

    .activity-v2 .tabs-nav {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        width: 100%;
        gap: 4px;
        margin: 8px 0 9px;
        padding: 5px;
        border-radius: 14px;
        flex-wrap: nowrap;
        background: rgba(255,255,255,.92);
        border: 1px solid rgba(15, 23, 42, .05);
        box-shadow: 0 8px 20px rgba(15,23,42,.06);
    }

    .activity-v2 .tabs-nav .nav-item {
        min-width: 0;
    }

    .activity-v2 .tabs-nav .nav-link {
        width: 100%;
        min-height: 34px;
        padding: .42rem .24rem;
        border-radius: 10px;
        font-size: .78rem;
        line-height: 1.1;
        white-space: nowrap;
    }

    .activity-v2 .tabs-nav .nav-link i {
        display: inline-block;
        margin: 0 4px 0 0 !important;
        font-size: .78rem;
    }

    .activity-v2 .content-grid {
        --bs-gutter-x: 0;
        --bs-gutter-y: 10px;
        margin-top: 0;
    }

    .activity-v2 .content-grid > [class*="col-"]:first-child {
        display: flex;
        flex-direction: column;
        gap: 0;
    }

    .activity-v2 .gpx-panel {
        order: 1;
    }

    .activity-v2 .relive-panel {
        order: 2;
    }

    .activity-v2 .detailed-stats-panel {
        order: 3;
    }

    .activity-v2 .section-card,
    .activity-v2 .table-card {
        padding: 12px;
        border-radius: 16px;
        box-shadow: 0 10px 24px rgba(15, 23, 42, .07);
    }

    .activity-v2 .side-panel {
        padding: 0;
        border: 0;
        border-radius: 0;
        background: transparent;
        box-shadow: none;
        backdrop-filter: none;
    }

    .activity-v2 .section-card.mt-4,
    .activity-v2 .side-panel .mb-4,
    .activity-v2 .side-panel .mb-3 {
        margin-top: 10px !important;
        margin-bottom: 10px !important;
    }

    .activity-v2 .section-title {
        font-size: .98rem;
        margin-bottom: 7px;
        line-height: 1.18;
    }

    .activity-v2 .section-intro,
    .activity-v2 .muted {
        font-size: .82rem;
        line-height: 1.35;
    }

    .activity-v2 .gpx-panel > .d-flex {
        align-items: stretch !important;
        gap: 8px !important;
        margin-bottom: 10px !important;
    }

    .activity-v2 .gpx-panel .section-title {
        margin-bottom: 2px;
    }

    .activity-v2 .desktop-section-label {
        display: none;
    }

    .activity-v2 .mobile-section-label {
        display: inline;
    }

    .activity-v2 .gpx-panel .muted {
        display: none;
    }

    .activity-v2 .gpx-panel > .d-flex > div:first-child {
        width: 100%;
    }

    .activity-v2 #elevationToggleButton,
    .activity-v2 #mapFullscreenToggle {
        flex: 1 1 150px;
        min-height: 38px;
        padding: .5rem .58rem;
        border-radius: 12px;
        font-size: .8rem;
        justify-content: center;
    }

    .activity-v2 .map-wrap,
    .activity-v2 .peakfinder-wrap,
    .activity-v2 .comment-wrap iframe,
    .activity-v2 .relive-wrap video {
        border-radius: 14px;
    }

    .activity-v2 #map,
    .activity-v2 .hero-map {
        height: min(50vh, 310px) !important;
        min-height: 230px;
    }

    .activity-v2 #elevation-div {
        margin: 10px -12px 0;
        width: calc(100% + 24px);
        min-width: calc(100% + 24px);
        max-width: calc(100% + 24px);
        min-height: 188px;
        padding: 8px 0 12px;
    }

    .activity-v2 .elevation-profile-wrap.is-collapsed {
        display: none;
    }

    .activity-v2 #elevation-div svg {
        height: 176px !important;
    }

    .activity-v2 .detailed-stats-panel {
        margin-top: 10px !important;
    }

    .activity-v2 .timeline-band {
        display: none;
    }

    .activity-v2 .timeline-shell {
        gap: 8px;
    }

    .activity-v2 .timeline-title-wrap,
    .activity-v2 .timeline-head {
        gap: 8px;
    }

    .activity-v2 .timeline-title-wrap .detailed-stat-icon {
        display: none;
    }

    .activity-v2 .timeline-summary {
        width: 100%;
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 6px;
    }

    .activity-v2 .timeline-chip {
        justify-content: center;
        padding: .36rem .42rem;
        font-size: .76rem;
        min-width: 0;
    }

    .activity-v2 .timeline-track {
        grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
        gap: 8px;
        min-height: 0;
    }

    .activity-v2 .timeline-step-day {
        font-size: .78rem;
    }

    .activity-v2 .timeline-step-time {
        font-size: .96rem;
    }

    .activity-v2 .timeline-step-meta,
    .activity-v2 .timeline-step-label {
        font-size: .62rem;
    }

    .activity-v2 .timeline-center {
        padding: 0;
    }

    .activity-v2 .timeline-center-badge {
        min-width: 54px;
        height: 42px;
        padding: 0 8px;
    }

    .activity-v2 .stats-detailed-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 6px;
    }

    .activity-v2 .detailed-stat-card {
        padding: 8px;
        border-radius: 12px;
        gap: 7px;
        box-shadow: none;
    }

    .activity-v2 .detailed-stat-head {
        gap: 7px;
        margin-bottom: 5px;
    }

    .activity-v2 .detailed-stat-icon {
        width: 30px;
        height: 30px;
        border-radius: 10px;
        font-size: .78rem;
    }

    .activity-v2 .detailed-stat-card .thematic-title {
        font-size: .74rem;
        line-height: 1.15;
    }

    .activity-v2 .detailed-stat-list {
        gap: 5px;
    }

    .activity-v2 .detailed-stat-row {
        display: grid;
        gap: 2px;
        padding: 5px 6px;
        border-radius: 10px;
    }

    .activity-v2 .detailed-stat-row .thematic-label {
        font-size: .58rem;
        letter-spacing: .04em;
    }

    .activity-v2 .detailed-stat-row .thematic-value {
        text-align: left;
        font-size: .82rem;
    }

    .activity-v2 .relive-wrap {
        max-height: none;
        padding: 0;
    }

    .activity-v2 .relive-wrap video,
    .activity-v2 .relive-video-player {
        min-height: 0;
        max-height: min(42vh, 250px);
        aspect-ratio: 16 / 9;
    }

    .activity-v2 .peakfinder-wrap {
        min-height: 230px;
    }

    .activity-v2 #pfcanvas {
        height: min(42vh, 300px);
    }

    .activity-v2 .osm-filter-pills {
        display: flex;
        flex-wrap: nowrap;
        gap: 6px;
        overflow-x: auto;
        padding-bottom: 2px;
        scrollbar-width: none;
    }

    .activity-v2 .osm-filter-pills::-webkit-scrollbar {
        display: none;
    }

    .activity-v2 .osm-filter-pill {
        flex: 0 0 auto;
        padding: .38rem .58rem;
        font-size: .76rem;
    }

    .activity-v2 .osm-timeline-scroll,
    .activity-v2 .osm-side-scroll {
        max-height: 430px;
        padding-right: 0;
    }

    .activity-v2 .side-panel {
        height: auto;
        margin-top: 0;
    }

    .activity-v2 .side-actions-block {
        display: none;
    }

    .activity-v2 .side-panel > .section-title {
        margin: 10px 0 6px;
        padding: 0 2px;
        font-size: .82rem;
        color: #334155;
        text-transform: uppercase;
        letter-spacing: .04em;
    }

    .activity-v2 .side-panel > .section-title:first-child {
        margin-top: 0;
    }

    .activity-v2 .rating-wrap {
        display: block;
    }

    .activity-v2 .rating-wrap #rating,
    .activity-v2 .rating-wrap .fw-semibold {
        display: none;
    }

    .activity-v2 .mobile-rating-score {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 10px;
        min-height: 44px;
        padding: 10px 12px;
        border-radius: 13px;
        background: linear-gradient(135deg, #fff7ed, #ffffff);
        border: 1px solid rgba(251, 146, 60, .22);
        color: #7c2d12;
    }

    .activity-v2 .mobile-rating-score span {
        font-size: .75rem;
        font-weight: 800;
        text-transform: uppercase;
        letter-spacing: .05em;
    }

    .activity-v2 .mobile-rating-score strong {
        font-size: 1rem;
        font-weight: 900;
    }

    .activity-v2 .quick-actions {
        grid-template-columns: 1fr;
        gap: 7px;
    }

    .activity-v2 .quick-actions .btn {
        min-height: 40px;
        padding: .56rem .7rem;
        border-radius: 12px;
        font-size: .84rem;
        text-align: center;
    }

    .activity-v2 .side-panel .glass-card {
        border-radius: 14px;
        box-shadow: none;
    }

    .activity-v2 .person-card {
        padding: 9px;
        border-radius: 13px;
    }

    .activity-v2 .person-card img,
    .activity-v2 .participant-avatar {
        width: 44px;
        height: 44px;
    }

    .activity-v2 .entity-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
    }

    .activity-v2 .entity-card {
        padding: 9px;
        border-radius: 13px;
    }

    .activity-v2 .entity-card .fw-bold {
        min-height: 0;
        font-size: .82rem;
    }

    .activity-v2 .entity-card-link {
        min-height: 96px;
        margin-top: 6px;
        padding: 8px;
        border-radius: 12px;
    }

    .activity-v2 .entity-card img {
        height: 70px;
        max-width: 118px;
    }

    .activity-v2 .territory-communes-list {
        gap: 5px;
    }

    .activity-v2 .territory-commune-row {
        padding: 7px 8px;
        border-radius: 11px;
        font-size: .8rem;
    }

    .activity-v2 .icon-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
        gap: 7px;
    }

    .activity-v2 .icon-card {
        min-height: 58px;
        padding: 8px 5px;
        border-radius: 13px;
    }

    .activity-v2 .icon-card img {
        max-height: 38px;
        margin-bottom: 0;
    }

    .activity-v2 .icon-card .fw-semibold {
        display: none !important;
    }

    .activity-v2 textarea.note-editor {
        min-height: 170px;
        padding: 12px;
        border-radius: 14px;
        font-size: .9rem;
    }

    .activity-v2 .comment-wrap iframe {
        min-height: 360px;
    }

    .activity-v2 .table-card {
        overflow-x: auto;
    }
}

@media (max-width: 575.98px) {
    .activity-v2 .dashboard-shell {
        padding-left: 6px !important;
        padding-right: 6px !important;
    }

    .activity-v2 .hero-stats-band {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .activity-v2 .stats-detailed-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .activity-v2 .panel-chip {
        font-size: .7rem;
        padding: .38rem .42rem;
    }

    .activity-v2 .tabs-nav .nav-link {
        font-size: .72rem;
    }

    .activity-v2 .timeline-summary {
        grid-template-columns: 1fr;
    }

    .activity-v2 .timeline-track {
        grid-template-columns: 1fr;
        gap: 6px;
    }

    .activity-v2 .timeline-step.start,
    .activity-v2 .timeline-step.end {
        align-items: stretch;
        text-align: left;
        padding: 8px;
        border-radius: 11px;
        background: rgba(255,255,255,.72);
    }

    .activity-v2 .timeline-center {
        justify-content: center;
    }

    .activity-v2 .detailed-stat-row .thematic-value {
        font-size: .78rem;
    }
}
