:root {
    --cd-green: #3d9e3d;
    --cd-green-dark: #2f7f32;
    --cd-green-pale: #eef7ed;
    --cd-orange: #efad4d;
    --cd-blue: #397dac;
    --cd-facebook: #1877f2;
    --cd-text: #252a27;
    --cd-muted: #6c736e;
    --cd-line: #dfe5e0;
    --cd-bg: #ffffff;
    --cd-soft: #f6f8f6;
    --cd-danger: #b83c3c;
    --cd-header-height: 62px;
}

* { box-sizing: border-box; }
html { min-height: 100%; }
body.app-v2 {
    margin: 0;
    min-height: 100vh;
    background: var(--cd-bg);
    color: var(--cd-text);
    font-family: Arial, Helvetica, sans-serif;
    font-size: 16px;
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
}
body.menu-open { overflow: hidden; }
a { color: var(--cd-green-dark); text-decoration: none; }
button, input { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }

.app-header {
    position: sticky;
    top: 0;
    z-index: 50;
    height: var(--cd-header-height);
    background: #fff;
    border-bottom: 1px solid var(--cd-line);
}
.app-header-inner {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 16px;
}
.app-brand { display: inline-flex; align-items: center; gap: 5px; color: var(--cd-text); }
.app-brand-name { font-family: Georgia, "Times New Roman", serif; font-size: 24px; font-weight: 700; letter-spacing: -.5px; }
.app-brand-name span { color: var(--cd-green); }
.app-brand-feather { width: auto; height: 23px; }
.menu-button,
.drawer-close {
    border: 0;
    background: transparent;
    color: var(--cd-text);
    cursor: pointer;
}
.menu-button { min-height: 44px; display: flex; align-items: center; gap: 7px; padding: 0; font-weight: 700; }
.menu-button i { color: var(--cd-green-dark); font-size: 25px; }
.header-public-link { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 700; }

.app-main { width: 100%; max-width: 760px; margin: 0 auto; padding: 24px 17px 54px; }
.is-guest .app-main { display: grid; min-height: calc(100vh - var(--cd-header-height)); align-items: center; }

h1, h2 { margin-top: 0; }
h1 { font-size: clamp(30px, 9vw, 40px); line-height: 1.08; letter-spacing: -.8px; }
h2 { font-size: 23px; line-height: 1.2; letter-spacing: -.3px; }
p { margin-top: 0; }

.welcome-v22 { padding: 8px 0 23px; }
.welcome-small,
.section-kicker {
    margin: 0 0 4px;
    color: var(--cd-green-dark);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
}
.welcome-v22 h1 { margin-bottom: 10px; }
.welcome-intro { max-width: 560px; margin-bottom: 0; color: var(--cd-muted); font-size: 16px; }

.account-summary {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    margin: 0 0 30px;
    border-top: 1px solid var(--cd-line);
    border-bottom: 1px solid var(--cd-line);
}
.account-summary a { min-width: 0; padding: 12px 7px 11px; color: var(--cd-text); text-align: center; }
.account-summary a + a { border-left: 1px solid var(--cd-line); }
.account-summary strong,
.account-summary span { display: block; }
.account-summary strong { font-size: 16px; color: var(--cd-green-dark); }
.account-summary span { margin-top: 2px; overflow: hidden; color: var(--cd-muted); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }

.map-feature {
    position: relative;
    overflow: hidden;
    display: grid;
    grid-template-columns: 1fr 76px;
    gap: 10px;
    margin: 0 -17px 30px;
    padding: 26px 17px;
    background: var(--cd-green-pale);
    border-top: 1px solid #dbe9da;
    border-bottom: 1px solid #dbe9da;
}
.map-feature h2 { margin-bottom: 8px; font-size: 29px; }
.map-feature p:not(.section-kicker) { max-width: 460px; margin-bottom: 17px; color: #58635a; }
.map-feature-mark { position: relative; display: flex; align-items: center; justify-content: center; color: var(--cd-green-dark); font-size: 42px; }
.map-feature-mark span { position: absolute; width: 66px; height: 66px; border: 1px solid rgba(47,127,50,.2); border-radius: 50%; }
.button-cta {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 10px 17px;
    background: var(--cd-green-dark);
    color: #fff;
    border-radius: 4px;
    font-weight: 700;
}

.profile-reminder {
    display: grid;
    gap: 12px;
    margin: -4px 0 30px;
    padding: 14px 0 16px;
    border-bottom: 1px solid var(--cd-line);
}
.profile-reminder strong { display: block; margin-bottom: 3px; }
.profile-reminder p { margin: 0; color: var(--cd-muted); font-size: 14px; }
.profile-reminder > a { font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }

.home-section { margin: 34px 0 0; }
.home-section-title { margin-bottom: 14px; }
.home-section-title h2 { margin-bottom: 0; }
.tags { display: flex; flex-wrap: wrap; gap: 9px; }
.tags a {
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 9px 13px;
    border: 1px solid #b8cdb9;
    border-radius: 3px;
    color: var(--cd-green-dark);
    background: #fff;
    font-size: 14px;
    font-weight: 700;
}
.tags a i { font-size: 16px; }

.simple-links { border-top: 1px solid var(--cd-line); }
.simple-links a {
    min-height: 67px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 11px 1px;
    color: var(--cd-text);
    border-bottom: 1px solid var(--cd-line);
}
.simple-links strong,
.simple-links small { display: block; }
.simple-links strong { font-size: 15px; }
.simple-links small { margin-top: 1px; color: var(--cd-muted); font-size: 12px; }
.simple-links > a > i { flex: 0 0 auto; color: #929a94; }

.facebook-help {
    display: grid;
    grid-template-columns: 30px 1fr;
    gap: 12px;
    margin: 40px 0 0;
    padding: 20px 0 0;
    border-top: 2px solid #dbe7f7;
}
.facebook-help > i { margin-top: 2px; color: var(--cd-facebook); font-size: 25px; }
.facebook-help h2 { margin-bottom: 8px; font-size: 20px; }
.facebook-help p:not(.section-kicker) { margin-bottom: 10px; color: var(--cd-muted); font-size: 14px; }
.facebook-help a { color: var(--cd-facebook); font-weight: 700; }

.drawer-overlay { position: fixed; z-index: 2000; inset: 0; background: rgba(20,25,21,.34); opacity: 0; pointer-events: none; transition: opacity .18s ease; }
.app-drawer { position: fixed; z-index: 2100; top: 0; right: 0; width: min(88vw, 340px); height: 100dvh; display: flex; flex-direction: column; background: #fff; transform: translateX(101%); transition: transform .2s ease; border-left: 1px solid var(--cd-line); }
.app-drawer.is-open { transform: translateX(0); }
.menu-open .drawer-overlay { opacity: 1; pointer-events: auto; }
.drawer-topline { min-height: 72px; display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 13px 18px; border-bottom: 1px solid var(--cd-line); }
.drawer-topline strong,
.drawer-topline span { display: block; }
.drawer-topline strong { font-size: 17px; }
.drawer-topline span { margin-top: 1px; color: var(--cd-muted); font-size: 12px; }
.drawer-close { width: 42px; height: 42px; font-size: 21px; }
.drawer-nav { padding: 9px 17px; }
.drawer-nav a { min-height: 48px; display: flex; align-items: center; gap: 12px; color: var(--cd-text); font-weight: 600; }
.drawer-nav i { width: 22px; color: var(--cd-green-dark); font-size: 18px; text-align: center; }
.drawer-nav .drawer-nav-main { color: var(--cd-green-dark); font-weight: 700; }
.drawer-nav .facebook-icon { color: var(--cd-facebook); }
.drawer-separator { display: block; margin: 6px 0; border-top: 1px solid var(--cd-line); }
.drawer-footer { margin-top: auto; padding: 12px 18px calc(17px + env(safe-area-inset-bottom)); border-top: 1px solid var(--cd-line); }
.drawer-footer a { min-height: 42px; display: flex; align-items: center; gap: 9px; color: var(--cd-muted); font-size: 14px; }
.drawer-footer .logout-link { color: var(--cd-danger); }

.login-shell { width: 100%; max-width: 430px; margin: 0 auto; }
.login-intro { margin-bottom: 25px; }
.login-intro h1 { margin-bottom: 9px; }
.login-intro p { color: var(--cd-muted); }
.login-kicker { display: inline-block; margin-bottom: 4px; color: var(--cd-green-dark); font-size: 12px; font-weight: 700; text-transform: uppercase; }
.login-form { display: grid; gap: 7px; }
.login-form label { margin-top: 8px; font-size: 13px; font-weight: 700; }
.login-form input { width: 100%; min-height: 50px; padding: 0 13px; border: 1px solid #cbd2cd; border-radius: 3px; background: #fff; color: var(--cd-text); outline: none; }
.login-form input:focus { border-color: var(--cd-green-dark); box-shadow: 0 0 0 2px rgba(47,127,50,.1); }
.password-field { position: relative; }
.password-field input { padding-right: 52px; }
.password-toggle { position: absolute; top: 3px; right: 3px; width: 44px; height: 44px; border: 0; background: transparent; color: var(--cd-muted); font-size: 19px; cursor: pointer; }
.btn { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 10px 16px; border: 0; border-radius: 3px; font-weight: 700; cursor: pointer; }
.btn-primary { background: var(--cd-green-dark); color: #fff; }
.btn-secondary { border: 1px solid #b8cdb9; background: #fff; color: var(--cd-green-dark); }
.btn-large { width: 100%; min-height: 50px; margin-top: 14px; font-size: 16px; }
.login-links { display: flex; flex-direction: column; gap: 14px; margin-top: 20px; text-align: center; font-size: 14px; font-weight: 600; }
.login-help { margin: 26px 0 0; padding-top: 18px; border-top: 1px solid var(--cd-line); color: var(--cd-muted); font-size: 13px; text-align: center; }
.alert { display: flex; gap: 9px; margin-bottom: 18px; padding: 11px 12px; border-left: 3px solid currentColor; background: var(--cd-soft); font-size: 14px; }
.alert-error { color: var(--cd-danger); }
.alert-success { color: var(--cd-green-dark); }

.page-placeholder { min-height: 55vh; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; }
.page-placeholder h1 { margin: 10px 0; }
.page-placeholder p { max-width: 560px; color: var(--cd-muted); }
.placeholder-icon { width: 44px; height: 44px; display: grid; place-items: center; margin-top: 24px; border: 1px solid var(--cd-line); color: var(--cd-green-dark); font-size: 21px; }
.back-link { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; }

.app-footer { display: none; }

/* --- Authentification V2.3 : connexion + creation de compte --- */
.is-guest .app-main {
    display: block;
    min-height: 0;
    max-width: none;
    padding: 0 0 42px;
}

.auth-shell {
    position: relative;
    width: 100%;
    max-width: 520px;
    margin: 0 auto;
    background: #fff;
}

.auth-hero {
    width: 100%;
    height: clamp(135px, 38vw, 185px);
    overflow: hidden;
    background: var(--cd-soft);
}

.auth-hero img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    object-position: center 34%;
    background: white;
}

.auth-feather {
    position: relative;
    z-index: 2;
    width: 58px;
    height: 58px;
    display: grid;
    place-items: center;
    margin: -29px auto 0;
    background: #fff;
    border: 1px solid var(--cd-line);
    border-radius: 50%;
}

.auth-feather img {
    width: auto;
    height: 30px;
}

.auth-content {
    padding: 15px 18px 0;
}

.auth-intro {
    max-width: 430px;
    margin: 0 auto 20px;
    text-align: center;
}

.auth-intro h1 {
    margin: 0 0 8px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(27px, 8vw, 35px);
    line-height: 1.1;
    letter-spacing: -.5px;
    color: var(--cd-green-dark);
}

.auth-intro p {
    max-width: 390px;
    margin: 0 auto;
    color: var(--cd-muted);
    font-size: 14px;
    line-height: 1.45;
}

.auth-shell .login-form {
    max-width: 430px;
    margin: 0 auto;
}

.auth-shell .login-form label {
    margin-top: 7px;
}

.auth-shell .login-form input {
    min-height: 48px;
}

.forgot-link {
    width: fit-content;
    display: block;
    margin: 14px auto 0;
    font-size: 13px;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.auth-separator {
    position: relative;
    max-width: 430px;
    height: 30px;
    margin: 15px auto 3px;
}

.auth-separator::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    border-top: 1px solid var(--cd-line);
}

.auth-separator span {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 42px;
    height: 28px;
    display: grid;
    place-items: center;
    transform: translate(-50%, -50%);
    background: #fff;
    color: var(--cd-muted);
    font-size: 18px;
}

.auth-switch {
    max-width: 430px;
    margin: 18px auto 0;
    text-align: center;
    font-size: 14px;
}

.auth-switch > span {
    display: block;
    margin-bottom: 8px;
    color: var(--cd-muted);
}

.auth-switch > a:not(.btn) {
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.auth-switch-block .btn {
    width: 100%;
}

.auth-shell .login-help {
    max-width: 430px;
    margin: 24px auto 0;
    padding-top: 15px;
}

.password-rules {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 5px 10px;
    margin: 9px 0 3px;
    color: #808780;
    font-size: 11px;
}

.password-rules span {
    display: flex;
    align-items: center;
    gap: 5px;
}

.password-rules span.is-valid {
    color: var(--cd-green-dark);
}

.cgu-check {
    display: grid !important;
    grid-template-columns: 20px 1fr;
    align-items: start;
    gap: 8px;
    margin: 15px 0 0 !important;
    color: var(--cd-muted);
    font-size: 12px !important;
    font-weight: 400 !important;
    line-height: 1.4;
}

.cgu-check input {
    width: 18px !important;
    min-height: 18px !important;
    height: 18px;
    margin: 1px 0 0;
    accent-color: var(--cd-green-dark);
}

.cgu-check a {
    text-decoration: underline;
    text-underline-offset: 2px;
}

.auth-success-panel {
    max-width: 430px;
    margin: 10px auto 0;
    text-align: center;
}

.auth-success-panel > i {
    display: block;
    margin-bottom: 10px;
    color: var(--cd-green-dark);
    font-size: 42px;
}

.auth-success-panel h2 {
    margin-bottom: 8px;
}

.auth-success-panel p {
    color: var(--cd-muted);
}

.auth-success-panel .auth-small {
    font-size: 12px;
}

/* --- Carte V2.5 : mobile-first --- */
.map-v2 { margin: -4px -17px 0; }
.map-v2-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; padding: 14px 17px 17px; }
.map-v2-head h1 { margin: 0 0 7px; }
.map-v2-intro { max-width: 520px; margin: 0; color: var(--cd-muted); font-size: 14px; line-height: 1.45; }
.map-v2-count { flex: 0 0 auto; padding-bottom: 3px; text-align: right; }
.map-v2-count strong, .map-v2-count span { display: block; }
.map-v2-count strong { color: var(--cd-green-dark); font-family: Georgia, "Times New Roman", serif; font-size: 25px; line-height: 1; }
.map-v2-count span { margin-top: 3px; color: var(--cd-muted); font-size: 10px; text-transform: uppercase; letter-spacing: .04em; }
.map-v2-notice { display: flex; gap: 10px; margin: 0 17px 15px; padding: 11px 12px; background: #fff8e8; border-left: 3px solid var(--cd-orange); color: #645437; font-size: 13px; }
.map-v2-notice i { flex: 0 0 auto; margin-top: 1px; }

.map-v2-tools { padding: 0 17px 14px; }
.map-v2-search-wrap { position: relative; }
.map-v2-search-wrap > i { position: absolute; z-index: 2; top: 14px; left: 13px; color: var(--cd-muted); font-size: 17px; pointer-events: none; }
#map-search-city { width: 100%; min-height: 48px; padding: 0 42px; border: 1px solid #cbd2cd; border-radius: 4px; background: #fff; color: var(--cd-text); outline: none; }
#map-search-city:focus { border-color: var(--cd-green-dark); box-shadow: 0 0 0 2px rgba(47,127,50,.08); }
.map-v2-search-results { position: absolute; z-index: 1100; top: calc(100% + 5px); left: 0; right: 0; max-height: 280px; overflow-y: auto; background: #fff; border: 1px solid var(--cd-line); box-shadow: 0 8px 24px rgba(26,38,28,.12); }
.map-v2-search-results button { width: 100%; min-height: 55px; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; padding: 8px 12px; border: 0; border-bottom: 1px solid var(--cd-line); background: #fff; color: var(--cd-text); text-align: left; cursor: pointer; }
.map-v2-search-results button:last-child { border-bottom: 0; }
.map-v2-search-results strong { font-size: 14px; }
.map-v2-search-results span, .map-v2-search-results p { color: var(--cd-muted); font-size: 12px; }
.map-v2-search-results p { margin: 0; padding: 13px; }

.map-v2-primary-actions { display: grid; grid-template-columns: repeat(3, 1fr); gap: 7px; margin-top: 8px; }
.map-v2-action { min-width: 0; min-height: 49px; display: flex; align-items: center; justify-content: center; gap: 6px; padding: 7px 5px; border: 1px solid var(--cd-line); border-radius: 4px; background: #fff; color: var(--cd-green-dark); font-size: 12px; font-weight: 700; cursor: pointer; text-align: center; }
.map-v2-action i { flex: 0 0 auto; font-size: 16px; }
.map-v2-action b { min-width: 17px; height: 17px; display: inline-grid; place-items: center; padding: 0 4px; border-radius: 20px; background: var(--cd-green-dark); color: #fff; font-size: 10px; }
.map-v2-action.is-loading { opacity: .55; pointer-events: none; }
.map-v2-gpx-action { cursor: pointer; }

.map-v2-route { display:block; margin:0 17px 12px; padding:12px; background:var(--cd-green-pale); border-left:3px solid var(--cd-green-dark); }
.map-v2-route-main { display:flex; align-items:flex-start; gap:10px; min-width:0; }
.map-v2-route-copy { min-width:0; flex:1 1 auto; }
.map-v2-route strong, .map-v2-route span { display:block; }
.map-v2-route strong { font-size:13px; overflow-wrap:anywhere; }
.map-v2-route span { margin-top:2px; color:var(--cd-muted); font-size:11px; line-height:1.35; }
#map-route-remove { flex:0 0 38px; width:38px; height:38px; border:0; background:transparent; color:var(--cd-muted); cursor:pointer; }
.map-v2-route-controls { display:grid; grid-template-columns:105px minmax(0,1fr); gap:10px; align-items:end; margin-top:10px; }
.map-v2-route label { color:var(--cd-muted); font-size:10px; font-weight:700; text-align:left; }
.map-v2-route select { display:block; width:100%; min-height:38px; margin-top:3px; border:1px solid #bfd0bf; background:#fff; color:var(--cd-text); font-size:12px; }
.map-v2-route-save { min-width:0; }
#map-save-voyage { width:100%; white-space:normal; line-height:1.25; padding:8px 10px; }
#map-route-saved { line-height:1.3; }

.map-v2-stage { position: relative; width: 100%; height: min(64vh, 610px); min-height: 440px; border-top: 1px solid var(--cd-line); border-bottom: 1px solid var(--cd-line); background: #edf0ed; }
.map-v2-canvas { width: 100%; height: 100%; }
.map-v2-recenter { position: absolute; z-index: 600; right: 10px; bottom: 10px; width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid rgba(0,0,0,.16); border-radius: 4px; background: #fff; color: var(--cd-text); box-shadow: 0 1px 5px rgba(0,0,0,.16); cursor: pointer; }
.map-v2-error { height: 100%; display: grid; place-items: center; padding: 20px; color: var(--cd-danger); text-align: center; }

.cd-v2-marker { width: 34px; height: 34px; display: grid; place-items: center; position: relative; border: 2px solid #fff; border-radius: 50% 50% 50% 8px; transform: rotate(-45deg); background: var(--cd-green-dark); color: #fff; box-shadow: 0 2px 7px rgba(0,0,0,.25); }
.cd-v2-marker i { transform: rotate(45deg); font-size: 16px; }
.cd-v2-marker.is-complete::after { content: ""; position: absolute; top: -3px; right: -3px; width: 9px; height: 9px; border: 2px solid #fff; border-radius: 50%; background: var(--cd-orange); }
.cd-v2-marker.is-favorite { background: #c29026; }
.cd-v2-marker.is-voyage-contact::before { content:"\F268"; font-family:"bootstrap-icons"; position:absolute; left:-8px; bottom:-8px; width:20px; height:20px; display:grid; place-items:center; border:2px solid #fff; border-radius:50%; background:#2369ad; color:#fff; font-size:10px; transform:rotate(45deg); box-shadow:0 1px 4px rgba(0,0,0,.22); }

.cd-v2-marker-count {
    position: absolute;
    top: -8px;
    right: -8px;
    min-width: 19px;
    height: 19px;
    padding: 0 4px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 2px solid #fff;
    border-radius: 999px;
    background: var(--cd-orange);
    color: #fff;
    font-size: 10px;
    line-height: 1;
    font-weight: 800;
    transform: rotate(45deg);
    box-shadow: 0 1px 4px rgba(0,0,0,.2);
}
.cd-v2-poi { width: 28px; height: 28px; display: grid; place-items: center; border: 2px solid #fff; border-radius: 50%; color: #fff; box-shadow: 0 1px 5px rgba(0,0,0,.22); }
.cd-v2-poi-eau { background: #3c8287; }
.cd-v2-poi-gare { background: #496c9b; }
.cd-v2-poi-col { background: #b4533c; }
.cd-v2-poi i { font-size: 13px; }

.map-v2-footbar { min-height: 50px; display: flex; align-items: center; justify-content: flex-start; gap: 12px; padding: 0 17px; border-bottom: 1px solid var(--cd-line); }
.map-v2-footbar div { color: var(--cd-muted); font-size: 12px; }
.map-v2-footbar strong { color: var(--cd-green-dark); font-size: 16px; }
.map-v2-footbar button { min-height: 40px; border: 0; background: transparent; color: var(--cd-green-dark); font-weight: 700; cursor: pointer; }

.map-v2-facebook { display: grid; grid-template-columns: 27px 1fr; gap: 11px; margin: 28px 17px 10px; padding-top: 18px; border-top: 2px solid #dbe7f7; }
.map-v2-facebook > i { color: var(--cd-facebook); font-size: 23px; }
.map-v2-facebook strong { display: block; margin-bottom: 3px; font-size: 15px; }
.map-v2-facebook p { margin-bottom: 8px; color: var(--cd-muted); font-size: 13px; }
.map-v2-facebook a { color: var(--cd-facebook); font-size: 13px; font-weight: 700; }

.map-v2-sheet-backdrop, .map-v2-filter-backdrop { position: fixed; z-index: 1190; inset: 0; background: rgba(20,25,21,.38); opacity: 0; transition: opacity .18s ease; }
.map-v2-sheet-backdrop.is-open, .map-v2-filter-backdrop.is-open { opacity: 1; }
.map-v2-sheet { position: fixed; z-index: 1200; left: 0; right: 0; bottom: 0; max-height: min(78dvh, 680px); overflow-y: auto; padding: 24px 17px calc(20px + env(safe-area-inset-bottom)); background: #fff; border-radius: 12px 12px 0 0; box-shadow: 0 -8px 30px rgba(0,0,0,.16); transform: translateY(102%); transition: transform .2s ease; }
.map-v2-sheet.is-open { transform: translateY(0); }
.map-v2-sheet-close { position: absolute; z-index: 2; top: 10px; right: 10px; width: 42px; height: 42px; border: 0; border-radius: 50%; background: #f4f6f4; color: var(--cd-text); cursor: pointer; }
.map-v2-profile-loading, .map-v2-profile-error { min-height: 160px; display: flex; align-items: center; justify-content: center; gap: 10px; color: var(--cd-muted); font-size: 14px; text-align: center; }
.map-v2-loader { width: 20px; height: 20px; border: 2px solid var(--cd-line); border-top-color: var(--cd-green-dark); border-radius: 50%; animation: mapSpin .7s linear infinite; }
@keyframes mapSpin { to { transform: rotate(360deg); } }
.map-v2-profile-head { display: grid; grid-template-columns: 68px minmax(0,1fr); gap: 13px; align-items: center; padding-right: 38px; }
.map-v2-profile-photo { width: 68px; height: 68px; display: block; object-fit: cover; border-radius: 50%; }
.map-v2-profile-photo-empty { display: grid; place-items: center; background: var(--cd-soft); color: #8c938e; font-size: 27px; }
.map-v2-profile-head h2 { margin: 0 0 2px; font-size: 23px; }
.map-v2-profile-head p { margin: 0; color: var(--cd-muted); font-size: 12px; }
.map-v2-women { display: inline-flex; align-items: center; gap: 4px; margin-top: 4px; color: #8b4772; font-size: 11px; font-weight: 700; }
.map-v2-quality { display: flex; gap: 9px; margin: 17px 0 13px; padding: 11px; background: #f7f7f4; color: #6e706b; }
.map-v2-quality.is-good { background: var(--cd-green-pale); color: var(--cd-green-dark); }
.map-v2-quality > i { flex: 0 0 auto; margin-top: 1px; }
.map-v2-quality strong, .map-v2-quality small { display: block; }
.map-v2-quality strong { font-size: 13px; }
.map-v2-quality small { margin-top: 1px; color: var(--cd-muted); font-size: 11px; line-height: 1.35; }
.map-v2-profile-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 13px 0; }
.map-v2-profile-chips span { display: inline-flex; align-items: center; gap: 5px; padding: 6px 8px; background: var(--cd-soft); border: 1px solid var(--cd-line); border-radius: 3px; font-size: 11px; }
.map-v2-profile-chips i { color: var(--cd-green-dark); }
.map-v2-sheet blockquote { margin: 15px 0; padding: 0 0 0 12px; border-left: 2px solid var(--cd-orange); color: #505753; font-family: Georgia, "Times New Roman", serif; font-size: 14px; font-style: italic; line-height: 1.5; }
 .map-v2-profile-actions { display: grid; grid-template-columns: 1fr; gap: 8px; margin-top: 17px; }
.map-v2-profile-actions .btn { width: 100%; }
.map-v2-favorite-button.is-favorite { border-color: #d4af37; background: #fffaf0; color: #8a6a00; }
.map-v2-favorite-button.is-loading { opacity: .6; cursor: wait; }

.map-v2-filter-panel { position: fixed; z-index: 1200; left: 0; right: 0; bottom: 0; max-height: 82dvh; overflow-y: auto; padding: 0 17px calc(18px + env(safe-area-inset-bottom)); background: #fff; border-radius: 12px 12px 0 0; transform: translateY(102%); transition: transform .2s ease; }
.map-v2-filter-panel.is-open { transform: translateY(0); }
.map-v2-filter-head { min-height: 58px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--cd-line); }
.map-v2-filter-head strong { font-size: 20px; }
.map-v2-filter-head button { width: 42px; height: 42px; border: 0; background: transparent; cursor: pointer; }
.map-v2-filter-body label { min-height: 52px; display: flex; align-items: center; gap: 10px; border-bottom: 1px solid var(--cd-line); font-size: 14px; cursor: pointer; }
.map-v2-filter-body input { width: 19px; height: 19px; accent-color: var(--cd-green-dark); }
.map-v2-filter-body span { display: inline-flex; align-items: center; gap: 7px; }
.map-v2-filter-body span i { width: 19px; color: var(--cd-green-dark); text-align: center; }
.map-v2-filter-body hr { margin: 13px 0 0; border: 0; }
.map-v2-filter-title { margin: 10px 0 2px; color: var(--cd-muted); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; }
.map-v2-filter-apply { width: 100%; margin-top: 14px; }
.map-v2-empty { padding-top: 30px; }


/* --- Carte V2.6 : profils partages a une localisation + contacts --- */
.map-v2-location-nav {
    min-height: 42px;
    display: grid;
    grid-template-columns: 42px 1fr 42px;
    align-items: center;
    gap: 6px;
    margin: -2px 36px 14px 0;
    border-top: 1px solid var(--cd-line);
    border-bottom: 1px solid var(--cd-line);
}
.map-v2-location-nav button {
    width: 42px;
    height: 42px;
    border: 0;
    background: transparent;
    color: var(--cd-green-dark);
    font-size: 20px;
    cursor: pointer;
}
.map-v2-location-nav span {
    color: var(--cd-muted);
    font-size: 12px;
    text-align: center;
}
.map-v2-location-nav strong { color: var(--cd-text); }
.map-v2-profile-status { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 5px; }
.map-v2-contact-badge,
.map-v2-contact-badge { font-size: 11px; }

/* V2.9 - Favoris sur la carte : petite plume CycloDort */
.cd-v2-marker.is-favorite::before {
    content: "";
    position: absolute;
    left: -10px;
    bottom: -8px;
    width: 20px;
    height: 20px;
    border: 2px solid #fff;
    border-radius: 50%;
    background: #fff url('/plume.png') center / 13px auto no-repeat;
    box-shadow: 0 1px 4px rgba(0,0,0,.22);
    transform: rotate(45deg);
    z-index: 3;
}

/* v2.10 - Respect des panneaux masques */
.map-v2-route[hidden],
#map-gpx-poi-filters[hidden] {
    display: none !important;
}

/* --- Mon profil V2.12 ---------------------------------------------------- */
.profile-v2 { width: 100%; }
.profile-v2-heading { margin: 2px 0 22px; }
.profile-v2-heading h1 { margin-bottom: 9px; }
.profile-v2-heading > p:last-child { max-width: 600px; margin: 0; color: var(--cd-muted); font-size: 14px; line-height: 1.5; }
.profile-v2-heading a { font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }

.profile-v2-summary { display: grid; grid-template-columns: 64px 1fr; align-items: center; gap: 14px; margin: 4px 0 19px; }
.profile-v2-avatar { width: 64px; height: 64px; overflow: hidden; display: grid; place-items: center; border-radius: 50%; background: var(--cd-green-pale); color: var(--cd-green-dark); font-family: Georgia, "Times New Roman", serif; font-size: 29px; font-weight: 700; }
.profile-v2-avatar img { width: 100%; height: 100%; object-fit: cover; }
.profile-v2-summary-copy strong, .profile-v2-summary-copy span { display: block; }
.profile-v2-summary-copy strong { margin-bottom: 4px; font-size: 20px; }
.profile-v2-summary-copy span { color: var(--cd-muted); font-size: 13px; line-height: 1.35; }
.profile-v2-summary-copy i { margin-right: 3px; color: var(--cd-green-dark); }

.profile-v2-status { display: grid; grid-template-columns: 1fr; margin-bottom: 28px; border-top: 1px solid var(--cd-line); }
.profile-v2-status > div, .profile-v2-status > a { min-height: 61px; display: grid; grid-template-columns: 27px 1fr; align-items: center; gap: 10px; padding: 9px 1px; border-bottom: 1px solid var(--cd-line); color: var(--cd-text); }
.profile-v2-status i { font-size: 19px; color: var(--cd-muted); }
.profile-v2-status strong, .profile-v2-status small { display: block; }
.profile-v2-status strong { font-size: 14px; }
.profile-v2-status small { margin-top: 1px; color: var(--cd-muted); font-size: 12px; }
.profile-v2-status .is-ok i { color: var(--cd-green-dark); }
.profile-v2-status .is-optional i { color: #8c948e; }
.profile-v2-status > a i { color: var(--cd-green-dark); }

.profile-v2-section { margin: 0 0 13px; border-top: 1px solid var(--cd-line); border-bottom: 1px solid var(--cd-line); background: #fff; }
.profile-v2-section + .profile-v2-section { margin-top: 18px; }
.profile-v2-section > summary { min-height: 76px; display: grid; grid-template-columns: 38px 1fr 22px; align-items: center; gap: 10px; padding: 8px 1px; cursor: pointer; list-style: none; }
.profile-v2-section > summary::-webkit-details-marker { display: none; }
.profile-v2-section-icon { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; background: var(--cd-green-pale); color: var(--cd-green-dark); font-size: 17px; }
.profile-v2-section summary strong, .profile-v2-section summary small { display: block; }
.profile-v2-section summary strong { font-size: 16px; }
.profile-v2-section summary small { margin-top: 2px; color: var(--cd-muted); font-size: 12px; font-weight: 400; }
.profile-v2-chevron { color: var(--cd-muted); transition: transform .18s ease; }
.profile-v2-section[open] .profile-v2-chevron { transform: rotate(180deg); }

.profile-v2-form { display: grid; gap: 7px; padding: 4px 0 22px; }
.profile-v2-form label:not(.profile-v2-file), .profile-v2-choice-group legend { margin-top: 9px; color: var(--cd-text); font-size: 13px; font-weight: 700; }
.profile-v2-form label em, .profile-v2-form label > span { color: var(--cd-muted); font-size: 11px; font-style: normal; font-weight: 500; }
.profile-v2-form input[type="text"], .profile-v2-form input[type="tel"], .profile-v2-form input[type="url"], .profile-v2-form input[type="number"], .profile-v2-form select, .profile-v2-form textarea { width: 100%; min-height: 48px; padding: 10px 12px; border: 1px solid #cbd2cd; border-radius: 3px; background: #fff; color: var(--cd-text); font: inherit; outline: none; }
.profile-v2-form textarea { min-height: 108px; resize: vertical; line-height: 1.45; }
.profile-v2-form input:focus, .profile-v2-form select:focus, .profile-v2-form textarea:focus { border-color: var(--cd-green-dark); box-shadow: 0 0 0 2px rgba(47,127,50,.1); }
.profile-v2-grid-2 { display: grid; grid-template-columns: 1fr; gap: 7px; }
.profile-v2-grid-2 > div { display: grid; gap: 7px; }
.profile-v2-help { display: flex; gap: 7px; margin: 1px 0 4px; color: var(--cd-muted); font-size: 11px; line-height: 1.4; }
.profile-v2-help i { flex: 0 0 auto; color: var(--cd-green-dark); }

.profile-v2-photo-row { display: grid; grid-template-columns: 76px 1fr; align-items: center; gap: 14px; margin-bottom: 8px; padding: 12px 0 15px; border-bottom: 1px solid var(--cd-line); }
.profile-v2-photo-preview { width: 76px; height: 76px; overflow: hidden; display: grid; place-items: center; border-radius: 50%; background: var(--cd-soft); color: var(--cd-muted); font-size: 28px; }
.profile-v2-photo-preview img { width: 100%; height: 100%; object-fit: cover; }
.profile-v2-bike-preview { border-radius: 5px; }
.profile-v2-file { position: relative; min-height: 48px; display: flex; flex-direction: column; justify-content: center; cursor: pointer; }
.profile-v2-file strong { color: var(--cd-text); font-size: 14px; }
.profile-v2-file span { margin-top: 3px; color: var(--cd-green-dark); font-size: 13px; font-weight: 700; }
.profile-v2-file input { position: absolute; width: 1px; height: 1px; overflow: hidden; opacity: 0; }

.profile-v2-input-prefix { display: grid; grid-template-columns: auto minmax(0,1fr); align-items: center; border: 1px solid #cbd2cd; border-radius: 3px; overflow: hidden; }
.profile-v2-input-prefix:focus-within { border-color: var(--cd-green-dark); box-shadow: 0 0 0 2px rgba(47,127,50,.1); }
.profile-v2-input-prefix span { padding: 0 0 0 11px; color: var(--cd-muted); font-size: 12px; }
.profile-v2-input-prefix input { border: 0 !important; box-shadow: none !important; min-width: 0; }
.profile-v2-unit-input { display: grid; grid-template-columns: 1fr auto; align-items: center; border: 1px solid #cbd2cd; border-radius: 3px; }
.profile-v2-unit-input:focus-within { border-color: var(--cd-green-dark); box-shadow: 0 0 0 2px rgba(47,127,50,.1); }
.profile-v2-unit-input input { border: 0 !important; box-shadow: none !important; min-width: 0; }
.profile-v2-unit-input span { padding-right: 12px; color: var(--cd-muted); font-size: 13px; }

.profile-v2-submit { width: 100%; min-height: 50px; margin-top: 14px; font-size: 15px; }
.profile-v2-optional-note { display: grid; grid-template-columns: 30px 1fr; gap: 10px; margin: 1px 0 11px; padding: 12px 0; color: var(--cd-muted); border-bottom: 1px solid var(--cd-line); }
.profile-v2-optional-note img { width: auto; height: 27px; margin: 2px auto 0; }
.profile-v2-optional-note p { margin: 0; font-size: 13px; line-height: 1.45; }
.profile-v2-locked { display: flex; gap: 9px; padding: 16px 0 20px; color: var(--cd-muted); font-size: 14px; }

.profile-v2-choice-group { min-width: 0; margin: 9px 0 2px; padding: 0; border: 0; }
.profile-v2-choice-group legend { margin-bottom: 9px; }
.profile-v2-checks { display: flex; flex-wrap: wrap; gap: 7px; }
.profile-v2-checks label, .profile-v2-radio-row label { position: relative; margin: 0 !important; cursor: pointer; }
.profile-v2-checks input, .profile-v2-radio-row input { position: absolute; opacity: 0; pointer-events: none; }
.profile-v2-checks span, .profile-v2-radio-row span { min-height: 39px; display: inline-flex; align-items: center; padding: 8px 11px; border: 1px solid #cbd2cd; border-radius: 3px; background: #fff; color: var(--cd-text) !important; font-size: 12px !important; font-weight: 600 !important; }
.profile-v2-checks input:checked + span, .profile-v2-radio-row input:checked + span { border-color: var(--cd-green-dark); background: var(--cd-green-pale); color: var(--cd-green-dark) !important; }
.profile-v2-radio-row { display: flex; gap: 7px; }
.profile-v2-radio-row span { min-width: 72px; justify-content: center; }

.profile-v2-account { display: flex; flex-direction: column; align-items: flex-start; gap: 13px; margin: 31px 0 5px; padding: 21px 0 0; border-top: 1px solid var(--cd-line); }
.profile-v2-account h2 { margin-bottom: 3px; font-size: 19px; }
.profile-v2-account p:not(.section-kicker) { margin: 0; color: var(--cd-muted); font-size: 13px; word-break: break-all; }
.profile-v2-account > a { font-size: 13px; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }


/* --- Mon profil V2.13 : simplification mobile --------------------------- */
.profile-v2-shortcuts { margin: 3px 0 27px; border-top: 1px solid var(--cd-line); border-bottom: 1px solid var(--cd-line); }
.profile-v2-shortcuts > a { min-height: 67px; display: grid; grid-template-columns: 38px minmax(0,1fr) 20px; align-items: center; gap: 10px; padding: 9px 1px; color: var(--cd-text); }
.profile-v2-shortcut-icon { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; background: var(--cd-green-pale); color: var(--cd-green-dark); font-size: 17px; }
.profile-v2-shortcuts strong, .profile-v2-shortcuts small { display: block; }
.profile-v2-shortcuts strong { font-size: 15px; }
.profile-v2-shortcuts small { margin-top: 2px; color: var(--cd-muted); font-size: 12px; line-height: 1.35; }
.profile-v2-shortcuts > a > .bi-chevron-right { color: var(--cd-muted); }

/* --- Profil V2.14 : ajustement manuel de la position --- */
.profile-v2-location {
    margin: 10px 0 5px;
    padding: 14px 0 15px;
    border-top: 1px solid var(--cd-line);
    border-bottom: 1px solid var(--cd-line);
}
.profile-v2-location-copy {
    display: grid;
    grid-template-columns: 26px minmax(0, 1fr);
    gap: 9px;
    align-items: start;
}
.profile-v2-location-copy > i {
    margin-top: 1px;
    color: var(--cd-green-dark);
    font-size: 19px;
}
.profile-v2-location-copy strong,
.profile-v2-location-copy span {
    display: block;
}
.profile-v2-location-copy strong {
    font-size: 14px;
}
.profile-v2-location-copy span {
    margin-top: 2px;
    color: var(--cd-muted);
    font-size: 12px;
    line-height: 1.4;
}
.profile-v2-location-toggle {
    width: 100%;
    margin-top: 12px;
}
.profile-v2-location-panel[hidden] {
    display: none !important;
}
.profile-v2-location-panel {
    margin-top: 13px;
}
.profile-v2-location-map {
    width: 100%;
    height: 260px;
    overflow: hidden;
    border: 1px solid var(--cd-line);
    border-radius: 4px;
    background: var(--cd-soft);
}
.profile-v2-location-panel > p {
    display: flex;
    gap: 7px;
    margin: 9px 0 0;
    color: var(--cd-muted);
    font-size: 11px;
    line-height: 1.45;
}
.profile-v2-location-panel > p i {
    flex: 0 0 auto;
    color: var(--cd-green-dark);
}


/* --- Profil V2.15 : hierarchie + geolocalisation detaillee ------------ */
.profile-v2-shortcuts { display: none; }

.profile-v2-related {
    margin: 31px 0 5px;
    padding-top: 19px;
    border-top: 1px solid var(--cd-line);
}
.profile-v2-related > a {
    min-height: 64px;
    display: grid;
    grid-template-columns: 40px minmax(0,1fr) 24px;
    align-items: center;
    gap: 11px;
    padding: 5px 0;
    color: var(--cd-text);
}
.profile-v2-related-icon {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    border: 1px solid #b8cdb9;
    border-radius: 3px;
    color: var(--cd-green-dark);
    background: #fff;
    font-size: 18px;
}
.profile-v2-related strong,
.profile-v2-related small { display: block; }
.profile-v2-related strong { font-size: 15px; }
.profile-v2-related small { margin-top: 2px; color: var(--cd-muted); font-size: 12px; line-height: 1.35; }
.profile-v2-related > a > .bi-arrow-right { color: var(--cd-green-dark); font-size: 18px; }

.profile-v2-location-map { height: 300px; }
.profile-v2-location-marker {
    width: 42px !important;
    height: 42px !important;
    margin: 0 !important;
    border: 0 !important;
    background: transparent !important;
}
.profile-v2-location-marker > span {
    position: relative;
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    border: 3px solid #fff;
    border-radius: 50% 50% 50% 7px;
    background: var(--cd-green-dark);
    color: #fff;
    box-shadow: 0 2px 7px rgba(25, 52, 29, .28);
    transform: rotate(-45deg);
}
.profile-v2-location-marker > span i {
    font-size: 17px;
    transform: rotate(45deg);
}


/* --- Profil V2.17 : raccourcis de fin de page ------------------------ */
.profile-v2-related {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
    margin: 31px 0 24px;
    padding-top: 19px;
    border-top: 1px solid var(--cd-line);
}
.profile-v2-related > a {
    min-height: 70px;
    padding: 9px 0;
    border-bottom: 1px solid var(--cd-line);
}
.profile-v2-related > a:last-child {
    border-bottom: 0;
}

/* --- Mon hébergement V2.18 ------------------------------------------- */
.hosting-v2 { padding-bottom: 10px; }
.hosting-v2-head { margin-bottom: 22px; }
.hosting-v2-head .section-kicker { margin-bottom: 4px; }
.hosting-v2-head h1 { margin: 0 0 7px; font-family: Georgia, "Times New Roman", serif; font-size: 29px; line-height: 1.15; }
.hosting-v2-head > p:last-child { margin: 0; color: var(--cd-muted); font-size: 14px; line-height: 1.5; }
.hosting-v2-form { display: grid; gap: 18px; }

.hosting-v2-availability { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 13px; padding: 15px 0 17px; border-top: 1px solid var(--cd-line); border-bottom: 1px solid var(--cd-line); }
.hosting-v2-availability-copy strong, .hosting-v2-availability-copy small { display: block; }
.hosting-v2-availability-copy strong { margin-top: 4px; font-size: 16px; }
.hosting-v2-availability-copy small { margin-top: 3px; color: var(--cd-muted); font-size: 12px; line-height: 1.4; }
.hosting-v2-state { display: inline-flex; align-items: center; gap: 6px; color: var(--cd-green-dark); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .025em; }
.hosting-v2-state i { font-size: 8px; }
.hosting-v2-availability.is-paused .hosting-v2-state { color: var(--cd-muted); }

.hosting-v2-switch { display: grid; justify-items: center; gap: 3px; cursor: pointer; }
.hosting-v2-switch input { position: absolute; opacity: 0; pointer-events: none; }
.hosting-v2-switch > span { position: relative; width: 52px; height: 30px; display: block; border-radius: 20px; background: #cbd2cd; transition: background .18s ease; }
.hosting-v2-switch > span::after { content: ""; position: absolute; top: 3px; left: 3px; width: 24px; height: 24px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.18); transition: transform .18s ease; }
.hosting-v2-switch input:checked + span { background: var(--cd-green-dark); }
.hosting-v2-switch input:checked + span::after { transform: translateX(22px); }
.hosting-v2-switch input:focus-visible + span { outline: 3px solid rgba(47,127,50,.18); outline-offset: 2px; }
.hosting-v2-switch em { color: var(--cd-muted); font-size: 11px; font-style: normal; font-weight: 700; }

.hosting-v2-section { margin: 0; border-top: 1px solid var(--cd-line); border-bottom: 1px solid var(--cd-line); background: #fff; }
.hosting-v2-section + .hosting-v2-section { margin-top: 2px; }
.hosting-v2-section > summary { min-height: 75px; display: grid; grid-template-columns: 38px minmax(0,1fr) 20px; align-items: center; gap: 10px; padding: 8px 0; cursor: pointer; list-style: none; }
.hosting-v2-section > summary::-webkit-details-marker { display: none; }
.hosting-v2-section-icon { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; background: var(--cd-green-pale); color: var(--cd-green-dark); font-size: 17px; }
.hosting-v2-section summary strong, .hosting-v2-section summary small { display: block; }
.hosting-v2-section summary strong { font-size: 16px; }
.hosting-v2-section summary small { margin-top: 2px; color: var(--cd-muted); font-size: 12px; font-weight: 400; line-height: 1.35; }
.hosting-v2-chevron { color: var(--cd-muted); transition: transform .18s ease; }
.hosting-v2-section[open] .hosting-v2-chevron { transform: rotate(180deg); }
.hosting-v2-section-body { display: grid; gap: 20px; padding: 7px 0 23px; }

.hosting-v2-fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.hosting-v2-fieldset legend, .hosting-v2-section-body > label { display: block; margin: 0 0 9px; color: var(--cd-text); font-size: 13px; font-weight: 700; }
.hosting-v2-section-body > label span { color: var(--cd-muted); font-size: 11px; font-weight: 500; }
.hosting-v2-options { display: grid; gap: 8px; }
.hosting-v2-options-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
.hosting-v2-options-inline { grid-template-columns: repeat(3, minmax(0,1fr)); }
.hosting-v2-options-yesno { grid-template-columns: repeat(2, minmax(0,1fr)); }
.hosting-v2-options label { position: relative; min-width: 0; cursor: pointer; }
.hosting-v2-options input { position: absolute; opacity: 0; pointer-events: none; }
.hosting-v2-options span { min-height: 50px; width: 100%; display: flex; align-items: center; justify-content: center; gap: 7px; padding: 9px 8px; border: 1px solid #cbd2cd; border-radius: 4px; background: #fff; color: var(--cd-text); font-size: 12px; font-weight: 700; text-align: center; line-height: 1.2; }
.hosting-v2-options-grid span { justify-content: flex-start; }
.hosting-v2-options span i { color: var(--cd-green-dark); font-size: 16px; }
.hosting-v2-options input:checked + span { border-color: var(--cd-green-dark); background: var(--cd-green-pale); color: var(--cd-green-dark); }
.hosting-v2-options input:focus-visible + span { outline: 3px solid rgba(47,127,50,.15); outline-offset: 1px; }

.hosting-v2-section textarea { width: 100%; min-height: 106px; margin: 0 0 5px; padding: 11px 12px; border: 1px solid #cbd2cd; border-radius: 4px; background: #fff; color: var(--cd-text); font: inherit; font-size: 15px; line-height: 1.45; resize: vertical; outline: none; }
.hosting-v2-section textarea:focus { border-color: var(--cd-green-dark); box-shadow: 0 0 0 2px rgba(47,127,50,.1); }
.hosting-v2-human-note { display: grid; grid-template-columns: 28px minmax(0,1fr); gap: 9px; align-items: start; margin: 0 0 2px; padding: 0 0 14px; border-bottom: 1px solid var(--cd-line); color: var(--cd-muted); font-size: 12px; line-height: 1.45; }
.hosting-v2-human-note img { width: auto; height: 25px; margin: 1px auto 0; }

.hosting-v2-women { display: grid; grid-template-columns: 38px minmax(0,1fr) 40px; align-items: center; gap: 10px; padding: 15px 0; border-top: 1px solid var(--cd-line); border-bottom: 1px solid var(--cd-line); }
.hosting-v2-women-icon { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; background: #f7eef4; color: #a14f7d; font-size: 18px; }
.hosting-v2-women strong { display: block; font-size: 14px; }
.hosting-v2-women p { margin: 2px 0 0; color: var(--cd-muted); font-size: 11px; line-height: 1.4; }
.hosting-v2-simple-check { position: relative; width: 38px; height: 38px; cursor: pointer; }
.hosting-v2-simple-check input { position: absolute; opacity: 0; pointer-events: none; }
.hosting-v2-simple-check span { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid #cbd2cd; border-radius: 4px; color: transparent; background: #fff; }
.hosting-v2-simple-check input:checked + span { border-color: var(--cd-green-dark); background: var(--cd-green-pale); color: var(--cd-green-dark); }

.hosting-v2-responsibility { display: grid; grid-template-columns: 22px minmax(0,1fr); gap: 9px; align-items: start; color: var(--cd-muted); font-size: 11px; line-height: 1.45; cursor: pointer; }
.hosting-v2-responsibility input { width: 19px; height: 19px; margin: 0; accent-color: var(--cd-green-dark); }
.hosting-v2-submit { width: 100%; min-height: 51px; font-size: 15px; }

.hosting-v2-related { margin: 31px 0 24px; padding-top: 19px; border-top: 1px solid var(--cd-line); }
.hosting-v2-related > a { min-height: 70px; display: grid; grid-template-columns: 40px minmax(0,1fr) 24px; align-items: center; gap: 11px; padding: 9px 0; border-bottom: 1px solid var(--cd-line); color: var(--cd-text); }
.hosting-v2-related > a:last-child { border-bottom: 0; }
.hosting-v2-related-icon { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid #b8cdb9; border-radius: 3px; color: var(--cd-green-dark); background: #fff; font-size: 18px; }
.hosting-v2-related strong, .hosting-v2-related small { display: block; }
.hosting-v2-related strong { font-size: 15px; }
.hosting-v2-related small { margin-top: 2px; color: var(--cd-muted); font-size: 12px; line-height: 1.35; }
.hosting-v2-related > a > .bi-arrow-right { color: var(--cd-green-dark); font-size: 18px; }

.hosting-v2-locked { display: grid; grid-template-columns: 34px minmax(0,1fr); gap: 11px; padding: 18px 0; border-top: 1px solid var(--cd-line); border-bottom: 1px solid var(--cd-line); }
.hosting-v2-locked > i { color: var(--cd-orange); font-size: 23px; }
.hosting-v2-locked strong { display: block; margin-bottom: 5px; font-size: 14px; }
.hosting-v2-locked a { font-size: 13px; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }

@media (max-width: 370px) {
    .hosting-v2-options-inline { grid-template-columns: 1fr; }
    .hosting-v2-options-yesno { grid-template-columns: repeat(2, minmax(0,1fr)); }
}

/* --- Mes échanges V2.19 ---------------------------------------------- */
.sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}
.messages-v2 { padding-bottom: 8px; }
.messages-v2-head { margin-bottom: 17px; }
.messages-v2-head h1 { margin: 0 0 7px; font-family: Georgia, "Times New Roman", serif; font-size: 30px; line-height: 1.12; }
.messages-v2-head > p:last-child { margin: 0; color: var(--cd-muted); font-size: 14px; line-height: 1.45; }

.messages-v2-tabs {
    display: flex;
    align-items: center;
    gap: 4px;
    margin: 0 -17px;
    padding: 0 17px 9px;
    border-bottom: 1px solid var(--cd-line);
    overflow-x: auto;
    scrollbar-width: none;
}
.messages-v2-tabs::-webkit-scrollbar { display: none; }
.messages-v2-tabs a {
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    flex: 0 0 auto;
    padding: 0 13px;
    border-radius: 3px;
    color: var(--cd-muted);
    font-size: 13px;
    font-weight: 700;
}
.messages-v2-tabs a.is-active { background: var(--cd-green-pale); color: var(--cd-green-dark); }
.messages-v2-tabs a span {
    min-width: 20px;
    height: 20px;
    display: inline-grid;
    place-items: center;
    padding: 0 5px;
    border-radius: 10px;
    background: var(--cd-orange);
    color: #fff;
    font-size: 10px;
}

.messages-v2-list { margin: 0 -17px; }
.messages-v2-item {
    position: relative;
    min-height: 91px;
    display: grid;
    grid-template-columns: 52px minmax(0,1fr) 16px;
    align-items: center;
    gap: 11px;
    padding: 13px 17px;
    border-bottom: 1px solid var(--cd-line);
    color: var(--cd-text);
    background: #fff;
}
.messages-v2-item.is-unread { background: #fbfdf9; }
.messages-v2-avatar {
    position: relative;
    width: 50px;
    height: 50px;
    display: grid;
    place-items: center;
    overflow: visible;
    border-radius: 50%;
    background: var(--cd-soft);
    color: #8c948e;
    font-size: 24px;
}
.messages-v2-avatar img { width: 100%; height: 100%; display: block; border-radius: inherit; object-fit: cover; }
.messages-v2-avatar-small { width: 43px; height: 43px; font-size: 20px; }
.messages-v2-unread-dot {
    position: absolute;
    right: -1px;
    bottom: 1px;
    width: 12px;
    height: 12px;
    border: 2px solid #fff;
    border-radius: 50%;
    background: var(--cd-orange);
}
.messages-v2-item-body { min-width: 0; }
.messages-v2-item-top { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.messages-v2-item-top strong { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 15px; }
.messages-v2-item.is-unread .messages-v2-item-top strong { color: var(--cd-green-dark); }
.messages-v2-item-top time { flex: 0 0 auto; color: var(--cd-muted); font-size: 11px; font-weight: 600; }
.messages-v2-item-meta { display: flex; flex-wrap: wrap; gap: 4px 8px; margin-top: 1px; color: var(--cd-muted); font-size: 10px; }
.messages-v2-item-meta span + span::before { content: "·"; margin-right: 8px; }
.messages-v2-item p { margin: 5px 0 0; overflow: hidden; color: #505751; font-size: 12px; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.messages-v2-item.is-unread p { color: var(--cd-text); font-weight: 600; }
.messages-v2-chevron { color: #a2a9a4; font-size: 13px; }

.messages-v2-empty-list,
.messages-v2-empty {
    min-height: 45vh;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    padding: 30px 0;
}
.messages-v2-empty-list > i,
.messages-v2-empty > i { margin-bottom: 12px; color: var(--cd-green-dark); font-size: 33px; }
.messages-v2-empty-list strong { font-size: 18px; }
.messages-v2-empty-list p,
.messages-v2-empty p { max-width: 480px; margin: 5px 0 13px; color: var(--cd-muted); font-size: 14px; }
.messages-v2-empty-list a { font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.messages-v2-empty h1 { margin-bottom: 6px; font-size: 27px; }

.messages-v2-thread { margin-top: -8px; }
.messages-v2-thread-head {
    display: grid;
    grid-template-columns: 42px 43px minmax(0,1fr) 42px;
    align-items: center;
    gap: 8px;
    margin: 0 -17px;
    padding: 8px 12px 12px;
    border-bottom: 1px solid var(--cd-line);
    background: #fff;
}
.messages-v2-back,
.messages-v2-profile-link {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    color: var(--cd-green-dark);
    font-size: 19px;
}
.messages-v2-thread-person { min-width: 0; }
.messages-v2-thread-person h1 { margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-family: Arial, Helvetica, sans-serif; font-size: 16px; line-height: 1.2; letter-spacing: 0; }
.messages-v2-thread-person span { display: block; margin-top: 2px; overflow: hidden; color: var(--cd-muted); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }

.messages-v2-context {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin: 0 -17px;
    padding: 11px 17px;
    border-bottom: 1px solid var(--cd-line);
    background: var(--cd-soft);
}
.messages-v2-context span { display: inline-flex; align-items: center; gap: 5px; color: #5d655f; font-size: 11px; font-weight: 600; }
.messages-v2-context i { color: var(--cd-green-dark); }
.messages-v2-warning,
.messages-v2-error {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin: 13px 0;
    padding: 10px 11px;
    border-left: 3px solid var(--cd-orange);
    background: #fff8ee;
    color: #67533a;
    font-size: 12px;
    line-height: 1.4;
}
.messages-v2-error { border-left-color: var(--cd-danger); background: #fff3f3; color: var(--cd-danger); }

.messages-v2-conversation { padding: 18px 0 15px; }
.messages-v2-day { display: flex; align-items: center; justify-content: center; margin: 10px 0 14px; }
.messages-v2-day span { padding: 3px 8px; border-radius: 9px; background: var(--cd-soft); color: var(--cd-muted); font-size: 10px; font-weight: 700; }
.messages-v2-bubble-row { display: flex; margin: 7px 0; }
.messages-v2-bubble-row.is-mine { justify-content: flex-end; }
.messages-v2-bubble-row.is-theirs { justify-content: flex-start; }
.messages-v2-bubble { max-width: 84%; padding: 9px 11px 6px; border-radius: 13px; font-size: 14px; line-height: 1.42; overflow-wrap: anywhere; }
.messages-v2-bubble-row.is-theirs .messages-v2-bubble { border-bottom-left-radius: 3px; background: #f0f2f0; color: var(--cd-text); }
.messages-v2-bubble-row.is-mine .messages-v2-bubble { border-bottom-right-radius: 3px; background: var(--cd-green-dark); color: #fff; }
.messages-v2-bubble time { display: block; margin-top: 3px; color: inherit; opacity: .7; font-size: 9px; text-align: right; }

.messages-v2-composer {
    position: sticky;
    bottom: 0;
    z-index: 20;
    display: grid;
    grid-template-columns: minmax(0,1fr) 46px;
    align-items: end;
    gap: 7px;
    margin: 6px -17px -54px;
    padding: 9px 12px calc(10px + env(safe-area-inset-bottom));
    border-top: 1px solid var(--cd-line);
    background: rgba(255,255,255,.97);
    backdrop-filter: blur(8px);
}
.messages-v2-composer textarea {
    width: 100%;
    min-height: 44px;
    max-height: 132px;
    resize: none;
    overflow-y: auto;
    padding: 11px 12px;
    border: 1px solid #cbd2cd;
    border-radius: 18px;
    background: #fff;
    color: var(--cd-text);
    font: inherit;
    font-size: 16px;
    line-height: 1.3;
    outline: none;
}
.messages-v2-composer textarea:focus { border-color: var(--cd-green-dark); box-shadow: 0 0 0 2px rgba(47,127,50,.09); }
.messages-v2-composer button {
    width: 46px;
    height: 46px;
    display: grid;
    place-items: center;
    border: 0;
    border-radius: 50%;
    background: var(--cd-green-dark);
    color: #fff;
    font-size: 18px;
    cursor: pointer;
}

@media (min-width: 600px) {
    .messages-v2-list { margin-left: 0; margin-right: 0; border-top: 1px solid var(--cd-line); }
    .messages-v2-item { padding-left: 12px; padding-right: 12px; }
    .messages-v2-tabs { margin-left: 0; margin-right: 0; padding-left: 0; padding-right: 0; }
    .messages-v2-thread-head,
    .messages-v2-context { margin-left: 0; margin-right: 0; }
    .messages-v2-composer { margin-left: 0; margin-right: 0; margin-bottom: -54px; }
    .messages-v2-bubble { max-width: 72%; }
}

/* =========================================================
   V2.20 - Profil public + messagerie avancee
   ========================================================= */

.profile-view-v2{
    padding:18px 16px 32px;
    max-width:760px;
    margin:0 auto;
}

.profile-view-v2-hero{
    display:flex;
    gap:14px;
    align-items:center;
    margin-bottom:16px;
}

.profile-view-v2-photo{
    width:76px;
    height:76px;
    border-radius:50%;
    overflow:hidden;
    background:#eef3ef;
    flex:0 0 auto;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:34px;
    color:#728178;
}

.profile-view-v2-photo img{
    width:100%;
    height:100%;
    object-fit:cover;
}

.profile-view-v2-name{min-width:0;}
.profile-view-v2-name h1{margin:1px 0 3px;font-size:1.65rem;line-height:1.1;}
.profile-view-v2-name p:last-child{margin:0;color:#68716b;font-size:.92rem;}
.profile-view-v2-intro{font-size:1rem;line-height:1.55;margin:0 0 18px;}

.profile-view-v2-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:9px;
    margin-bottom:8px;
}
.profile-view-v2-actions .btn{min-height:46px;justify-content:center;}
.profile-view-v2-actions .btn[disabled]{opacity:.48;cursor:not-allowed;}
.profile-view-v2-favorite.is-favorite{background:#fff7d8;border-color:#e3c85b;color:#5c4e10;}
.profile-view-v2-quota{margin:8px 0 18px;font-size:.87rem;color:#725a21;display:flex;gap:8px;align-items:flex-start;}

.profile-view-v2-section{
    border-top:1px solid #dfe4df;
    padding:22px 0 4px;
    margin-top:20px;
}
.profile-view-v2-section-title{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;}
.profile-view-v2-section h2{margin:2px 0 14px;font-size:1.28rem;}
.profile-view-v2-live{font-size:.78rem;color:#317439;white-space:nowrap;padding-top:4px;}
.profile-view-v2-live i{font-size:.55rem;vertical-align:2px;}

.profile-view-v2-facts{
    display:grid;
    grid-template-columns:1fr;
    gap:1px;
    background:#e4e8e4;
    border:1px solid #e4e8e4;
    margin:0 0 14px;
}
.profile-view-v2-facts>div{
    background:#fff;
    padding:13px 14px;
    display:grid;
    grid-template-columns:25px 1fr;
    column-gap:8px;
}
.profile-view-v2-facts>div>i{grid-row:1 / span 2;color:#3e7b48;font-size:1.05rem;}
.profile-view-v2-facts strong{font-size:.88rem;}
.profile-view-v2-facts p{margin:3px 0 0;color:#515a54;line-height:1.4;}
.profile-view-v2-tags{display:flex!important;flex-wrap:wrap;gap:6px!important;}
.profile-view-v2-tags span{background:#f0f4f0;padding:5px 8px;font-size:.82rem;line-height:1.2;}
.profile-view-v2-sub{margin:16px 0;}
.profile-view-v2-sub>strong{display:block;margin-bottom:8px;}
.profile-view-v2-note{display:flex;gap:10px;padding:13px 0;border-top:1px solid #edf0ed;}
.profile-view-v2-note i{color:#4d8054;margin-top:2px;}
.profile-view-v2-note p{margin:4px 0 0;line-height:1.5;}

.profile-view-v2-bike-photo{width:100%;max-height:260px;object-fit:cover;margin:2px 0 14px;}
.profile-view-v2-bike-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;}
.profile-view-v2-bike-grid>div{padding:10px 11px;background:#f5f7f5;min-width:0;}
.profile-view-v2-bike-grid small{display:block;color:#6a746d;font-size:.75rem;margin-bottom:3px;}
.profile-view-v2-bike-grid strong{font-size:.9rem;overflow-wrap:anywhere;}
.profile-view-v2-bike-text{line-height:1.55;}

.profile-view-v2-report{margin-top:26px;border-top:1px solid #e2e5e2;padding-top:14px;}
.profile-view-v2-report summary{cursor:pointer;color:#8a4343;font-size:.91rem;padding:8px 0;}
.profile-view-v2-report details[open] summary{margin-bottom:10px;}
.profile-view-v2-report p{font-size:.9rem;line-height:1.45;}
.profile-view-v2-report-form{display:grid;gap:12px;margin-top:12px;}
.profile-view-v2-report-form label{display:grid;gap:6px;font-weight:600;font-size:.9rem;}
.profile-view-v2-report-form label span{font-weight:400;color:#778079;font-size:.8rem;}
.profile-view-v2-report-form select,
.profile-view-v2-report-form textarea{width:100%;font:inherit;font-size:16px;border:1px solid #cbd2cc;background:#fff;padding:11px 12px;border-radius:4px;}
.profile-view-v2-report-message{padding:10px 12px;background:#f4f7f4;}
.btn-danger{background:#a84040!important;color:#fff!important;border-color:#a84040!important;}
.profile-view-v2-empty{padding:40px 18px;text-align:center;max-width:560px;margin:auto;}
.profile-view-v2-empty>i{font-size:2rem;color:#7a827d;}

/* Messagerie V2.20 */
.messages-v2-role-filters{
    display:flex;
    gap:6px;
    overflow-x:auto;
    scrollbar-width:none;
    margin:9px 0 13px;
}
.messages-v2-role-filters::-webkit-scrollbar{display:none;}
.messages-v2-role-filters a{
    white-space:nowrap;
    text-decoration:none;
    border:1px solid #d5dad6;
    color:#475049;
    padding:8px 11px;
    font-size:.85rem;
    background:#fff;
}
.messages-v2-role-filters a.is-active{background:#edf4ee;border-color:#75977a;color:#285b31;font-weight:700;}

.messages-v2-filters{display:grid;gap:8px;margin-bottom:14px;}
.messages-v2-search{display:flex;align-items:center;gap:8px;border:1px solid #d3d9d4;background:#fff;padding:0 10px;}
.messages-v2-search i{color:#747d76;}
.messages-v2-search input{border:0!important;outline:0;min-height:44px;width:100%;padding:0!important;font-size:16px!important;background:transparent!important;}
.messages-v2-selects{display:grid;grid-template-columns:1fr 1fr auto;gap:6px;}
.messages-v2-selects select{min-width:0;border:1px solid #d3d9d4;background:#fff;padding:9px 7px;font-size:.84rem;}
.messages-v2-selects button{border:0;background:#38483d;color:#fff;padding:0 10px;font-weight:600;}

.messages-v2-thread-tools{display:flex;justify-content:flex-end;margin:6px 0 10px;}
.messages-v2-thread-tools form{margin:0;}
.messages-v2-archive{border:0;background:none;color:#667068;padding:8px 2px;font:inherit;font-size:.85rem;cursor:pointer;}
.messages-v2-archive:disabled{opacity:.4;cursor:not-allowed;}

.messages-v2-new-form{display:grid;gap:14px;margin-top:18px;}
.messages-v2-new-form>label,
.messages-v2-form-row label{display:grid;gap:6px;font-weight:600;font-size:.9rem;}
.messages-v2-new-form label>span,
.messages-v2-form-row label>span{font-weight:400;color:#7a837c;font-size:.8rem;}
.messages-v2-new-form input,
.messages-v2-new-form select,
.messages-v2-new-form textarea{width:100%;font:inherit;font-size:16px;border:1px solid #cbd2cc;background:#fff;padding:11px 12px;border-radius:4px;}
.messages-v2-form-row{display:grid;grid-template-columns:1fr 110px;gap:9px;}
.messages-v2-form-note{font-size:.85rem;color:#667068;margin:0;line-height:1.45;}
.messages-v2-quota{display:flex;gap:11px;background:#fff6dd;border-left:3px solid #c69a34;padding:14px;margin-top:18px;}
.messages-v2-quota i{color:#956b12;font-size:1.2rem;}
.messages-v2-quota strong{display:block;margin-bottom:4px;}
.messages-v2-quota p{margin:0;line-height:1.45;font-size:.9rem;}

@media (max-width:380px){
    .profile-view-v2-actions{grid-template-columns:1fr;}
    .messages-v2-selects{grid-template-columns:1fr 1fr;}
    .messages-v2-selects button{grid-column:1/-1;min-height:42px;}
}

/* Profil public - carte locale V2.22 */
.profile-view-v2-bike-why{
    margin-top:22px;
    padding:18px 16px 17px;
    background:#f8f6ef;
    border-left:3px solid #6d9572;
}
.profile-view-v2-bike-why-heading{
    display:flex;
    align-items:center;
    gap:12px;
    margin-bottom:12px;
}
.profile-view-v2-bike-why-heading img{
    width:38px;
    height:38px;
    object-fit:contain;
    flex:0 0 auto;
    opacity:.9;
}
.profile-view-v2-bike-why-heading span{
    display:block;
    margin-bottom:2px;
    color:#7a7568;
    font-size:.74rem;
    font-weight:700;
    letter-spacing:.05em;
    text-transform:uppercase;
}
.profile-view-v2-bike-why h3{
    margin:0;
    color:#33453a;
    font-size:1.08rem;
    line-height:1.3;
}
.profile-view-v2-bike-story{
    position:relative;
    padding-left:14px;
}
.profile-view-v2-bike-story:before{
    content:"“";
    position:absolute;
    left:-2px;
    top:-7px;
    color:#9ab09d;
    font-family:Georgia, serif;
    font-size:2rem;
    line-height:1;
}
.profile-view-v2-bike-story p{
    margin:0;
    color:#4f5751;
    font-size:.96rem;
    line-height:1.7;
}
.profile-view-v2-local-map-section{
    overflow:visible;
}
.profile-view-v2-map-radius{
    flex:0 0 auto;
    padding:5px 8px;
    background:#eef4ef;
    color:#3f6545;
    font-size:.78rem;
    font-weight:700;
}
.profile-view-v2-map-intro{
    margin:-4px 0 12px;
    color:#657069;
    font-size:.9rem;
    line-height:1.45;
}
.profile-view-v2-local-map{
    width:100%;
    height:360px;
    background:#eef1ee;
    border:1px solid #dfe5df;
    z-index:1;
}
.profile-view-v2-map-legend{
    display:flex;
    flex-wrap:wrap;
    gap:8px 13px;
    margin-top:10px;
    color:#657069;
    font-size:.78rem;
}
.profile-view-v2-map-legend span{
    display:inline-flex;
    align-items:center;
    gap:5px;
}
.profile-view-v2-map-legend .bi-house-heart-fill{color:var(--cd-green-dark);}
.profile-view-v2-map-legend .bi-train-front-fill{color:#496c9b;}
.profile-view-v2-map-legend .bi-triangle-fill{color:#b4533c;}
.profile-view-v2-map-legend .bi-droplet-fill{color:#3c8287;}
.profile-map-legend-house{
    width:12px;
    height:12px;
    display:inline-block;
    border-radius:50%;
    background:var(--cd-green-dark);
    box-shadow:0 0 0 3px #f3b346;
}
.cd-v2-marker.is-current-profile{
    background:var(--cd-green-dark);
    box-shadow:0 0 0 4px #f3b346,0 2px 7px rgba(0,0,0,.25);
}
.profile-local-map-members{
    display:grid;
    gap:5px;
    margin-top:7px;
}
.profile-local-map-members a{
    color:#2f6c38;
    font-weight:600;
}
\n\n/* V2.25 - Historique des echanges depuis un profil */\n.profile-view-v2-history{\n    margin:4px 0 22px;\n    border-top:1px solid #e1e5e1;\n    border-bottom:1px solid #e1e5e1;\n}\n.profile-view-v2-history summary{\n    min-height:52px;\n    padding:12px 2px;\n    display:flex;\n    align-items:center;\n    justify-content:space-between;\n    gap:12px;\n    cursor:pointer;\n    list-style:none;\n}\n.profile-view-v2-history summary::-webkit-details-marker{display:none;}\n.profile-view-v2-history-label{display:flex;align-items:center;gap:9px;min-width:0;color:#26352d;}\n.profile-view-v2-history-label i{color:var(--cd-green);font-size:1.05rem;}\n.profile-view-v2-history-label strong{font-size:.92rem;}\n.profile-view-v2-history-open{display:flex;align-items:center;gap:5px;flex:none;font-size:.82rem;color:#67736c;}\n.profile-view-v2-history[open] .profile-view-v2-history-open i{transform:rotate(180deg);}\n.profile-view-v2-history-open i{transition:transform .18s ease;}\n.profile-view-v2-history-list{display:grid;gap:0;padding-bottom:8px;}\n.profile-view-v2-history-item{\n    display:block;\n    padding:13px 2px 14px;\n    border-top:1px solid #edf0ed;\n    color:inherit;\n    text-decoration:none;\n}\n.profile-view-v2-history-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:5px;font-size:.76rem;color:#748078;}\n.profile-view-v2-history-top em{display:inline-flex;align-items:center;gap:4px;font-style:normal;color:#7b6547;background:#f5f0e8;padding:3px 7px;border-radius:999px;white-space:nowrap;}\n.profile-view-v2-history-trip{display:block;margin:0 0 5px;font-size:.84rem;color:#385143;font-weight:600;}\n.profile-view-v2-history-item p{margin:0;color:#4e5b53;font-size:.87rem;line-height:1.4;}\n.profile-view-v2-history-link{display:inline-flex;align-items:center;gap:5px;margin-top:7px;font-size:.79rem;font-weight:600;color:var(--cd-green);}\n
/* Mes contacts ------------------------------------------------------------ */
.contacts-page {
    width: 100%;
    max-width: 760px;
    margin: 0 auto;
    padding: 22px 16px 48px;
}

.contacts-header {
    margin-bottom: 18px;
}

.contacts-header .eyebrow {
    margin: 0 0 4px;
    color: var(--color-primary, #188a6b);
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.contacts-header h1 {
    margin: 0 0 7px;
    font-size: clamp(1.65rem, 7vw, 2.1rem);
}

.contacts-header > p:last-child {
    margin: 0;
    color: #68726f;
    line-height: 1.45;
}

.contacts-tabs {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 7px;
    margin-bottom: 20px;
}

.contacts-tabs a {
    min-width: 0;
    min-height: 62px;
    padding: 9px 5px 8px;
    border: 1px solid #dde4e1;
    border-radius: 13px;
    color: #52605c;
    background: #fff;
    text-decoration: none;
    display: grid;
    grid-template-columns: auto auto;
    grid-template-rows: auto auto;
    justify-content: center;
    align-content: center;
    column-gap: 5px;
    row-gap: 2px;
    text-align: center;
}

.contacts-tabs a i {
    grid-column: 1;
    grid-row: 1;
    font-size: .95rem;
}

.contacts-tabs a span {
    grid-column: 2;
    grid-row: 1;
    min-width: 0;
    font-size: .8rem;
    font-weight: 750;
    white-space: nowrap;
}

.contacts-tabs a b {
    grid-column: 1 / -1;
    grid-row: 2;
    color: #89928f;
    font-size: .72rem;
    font-weight: 700;
}

.contacts-tabs a.is-active {
    border-color: #208b6e;
    background: #edf8f4;
    color: #126d56;
}

.contacts-tabs a.is-active b {
    color: #39806d;
}

.contacts-list {
    border-top: 1px solid #e5e9e7;
}

.contacts-card {
    border-bottom: 1px solid #e5e9e7;
}

.contacts-card-main {
    min-height: 88px;
    padding: 13px 2px;
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
    color: inherit;
    text-decoration: none;
}

.contacts-avatar {
    width: 58px;
    height: 58px;
    border-radius: 50%;
    overflow: hidden;
    display: grid;
    place-items: center;
    background: #eef3f1;
    color: #77817e;
    font-size: 1.65rem;
}

.contacts-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.contacts-card-copy {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.contacts-card-copy strong {
    font-size: 1rem;
    line-height: 1.2;
}

.contacts-location,
.contacts-meta {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.contacts-location {
    color: #65706d;
    font-size: .85rem;
}

.contacts-location i,
.contacts-meta i {
    margin-right: 5px;
}

.contacts-meta {
    color: #8a928f;
    font-size: .77rem;
}

.contacts-meta .bi-feather,
.contacts-card-copy .bi-feather {
    color: #e59b34;
}

.contacts-chevron {
    color: #abb2af;
    font-size: .95rem;
}

.contacts-message-link {
    width: max-content;
    max-width: calc(100% - 70px);
    margin: -5px 0 11px 70px;
    padding: 5px 0;
    display: inline-flex;
    gap: 6px;
    align-items: center;
    color: #17785f;
    font-size: .82rem;
    font-weight: 700;
    text-decoration: none;
}

.contacts-empty {
    padding: 42px 18px 30px;
    text-align: center;
}

.contacts-empty > img {
    width: 38px;
    height: auto;
    margin-bottom: 8px;
}

.contacts-empty > i {
    display: block;
    margin-bottom: 10px;
    color: #238469;
    font-size: 2rem;
}

.contacts-empty h2 {
    margin: 0 0 7px;
    font-size: 1.15rem;
}

.contacts-empty p {
    max-width: 430px;
    margin: 0 auto 18px;
    color: #6f7976;
    line-height: 1.5;
}

@media (min-width: 640px) {
    .contacts-page {
        padding-inline: 24px;
    }

    .contacts-tabs a {
        min-height: 52px;
        grid-template-columns: auto auto auto;
        grid-template-rows: 1fr;
        gap: 7px;
        padding-inline: 12px;
    }

    .contacts-tabs a i,
    .contacts-tabs a span,
    .contacts-tabs a b {
        grid-row: 1;
    }

    .contacts-tabs a i { grid-column: 1; }
    .contacts-tabs a span { grid-column: 2; }
    .contacts-tabs a b { grid-column: 3; }
}


/* ============================================================
   PARAMETRES V2
   ============================================================ */
.settings-page {
    width: 100%;
    max-width: 720px;
    margin: 0 auto;
    padding: 22px 16px 48px;
}

.settings-header {
    margin-bottom: 24px;
}

.settings-header h1 {
    margin: 0 0 7px;
    font-size: clamp(1.65rem, 7vw, 2.1rem);
}

.settings-header > p:last-child {
    margin: 0;
    color: #68726f;
    line-height: 1.5;
}

.settings-flash {
    margin-bottom: 18px;
    padding: 12px 14px;
    border-radius: 10px;
    font-size: .9rem;
    line-height: 1.45;
}

.settings-flash-success {
    background: #edf8f4;
    color: #14664f;
    border: 1px solid #cfe7de;
}

.settings-flash-error {
    background: #fff1ef;
    color: #9a382e;
    border: 1px solid #f0cbc5;
}

.settings-section {
    padding: 21px 0;
    border-top: 1px solid #e1e7e4;
}

.settings-section:last-child {
    border-bottom: 1px solid #e1e7e4;
}

.settings-section-heading {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 12px;
    align-items: center;
}

.settings-icon {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: #edf7f3;
    color: #19765e;
    font-size: 1.1rem;
}

.settings-section-heading h2 {
    margin: 0 0 2px;
    font-size: 1.07rem;
}

.settings-section-heading p {
    margin: 0;
    color: #7a8481;
    font-size: .82rem;
    overflow-wrap: anywhere;
}

.settings-section > p {
    margin: 14px 0 0;
    color: #68726f;
    line-height: 1.5;
    font-size: .9rem;
}

.settings-details {
    margin-top: 15px;
}

.settings-details > summary {
    min-height: 48px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 0 2px;
    list-style: none;
    cursor: pointer;
    color: #176f59;
    font-size: .9rem;
    font-weight: 750;
}

.settings-details > summary::-webkit-details-marker {
    display: none;
}

.settings-details > summary i {
    transition: transform .2s ease;
}

.settings-details[open] > summary i {
    transform: rotate(180deg);
}

.settings-form {
    margin-top: 8px;
    padding: 16px 0 4px;
    border-top: 1px dashed #dce4e1;
}

.settings-form label {
    display: block;
    margin: 15px 0 6px;
    color: #303936;
    font-size: .86rem;
    font-weight: 700;
}

.settings-form > label:first-of-type {
    margin-top: 0;
}

.settings-form input[type="password"],
.settings-form input[type="text"] {
    width: 100%;
    min-height: 48px;
    box-sizing: border-box;
    border: 1px solid #cfd8d4;
    border-radius: 10px;
    background: #fff;
    padding: 11px 13px;
    font: inherit;
    font-size: 16px;
}

.settings-form input:focus {
    outline: 2px solid rgba(30, 132, 103, .18);
    border-color: #228267;
}

.settings-form .password-field {
    position: relative;
}

.settings-form .password-field input {
    padding-right: 50px;
}

.settings-form .password-toggle {
    position: absolute;
    right: 3px;
    top: 50%;
    transform: translateY(-50%);
    min-width: 44px;
    min-height: 44px;
}

.settings-field-help {
    margin: 6px 0 0;
    color: #808986;
    font-size: .76rem;
    line-height: 1.4;
}

.settings-form .btn {
    width: 100%;
    min-height: 48px;
    margin-top: 20px;
}

.settings-status {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.settings-status span {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #9aa29f;
}

.settings-status.is-on {
    color: #26765f;
}

.settings-status.is-on span {
    background: #2d956f;
}

.settings-status.is-off {
    color: #a56b2b;
}

.settings-status.is-off span {
    background: #d7903c;
}

.settings-arrow-link {
    min-height: 44px;
    margin-top: 8px;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: #176f59;
    font-size: .9rem;
    font-weight: 750;
    text-decoration: none;
}

.settings-danger {
    margin-top: 8px;
}

.settings-danger .settings-icon {
    background: #fff0ed;
    color: #bd5145;
}

.settings-delete-details > summary {
    color: #a94338;
}

.settings-warning {
    margin-bottom: 16px;
    padding: 12px 13px;
    border-left: 3px solid #cf6659;
    background: #fff6f4;
    color: #764841;
    font-size: .83rem;
    line-height: 1.45;
}

.settings-warning strong,
.settings-warning span {
    display: block;
}

.settings-warning strong {
    margin-bottom: 3px;
    color: #9f4339;
}

.settings-delete-button {
    border: 1px solid #b8473b !important;
    background: #fff !important;
    color: #a93e34 !important;
}

@media (min-width: 640px) {
    .settings-page {
        padding-inline: 24px;
    }

    .settings-form .btn {
        width: auto;
        min-width: 240px;
    }
}

/* =========================================================
   V2.30 - MES VOYAGES
   ========================================================= */
.voyages-v2{
    padding-bottom:32px;
}

.voyages-v2-head{
    display:flex;
    flex-direction:column;
    gap:18px;
    margin-bottom:20px;
}

.voyages-v2-head h1{
    margin:2px 0 8px;
}

.voyages-v2-head p:not(.section-kicker){
    margin:0;
    max-width:680px;
    line-height:1.55;
}

.voyages-v2-new{
    width:100%;
    min-height:48px;
}

.voyages-v2-create{
    margin:18px 0 26px;
    padding:18px;
    border:1px solid var(--border, #dfe5e1);
    background:#fff;
    border-radius:14px;
}

.voyages-v2-create[hidden],
.voyage-v2-edit[hidden],
.voyages-v2-file-name[hidden],
.map-v2-save-panel[hidden],
.map-v2-save-backdrop[hidden],
#map-route-saved[hidden],
#map-save-voyage[hidden]{
    display:none !important;
}

.voyages-v2-create-title{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
    margin-bottom:18px;
}

.voyages-v2-create-title strong{
    display:block;
    font-size:1.1rem;
}

.voyages-v2-create-title span{
    display:block;
    margin-top:3px;
    font-size:.9rem;
    color:#66706a;
}

.voyages-v2-create-title button{
    border:0;
    background:transparent;
    width:42px;
    height:42px;
    font-size:1.2rem;
}

.voyages-v2-form{
    display:grid;
    gap:10px;
}

.voyages-v2-form label:not(.voyages-v2-file),
.voyage-v2-edit label{
    font-weight:700;
}

.voyages-v2-form label span{
    font-weight:400;
    color:#758078;
    font-size:.85rem;
}

.voyages-v2-form input[type="text"],
.voyages-v2-form input[type="date"],
.voyages-v2-form input[type="number"],
.voyages-v2-form textarea,
.voyage-v2-edit input,
.voyage-v2-edit textarea{
    width:100%;
    min-height:48px;
    font-size:16px;
}

.voyages-v2-file{
    display:flex;
    align-items:center;
    gap:13px;
    min-height:66px;
    padding:12px 14px;
    border:1px dashed #9fb6a4;
    border-radius:12px;
    cursor:pointer;
    background:#f8fbf8;
}

.voyages-v2-file > i{
    font-size:1.45rem;
    color:#397d43;
}

.voyages-v2-file strong,
.voyages-v2-file small{
    display:block;
}

.voyages-v2-file small{
    margin-top:2px;
    color:#6c756e;
    font-weight:400;
}

.voyages-v2-file-name{
    margin:0 0 4px;
    font-size:.9rem;
    color:#397d43;
    word-break:break-word;
}

.voyages-v2-list{
    display:grid;
    gap:14px;
}

.voyage-v2-card{
    padding:16px 0 18px;
    border-bottom:1px solid #e4e8e5;
}

.voyage-v2-card:first-child{
    border-top:1px solid #e4e8e5;
}

.voyage-v2-card-main{
    display:flex;
    align-items:flex-start;
    gap:12px;
}

.voyage-v2-icon{
    flex:0 0 42px;
    width:42px;
    height:42px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:#eff6ef;
    color:#397d43;
    font-size:1.15rem;
}

.voyage-v2-info{
    min-width:0;
    flex:1;
}

.voyage-v2-title-row{
    display:flex;
    align-items:flex-start;
    gap:8px;
    flex-wrap:wrap;
}

.voyage-v2-title-row h2{
    margin:0;
    font-size:1.08rem;
    line-height:1.3;
}

.voyage-v2-public,
.voyage-v2-past{
    display:inline-flex;
    align-items:center;
    gap:4px;
    font-size:.76rem;
    line-height:1;
    padding:5px 7px;
    border-radius:999px;
    background:#f1f4f2;
    color:#5f6962;
}

.voyage-v2-meta{
    display:flex;
    flex-wrap:wrap;
    gap:7px 13px;
    margin-top:8px;
    color:#69736c;
    font-size:.86rem;
}

.voyage-v2-meta span{
    display:inline-flex;
    align-items:center;
    gap:5px;
}

.voyage-v2-past{
    margin-top:9px;
}

.voyage-v2-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
    margin-top:14px;
}

.voyage-v2-actions .btn{
    min-width:0;
    padding-left:9px;
    padding-right:9px;
}

.voyage-v2-edit{
    display:grid;
    gap:10px;
    margin-top:14px;
    padding:14px;
    background:#f7f9f7;
    border-radius:10px;
}

.voyage-v2-edit label{
    display:grid;
    gap:6px;
}

.voyages-v2-empty{
    text-align:center;
    padding:34px 18px;
    border-top:1px solid #e4e8e5;
    border-bottom:1px solid #e4e8e5;
}

.voyages-v2-empty img{
    width:38px;
    height:auto;
    margin-bottom:8px;
}

.voyages-v2-empty strong{
    display:block;
    font-size:1.05rem;
}

.voyages-v2-empty p{
    margin:7px auto 0;
    max-width:420px;
    color:#69736c;
}

.voyages-v2-share-note{
    display:flex;
    gap:13px;
    margin-top:26px;
    padding-top:18px;
    border-top:1px solid #e4e8e5;
}

.voyages-v2-share-note > i{
    color:#8a6848;
    font-size:1.25rem;
}

.voyages-v2-share-note strong{
    display:block;
}

.voyages-v2-share-note p{
    margin:4px 0 0;
    color:#6c756e;
    line-height:1.5;
    font-size:.9rem;
}

/* =========================================================
   V2.30 - LIEN LA CARTE <-> MES VOYAGES
   ========================================================= */
.map-v2-voyage-context{
    display:flex;
    align-items:center;
    gap:11px;
    margin:0 0 12px;
    padding:10px 0 12px;
    border-bottom:1px solid #e4e8e5;
}

.map-v2-voyage-context > i{
    font-size:1.25rem;
    color:#397d43;
}

.map-v2-voyage-context div{
    flex:1;
    min-width:0;
}

.map-v2-voyage-context span,
.map-v2-voyage-context strong{
    display:block;
}

.map-v2-voyage-context span{
    font-size:.76rem;
    color:#758078;
}

.map-v2-voyage-context strong{
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.map-v2-voyage-context a{
    font-size:.82rem;
    font-weight:700;
}

.map-v2-gpx-list{
    margin:0 17px 12px;
    border:1px solid var(--cd-line);
    background:#fff;
}
.map-v2-gpx-list-head{
    display:flex;
    justify-content:space-between;
    gap:10px;
    padding:9px 11px;
    border-bottom:1px solid var(--cd-line);
    font-size:.8rem;
}
.map-v2-gpx-list-head span{ color:var(--cd-muted); }
.map-v2-gpx-item{
    min-height:42px;
    display:flex;
    align-items:center;
    gap:8px;
    padding:6px 8px 6px 11px;
    border-bottom:1px solid var(--cd-line);
}
.map-v2-gpx-item:last-child{ border-bottom:0; }
.map-v2-gpx-item > span{
    min-width:0;
    flex:1 1 auto;
    display:flex;
    align-items:center;
    gap:7px;
    font-size:.8rem;
    overflow-wrap:anywhere;
}
.map-v2-gpx-item > span i{ color:var(--cd-green-dark); }
.map-v2-gpx-item button{
    flex:0 0 40px;
    width:40px;
    height:40px;
    border:0;
    background:transparent;
    color:#9b3c3c;
    cursor:pointer;
}
.map-v2-voyage-contact-badge{
    display:inline-flex;
    align-items:center;
    gap:5px;
    color:#2369ad;
    font-weight:700;
    font-size:.75rem;
}

.map-v2-route-save{
    display:flex;
    align-items:center;
    justify-content:flex-start;
    min-width:0;
}

#map-route-saved{
    display:inline-flex;
    align-items:center;
    gap:6px;
    color:#397d43;
    font-size:.84rem;
    font-weight:700;
}

#map-save-voyage{
    min-height:40px;
    font-size:.84rem;
}

.map-v2-save-backdrop{
    position:fixed;
    inset:0;
    z-index:2200;
    background:rgba(20,30,24,.42);
    opacity:0;
    transition:opacity .18s ease;
}

.map-v2-save-backdrop.is-open{
    opacity:1;
}

.map-v2-save-panel{
    position:fixed;
    z-index:2210;
    left:0;
    right:0;
    bottom:0;
    padding:24px 18px calc(22px + env(safe-area-inset-bottom));
    background:#fff;
    border-radius:20px 20px 0 0;
    transform:translateY(102%);
    transition:transform .18s ease;
    max-height:88%;
    overflow:auto;
}

.map-v2-save-panel.is-open{
    transform:translateY(0);
}

.map-v2-save-panel h2{
    margin:3px 42px 8px 0;
}

.map-v2-save-panel > p:not(.section-kicker){
    margin:0 0 18px;
    color:#68736b;
    line-height:1.5;
}

#map-save-form{
    display:grid;
    gap:9px;
}

#map-save-form label{
    font-weight:700;
}

#map-save-form label span{
    font-weight:400;
    font-size:.85rem;
    color:#758078;
}

#map-save-form input,
#map-save-form textarea{
    width:100%;
    min-height:48px;
    font-size:16px;
}
#map-save-form textarea{
    min-height:96px;
    resize:vertical;
}
.voyages-v2-form textarea,
.voyage-v2-edit textarea{
    min-height:96px;
    resize:vertical;
}
.voyage-v2-intro{
    margin:8px 0 0;
    color:#5f6962;
    font-size:.92rem;
    line-height:1.45;
}

.map-v2-save-error{
    margin:3px 0;
    color:#a23333;
    font-size:.9rem;
}

@media (min-width:700px){
    .voyages-v2-head{
        flex-direction:row;
        align-items:flex-end;
        justify-content:space-between;
    }
    .voyages-v2-new{
        width:auto;
    }
    .map-v2-save-panel{
        left:50%;
        right:auto;
        bottom:50%;
        width:min(520px, calc(100% - 36px));
        border-radius:18px;
        transform:translate(-50%, calc(50% + 20px));
        opacity:0;
    }
    .map-v2-save-panel.is-open{
        transform:translate(-50%, 50%);
        opacity:1;
    }
}


.voyage-v2-contacted{ color:#2369ad !important; font-weight:700; }
.voyage-v2-delete{ margin:0; }
.voyage-v2-delete-button{ color:#9b3c3c !important; }
@media (max-width:420px){
    .map-v2-route-controls{ grid-template-columns:1fr; }
    .map-v2-route label{ max-width:120px; }
    .map-v2-voyage-context{ grid-template-columns:auto minmax(0,1fr); }
    .map-v2-voyage-context a{ grid-column:2; justify-self:start; }
}

/* V2.33 - Carte : reperes personnels, favoris hors cluster et historique d'echange */
.cd-v2-marker.is-favorite { background: var(--cd-green-dark); }
.cd-v2-marker.is-complete::after,
.cd-v2-marker.is-favorite::before,
.cd-v2-marker.is-voyage-contact::before { content: none !important; }
.cd-v2-marker-signal {
    position:absolute;
    z-index:5;
    display:grid;
    place-items:center;
    border:2px solid #fff;
    border-radius:50%;
    transform:rotate(45deg);
    box-shadow:0 1px 4px rgba(0,0,0,.22);
}
.cd-v2-marker-signal.is-quality {
    top:-5px;
    left:-5px;
    width:11px;
    height:11px;
    background:var(--cd-orange);
}
.cd-v2-marker-signal.is-favorite {
    top:-10px;
    right:-10px;
    width:21px;
    height:21px;
    background:#fff url('/plume.png') center / 13px auto no-repeat;
}
.cd-v2-marker-signal.is-contact {
    right:-10px;
    bottom:-10px;
    width:21px;
    height:21px;
    background:#fff;
    color:#36433b;
    font-size:10px;
}
.cd-v2-marker-signal.is-contact i,
.cd-v2-marker-signal.is-voyage-contact i { transform:none; font-size:10px; }
.cd-v2-marker-signal.is-voyage-contact {
    left:-10px;
    bottom:-10px;
    width:21px;
    height:21px;
    background:#2369ad;
    color:#fff;
}
.cd-v2-own-marker {
    width:36px;
    height:36px;
    display:grid;
    place-items:center;
    border:3px solid #fff;
    border-radius:50%;
    background:#171a18;
    color:#fff;
    box-shadow:0 2px 8px rgba(0,0,0,.28);
}
.cd-v2-own-marker i { font-size:16px; }
.cd-v2-own-marker.is-inline { flex:none; width:42px; height:42px; margin-bottom:10px; }
.map-v2-symbol-legend {
    display:flex;
    flex-wrap:wrap;
    gap:8px 14px;
    padding:9px 17px 11px;
    border-bottom:1px solid var(--cd-line);
    background:#fff;
    color:var(--cd-muted);
    font-size:11px;
}
.map-v2-symbol-legend > span { display:inline-flex; align-items:center; gap:5px; }
.map-v2-legend-quality { width:9px; height:9px; border-radius:50%; background:var(--cd-orange); box-shadow:0 0 0 2px #fff,0 0 0 3px #e4e7e4; }
.map-v2-legend-contact { color:#36433b; font-size:13px; }
.map-v2-legend-feather { width:17px; height:17px; border:1px solid #dfe3df; border-radius:50%; background:#fff url('/plume.png') center / 11px auto no-repeat; }
.map-v2-legend-own { width:18px; height:18px; display:grid; place-items:center; border-radius:50%; background:#171a18; color:#fff; font-size:9px; }
.map-v2-own-sheet > p:not(.section-kicker) { margin:0 0 10px; color:var(--cd-muted); font-size:13px; }
.map-v2-own-sheet > small { display:block; margin:12px 0 0; color:var(--cd-muted); line-height:1.45; }
.map-v2-own-status { display:inline-flex; align-items:center; gap:5px; margin-top:3px; padding:5px 8px; background:var(--cd-green-pale); color:var(--cd-green-dark); font-size:11px; font-weight:700; }
.map-v2-own-status.is-paused { background:#f5f0e8; color:#7b6547; }

/* V2.34 - Donner mon avis */
.review-page { padding-bottom: 24px; }
.review-header { position:relative; padding:8px 0 22px; }
.review-header-feather { float:right; width:55px; height:55px; margin:0 0 8px 15px; display:grid; place-items:center; border-radius:50%; background:#fff9ef; }
.review-header-feather img { width:34px; height:auto; }
.review-header h1 { margin-bottom:10px; }
.review-header > p:last-child { margin:0; max-width:610px; color:var(--cd-muted); line-height:1.55; }
.review-flash { margin:0 0 20px; padding:12px 14px; border-left:4px solid var(--cd-green); background:var(--cd-green-pale); color:#345238; }
.review-flash-error { border-color:var(--cd-danger); background:#fbefef; color:#843434; }
.review-current-status { display:flex; align-items:center; justify-content:space-between; gap:15px; margin:0 0 20px; padding:13px 0; border-top:1px solid var(--cd-line); border-bottom:1px solid var(--cd-line); }
.review-current-status span,.review-current-status strong { display:block; }
.review-current-status span { margin-bottom:2px; color:var(--cd-muted); font-size:.78rem; }
.review-current-status strong { font-size:.96rem; }
.review-mini-stars { display:flex; gap:2px; color:var(--cd-orange); font-size:17px; white-space:nowrap; }
.review-admin-answer { margin:0 0 22px; padding:15px 16px; background:#f7f7f1; border-left:3px solid var(--cd-orange); }
.review-admin-answer span { display:block; margin-bottom:5px; color:#756139; font-size:.76rem; font-weight:700; text-transform:uppercase; letter-spacing:.04em; }
.review-admin-answer p { margin:0; line-height:1.55; }
.review-form { display:grid; gap:22px; }
.review-rating { margin:0; padding:0; border:0; }
.review-rating legend,.review-field label { display:block; margin-bottom:10px; font-weight:700; }
.review-stars { display:grid; grid-template-columns:repeat(5,1fr); gap:7px; }
.review-stars label { min-width:0; cursor:pointer; }
.review-stars input { position:absolute; opacity:0; pointer-events:none; }
.review-stars span { min-height:55px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1px; border:1px solid var(--cd-line); background:#fff; color:#c5c9c6; transition:.15s ease; }
.review-stars i { font-size:22px; }
.review-stars small { color:var(--cd-muted); font-size:10px; }
.review-stars input:checked + span { border-color:var(--cd-orange); background:#fff8ec; color:var(--cd-orange); box-shadow:inset 0 0 0 1px var(--cd-orange); }
.review-stars input:focus-visible + span { outline:3px solid rgba(57,125,172,.22); outline-offset:2px; }
.review-field textarea { width:100%; min-height:150px; padding:13px 14px; border:1px solid #cfd6d0; border-radius:0; background:#fff; color:var(--cd-text); font:inherit; font-size:16px; line-height:1.5; resize:vertical; }
.review-field textarea:focus { outline:3px solid rgba(61,158,61,.12); border-color:var(--cd-green); }
.review-publication { display:flex; align-items:flex-start; gap:11px; padding:14px; background:var(--cd-soft); cursor:pointer; }
.review-publication input { flex:none; width:20px; height:20px; margin:2px 0 0; accent-color:var(--cd-green-dark); }
.review-publication span,.review-publication strong,.review-publication small { display:block; }
.review-publication strong { margin-bottom:3px; font-size:.93rem; }
.review-publication small { color:var(--cd-muted); line-height:1.4; }
.review-moderation-note { display:flex; align-items:flex-start; gap:7px; margin:16px 0 0; color:var(--cd-muted); font-size:.8rem; line-height:1.4; }
.review-moderation-note i { flex:none; color:var(--cd-green-dark); font-size:15px; }
.drawer-nav-secondary { padding-left:18px !important; font-size:.93rem; }
.drawer-nav-secondary i { color:var(--cd-orange) !important; }
@media (min-width:700px) {
    .review-stars { max-width:410px; }
    .review-header-feather { width:64px; height:64px; }
    .review-header-feather img { width:39px; }
}


/* PWA - invitation d'installation */
.pwa-install-banner {
    width: min(94%, 680px);
    margin: 10px auto 0;
    padding: 12px;
    background: #fff;
    border: 1px solid #dfe7df;
    border-radius: 14px;
    display: flex;
    align-items: center;
    gap: 10px;
    box-shadow: 0 4px 14px rgba(0,0,0,.07);
}

.pwa-install-banner[hidden],
.pwa-install-status[hidden] {
    display: none !important;
}

.pwa-install-banner-text {
    min-width: 0;
    flex: 1;
    display: flex;
    align-items: center;
    gap: 10px;
}

.pwa-install-banner-text > i {
    font-size: 1.45rem;
    color: #398f42;
}

.pwa-install-banner-text strong,
.pwa-install-banner-text span {
    display: block;
}

.pwa-install-banner-text span {
    margin-top: 2px;
    font-size: .82rem;
    color: #667066;
    line-height: 1.3;
}

.pwa-install-banner .btn {
    width: auto;
    flex: 0 0 auto;
    padding: 9px 13px;
}

.pwa-install-dismiss {
    width: 36px;
    height: 36px;
    flex: 0 0 36px;
    border: 0;
    background: transparent;
    color: #6d756d;
    border-radius: 50%;
}

.pwa-install-status {
    width: min(94%, 680px);
    margin: 8px auto 0;
    padding: 9px 12px;
    background: #eef7ef;
    color: #255c2b;
    border-radius: 10px;
    font-size: .88rem;
}

.pwa-install-status.is-error {
    background: #fff1f0;
    color: #8a2921;
}

@media (max-width: 520px) {
    .pwa-install-banner {
        align-items: flex-start;
        flex-wrap: wrap;
    }

    .pwa-install-banner-text {
        flex-basis: calc(100% - 46px);
    }

    .pwa-install-banner .btn {
        flex: 1 1 100%;
    }
}

/* === V2.38 : connexion persistante + notifications push === */
.auth-remember{
    display:flex;
    align-items:center;
    gap:10px;
    margin:4px 0 16px;
    font-size:.95rem;
    color:#4e5156;
    cursor:pointer;
}
.auth-remember input{
    width:20px;
    height:20px;
    flex:0 0 auto;
    accent-color:#2f7f32;
}
.settings-push-state{
    display:flex;
    align-items:center;
    gap:9px;
    margin-top:14px;
    font-weight:600;
    color:#62666a;
}
.settings-push-dot{
    width:10px;
    height:10px;
    border-radius:50%;
    background:#a7aaad;
    flex:0 0 auto;
}
.settings-push-state.is-active{
    color:#236b29;
}
.settings-push-state.is-active .settings-push-dot{
    background:#2f7f32;
}
.settings-push-actions{
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:10px;
    margin-top:16px;
}
.settings-secondary-button{
    min-height:44px;
    border:1px solid #d6d8d9;
    background:#fff;
    color:#363a3d;
    padding:10px 14px;
    font:inherit;
    font-weight:600;
    cursor:pointer;
}
.settings-push-message{
    margin-top:12px;
    padding:11px 12px;
    background:#eef7ef;
    color:#235e28;
    line-height:1.45;
}
.settings-push-message.is-error{
    background:#fff0ee;
    color:#9a362e;
}
.settings-help{
    margin:.7rem 0 0;
    color:#6f7376;
    font-size:.9rem;
    line-height:1.45;
}
@media (min-width:700px){
    .settings-push-actions{
        flex-direction:row;
        align-items:center;
    }
}

/* =========================================================
   CycloDort V2.40 - Chat en direct + Nous soutenir
   A ajouter a la fin de /css/moncompte-v2.css
   ========================================================= */

/* Le lien "Donner mon avis" doit rester aligne avec le reste du menu. */
.drawer-nav a[href*="page=avis"],
.drawer-nav a[href*="page=soutenir"] {
    margin-left: 0 !important;
    padding-left: 0 !important;
}

/* Messagerie en direct */
.messages-v2-live-status {
    min-height: 20px;
    margin: 4px 0;
    color: var(--cd-muted);
    font-size: 12px;
}

.messages-v2-new-message {
    position: sticky;
    z-index: 4;
    bottom: 82px;
    display: flex;
    align-items: center;
    gap: 7px;
    width: max-content;
    margin: 0 auto 8px;
    padding: 8px 13px;
    border: 1px solid #c9d8ca;
    border-radius: 999px;
    background: #fff;
    color: var(--cd-green-dark);
    box-shadow: 0 4px 15px rgba(0,0,0,.08);
    font: inherit;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
}

.messages-v2-new-message[hidden] {
    display: none !important;
}

.messages-v2-composer button:disabled {
    opacity: .55;
    cursor: wait;
}

/* Nous soutenir */
.support-v2 {
    max-width: 760px;
    margin: 0 auto;
}

.support-v2-head {
    max-width: 650px;
    margin-bottom: 36px;
}

.support-v2-head h1 {
    margin-bottom: 14px;
}

.support-v2-head > p:last-child {
    margin-bottom: 0;
    color: var(--cd-muted);
    font-size: 17px;
}

.support-v2-actions {
    border-top: 1px solid var(--cd-line);
}

.support-v2-action {
    display: grid;
    grid-template-columns: 42px 1fr;
    gap: 15px;
    padding: 24px 0;
    border-bottom: 1px solid var(--cd-line);
}

.support-v2-icon {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: var(--cd-green-pale);
    color: var(--cd-green-dark);
    font-size: 20px;
}

.support-v2-action h2 {
    margin: 2px 0 6px;
    font-size: 20px;
}

.support-v2-action p {
    margin-bottom: 12px;
    color: var(--cd-muted);
    font-size: 14px;
}

.support-v2-link {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--cd-green-dark);
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}

.support-v2-donate {
    margin: 44px 0 0;
    padding: 28px 0 0;
    border-top: 2px solid var(--cd-green-dark);
}

.support-v2-donate h2 {
    margin-bottom: 9px;
    font-size: 27px;
}

.support-v2-donate > p:not(.section-kicker) {
    max-width: 640px;
    color: var(--cd-muted);
}

.support-v2-donate-note {
    font-size: 14px;
}

.support-v2-amounts {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
    margin-top: 24px;
}

.support-v2-amount {
    min-width: 0;
    padding: 16px 8px 14px;
    border: 1px solid #cad7cb;
    border-radius: 4px;
    background: #fff;
    color: var(--cd-text);
    text-align: center;
}

.support-v2-amount strong,
.support-v2-amount span {
    display: block;
}

.support-v2-amount strong {
    color: var(--cd-green-dark);
    font-size: 24px;
}

.support-v2-amount span {
    margin-top: 3px;
    color: var(--cd-muted);
    font-size: 11px;
    line-height: 1.25;
}

.support-v2-amount.is-main {
    border-color: var(--cd-green-dark);
    background: var(--cd-green-pale);
}

.support-v2-paypal {
    margin: 13px 0 0 !important;
    font-size: 12px;
}

.support-v2-paypal-missing {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 20px;
    padding: 13px 0;
    color: var(--cd-muted);
    border-top: 1px solid var(--cd-line);
    border-bottom: 1px solid var(--cd-line);
}

.support-v2-paypal-missing > i {
    color: #153b6d;
    font-size: 25px;
}

.support-v2-paypal-missing strong,
.support-v2-paypal-missing span {
    display: block;
}

.support-v2-paypal-missing strong {
    color: var(--cd-text);
    font-size: 14px;
}

.support-v2-paypal-missing span {
    margin-top: 2px;
    font-size: 12px;
}

.support-v2-thanks {
    display: flex;
    gap: 12px;
    margin-top: 42px;
    padding-top: 22px;
    border-top: 1px solid var(--cd-line);
}

.support-v2-thanks > span {
    color: var(--cd-orange);
    font-size: 22px;
    line-height: 1;
}

.support-v2-thanks p {
    margin: 0;
    color: var(--cd-muted);
    font-size: 14px;
}

@media (max-width: 430px) {
    .support-v2-amounts {
        gap: 6px;
    }

    .support-v2-amount {
        padding-left: 5px;
        padding-right: 5px;
    }

    .support-v2-amount strong {
        font-size: 22px;
    }
}

/* =========================================================
   CycloDort V2.41 - Livre d'or + partage
   ========================================================= */
.messages-v2-guestbook{margin-top:32px;padding-top:24px;border-top:1px solid var(--cd-line)}
.messages-v2-guestbook-head{display:flex;align-items:center;gap:11px;margin-bottom:10px}
.messages-v2-guestbook-head img{width:auto;height:42px;flex:0 0 auto}
.messages-v2-guestbook-head span{display:block;margin-bottom:2px;color:var(--cd-muted);font-size:10px;font-weight:700;letter-spacing:.08em}
.messages-v2-guestbook-head h2{margin:0;font-size:19px}
.messages-v2-guestbook>p{color:var(--cd-muted);font-size:13px}
.messages-v2-guestbook-success,.messages-v2-guestbook-wait,.messages-v2-guestbook-existing{display:flex;align-items:flex-start;gap:8px}
.messages-v2-guestbook-success{margin:10px 0 14px;padding:10px 11px;border-left:3px solid var(--cd-green-dark);background:var(--cd-green-pale);color:var(--cd-green-dark);font-size:13px;font-weight:700}
.messages-v2-guestbook-existing{margin:12px 0;color:var(--cd-green-dark)!important;font-weight:600}
.messages-v2-guestbook-details{margin-top:13px;border-top:1px solid var(--cd-line);border-bottom:1px solid var(--cd-line)}
.messages-v2-guestbook-details summary{display:flex;align-items:center;gap:8px;padding:14px 0;color:var(--cd-green-dark);font-weight:700;cursor:pointer;list-style:none}
.messages-v2-guestbook-details summary::-webkit-details-marker{display:none}
.messages-v2-guestbook-details form{padding:0 0 16px}
.messages-v2-guestbook-details label{display:block;margin-bottom:7px;font-size:12px;font-weight:700}
.messages-v2-guestbook-details textarea{width:100%;min-height:120px;padding:11px 12px;border:1px solid #cbd2cd;border-radius:3px;resize:vertical;font:inherit}
.messages-v2-guestbook-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:9px}
.messages-v2-guestbook-actions>span{color:var(--cd-muted);font-size:11px}
.messages-v2-guestbook-actions .button-cta{width:auto;margin:0}
.support-v2-share{display:grid;grid-template-columns:58px 1fr;gap:16px;margin:0 0 34px;padding:24px 0 28px;border-top:2px solid var(--cd-green-dark);border-bottom:1px solid var(--cd-line)}
.support-v2-share-visual{display:flex;justify-content:center}.support-v2-share-visual img{width:auto;height:52px}
.support-v2-share h2{margin-bottom:7px}.support-v2-share p{color:var(--cd-muted)}
.support-v2-share-main{width:auto;margin-top:4px}
.support-v2-share-fallback{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.support-v2-share-fallback[hidden]{display:none!important}
.support-v2-share-fallback a,.support-v2-share-fallback button{display:inline-flex;align-items:center;gap:6px;min-height:39px;padding:8px 10px;border:1px solid var(--cd-line);border-radius:3px;background:#fff;color:var(--cd-text);font:inherit;font-size:12px;font-weight:700;cursor:pointer}
.support-v2-share-feedback{min-height:20px;margin:9px 0 0!important;color:var(--cd-green-dark)!important;font-size:12px;font-weight:700}
.support-v2-action.is-muted{opacity:.78}.support-v2-coming-soon{display:inline-block;color:var(--cd-muted);font-size:12px;font-weight:700}
@media (max-width:430px){.support-v2-share{grid-template-columns:42px 1fr;gap:11px}.support-v2-share-visual img{height:42px}.support-v2-share-main{width:100%}.messages-v2-guestbook-actions{align-items:flex-end}}

/* CycloDort V2.42 - menu Nous soutenir */
.drawer-nav .drawer-nav-support {
    align-items: center;
}
.drawer-nav .drawer-nav-support > span {
    min-width: 0;
}
.drawer-nav .drawer-nav-support strong,
.drawer-nav .drawer-nav-support small {
    display: block;
}
.drawer-nav .drawer-nav-support strong {
    color: var(--cd-text);
    font-size: 14px;
    font-weight: 600;
    line-height: 1.2;
}
.drawer-nav .drawer-nav-support small {
    margin-top: 2px;
    color: var(--cd-muted);
    font-size: 10px;
    font-weight: 400;
    line-height: 1.2;
}

/* =========================================================
   CycloDort V2.44 - Dons PayPal
   ========================================================= */
.support-v2-donation {
    opacity: 1 !important;
}

.support-v2-donation-amounts {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin-top: 18px;
}

.support-v2-donation-amounts form {
    margin: 0;
}

.support-v2-donation-choice {
    width: 100%;
    height: 100%;
    padding: 15px 8px 13px;
    border: 1px solid #cad7cb;
    border-radius: 4px;
    background: #fff;
    color: var(--cd-text);
    text-align: center;
    font: inherit;
    cursor: pointer;
}

.support-v2-donation-choice:hover,
.support-v2-donation-choice:focus-visible {
    border-color: var(--cd-green-dark);
}

.support-v2-donation-choice.is-main {
    border-color: var(--cd-green-dark);
    background: var(--cd-green-pale);
}

.support-v2-donation-choice strong,
.support-v2-donation-choice span,
.support-v2-donation-choice small {
    display: block;
}

.support-v2-donation-choice strong {
    color: var(--cd-green-dark);
    font-size: 24px;
}

.support-v2-donation-choice span {
    margin-top: 3px;
    font-size: 12px;
    font-weight: 700;
}

.support-v2-donation-choice small {
    margin-top: 3px;
    color: var(--cd-muted);
    font-size: 10px;
    line-height: 1.2;
}

.support-v2-paypal-note {
    display: flex;
    align-items: center;
    gap: 7px;
    margin: 12px 0 0 !important;
    color: var(--cd-muted) !important;
    font-size: 11px !important;
}

.support-v2-donation-success,
.support-v2-donation-info,
.support-v2-donation-error {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    margin: 13px 0;
    padding: 11px 12px;
    border-radius: 3px;
    font-size: 13px;
}

.support-v2-donation-success {
    background: var(--cd-green-pale);
    color: var(--cd-green-dark);
    border-left: 3px solid var(--cd-green-dark);
}

.support-v2-donation-success strong,
.support-v2-donation-success span {
    display: block;
}

.support-v2-donation-success span {
    margin-top: 2px;
    font-weight: 400;
}

.support-v2-donation-info {
    background: #f6f6f2;
    color: var(--cd-muted);
    border-left: 3px solid #a9aaa3;
}

.support-v2-donation-error {
    background: #fff4f2;
    color: #842b21;
    border-left: 3px solid #b84b3e;
}

@media (max-width: 430px) {
    .support-v2-donation-amounts {
        gap: 6px;
    }

    .support-v2-donation-choice {
        padding-left: 5px;
        padding-right: 5px;
    }

    .support-v2-donation-choice strong {
        font-size: 22px;
    }
}

/* CycloDort V2.45 - retour PayPal directement sur le bloc don */
#faire-un-don {
    scroll-margin-top: 92px;
    outline: none;
}

/* =========================================================
   CycloDort V2.46 - Nous soutenir
   3 sections nettes, une seule séparation, boutons dons chartés
   ========================================================= */

.support-v2 {
    max-width: 760px;
    margin: 0 auto;
}

/* Une seule logique de séparation entre les trois sous-sections. */
.support-v2-share {
    margin: 0;
    padding: 24px 0;
    border-top: 1px solid var(--cd-line);
    border-bottom: 1px solid var(--cd-line);
}

.support-v2-actions {
    border-top: 0;
}

.support-v2-action {
    padding: 24px 0;
    border-bottom: 1px solid var(--cd-line);
}

/* Evite la double ligne entre Partager et Avis. */
.support-v2-share + .support-v2-actions .support-v2-action:first-child {
    border-top: 0;
}

/* Les trois sections doivent garder la même hiérarchie visuelle. */
.support-v2-share h2,
.support-v2-action h2 {
    margin: 0 0 7px;
    font-size: 20px;
    line-height: 1.2;
}

.support-v2-share p,
.support-v2-action p {
    margin-top: 0;
}

/* Bouton principal de partage. */
.support-v2 .support-v2-share-main {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 44px;
    padding: 10px 16px;
    border: 0;
    border-radius: 4px;
    background: var(--cd-green-dark);
    color: #fff;
    font: inherit;
    font-weight: 700;
    text-decoration: none;
    cursor: pointer;
}

/* Choix de montant : reset explicite pour éviter le rendu bouton navigateur. */
.support-v2 .support-v2-donation-amounts {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 9px;
    margin-top: 18px;
}

.support-v2 .support-v2-donation-amounts form {
    margin: 0;
    min-width: 0;
}

.support-v2 button.support-v2-donation-choice {
    appearance: none;
    -webkit-appearance: none;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-width: 0;
    min-height: 92px;
    margin: 0;
    padding: 12px 7px;
    border: 1px solid #c7d3c8;
    border-radius: 5px;
    background: #fff;
    color: var(--cd-text);
    box-shadow: none;
    font-family: inherit;
    line-height: 1.2;
    text-align: center;
    cursor: pointer;
}

.support-v2 button.support-v2-donation-choice strong {
    display: block;
    margin: 0;
    color: var(--cd-green-dark);
    font-size: 25px;
    font-weight: 800;
    line-height: 1;
}

.support-v2 button.support-v2-donation-choice span {
    display: block;
    margin-top: 7px;
    color: var(--cd-text);
    font-size: 12px;
    font-weight: 700;
}

.support-v2 button.support-v2-donation-choice small {
    display: block;
    margin-top: 4px;
    color: var(--cd-muted);
    font-size: 10px;
    font-weight: 400;
    line-height: 1.25;
}

.support-v2 button.support-v2-donation-choice.is-main {
    border-color: var(--cd-green-dark);
    background: var(--cd-green-pale);
}

.support-v2 button.support-v2-donation-choice:hover,
.support-v2 button.support-v2-donation-choice:focus-visible {
    border-color: var(--cd-green-dark);
    outline: 2px solid transparent;
    box-shadow: 0 0 0 2px rgba(31, 111, 65, .10);
}

/* Mobile : les 3 sous-sections restent immédiatement lisibles. */
@media (max-width: 640px) {
    .support-v2-head {
        margin-bottom: 22px;
    }

    .support-v2-share,
    .support-v2-action {
        display: grid;
        grid-template-columns: 38px minmax(0, 1fr);
        gap: 11px;
        padding: 20px 0;
    }

    .support-v2-share {
        margin: 0;
    }

    .support-v2-share-visual,
    .support-v2-icon {
        width: 38px;
        height: 38px;
        align-items: center;
        justify-content: center;
    }

    .support-v2-share-visual img {
        max-width: 32px;
        height: auto;
    }

    .support-v2-icon {
        font-size: 18px;
    }

    .support-v2-share h2,
    .support-v2-action h2 {
        font-size: 18px;
    }

    .support-v2-share p,
    .support-v2-action p {
        font-size: 13px;
        line-height: 1.45;
    }

    .support-v2 .support-v2-share-main {
        width: 100%;
    }

    .support-v2-share-fallback {
        gap: 6px;
    }

    .support-v2-share-fallback a,
    .support-v2-share-fallback button {
        flex: 1 1 auto;
        justify-content: center;
    }

    .support-v2 .support-v2-donation-amounts {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 6px;
    }

    .support-v2 button.support-v2-donation-choice {
        min-height: 86px;
        padding: 10px 4px;
    }

    .support-v2 button.support-v2-donation-choice strong {
        font-size: 23px;
    }

    .support-v2 button.support-v2-donation-choice span {
        font-size: 10px;
    }

    .support-v2 button.support-v2-donation-choice small {
        display: none;
    }

    .support-v2-thanks {
        margin-top: 24px;
    }
}

/* =========================================================
   CycloDort V2.48 - Historique des dons du membre
   ========================================================= */

.support-v2-donation-history {
    margin-top: 24px;
    padding-top: 20px;
    border-top: 1px solid var(--cd-line);
}

.support-v2-donation-history-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 12px;
}

.support-v2-donation-history-head .section-kicker {
    margin-bottom: 3px;
}

.support-v2-donation-history-head h3 {
    margin: 0;
    font-size: 18px;
}

.support-v2-donation-total {
    text-align: right;
}

.support-v2-donation-total span,
.support-v2-donation-total strong {
    display: block;
}

.support-v2-donation-total span {
    color: var(--cd-muted);
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .05em;
}

.support-v2-donation-total strong {
    margin-top: 2px;
    color: var(--cd-green-dark);
    font-size: 18px;
}

.support-v2-donation-history-list {
    border-top: 1px solid var(--cd-line);
}

.support-v2-donation-history-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 11px 0;
    border-bottom: 1px solid var(--cd-line);
}

.support-v2-donation-history-main {
    display: flex;
    align-items: baseline;
    gap: 9px;
    min-width: 0;
}

.support-v2-donation-history-main strong {
    color: var(--cd-text);
    font-size: 15px;
}

.support-v2-donation-history-main time {
    color: var(--cd-muted);
    font-size: 12px;
}

.support-v2-donation-status {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    flex: 0 0 auto;
    font-size: 11px;
    font-weight: 700;
}

.support-v2-donation-status.is-success {
    color: var(--cd-green-dark);
}

.support-v2-donation-status.is-pending {
    color: #7a6500;
}

.support-v2-donation-status.is-error {
    color: #9b2f24;
}

.support-v2-donation-status.is-refund,
.support-v2-donation-status.is-muted {
    color: var(--cd-muted);
}

.support-v2-donation-history-note {
    margin: 8px 0 0 !important;
    color: var(--cd-muted) !important;
    font-size: 10px !important;
}

@media (max-width: 430px) {
    .support-v2-donation-history-head {
        align-items: flex-start;
    }

    .support-v2-donation-history-item {
        gap: 10px;
    }

    .support-v2-donation-history-main {
        display: block;
    }

    .support-v2-donation-history-main time {
        display: block;
        margin-top: 2px;
    }

    .support-v2-donation-status {
        max-width: 135px;
        text-align: right;
        line-height: 1.2;
    }
}

/* =========================================================
   CycloDort V2.49 - Accueil
   ========================================================= */

.home-v249 {
    padding-bottom: 10px;
}

.home-v249-intro {
    padding: 7px 0 22px;
}

.home-v249-intro h1 {
    margin: 0 0 7px;
}

.home-v249-intro > p:last-child {
    margin: 0;
    color: var(--cd-muted);
    font-size: 16px;
}

.home-v249-map {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 62px;
    align-items: center;
    gap: 14px;
    margin: 0 -17px 31px;
    padding: 23px 17px;
    background: var(--cd-green-dark);
    color: #fff;
}

.home-v249-map-kicker {
    display: block;
    margin-bottom: 4px;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .08em;
    opacity: .72;
}

.home-v249-map strong,
.home-v249-map small {
    display: block;
}

.home-v249-map strong {
    font-size: 25px;
    line-height: 1.15;
}

.home-v249-map small {
    margin-top: 5px;
    font-size: 12px;
    opacity: .78;
}

.home-v249-map-icon {
    display: grid;
    width: 58px;
    height: 58px;
    place-items: center;
    border: 1px solid rgba(255,255,255,.38);
    border-radius: 50%;
    font-size: 26px;
}

.home-v249-block {
    margin: 0 0 32px;
}

.home-v249-section-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 15px;
    margin-bottom: 13px;
}

.home-v249-section-head h2 {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    font-size: 22px;
}

.home-v249-section-head > a {
    flex: 0 0 auto;
    margin-top: 19px;
    color: var(--cd-green-dark);
    font-size: 12px;
    font-weight: 700;
}

.home-v249-trip {
    padding: 0 0 25px;
    border-bottom: 1px solid var(--cd-line);
}

.home-v249-trip-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 15px;
    margin: 13px 0 17px;
    color: var(--cd-muted);
    font-size: 12px;
}

.home-v249-trip-meta span {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.home-v249-trip-meta i {
    color: var(--cd-green-dark);
}

.home-v249-trip-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 13px 18px;
}

.home-v249-primary-link {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 9px 13px;
    border-radius: 4px;
    background: var(--cd-green-dark);
    color: #fff;
    font-weight: 700;
}

.home-v249-trip-actions > a:last-child {
    color: var(--cd-green-dark);
    font-size: 13px;
    font-weight: 700;
}

.home-v249-no-trip {
    display: grid;
    gap: 15px;
    padding-bottom: 26px;
    border-bottom: 1px solid var(--cd-line);
}

.home-v249-no-trip h2 {
    margin-bottom: 7px;
}

.home-v249-no-trip p:not(.section-kicker) {
    max-width: 570px;
    margin: 0;
    color: var(--cd-muted);
    font-size: 14px;
}

.home-v249-no-trip .home-v249-primary-link {
    justify-self: start;
}

.home-v249-count {
    display: inline-grid;
    min-width: 22px;
    height: 22px;
    padding: 0 6px;
    place-items: center;
    border-radius: 11px;
    background: var(--cd-green-dark);
    color: #fff;
    font-size: 11px;
    line-height: 1;
}

.home-v249-thread-list {
    border-top: 1px solid var(--cd-line);
}

.home-v249-thread-list > a {
    display: grid;
    grid-template-columns: 8px minmax(0, 1fr) 15px;
    align-items: center;
    gap: 9px;
    min-height: 67px;
    padding: 10px 0;
    border-bottom: 1px solid var(--cd-line);
    color: var(--cd-text);
}

.home-v249-thread-list > a > i {
    color: #9aa19b;
    font-size: 12px;
}

.home-v249-thread-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: transparent;
}

.home-v249-thread-list > a.is-unread .home-v249-thread-dot {
    background: var(--cd-green-dark);
}

.home-v249-thread-body {
    min-width: 0;
}

.home-v249-thread-top {
    display: flex;
    justify-content: space-between;
    gap: 9px;
}

.home-v249-thread-top strong {
    overflow: hidden;
    font-size: 14px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.home-v249-thread-top time {
    flex: 0 0 auto;
    color: var(--cd-muted);
    font-size: 10px;
}

.home-v249-thread-body small {
    display: block;
    overflow: hidden;
    margin-top: 2px;
    color: var(--cd-muted);
    font-size: 12px;
    line-height: 1.35;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.home-v249-thread-list > a.is-unread strong {
    color: var(--cd-green-dark);
}

.home-v249-empty {
    display: grid;
    grid-template-columns: 34px 1fr;
    gap: 11px;
    padding: 16px 0 3px;
    color: var(--cd-muted);
}

.home-v249-empty > i {
    color: var(--cd-green-dark);
    font-size: 24px;
}

.home-v249-empty strong {
    color: var(--cd-text);
}

.home-v249-empty p {
    margin: 3px 0 0;
    font-size: 12px;
}

.home-v249-shortcuts {
    margin: 4px 0 34px;
    border-top: 1px solid var(--cd-line);
}

.home-v249-shortcuts > a {
    display: grid;
    grid-template-columns: 30px minmax(0, 1fr) 15px;
    align-items: center;
    gap: 11px;
    min-height: 67px;
    padding: 10px 0;
    border-bottom: 1px solid var(--cd-line);
    color: var(--cd-text);
}

.home-v249-shortcuts > a > i:first-child {
    color: var(--cd-green-dark);
    font-size: 20px;
}

.home-v249-shortcuts > a > i:last-child {
    color: #9aa19b;
    font-size: 12px;
}

.home-v249-shortcuts strong,
.home-v249-shortcuts small {
    display: block;
}

.home-v249-shortcuts strong {
    font-size: 14px;
}

.home-v249-shortcuts small {
    margin-top: 2px;
    color: var(--cd-muted);
    font-size: 11px;
}

.home-v249-community {
    padding: 22px 0 5px;
    border-top: 2px solid var(--cd-green-dark);
}

.home-v249-community > div:first-child > strong {
    display: block;
    font-size: 17px;
}

.home-v249-community-links {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-top: 15px;
}

.home-v249-community-links a {
    display: inline-flex;
    min-height: 39px;
    align-items: center;
    gap: 6px;
    padding: 8px 11px;
    border: 1px solid #b8cdb9;
    border-radius: 3px;
    color: var(--cd-green-dark);
    font-size: 12px;
    font-weight: 700;
}

@media (min-width: 680px) {
    .home-v249-map {
        margin-left: 0;
        margin-right: 0;
        padding-left: 22px;
        padding-right: 22px;
        border-radius: 4px;
    }
}

@media (max-width: 430px) {
    .home-v249-intro {
        padding-bottom: 18px;
    }

    .home-v249-map {
        margin-bottom: 27px;
    }

    .home-v249-map strong {
        font-size: 23px;
    }

    .home-v249-section-head h2 {
        font-size: 20px;
    }

    .home-v249-trip-actions .home-v249-primary-link {
        flex: 1 1 auto;
    }

    .home-v249-community-links {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
    }

    .home-v249-community-links a {
        justify-content: center;
        padding-left: 5px;
        padding-right: 5px;
    }
}

/* =========================================================
   CycloDort V2.50 - Accueil, visages dans les échanges
   ========================================================= */

.home-v249-thread-list > a {
    grid-template-columns: 46px minmax(0, 1fr) 15px;
    min-height: 74px;
    gap: 11px;
}

.home-v249-thread-avatar {
    position: relative;
    display: grid;
    width: 42px;
    height: 42px;
    place-items: center;
    overflow: visible;
    border-radius: 50%;
    background: var(--cd-green-pale);
    color: var(--cd-green-dark);
    font-size: 18px;
}

.home-v249-thread-avatar img {
    display: block;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    object-fit: cover;
}

.home-v249-thread-unread {
    position: absolute;
    right: -1px;
    bottom: 1px;
    width: 10px;
    height: 10px;
    border: 2px solid #fff;
    border-radius: 50%;
    background: var(--cd-green-dark);
}

.home-v249-thread-dot {
    display: none;
}

@media (max-width: 430px) {
    .home-v249-thread-list > a {
        grid-template-columns: 44px minmax(0, 1fr) 13px;
    }

    .home-v249-thread-avatar,
    .home-v249-thread-avatar img {
        width: 40px;
        height: 40px;
    }
}

/* =========================================================
   CycloDort V2.51 - Accueil plus chaleureux
   ========================================================= */

.home-v251-hero {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1.12fr) minmax(230px, .88fr);
    min-height: 290px;
    margin: 0 0 34px;
    overflow: hidden;
    border-radius: 5px;
    background: #f3f7f1;
}

.home-v251-hero-copy {
    position: relative;
    z-index: 2;
    padding: 34px 30px 30px;
}

.home-v251-hero-copy h1 {
    margin: 0 0 7px;
    font-size: clamp(34px, 4vw, 48px);
    line-height: 1;
}

.home-v251-hero-copy > p:not(.section-kicker) {
    margin: 0;
    color: var(--cd-muted);
    font-size: 17px;
}

.home-v251-hero-photo {
    min-height: 290px;
    background:
        linear-gradient(90deg, rgba(243,247,241,1) 0%, rgba(243,247,241,.18) 28%, rgba(243,247,241,0) 50%),
        url('/cyclistes-cantal.png') center 42% / cover no-repeat;
}

.home-v251-hero-cta {
    display: inline-grid;
    grid-template-columns: 24px minmax(0, 1fr) 18px;
    align-items: center;
    gap: 10px;
    min-width: 285px;
    margin-top: 28px;
    padding: 13px 14px;
    border-radius: 4px;
    background: var(--cd-green-dark);
    color: #fff;
}

.home-v251-hero-cta > i:first-child {
    font-size: 18px;
}

.home-v251-hero-cta > i:last-child {
    font-size: 14px;
    opacity: .8;
}

.home-v251-hero-cta strong,
.home-v251-hero-cta small {
    display: block;
}

.home-v251-hero-cta strong {
    font-size: 15px;
}

.home-v251-hero-cta small {
    margin-top: 2px;
    font-size: 10px;
    opacity: .76;
}

/* Le voyage devient un moment de la page, pas une ligne technique. */
.home-v249-trip,
.home-v251-no-trip {
    position: relative;
    margin-bottom: 34px;
    padding: 24px 0 28px;
    border-top: 1px solid var(--cd-line);
    border-bottom: 1px solid var(--cd-line);
}

.home-v249-trip::before,
.home-v251-no-trip::before {
    content: "";
    position: absolute;
    top: -1px;
    left: 0;
    width: 72px;
    height: 3px;
    background: #e6a23c;
}

.home-v251-no-trip {
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr);
    gap: 16px;
}

.home-v251-no-trip-icon {
    display: grid;
    width: 48px;
    height: 48px;
    place-items: center;
    border-radius: 50%;
    background: #fff3dd;
    color: #b86d00;
    font-size: 22px;
}

.home-v251-no-trip h2 {
    margin: 0 0 6px;
}

.home-v251-no-trip p:not(.section-kicker) {
    max-width: 620px;
    margin: 0 0 15px;
    color: var(--cd-muted);
    font-size: 14px;
}

/* Conversations : un peu plus aérées, comme une vraie messagerie. */
.home-v249-messages {
    margin-bottom: 29px;
}

.home-v249-thread-list {
    border-top: 0;
}

.home-v249-thread-list > a {
    margin: 0 -8px;
    padding: 11px 8px;
    border-bottom: 0;
    border-radius: 4px;
}

.home-v249-thread-list > a + a {
    margin-top: 3px;
}

.home-v249-thread-list > a:hover {
    background: #f6f8f5;
}

/* Présence humaine, sans créer un réseau social. */
.home-v251-people {
    margin: 0 0 34px;
    padding: 24px 0;
    border-top: 1px solid var(--cd-line);
    border-bottom: 1px solid var(--cd-line);
}

.home-v251-people-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.home-v251-people-list > a {
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr);
    align-items: center;
    gap: 11px;
    min-width: 0;
    padding: 10px;
    background: #f7f9f6;
    border-radius: 4px;
    color: var(--cd-text);
}

.home-v251-person-avatar {
    display: grid;
    width: 48px;
    height: 48px;
    place-items: center;
    overflow: hidden;
    border-radius: 50%;
    background: var(--cd-green-pale);
    color: var(--cd-green-dark);
}

.home-v251-person-avatar img {
    width: 48px;
    height: 48px;
    object-fit: cover;
}

.home-v251-people-list strong,
.home-v251-people-list small {
    display: block;
}

.home-v251-people-list strong {
    overflow: hidden;
    font-size: 14px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.home-v251-people-list small {
    margin-top: 2px;
    color: var(--cd-muted);
    font-size: 10px;
}

/* Raccourcis plus discrets : ils ne doivent plus faire "menu principal". */
.home-v249-shortcuts {
    margin-top: 0;
}

.home-v249-shortcuts > a {
    min-height: 61px;
}

.home-v249-community {
    margin-top: 6px;
    padding-top: 25px;
}

/* Mobile */
@media (max-width: 640px) {
    .home-v251-hero {
        display: block;
        min-height: 0;
        margin: 0 -17px 28px;
        border-radius: 0;
    }

    .home-v251-hero-copy {
        padding: 26px 17px 22px;
    }

    .home-v251-hero-copy h1 {
        font-size: 37px;
    }

    .home-v251-hero-copy > p:not(.section-kicker) {
        font-size: 15px;
    }

    .home-v251-hero-photo {
        min-height: 145px;
        background:
            linear-gradient(180deg, rgba(243,247,241,.96) 0%, rgba(243,247,241,.18) 34%, rgba(243,247,241,0) 62%),
            url('/cyclistes-cantal.png') center 38% / cover no-repeat;
    }

    .home-v251-hero-cta {
        width: 100%;
        min-width: 0;
        margin-top: 22px;
    }

    .home-v249-trip,
    .home-v251-no-trip {
        padding-top: 21px;
        padding-bottom: 23px;
    }

    .home-v251-no-trip {
        grid-template-columns: 44px minmax(0, 1fr);
        gap: 12px;
    }

    .home-v251-no-trip-icon {
        width: 42px;
        height: 42px;
        font-size: 19px;
    }

    .home-v251-people-list {
        grid-template-columns: 1fr 1fr;
        gap: 8px;
    }

    .home-v251-people-list > a {
        grid-template-columns: 42px minmax(0, 1fr);
        padding: 8px;
    }

    .home-v251-person-avatar,
    .home-v251-person-avatar img {
        width: 40px;
        height: 40px;
    }
}

@media (max-width: 370px) {
    .home-v251-people-list {
        grid-template-columns: 1fr;
    }
}

/* =========================================================
   CycloDort V2.52 - Hero avec aperçu réel de la carte
   ========================================================= */

.home-v251-hero-photo {
    position: relative;
    min-height: 290px;
    overflow: hidden;
    background: #edf3ea;
}

.home-v251-hero-photo::before {
    content: "";
    position: absolute;
    z-index: 2;
    inset: 0 auto 0 0;
    width: 76px;
    pointer-events: none;
    background: linear-gradient(90deg, #f3f7f1 0%, rgba(243,247,241,.78) 36%, rgba(243,247,241,0) 100%);
}

.home-v251-hero-photo img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    object-position: center center;
}

@media (max-width: 640px) {
    .home-v251-hero-photo {
        min-height: 190px;
    }

    .home-v251-hero-photo::before {
        inset: 0;
        width: auto;
        height: 48px;
        background: linear-gradient(180deg, #f3f7f1 0%, rgba(243,247,241,.65) 38%, rgba(243,247,241,0) 100%);
    }

    .home-v251-hero-photo img {
        object-position: center 43%;
    }
}

/* =========================================================
   CycloDort V2.61 - Appel au don sur l'accueil
   ========================================================= */

.home-v261-donation {
    position: relative;
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr);
    gap: 16px;
    margin: 2px 0 34px;
    padding: 24px 0 25px;
    border-top: 1px solid var(--cd-line);
    border-bottom: 1px solid var(--cd-line);
}

.home-v261-donation::before {
    content: "";
    position: absolute;
    top: -1px;
    left: 0;
    width: 82px;
    height: 3px;
    background: #e6a23c;
}

.home-v261-donation-icon {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding-top: 4px;
}

.home-v261-donation-icon img {
    display: block;
    width: auto;
    height: 47px;
}

.home-v261-donation-copy h2 {
    margin: 0 0 9px;
    font-size: 21px;
    line-height: 1.25;
}

.home-v261-donation-copy > p:not(.section-kicker) {
    max-width: 650px;
    margin: 0 0 9px;
    color: var(--cd-muted);
    font-size: 13px;
    line-height: 1.55;
}

.home-v261-donation-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px 14px;
    margin-top: 15px;
}

.home-v261-donation-actions a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-height: 42px;
    padding: 9px 14px;
    border-radius: 4px;
    background: var(--cd-green-dark);
    color: #fff;
    font-size: 13px;
    font-weight: 700;
}

.home-v261-donation-actions span {
    color: var(--cd-green-dark);
    font-size: 12px;
    font-weight: 700;
}

.home-v261-donation-copy > small {
    display: block;
    margin-top: 12px;
    color: var(--cd-muted);
    font-size: 10px;
}

@media (max-width: 430px) {
    .home-v261-donation {
        grid-template-columns: 42px minmax(0, 1fr);
        gap: 11px;
        margin-bottom: 29px;
        padding-top: 21px;
        padding-bottom: 22px;
    }

    .home-v261-donation-icon img {
        height: 38px;
    }

    .home-v261-donation-copy h2 {
        font-size: 18px;
    }

    .home-v261-donation-copy > p:not(.section-kicker) {
        font-size: 12px;
    }

    .home-v261-donation-actions {
        display: block;
    }

    .home-v261-donation-actions a {
        width: 100%;
    }

    .home-v261-donation-actions span {
        display: block;
        margin-top: 8px;
    }
}


/* ========================================================================== */
/* Mon Madere V2 - surcharge visuelle                                         */
/* Conserve volontairement la typographie CycloDort : Arial + Georgia.       */
/* ========================================================================== */
:root {
    --cd-green: #5d821c;
    --cd-green-dark: #365d18;
    --cd-green-pale: #eef4e3;
    --cd-orange: #d99032;
    --md-green: #5d821c;
    --md-green-dark: #365d18;
    --md-green-soft: #eef4e3;
    --md-stone: #f4f3ee;
    --md-ink: #263126;
}
body.app-v2 { background:#f6f7f3; color:var(--md-ink); }
.md-brand-mark { width:34px; height:34px; display:grid; place-items:center; border-radius:50%; background:var(--md-green); color:#fff; font-size:18px; }
.app-desktop-nav { display:none; }
.md-home,.md-simple-page,.md-explorer { max-width:1180px; margin:0 auto; padding:20px 16px 100px; }
.md-home-hero { padding:28px 22px; border-radius:20px; background:linear-gradient(135deg,#365d18,#668d29); color:#fff; box-shadow:0 15px 35px rgba(54,93,24,.15); }
.md-home-hero .section-kicker { color:#dcebc5; }
.md-home-hero h1,.md-simple-page h1,.md-explorer h1 { font-family:Georgia,"Times New Roman",serif; }
.md-home-hero h1 { margin:4px 0 10px; font-size:34px; }
.md-home-hero p { max-width:680px; line-height:1.6; }
.md-home-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:20px; }
.md-home-grid { display:grid; gap:12px; margin-top:16px; }
.md-dashboard-card { display:grid; grid-template-columns:auto 1fr auto; gap:13px; align-items:center; padding:17px; background:#fff; border:1px solid #e1e5dc; border-radius:16px; text-decoration:none; color:inherit; box-shadow:0 5px 18px rgba(30,50,25,.04); }
.md-dashboard-card:hover { border-color:#bdd09e; transform:translateY(-1px); }
.md-card-icon { width:44px; height:44px; display:grid; place-items:center; border-radius:13px; background:var(--md-green-soft); color:var(--md-green-dark); font-size:20px; flex:0 0 auto; }
.md-dashboard-card small { display:block; color:#7b8576; font-size:10px; letter-spacing:.09em; font-weight:700; }
.md-dashboard-card strong { display:block; margin:2px 0 3px; font-size:16px; }
.md-dashboard-card p { margin:0; color:#667064; font-size:13px; line-height:1.4; }
.md-bottom-nav { position:fixed; z-index:900; left:0; right:0; bottom:0; display:grid; grid-template-columns:repeat(5,1fr); height:66px; background:#fff; border-top:1px solid #dfe4da; padding-bottom:env(safe-area-inset-bottom); box-shadow:0 -5px 20px rgba(0,0,0,.06); }
.md-bottom-nav a,.md-bottom-nav button { appearance:none; border:0; background:none; color:#6d756a; display:flex; flex-direction:column; gap:3px; align-items:center; justify-content:center; font:inherit; font-size:10px; text-decoration:none; }
.md-bottom-nav i { font-size:19px; }
.md-bottom-nav .is-active { color:var(--md-green-dark); font-weight:700; }
.md-bottom-main i { width:39px; height:39px; margin-top:-20px; display:grid; place-items:center; border-radius:50%; background:var(--md-green); color:#fff; box-shadow:0 5px 14px rgba(54,93,24,.28); }
.md-explorer-head { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; }
.md-explorer-head h1 { margin:2px 0 6px; font-size:30px; }
.md-explorer-head p { margin:0; max-width:650px; color:#616b5e; }
.md-explorer-count { min-width:66px; text-align:center; padding:9px 10px; border-radius:13px; background:var(--md-green-soft); color:var(--md-green-dark); }
.md-explorer-count strong { display:block; font-family:Georgia,"Times New Roman",serif; font-size:25px; line-height:1; }
.md-explorer-count span { font-size:10px; text-transform:uppercase; letter-spacing:.07em; }
.md-explorer-toolbar { display:grid; grid-template-columns:1fr auto auto; gap:8px; margin:17px 0 10px; }
.md-search { min-width:0; display:flex; align-items:center; gap:8px; padding:0 12px; border:1px solid #d9dfd3; background:#fff; border-radius:12px; }
.md-search input { width:100%; border:0; outline:0; padding:12px 0; background:transparent; }
.md-filter-toggle,.md-geolocate { border:1px solid #d9dfd3; background:#fff; border-radius:12px; padding:0 13px; color:#42513e; cursor:pointer; }
.md-filter-chips { display:flex; gap:7px; padding:2px 0 12px; overflow-x:auto; scrollbar-width:none; }
.md-filter-chips::-webkit-scrollbar { display:none; }
.md-filter-chips button { flex:0 0 auto; border:1px solid #d7ddd0; background:#fff; color:#475244; border-radius:999px; padding:8px 12px; font:inherit; font-size:12px; cursor:pointer; }
.md-filter-chips button.is-active { border-color:var(--md-green); background:var(--md-green); color:#fff; }
.md-map-shell { position:relative; overflow:hidden; border:1px solid #dce2d6; border-radius:18px; background:#e7ebdf; box-shadow:0 8px 28px rgba(40,60,30,.07); }
.md-map { height:min(67vh,690px); min-height:480px; }
.md-map-recenter { position:absolute; z-index:500; top:12px; right:12px; width:40px; height:40px; border:0; border-radius:11px; background:#fff; box-shadow:0 3px 12px rgba(0,0,0,.16); color:#33412f; cursor:pointer; }
.md-explorer-foot { display:flex; justify-content:space-between; gap:12px; color:#697266; font-size:12px; padding:10px 4px; }
.md-explorer-foot strong { color:#354334; }
.md-leaflet-marker-wrap { background:transparent!important; border:0!important; }
.md-leaflet-marker { width:36px; height:36px; display:grid; place-items:center; border-radius:50% 50% 50% 8px; transform:rotate(-45deg); background:#4f761e; color:#fff; border:2px solid #fff; box-shadow:0 3px 8px rgba(0,0,0,.3); }
.md-leaflet-marker i { transform:rotate(45deg); font-size:16px; }
.md-sheet-backdrop { position:fixed; z-index:1050; inset:0; background:rgba(20,30,18,.35); }
.md-activity-sheet { position:fixed; z-index:1060; left:0; right:0; bottom:0; max-height:78vh; overflow:auto; padding:26px 20px calc(22px + env(safe-area-inset-bottom)); background:#fff; border-radius:22px 22px 0 0; box-shadow:0 -12px 36px rgba(0,0,0,.17); }
.md-sheet-close { position:absolute; top:14px; right:14px; width:36px; height:36px; border:0; border-radius:50%; background:#f2f3ef; cursor:pointer; }
.md-sheet-icon { width:48px; height:48px; display:grid; place-items:center; border-radius:14px; background:var(--md-green-soft); color:var(--md-green-dark); font-size:22px; }
.md-sheet-themes { display:flex; flex-wrap:wrap; gap:5px; margin:14px 0 4px; }
.md-sheet-themes span { padding:5px 8px; border-radius:999px; background:#f1f3ee; color:#64705f; font-size:10px; text-transform:uppercase; letter-spacing:.04em; }
.md-activity-sheet h2 { margin:7px 48px 5px 0; font-family:Georgia,"Times New Roman",serif; font-size:27px; }
.md-sheet-meta { margin:0 0 12px; color:var(--md-green-dark); font-weight:700; }
.md-sheet-summary { color:#5a6457; line-height:1.55; }
.md-sheet-actions { display:flex; flex-wrap:wrap; gap:8px; margin:18px 0; }
.md-sheet-actions .btn { flex:1 1 180px; }
.md-sheet-download { display:flex; gap:12px; padding:13px; background:#f3f6ed; border-radius:12px; color:#41523b; }
.md-sheet-download i { font-size:21px; color:var(--md-green); }
.md-sheet-download strong,.md-sheet-download span { display:block; }
.md-sheet-download span { color:#697365; font-size:12px; margin-top:2px; }
.md-public-link { display:inline-flex; gap:6px; margin-top:14px; color:var(--md-green-dark); font-weight:700; text-decoration:none; }
.md-simple-page h1 { margin:3px 0 7px; font-size:30px; }
.md-page-intro { color:#667064; max-width:720px; }
.md-empty { margin-top:20px; text-align:center; padding:42px 20px; background:#fff; border:1px dashed #ccd5c4; border-radius:16px; }
.md-empty i { display:block; margin-bottom:8px; font-size:32px; color:#7a9c48; }
.md-empty h2 { font-family:Georgia,"Times New Roman",serif; }
.md-empty.compact { padding:22px; }
.md-activity-list { display:grid; gap:9px; margin-top:20px; }
.md-activity-row { display:grid; grid-template-columns:auto 1fr auto; gap:12px; align-items:center; padding:14px; background:#fff; border:1px solid #e1e5dd; border-radius:14px; }
.md-activity-row p { margin:3px 0 0; color:#697267; font-size:12px; line-height:1.4; }
.md-activity-row a { color:var(--md-green-dark); font-size:20px; padding:8px; }
.md-trip-grid { display:grid; gap:18px; margin-top:22px; }
.md-trip-create,.md-trip-list { padding:18px; background:#fff; border:1px solid #e1e5dd; border-radius:16px; }
.md-trip-create h2,.md-trip-list h2 { margin-top:0; font-family:Georgia,"Times New Roman",serif; }
.md-trip-create label { display:block; margin:10px 0; font-weight:700; font-size:12px; }
.md-trip-create label small { font-weight:400; color:#7a8377; }
.md-trip-create input { width:100%; box-sizing:border-box; margin-top:5px; padding:11px; border:1px solid #d7ddd2; border-radius:10px; font:inherit; }
.md-form-two { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.md-trip-list article { display:grid; grid-template-columns:auto 1fr auto; gap:10px; align-items:center; padding:12px 0; border-bottom:1px solid #edf0e9; }
.md-trip-list article:last-child { border-bottom:0; }
.md-trip-list article>span { width:36px; height:36px; display:grid; place-items:center; border-radius:10px; background:var(--md-green-soft); color:var(--md-green-dark); }
.md-trip-list p { margin:3px 0 0; color:#70786d; font-size:12px; }
.md-profile-card { display:flex; gap:13px; padding:17px; margin-top:20px; background:#fff; border:1px solid #e1e5dd; border-radius:16px; }
.md-profile-card p { margin:5px 0 0; color:#687165; line-height:1.5; }
@media (max-width:680px) {
    .md-explorer-toolbar { grid-template-columns:1fr auto; }
    .md-geolocate { grid-column:1 / -1; min-height:40px; }
    .md-geolocate span,.md-filter-toggle span { display:none; }

    /* Sur mobile, les filtres rapides doivent tous rester visibles. */
    .md-filter-chips {
        flex-wrap:wrap;
        overflow-x:visible;
        gap:6px;
        padding-bottom:12px;
    }
    .md-filter-chips button {
        padding:7px 10px;
        font-size:11px;
    }

    .md-map { min-height:58vh; }
    .md-explorer-foot span { display:none; }
}

/* --- Mon voyage a Madere : passe carte V2 --- */
.login-form input::placeholder {
    font-size:12px;
    color:#9aa197;
}

.md-search-area {
    position:absolute;
    z-index:510;
    top:12px;
    left:50%;
    transform:translateX(-50%);
    border:1px solid #d9dfd3;
    background:#fff;
    color:#354334;
    border-radius:999px;
    padding:9px 13px;
    font:inherit;
    font-size:12px;
    font-weight:700;
    box-shadow:0 4px 15px rgba(0,0,0,.16);
    cursor:pointer;
    white-space:nowrap;
}

.md-search-area i { margin-right:5px; }

.md-filter-backdrop {
    position:fixed;
    z-index:1070;
    inset:0;
    background:rgba(20,30,18,.35);
}

.md-filter-panel {
    position:fixed;
    z-index:1080;
    left:0;
    right:0;
    bottom:0;
    max-height:82vh;
    overflow:auto;
    padding:22px 18px calc(20px + env(safe-area-inset-bottom));
    background:#fff;
    border-radius:22px 22px 0 0;
    box-shadow:0 -12px 36px rgba(0,0,0,.18);
}

.md-filter-panel-head {
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:18px;
    padding-bottom:12px;
    border-bottom:1px solid #edf0e9;
}

.md-filter-panel-head h2 {
    margin:2px 0 0;
    font-family:Georgia,"Times New Roman",serif;
    font-size:25px;
}

.md-filter-close {
    width:36px;
    height:36px;
    border:0;
    border-radius:50%;
    background:#f2f3ef;
    color:#445040;
    cursor:pointer;
}

.md-filter-section {
    padding:17px 0;
    border-bottom:1px solid #edf0e9;
}

.md-filter-section h3 {
    margin:0 0 11px;
    font-size:14px;
}

.md-filter-section > label:not(.md-check-row) {
    display:block;
    margin-bottom:7px;
    color:#616b5e;
    font-size:12px;
    font-weight:700;
}

.md-filter-section select {
    width:100%;
    padding:10px 11px;
    border:1px solid #d7ddd2;
    border-radius:10px;
    background:#fff;
    font:inherit;
}

.md-check-row {
    display:flex;
    align-items:center;
    gap:9px;
    padding:8px 0;
    cursor:pointer;
}

.md-check-row input {
    width:17px;
    height:17px;
    accent-color:var(--md-green);
}

.md-check-row span {
    display:flex;
    align-items:center;
    gap:8px;
    color:#465143;
    font-size:13px;
}

.md-filter-help {
    margin:8px 0 0;
    color:#7b8478;
    font-size:11px;
    line-height:1.45;
}

.md-filter-actions {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
    padding-top:17px;
}

.md-sheet-topline {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding-right:44px;
}

.md-sheet-rating {
    display:inline-flex;
    align-items:center;
    gap:4px;
    padding:6px 9px;
    border-radius:999px;
    background:#f7f4e7;
    color:#735f22;
    font-size:12px;
    font-weight:700;
}

.md-sheet-rating i { font-size:12px; }

.md-sheet-summary {
    margin-top:12px;
    padding-top:12px;
    border-top:1px solid #edf0e9;
}

/* Familles de POI : la couleur aide a lire la carte sans la transformer en sapin de Noel. */
.md-marker-hike { background:#537c24; }
.md-marker-water { background:#377d8c; }
.md-marker-cablecar { background:#8b633f; }
.md-marker-viewpoint { background:#806c2d; }
.md-marker-museum { background:#6c5f7d; }
.md-marker-place { background:#596f49; }
.md-marker-nature { background:#3e7447; }
.md-marker-default { background:#4f761e; }

.md-sheet-icon.md-kind-hike { color:#537c24; }
.md-sheet-icon.md-kind-water { color:#377d8c; }
.md-sheet-icon.md-kind-cablecar { color:#8b633f; }
.md-sheet-icon.md-kind-viewpoint { color:#806c2d; }
.md-sheet-icon.md-kind-museum { color:#6c5f7d; }

.leaflet-control-scale-line {
    background:rgba(255,255,255,.86);
    border-color:#52604f;
    color:#354334;
    font-size:10px;
}

@media (max-width:680px) {
    .md-search-area {
        top:10px;
        max-width:calc(100% - 110px);
        overflow:hidden;
        text-overflow:ellipsis;
    }

    .md-map-recenter {
        top:10px;
        right:10px;
    }
}

@media (min-width:980px) {
    .md-filter-panel {
        left:auto;
        top:76px;
        right:20px;
        bottom:20px;
        width:370px;
        max-height:none;
        border-radius:18px;
        padding:24px;
    }
}

/* Connexion Google */
.google-auth-btn {
    width: 100%;
    min-height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    box-sizing: border-box;
    margin: 0 0 8px;
    padding: 12px 18px;
    border: 1px solid #d7ddd2;
    border-radius: 12px;
    background: #fff;
    color: #24311f;
    text-decoration: none;
    font-weight: 700;
    line-height: 1.2;
    box-shadow: 0 2px 8px rgba(34, 55, 25, .06);
}

.google-auth-btn:hover,
.google-auth-btn:focus-visible {
    border-color: #aebca7;
    background: #f8faf7;
    color: #1f2d1b;
}

.google-auth-btn .bi-google {
    font-size: 1.15rem;
}

.google-auth-terms {
    margin: 4px 0 14px;
    color: #66705f;
    font-size: .82rem;
    line-height: 1.45;
    text-align: center;
}

.google-auth-terms a {
    color: inherit;
    text-decoration: underline;
}

.auth-divider {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 16px 0;
    color: #7b8376;
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.auth-divider::before,
.auth-divider::after {
    content: '';
    height: 1px;
    flex: 1;
    background: #e1e6dd;
}

.auth-divider span {
    white-space: nowrap;
}

/* --- Carte V2.6 : familles de POI colorees --- */
.md-leaflet-marker,
.md-sheet-icon {
    transition: background-color .15s ease, color .15s ease, transform .15s ease;
}

/* Randonnees / levadas */
.md-marker-hike,
.md-kind-hike { background:#397447; color:#fff; }

/* Piscines naturelles */
.md-marker-pool,
.md-kind-pool { background:#287f9b; color:#fff; }

/* Plages */
.md-marker-beach,
.md-kind-beach { background:#2c9a91; color:#fff; }

/* Telepheriques */
.md-marker-cablecar,
.md-kind-cablecar { background:#d37831; color:#fff; }

/* Miradors / panoramas */
.md-marker-viewpoint,
.md-kind-viewpoint { background:#6557a6; color:#fff; }

/* Musees / culture */
.md-marker-museum,
.md-kind-museum { background:#9a4f55; color:#fff; }

/* Villages : ton terre / rural */
.md-marker-village,
.md-kind-village { background:#a56b42; color:#fff; }

/* Funchal / villes */
.md-marker-city,
.md-kind-city { background:#526979; color:#fff; }

/* Jardins / laurissilva */
.md-marker-nature,
.md-kind-nature { background:#6f963f; color:#fff; }

/* Montagne */
.md-marker-mountain,
.md-kind-mountain { background:#76675a; color:#fff; }

/* POI non classes : volontairement neutres */
.md-marker-default,
.md-kind-default { background:#69736a; color:#fff; }

/* Les icones de la fiche reprennent la couleur du repere, mais en restant lisibles. */
.md-sheet-icon { box-shadow:inset 0 0 0 1px rgba(255,255,255,.22); }

/* --- Carte V2.7 : palette plus vive / clusters renforces --- */
.md-marker-hike,
.md-kind-hike { background:#2f9b55; color:#fff; }

.md-marker-pool,
.md-kind-pool { background:#148fc4; color:#fff; }

.md-marker-beach,
.md-kind-beach { background:#16a6a0; color:#fff; }

.md-marker-cablecar,
.md-kind-cablecar { background:#ef7d22; color:#fff; }

.md-marker-viewpoint,
.md-kind-viewpoint { background:#7657d6; color:#fff; }

.md-marker-museum,
.md-kind-museum { background:#c24e5e; color:#fff; }

.md-marker-village,
.md-kind-village { background:#cf6d3d; color:#fff; }

.md-marker-city,
.md-kind-city { background:#466a86; color:#fff; }

.md-marker-nature,
.md-kind-nature { background:#78ad35; color:#fff; }

.md-marker-mountain,
.md-kind-mountain { background:#7f6654; color:#fff; }

.md-marker-default,
.md-kind-default { background:#5f6f66; color:#fff; }

.md-leaflet-marker {
    border-width:2px;
    box-shadow:0 3px 9px rgba(20,35,24,.34);
}

.marker-cluster-small,
.marker-cluster-medium,
.marker-cluster-large {
    background:rgba(247,181,36,.32) !important;
}
.marker-cluster-small div,
.marker-cluster-medium div,
.marker-cluster-large div {
    background:#f4b51f !important;
    color:#463500 !important;
    font-weight:800 !important;
    box-shadow:0 2px 8px rgba(85,62,0,.22);
}


/* --- Carte V2.8 : POI specifiques Madere --- */
/* Cascades : meme famille bleue que les piscines naturelles */
.md-marker-waterfall,
.md-kind-waterfall { background:#148fc4; color:#fff; }

/* Tunnels : contraste franc, distinct d'un POI generique */
.md-marker-tunnel,
.md-kind-tunnel { background:#343f4a; color:#fff; }

/* Restaurants / bars : reperes chauds et immediatement identifiables */
.md-marker-restaurant,
.md-kind-restaurant { background:#e95f35; color:#fff; }
.md-marker-bar,
.md-kind-bar { background:#d99a18; color:#fff; }

/* Miradouros : violet panoramique, y compris quand le theme historique manque */
.md-marker-viewpoint,
.md-kind-viewpoint { background:#7047d8; color:#fff; }


/* --- Carte V2.9 : randonnees PR --- */
/* Les PR restent dans la famille randonnee, avec un vert legerement distinct. */
.md-marker-hike-pr,
.md-kind-hike-pr { background:#218a4c; color:#fff; }

/* --- Carte Madere : nouveaux themes principaux --- */
.md-marker-forest,
.md-kind-forest {
    background: #267a45 !important;
}

.md-marker-monument,
.md-kind-monument {
    background: #8a5a3b !important;
}

.md-marker-lighthouse,
.md-kind-lighthouse {
    background: #315f91 !important;
}


/* --- Carte : avis guide + futurs avis utilisateurs --- */
.md-sheet-topline {
    align-items:flex-start;
}

.md-sheet-ratings {
    min-width:190px;
    display:grid;
    gap:5px;
}

.md-rating-row {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    min-height:28px;
    padding:4px 0;
    font-size:12px;
}

.md-rating-row + .md-rating-row {
    border-top:1px solid #ecefe9;
}

.md-rating-label {
    color:#566052;
    font-weight:700;
}

.md-rating-value {
    display:inline-flex;
    align-items:center;
    gap:4px;
    color:#343934;
    font-weight:800;
    white-space:nowrap;
}

.md-rating-value i {
    color:#f4b400;
    font-size:14px;
}

.md-rating-empty {
    color:#8a9188;
    font-size:11px;
    white-space:nowrap;
}

/* L'ancien lien vers la fiche publique n'est plus utilise dans l'app. */
.md-public-link { display:none !important; }

@media (max-width:560px) {
    .md-sheet-ratings { min-width:170px; }
    .md-rating-row { gap:8px; font-size:11px; }
    .md-rating-empty { font-size:10px; }
}

/* Mon sejour V1 */
.md-stay-page{max-width:1120px;margin:0 auto;padding:28px 18px 60px}.md-stay-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:24px}.md-stay-head h1{margin:2px 0 6px}.md-stay-head p{margin:0;color:#687064}.md-stay-switcher{display:flex;gap:9px;overflow:auto;padding:2px 0 14px}.md-stay-switcher a{min-width:190px;padding:11px 13px;border:1px solid #dde3d8;border-radius:13px;background:#fff;text-decoration:none;color:#475044}.md-stay-switcher a strong,.md-stay-switcher a span{display:block}.md-stay-switcher a span{font-size:12px;margin-top:3px;color:#788174}.md-stay-switcher a.is-active{border-color:var(--md-green);box-shadow:0 0 0 2px rgba(93,130,28,.10)}.md-stay-summary{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:20px;background:#fff;border:1px solid #e0e5dc;border-radius:18px;margin-bottom:18px}.md-stay-summary h2{margin:8px 0 4px}.md-stay-summary p{margin:4px 0;color:#5f695d}.md-stay-badge{display:inline-flex;gap:6px;align-items:center;padding:6px 9px;background:#eef4e7;border-radius:999px;color:var(--md-green-dark);font-weight:700;font-size:12px}.md-stay-lodging i{margin-right:5px}.md-stay-days{display:grid;gap:12px}.md-stay-day{background:#fff;border:1px solid #e0e5dc;border-radius:16px;padding:15px}.md-stay-day-head{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:13px}.md-stay-day-number{width:44px;height:44px;border-radius:13px;background:#edf4e5;color:var(--md-green-dark);display:grid;place-items:center;font-weight:800}.md-stay-day h3{margin:0 0 3px;font-size:17px}.md-stay-day-head span{font-size:12px;color:#7a8377}.md-stay-add{display:inline-flex;gap:5px;align-items:center;color:var(--md-green-dark);font-weight:700;text-decoration:none;font-size:13px}.md-stay-day-empty{margin-top:12px;padding:13px;border-radius:12px;background:#f8faf6;color:#7b8477;display:flex;gap:8px;align-items:center;font-size:13px}.md-stay-day-items{display:grid;gap:7px;margin-top:12px}.md-stay-day-items>div{display:flex;gap:8px;align-items:center;padding:10px 11px;background:#f7f9f5;border-radius:10px}.md-stay-empty{text-align:center;padding:52px 22px;background:#fff;border:1px dashed #cdd7c6;border-radius:18px}.md-stay-empty>i{font-size:36px;color:var(--md-green)}.md-stay-empty h2{margin:10px 0 6px}.md-stay-empty p{max-width:520px;margin:0 auto 18px;color:#6c7569}.md-stay-modal-backdrop{position:fixed;inset:0;background:rgba(21,29,20,.42);z-index:1200}.md-stay-modal{position:fixed;z-index:1201;left:50%;top:50%;transform:translate(-50%,-50%);width:min(92vw,620px);max-height:88vh;overflow:auto;background:#fff;border-radius:18px;box-shadow:0 24px 70px rgba(0,0,0,.24)}.md-stay-modal-head{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid #edf0e9}.md-stay-modal-head h2{margin:0}.md-stay-modal-head button{border:0;background:transparent;font-size:20px;cursor:pointer}.md-stay-form{padding:20px}.md-stay-form label{display:block;font-weight:700;font-size:13px;margin-bottom:13px}.md-stay-form label small{font-weight:400;color:#7e867a}.md-stay-form input,.md-stay-form textarea{width:100%;box-sizing:border-box;margin-top:5px;padding:11px 12px;border:1px solid #d6ddd1;border-radius:10px;font:inherit;background:#fff}.md-stay-form textarea{resize:vertical}.md-stay-form-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}.md-stay-delete{margin-right:auto}.md-modal-open{overflow:hidden}@media(max-width:700px){.md-stay-head{display:block}.md-stay-head .btn{margin-top:14px}.md-stay-summary{align-items:flex-start}.md-stay-day-head{grid-template-columns:auto 1fr}.md-stay-add{grid-column:2}.md-form-two{grid-template-columns:1fr}.md-stay-form-actions{flex-wrap:wrap}.md-stay-delete{width:100%;margin-right:0;order:2}}


/* Explorer -> ajout direct au planning du séjour */
.md-stay-context {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    margin:0 0 14px;
    padding:11px 14px;
    border:1px solid #dce6d2;
    border-radius:12px;
    background:#f4f8ef;
    color:#405239;
    font-size:13px;
}
.md-stay-context > div { display:flex; align-items:center; gap:8px; }
.md-stay-context i { color:var(--md-green); font-size:17px; }
.md-stay-context a { color:var(--md-green-dark); font-weight:700; text-decoration:none; white-space:nowrap; }
.md-stay-picker { flex:1 1 100%; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; }
.md-stay-picker select { width:100%; min-width:0; padding:10px 11px; border:1px solid #d7ddd2; border-radius:10px; background:#fff; font:inherit; color:#344133; }
.md-sheet-actions .btn.is-added { background:#edf6e9; border-color:#b8d6aa; color:#37622b; }
@media (max-width:640px) {
    .md-stay-context { align-items:flex-start; flex-direction:column; }
    .md-stay-picker { grid-template-columns:1fr; }
}


/* Sejour V3 : calendrier + moments de la journee */
.md-stay-days{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.md-stay-day{margin:0}
.md-stay-day-head{grid-template-columns:auto 1fr;padding-bottom:10px}
.md-stay-periods{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:8px}
.md-stay-period{display:block;min-height:72px;padding:10px 12px;border:1px solid #e3e8dd;border-radius:12px;background:#f8faf5;color:inherit;text-decoration:none}
.md-stay-period:hover{border-color:#aec590;background:#f4f8ee}
.md-stay-period-label{display:block;margin-bottom:6px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:#67745e}
.md-stay-period-empty{display:flex;align-items:center;gap:5px;font-size:12px;color:#75806e}
.md-stay-period-item{display:flex;align-items:flex-start;gap:6px;font-size:13px;font-weight:700;line-height:1.3;margin-top:4px}
.md-stay-period-item i{color:var(--md-green)}
.md-stay-period.has-items{background:#fff}

.md-stay-picker{flex:1 1 100%;padding:12px;border:1px solid #dfe6d8;border-radius:12px;background:#f8faf5}
.md-stay-picker-title{font-size:12px;font-weight:800;margin-bottom:8px;color:#405537}
.md-stay-picker-fields{display:grid;grid-template-columns:2fr 1fr;gap:8px;margin-bottom:8px}
.md-stay-picker select{width:100%;padding:10px;border:1px solid #ccd7c2;border-radius:9px;background:#fff;font:inherit}
.md-stay-picker .btn{width:100%}
.md-stay-picker .btn.is-added{background:#eef6e8;color:#35611f;border-color:#b9d3a6}

@media (max-width:760px){
  .md-stay-days{grid-template-columns:1fr}
  .md-stay-periods{grid-template-columns:1fr 1fr}
  .md-stay-picker-fields{grid-template-columns:1fr}
}

/* Explorer V4 : ajout au sejour façon app, sans select natif */
.md-stay-planner{flex:1 1 100%;min-width:0}
.md-stay-planner>.md-planner-open{width:100%}
.md-planner-panel{padding:14px;border:1px solid #dce5d5;border-radius:16px;background:#f8faf6}
.md-planner-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:13px}
.md-planner-head strong,.md-planner-head span{display:block}
.md-planner-head strong{font-size:15px;color:#283726}
.md-planner-head span{margin-top:2px;font-size:12px;color:#748070}
.md-planner-close{display:grid;place-items:center;width:36px;height:36px;flex:0 0 36px;border:0;border-radius:50%;background:#fff;color:#53614f;font-size:15px;cursor:pointer}
.md-planner-stays{display:flex;gap:7px;overflow-x:auto;padding:1px 0 5px;scrollbar-width:none}
.md-planner-stays::-webkit-scrollbar,.md-planner-days::-webkit-scrollbar{display:none}
.md-planner-stay{flex:0 0 auto;padding:9px 12px;border:1px solid #d6dfcf;border-radius:999px;background:#fff;color:#53604f;font:inherit;font-size:12px;font-weight:700;cursor:pointer}
.md-planner-stay.is-active{border-color:var(--md-green);background:#edf5e6;color:var(--md-green-dark)}
.md-planner-stay-name{display:flex;align-items:center;gap:7px;margin-bottom:12px;padding:9px 11px;border-radius:10px;background:#fff;color:#41503d;font-size:13px;font-weight:700}
.md-planner-stay-name i{color:var(--md-green)}
.md-planner-label{margin:12px 0 7px;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#6e7969}
.md-planner-days{display:flex;gap:7px;overflow-x:auto;padding:1px 1px 4px;scrollbar-width:none}
.md-planner-day{min-width:64px;min-height:60px;flex:0 0 64px;display:grid;place-items:center;align-content:center;gap:2px;padding:7px;border:1px solid #dbe3d5;border-radius:13px;background:#fff;color:#52604e;font:inherit;cursor:pointer}
.md-planner-day strong{font-size:15px;line-height:1;color:#33442f}
.md-planner-day span{font-size:10px;white-space:nowrap;color:#778273}
.md-planner-day.is-active{border-color:var(--md-green);background:#edf5e6;box-shadow:inset 0 0 0 1px var(--md-green)}
.md-planner-day.is-active strong{color:var(--md-green-dark)}
.md-planner-periods{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
.md-planner-period{min-width:0;min-height:58px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:7px 4px;border:1px solid #dbe3d5;border-radius:13px;background:#fff;color:#5a6755;font:inherit;font-size:11px;font-weight:700;cursor:pointer}
.md-planner-period i{font-size:17px;color:#899581}
.md-planner-period.is-active{border-color:var(--md-green);background:#edf5e6;color:var(--md-green-dark);box-shadow:inset 0 0 0 1px var(--md-green)}
.md-planner-period.is-active i{color:var(--md-green)}
.md-planner-confirm{width:100%;margin-top:12px;min-height:46px}
.md-planner-confirm.is-added{background:#edf6e9!important;border-color:#b8d6aa!important;color:#37622b!important}
@media(max-width:420px){
  .md-planner-periods{grid-template-columns:repeat(2,minmax(0,1fr))}
  .md-planner-period{min-height:52px;flex-direction:row;gap:7px}
}


/* Planner V4 : rails horizontaux jours + moments */
.md-planner-days,
.md-planner-periods {
  display:flex;
  gap:7px;
  overflow-x:auto;
  overflow-y:hidden;
  padding:1px 1px 6px;
  scrollbar-width:none;
  -webkit-overflow-scrolling:touch;
  scroll-snap-type:x proximity;
  cursor:grab;
  user-select:none;
  overscroll-behavior-x:contain;
}
.md-planner-days::-webkit-scrollbar,
.md-planner-periods::-webkit-scrollbar { display:none; }
.md-planner-days.is-dragging,
.md-planner-periods.is-dragging { cursor:grabbing; scroll-snap-type:none; }
.md-planner-day { scroll-snap-align:start; }
.md-planner-period {
  flex:0 0 72px;
  min-width:72px;
  min-height:60px;
  scroll-snap-align:start;
}
@media(max-width:420px){
  .md-planner-periods{display:flex;grid-template-columns:none}
  .md-planner-period{min-height:58px;flex:0 0 72px;flex-direction:column;gap:4px}
}

/* Sejour V4 : etapes d'hebergement */
.md-lodging-section{margin:18px 0 20px;padding:16px;border:1px solid #e1e7dc;border-radius:18px;background:#fbfcf9}
.md-lodging-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:12px}
.md-lodging-head h2{margin:2px 0 4px;font-size:21px}
.md-lodging-head p{margin:0;color:#748070;font-size:13px}
.md-lodging-list{display:grid;gap:10px}
.md-lodging-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px;border:1px solid #dfe6d9;border-radius:14px;background:#fff}
.md-lodging-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:#edf5e6;color:var(--md-green-dark);font-size:18px}
.md-lodging-card-main{min-width:0}
.md-lodging-card-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.md-lodging-card-title strong{font-size:15px;color:#2f3f2c}
.md-lodging-card-title span{padding:4px 7px;border-radius:999px;background:#f0f4ec;color:#687464;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.03em}
.md-lodging-card-main p{margin:3px 0 0;color:#667161;font-size:12px}
.md-lodging-card-main small{display:block;margin-top:3px;color:#8a9485;font-size:11px}
.md-lodging-actions{display:flex;align-items:center;gap:5px}
.md-lodging-actions form{margin:0}
.md-icon-button{display:grid;place-items:center;width:38px;height:38px;border:1px solid #dbe3d5;border-radius:10px;background:#fff;color:#55614f;cursor:pointer}
.md-icon-button.is-danger{color:#a45151}
.md-lodging-empty{width:100%;display:flex;align-items:center;gap:12px;padding:14px;border:1px dashed #c8d5be;border-radius:14px;background:#fff;color:#44513f;text-align:left;cursor:pointer}
.md-lodging-empty>i{font-size:22px;color:var(--md-green)}
.md-lodging-empty span,.md-lodging-empty strong,.md-lodging-empty small{display:block}
.md-lodging-empty small{margin-top:2px;color:#899383}
.md-lodging-modal .md-stay-modal-head{align-items:flex-start}
.md-lodging-date-block{margin-top:2px}
.md-lodging-days{display:flex;gap:7px;overflow-x:auto;padding:2px 1px 5px;scrollbar-width:none;scroll-snap-type:x proximity}
.md-lodging-days::-webkit-scrollbar{display:none}
.md-lodging-days .md-planner-day{scroll-snap-align:start}
.md-lodging-duration{display:flex;align-items:center;justify-content:center;gap:7px;margin:4px 0 2px;padding:10px 12px;border-radius:11px;background:#f1f6ed;color:#45603a;font-size:13px;font-weight:800}
.md-lodging-duration i{color:var(--md-green)}
@media(max-width:640px){
  .md-lodging-head{align-items:stretch;flex-direction:column}
  .md-lodging-head .btn{width:100%}
  .md-lodging-card{grid-template-columns:auto minmax(0,1fr)}
  .md-lodging-actions{grid-column:1/-1;justify-content:flex-end}
}

/* Sejour V5 : vols, deplacements et horaires */
.md-travel-section{margin:18px 0;padding:16px;border:1px solid #e0e7da;border-radius:18px;background:#fbfcf9}
.md-travel-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
.md-travel-card{padding:12px;border:1px solid #e2e8dd;border-radius:15px;background:#fff}
.md-travel-card-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px}
.md-travel-card-head strong,.md-travel-card-head small{display:block}.md-travel-card-head strong{font-size:14px;color:#2f3f2c}.md-travel-card-head small{margin-top:2px;font-size:11px;color:#7a8575}
.md-travel-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:#eef5e9;color:var(--md-green);font-size:18px}
.md-travel-list{display:grid;gap:7px;margin-top:10px}.md-travel-line{display:flex;align-items:center;gap:8px;padding:8px;border-radius:11px;background:#f8faf6;min-width:0}.md-travel-line-main{min-width:0;flex:1}.md-travel-line-main strong,.md-travel-line-main span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.md-travel-line-main strong{font-size:12px;color:#344231}.md-travel-line-main span{margin-top:2px;font-size:10px;color:#7a8575}
.md-travel-tag{flex:0 0 auto;padding:4px 6px;border-radius:999px;background:#edf5e6;color:#4f6d3c;font-size:9px;font-weight:800;text-transform:uppercase}.md-travel-mode{display:grid;place-items:center;width:28px;height:28px;flex:0 0 28px;border-radius:8px;background:#fff;color:#61705b}.md-travel-empty{width:100%;margin-top:10px;padding:11px;border:1px dashed #cbd7c2;border-radius:11px;background:#fbfcf9;color:#51604c;font:inherit;font-size:12px;font-weight:700;cursor:pointer}.md-travel-empty i{margin-right:5px;color:var(--md-green)}.md-travel-more{display:block;margin-top:7px;color:#7c8877}.md-mini-form{margin:0}
.md-choice-row{display:flex;gap:7px;overflow-x:auto;padding:1px 0 4px;scrollbar-width:none}.md-choice-row::-webkit-scrollbar{display:none}.md-choice-row button{flex:0 0 auto;min-height:42px;padding:8px 12px;border:1px solid #dbe3d5;border-radius:12px;background:#fff;color:#596654;font:inherit;font-size:12px;font-weight:700;cursor:pointer}.md-choice-row button i{margin-right:5px}.md-choice-row button.is-active{border-color:var(--md-green);background:#edf5e6;color:var(--md-green-dark);box-shadow:inset 0 0 0 1px var(--md-green)}
.md-mode-row{margin-bottom:4px}.md-period-row{margin-top:-2px}.md-compact-modal .md-stay-form select{width:100%;min-height:44px;border:1px solid #d9e1d3;border-radius:10px;background:#fff;padding:10px;font:inherit;color:#344133}.md-duration-input{display:grid;grid-template-columns:1fr auto;align-items:center;gap:7px}.md-duration-input span{color:#778273;font-size:12px}.md-form-actions-line{display:flex;justify-content:flex-end;gap:8px}.md-form-actions-line .is-danger{color:#a45151}
.md-plan-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:6px;margin-top:6px;padding:7px 8px;border-radius:9px;background:#fff;font-size:12px;font-weight:700}.md-plan-row>i{color:var(--md-green)}.md-plan-row span{min-width:0}.md-plan-row small{display:block;margin-top:1px;font-size:10px;font-weight:600;color:#7a8575}.md-plan-row.is-move{background:#f4f6f1}.md-row-edit{display:grid;place-items:center;width:30px;height:30px;border:0;border-radius:8px;background:#eef2ea;color:#5b6856;cursor:pointer}.md-period-add{display:inline-flex;align-items:center;gap:5px;margin-top:7px;color:var(--md-green-dark);font-size:11px;font-weight:800;text-decoration:none}
@media(max-width:760px){.md-travel-grid{grid-template-columns:1fr}.md-travel-section{padding:12px}}

/* Carte de mon voyage */
.md-stay-view-switch{display:inline-flex;align-items:center;gap:4px;margin:16px 0 18px;padding:4px;border:1px solid #dfe6d8;border-radius:14px;background:#f5f8f2}
.md-stay-view-switch button{min-height:42px;display:flex;align-items:center;justify-content:center;gap:7px;padding:9px 15px;border:0;border-radius:10px;background:transparent;color:#657060;font:inherit;font-size:13px;font-weight:800;cursor:pointer}
.md-stay-view-switch button.is-active{background:#fff;color:var(--md-green-dark);box-shadow:0 1px 4px rgba(52,70,43,.11)}
.md-trip-map-panel{margin-bottom:22px;padding:16px;border:1px solid #dfe6d8;border-radius:18px;background:#fff}
.md-trip-map-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:12px}
.md-trip-map-head h2{margin:1px 0 3px}
.md-trip-map-head p:last-child{margin:0;color:#7b8676;font-size:13px}
.md-trip-map-legend{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.md-trip-map-legend span{display:flex;align-items:center;gap:5px;padding:6px 9px;border-radius:999px;background:#f5f8f2;color:#64705f;font-size:11px;font-weight:800}
.md-trip-map-legend i{color:var(--md-green)}
.md-trip-day-rail{display:flex;gap:7px;overflow-x:auto;padding:2px 1px 9px;scrollbar-width:none;scroll-snap-type:x proximity}
.md-trip-day-rail::-webkit-scrollbar{display:none}
.md-trip-day-rail button{flex:0 0 auto;min-width:68px;min-height:54px;display:grid;place-items:center;align-content:center;gap:2px;padding:7px 10px;border:1px solid #dce4d6;border-radius:12px;background:#fff;color:#687362;font:inherit;cursor:pointer;scroll-snap-align:start}
.md-trip-day-rail button strong{font-size:13px;color:#394735}
.md-trip-day-rail button span{font-size:9px;white-space:nowrap}
.md-trip-day-rail button.is-active{border-color:var(--md-green);background:#edf5e6;box-shadow:inset 0 0 0 1px var(--md-green)}
.md-trip-day-rail button.is-active strong{color:var(--md-green-dark)}
.md-trip-map-wrap{position:relative;overflow:hidden;border:1px solid #dde5d8;border-radius:16px;background:#eef2ea}
.md-trip-map{height:480px;min-height:360px}
.md-trip-map-empty{position:absolute;z-index:500;inset:18px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;border-radius:14px;background:rgba(255,255,255,.9);color:#556151;pointer-events:none}
.md-trip-map-empty i{font-size:28px;color:var(--md-green);margin-bottom:7px}
.md-trip-map-empty strong,.md-trip-map-empty span{display:block}
.md-trip-map-empty span{margin-top:3px;color:#84907f;font-size:12px}
.md-trip-map-summary{display:flex;align-items:center;justify-content:center;gap:8px;min-height:36px;padding:9px 6px 0;color:#6c7767;font-size:12px;flex-wrap:wrap}
.md-trip-map-summary strong{color:#374634}
.md-trip-summary-dot{color:#b7c0b1}
.md-trip-marker-wrap{background:transparent;border:0}
.md-trip-marker{--trip-day-color:#5d821c;position:relative;width:38px;height:38px;display:flex;align-items:center;justify-content:center;border:3px solid #fff;border-radius:50% 50% 50% 12px;background:var(--trip-day-color);color:#fff;box-shadow:0 3px 9px rgba(40,54,34,.26);transform:rotate(-45deg)}
.md-trip-marker>i{font-size:16px;transform:rotate(45deg)}
.md-trip-marker>b{position:absolute;right:-7px;top:-7px;display:grid;place-items:center;min-width:21px;height:21px;padding:0 4px;border:2px solid #fff;border-radius:999px;background:var(--trip-day-color);font-size:8px;line-height:1;transform:rotate(45deg)}
.md-trip-marker.is-lodging{border-radius:12px;background:#334d2a}
.md-trip-marker.is-lodging>i{font-size:17px}
.md-trip-popup{min-width:150px;display:flex;flex-direction:column;gap:3px}
.md-trip-popup-kind{display:flex;align-items:center;gap:5px;color:#70806a;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.03em}
.md-trip-popup strong{font-size:14px;color:#2e3d2b}
.md-trip-popup span:not(.md-trip-popup-kind),.md-trip-popup small{color:#6e796a;font-size:11px}
@media(max-width:640px){
  .md-stay-view-switch{display:flex;width:100%}
  .md-stay-view-switch button{flex:1;padding:9px 8px}
  .md-trip-map-panel{padding:11px;margin-left:-4px;margin-right:-4px}
  .md-trip-map-head{display:block}
  .md-trip-map-legend{justify-content:flex-start;margin-top:9px}
  .md-trip-map{height:420px;min-height:330px}
}

/* Respecte réellement les panneaux masqués de la vue séjour. */
.md-trip-map-panel[hidden], [data-stay-planning][hidden], .md-trip-map-empty[hidden]{display:none!important}

/* =========================================================
   MON SEJOUR - direction "carnet de voyage"
   Passe visuelle uniquement : aucune logique fonctionnelle.
   ========================================================= */
.md-stay-page{
  --travel-paper:#fcfaf6;
  --travel-sand:#f5f0e7;
  --travel-sand-2:#eee6d8;
  --travel-ink:#304d3b;
  --travel-ocean:#3f7f92;
  --travel-coral:#c9785b;
  --travel-green:#557a46;
  --travel-muted:#7d8278;
}

.md-stay-page:before{
  content:"";
  position:fixed;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background:
    radial-gradient(circle at 12% 8%,rgba(201,120,91,.08),transparent 25%),
    radial-gradient(circle at 88% 18%,rgba(63,127,146,.07),transparent 28%),
    linear-gradient(180deg,#fbfaf7 0%,#f7f4ee 100%);
}

.md-stay-head{margin-bottom:18px}
.md-stay-head h1{font-size:clamp(28px,4vw,42px);letter-spacing:-.035em;color:var(--travel-ink)}
.md-stay-head>div>p:last-child{max-width:610px;color:#777d74}

.md-stay-switcher{padding:3px 1px 16px}
.md-stay-switcher a{
  border:0;
  background:rgba(255,255,255,.72);
  box-shadow:0 5px 18px rgba(57,68,50,.06);
  backdrop-filter:blur(8px);
}
.md-stay-switcher a.is-active{
  background:#fffaf2;
  box-shadow:inset 0 0 0 1px rgba(85,122,70,.25),0 8px 24px rgba(57,68,50,.08);
}

.md-stay-cover{
  position:relative;
  overflow:hidden;
  min-height:220px;
  padding:32px 34px;
  border:1px solid rgba(207,193,168,.55);
  border-radius:28px;
  background:
    radial-gradient(circle at top right, rgba(111,157,170,.18), transparent 28%),
    linear-gradient(135deg, #f8f3ea 0%, #f3ebdf 52%, #efe6d8 100%);
  box-shadow:0 16px 38px rgba(92,82,63,.10);
  color:var(--travel-ink);
}
.md-stay-cover:before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg, rgba(255,255,255,.42), rgba(255,255,255,0) 45%),
    repeating-linear-gradient(90deg, rgba(122,109,83,.028) 0 1px, transparent 1px 20px);
  pointer-events:none;
}
.md-stay-cover:after{
  content:"Carnet de voyage";
  position:absolute;
  right:26px;
  bottom:18px;
  font-size:18px;
  font-style:italic;
  letter-spacing:.04em;
  color:rgba(73,93,74,.18);
  pointer-events:none;
}
.md-stay-cover .md-stay-summary-main{position:relative;z-index:2;max-width:720px}
.md-stay-cover h2{margin:13px 0 10px;color:var(--travel-ink);font-size:clamp(28px,4vw,44px);line-height:1.02;letter-spacing:-.04em}
.md-stay-cover-kicker{display:inline-flex;align-items:center;gap:7px;font-size:11px;font-weight:900;letter-spacing:.12em;color:var(--travel-green)}
.md-stay-cover-dates{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin:0;color:#5f6f63!important;font-size:14px}
.md-stay-cover-dates i{color:var(--travel-coral)}
.md-stay-cover-dates span{opacity:.45}
.md-stay-cover-stats{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.md-stay-cover-stats span{display:inline-flex;align-items:baseline;gap:5px;padding:8px 11px;border:1px solid rgba(90,108,86,.14);border-radius:999px;background:rgba(255,252,247,.7);font-size:11px;color:#637164}
.md-stay-cover-stats strong{font-size:14px;color:var(--travel-ink)}
.md-stay-cover-edit{position:relative;z-index:2;align-self:flex-start;border:1px solid rgba(79,103,79,.24)!important;background:rgba(255,252,247,.68)!important;color:var(--travel-ink)!important;backdrop-filter:blur(5px)}
.md-stay-cover-edit:hover{background:#fff8ef!important}
.md-stay-cover-route{position:absolute;right:11%;top:28%;width:190px;height:110px;opacity:.14;pointer-events:none}
.md-stay-cover-route:before{content:"";position:absolute;left:6px;right:6px;top:54px;border-top:2px dashed rgba(85,122,70,.65);transform:rotate(-12deg)}
.md-stay-cover-route span{position:absolute;width:9px;height:9px;border:2px solid rgba(85,122,70,.75);border-radius:50%;background:#f8f3ea}
.md-stay-cover-route span:nth-child(1){left:0;top:66px}.md-stay-cover-route span:nth-child(2){left:86px;top:39px}.md-stay-cover-route span:nth-child(3){right:0;top:21px}

.md-stay-view-switch{margin:18px 0 22px;padding:5px;border:0;background:#ebe5da;box-shadow:inset 0 1px 3px rgba(53,61,48,.06)}
.md-stay-view-switch button{color:#70766d}
.md-stay-view-switch button.is-active{background:var(--travel-paper);color:var(--travel-ink);box-shadow:0 3px 12px rgba(64,67,56,.08)}

.md-travel-section,.md-lodging-section{
  border:0;
  background:rgba(252,250,246,.86);
  box-shadow:0 8px 25px rgba(65,70,57,.06);
  border-radius:22px;
  padding:20px;
}
.md-lodging-head .section-kicker{color:var(--travel-coral)}
.md-lodging-head h2{color:var(--travel-ink);letter-spacing:-.02em}

.md-travel-card,.md-lodging-card{
  border-color:#e8dfd1!important;
  background:#fffdf9!important;
  box-shadow:0 5px 15px rgba(73,68,55,.045);
}
.md-travel-icon{background:#edf3e8!important;color:var(--travel-green)!important}
.md-travel-card:nth-child(2) .md-travel-icon{background:#e7f0f2!important;color:var(--travel-ocean)!important}
.md-lodging-icon{background:#f3e8df!important;color:var(--travel-coral)!important}

.md-stay-days{display:grid!important;grid-template-columns:1fr!important;gap:18px;position:relative;margin-top:24px}
.md-stay-day{
  position:relative;
  overflow:visible;
  border:0;
  border-radius:22px;
  padding:0;
  background:var(--travel-paper);
  box-shadow:0 10px 28px rgba(63,68,55,.07);
}
.md-stay-day:before{
  content:"";
  position:absolute;
  left:31px;top:66px;bottom:-20px;
  width:1px;
  background:linear-gradient(#c8bba7,#e8dfd2 72%,transparent);
}
.md-stay-day:last-child:before{display:none}
.md-stay-day-head{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:64px 1fr;
  align-items:center;
  gap:14px;
  padding:20px 20px 14px;
  border-bottom:1px solid #eee6da;
  background:linear-gradient(90deg,#fffdf9,rgba(255,253,249,.65));
  border-radius:22px 22px 0 0;
}
.md-stay-day-number{
  width:48px;height:48px;
  border-radius:50%;
  background:var(--travel-green);
  color:#fff;
  box-shadow:0 0 0 7px #f4efe6,0 5px 14px rgba(70,93,58,.20);
  font-size:16px;
}
.md-stay-day-number i{font-size:17px}
.md-stay-day-title{min-width:0}
.md-stay-day-kicker{display:block!important;margin-bottom:2px!important;color:var(--travel-coral)!important;font-size:9px!important;font-weight:900!important;letter-spacing:.13em!important}
.md-stay-day h3{font-size:20px;color:var(--travel-ink);letter-spacing:-.025em;margin:0 0 2px}
.md-stay-day-head .md-stay-day-title>span:last-child{color:#8b8d84}

.md-stay-periods{padding:10px 18px 18px 76px!important}
.md-stay-period{
  position:relative;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  padding:13px 0 11px!important;
  min-height:0!important;
  border-bottom:1px dashed #e6ddd0!important;
}
.md-stay-period:last-child{border-bottom:0!important}
.md-stay-period-label{
  display:inline-flex!important;
  align-items:center;
  min-width:82px;
  margin-bottom:5px;
  color:var(--travel-ocean)!important;
  font-size:10px!important;
  font-weight:900!important;
  text-transform:uppercase;
  letter-spacing:.09em;
}
.md-stay-period.has-items .md-stay-period-label:before{
  content:"";width:6px;height:6px;margin-right:7px;border-radius:50%;background:var(--travel-coral);box-shadow:0 0 0 4px rgba(201,120,91,.10)
}
.md-plan-row{
  border:0;
  background:#fff!important;
  border-radius:12px;
  box-shadow:0 3px 12px rgba(68,67,56,.05);
  padding:10px 11px;
}
.md-plan-row>i{color:var(--travel-green)}
.md-plan-row.is-move{background:#eef5f5!important}
.md-plan-row.is-move>i{color:var(--travel-ocean)}
.md-period-add{color:var(--travel-green)!important;opacity:.78}
.md-period-add:hover{opacity:1}

.md-trip-map-panel{border:0;background:var(--travel-paper);box-shadow:0 10px 28px rgba(63,68,55,.07)}
.md-trip-map-wrap{border-color:#ded6c9;background:#e9eee7}

@media(max-width:700px){
  .md-stay-page{padding-left:12px;padding-right:12px}
  .md-stay-cover{min-height:0;padding:24px 20px 22px;border-radius:22px;display:block}
  .md-stay-cover:after{font-size:16px;right:14px;bottom:11px}
  .md-stay-cover-route{display:none}
  .md-stay-cover-edit{margin-top:20px}
  .md-stay-cover-stats{gap:6px}
  .md-stay-cover-stats span{padding:7px 9px}
  .md-travel-section,.md-lodging-section{padding:14px;border-radius:18px}
  .md-stay-day-head{grid-template-columns:54px 1fr;padding:17px 14px 13px}
  .md-stay-day-number{width:42px;height:42px;box-shadow:0 0 0 5px #f4efe6,0 4px 12px rgba(70,93,58,.18)}
  .md-stay-day:before{left:34px;top:60px}
  .md-stay-periods{padding:8px 14px 14px 68px!important}
  .md-stay-period{padding:11px 0 10px!important}
}


/* Mon séjour - pêle-mêle carnet Madère */
.md-stay-postcards{
  position:relative;
  height:230px;
  margin:18px 0 22px;
  overflow:visible;
  border-radius:0;
  background:transparent;
}
.md-stay-postcards:before{display:none}
.md-stay-postcard{
  position:absolute;
  width:138px;
  aspect-ratio:4/5;
  margin:0;
  padding:6px;
  background:#fff;
  border-radius:16px;
  box-shadow:0 10px 26px rgba(55,63,48,.16);
  transform-origin:center;
}
.md-stay-postcard img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  border-radius:11px;
}
.md-stay-postcard-1{left:6%;top:22px;transform:rotate(-7deg);z-index:2}
.md-stay-postcard-2{left:31%;top:10px;transform:rotate(3deg);z-index:4}
.md-stay-postcard-3{right:28%;top:34px;transform:rotate(-2deg);z-index:3}
.md-stay-postcard-4{right:6%;top:14px;transform:rotate(7deg);z-index:5}

@media(max-width:700px){
  .md-stay-postcards{height:190px;margin:14px 0 18px;border-radius:20px}
  .md-stay-postcard{width:104px;padding:5px;border-radius:13px;box-shadow:0 8px 20px rgba(55,63,48,.16)}
  .md-stay-postcard img{border-radius:9px}
  .md-stay-postcard-1{left:-3%;top:28px}
  .md-stay-postcard-2{left:22%;top:12px}
  .md-stay-postcard-3{right:20%;top:32px}
  .md-stay-postcard-4{right:-2%;top:16px}
}

/* =========================================================
   ACCUEIL - direction carnet de voyage premium
   ========================================================= */
.md-home-premium{
  --home-ink:#26372d;
  --home-green:#42652e;
  --home-green-dark:#31511f;
  --home-paper:#fbf7ef;
  --home-sand:#efe7d9;
  width:min(1180px,calc(100% - 32px));
  margin:28px auto 56px;
}

.md-home-hero{
  position:relative;
  min-height:510px;
  overflow:hidden;
  border-radius:30px;
  background:#e9e4d8;
  box-shadow:0 22px 52px rgba(61,67,50,.12);
  isolation:isolate;
}
.md-home-hero-picture,
.md-home-hero-picture img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}
.md-home-hero-picture img{object-fit:cover;object-position:center center}
.md-home-hero-shade{
  position:absolute;
  inset:0;
  z-index:1;
  background:
    linear-gradient(90deg,rgba(251,247,239,.98) 0%,rgba(251,247,239,.94) 33%,rgba(251,247,239,.72) 48%,rgba(251,247,239,.18) 68%,rgba(251,247,239,.02) 100%),
    linear-gradient(0deg,rgba(244,239,229,.08),rgba(244,239,229,.08));
}
.md-home-hero-content{
  position:relative;
  z-index:3;
  width:min(590px,58%);
  padding:72px 0 64px 58px;
}
.md-home-eyebrow{
  margin:0 0 17px;
  color:#506c43;
  font-size:11px;
  line-height:1;
  font-weight:900;
  letter-spacing:.25em;
  text-transform:uppercase;
}
.md-home-hero h1{
  margin:0;
  color:#26362d;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(48px,5.4vw,76px);
  line-height:.92;
  letter-spacing:-.045em;
  font-weight:700;
}
.md-home-hero h1 span{color:#45672f}
.md-home-lead{
  max-width:520px;
  margin:24px 0 0;
  color:#565c55;
  font-family:Georgia,"Times New Roman",serif;
  font-size:19px;
  line-height:1.5;
}
.md-home-actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:28px;
}
.md-home-btn{
  min-height:52px;
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:12px 17px;
  border-radius:8px;
  text-decoration:none;
  font-weight:800;
  box-shadow:0 5px 18px rgba(56,63,47,.08);
}
.md-home-btn i:last-child{margin-left:4px}
.md-home-btn-primary{background:var(--home-green-dark);color:#fff}
.md-home-btn-primary:hover{background:#274417;color:#fff}
.md-home-btn-secondary{background:rgba(255,252,246,.9);border:1px solid rgba(65,91,52,.28);color:#304e22}
.md-home-btn-secondary:hover{background:#fffaf3;color:#304e22}

.md-home-postcards{position:absolute;z-index:2;right:3.5%;top:11%;width:33%;height:76%;pointer-events:none}
.md-home-postcard{
  position:absolute;
  margin:0;
  width:154px;
  aspect-ratio:4/5;
  padding:7px;
  background:#fff;
  border-radius:4px;
  box-shadow:0 15px 32px rgba(42,50,39,.22);
}
.md-home-postcard img{display:block;width:100%;height:100%;object-fit:cover;border-radius:1px}
.md-home-postcard-a{right:132px;top:4px;transform:rotate(-11deg)}
.md-home-postcard-b{right:-6px;bottom:0;transform:rotate(9deg)}

.md-home-cards{
  position:relative;
  z-index:4;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  margin:-34px 28px 0;
}
.md-home-card{
  min-height:165px;
  display:grid;
  grid-template-columns:82px minmax(0,1fr) 36px;
  align-items:center;
  gap:14px;
  padding:16px;
  border:1px solid rgba(207,199,184,.7);
  border-radius:20px;
  background:rgba(255,253,248,.95);
  color:var(--home-ink);
  text-decoration:none;
  box-shadow:0 13px 30px rgba(63,66,54,.09);
  backdrop-filter:blur(8px);
  transition:transform .18s ease,box-shadow .18s ease;
}
.md-home-card:hover{transform:translateY(-3px);box-shadow:0 18px 34px rgba(63,66,54,.13)}

.md-home-card-thumb{
  width:82px;
  height:116px;
  overflow:hidden;
  border-radius:14px;
  background:#e7eadf;
  box-shadow:0 5px 16px rgba(52,61,46,.10);
}
.md-home-card-thumb img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
}
.md-home-card-icon{display:none}
.md-home-card-kicker{
  display:block;
  margin-bottom:5px;
  color:#79816e;
  font-size:9px;
  font-weight:900;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.md-home-card h2{
  margin:0 0 6px;
  color:#27362d;
  font-family:Georgia,"Times New Roman",serif;
  font-size:21px;
  line-height:1.05;
  letter-spacing:-.025em;
}
.md-home-card p{margin:0;color:#646b62;font-size:13px;line-height:1.42}
.md-home-card-arrow{
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#f0eee3;
  color:#344a2d;
  font-size:17px;
}
.md-home-signature{
  margin:28px 0 0;
  padding:24px 0 6px 24px;
  border-top:1px solid rgba(117,124,105,.14);
  color:#566c47;
  font-family:Georgia,"Times New Roman",serif;
  font-size:23px;
  font-style:italic;
  opacity:.8;
}


@media(min-width:701px) and (max-width:1100px){
  .md-home-card{grid-template-columns:72px minmax(0,1fr) 32px;gap:10px;padding:14px}
  .md-home-card-thumb{width:72px;height:102px}
  .md-home-card h2{font-size:18px}
  .md-home-card p{font-size:12px}
  .md-home-card-arrow{width:32px;height:32px}
}

@media(max-width:900px){
  .md-home-hero-content{width:64%;padding-left:38px}
  .md-home-postcards{right:2%;width:31%}
  .md-home-postcard{width:125px}
  .md-home-postcard-a{right:75px}
  .md-home-cards{margin-left:16px;margin-right:16px}
}

@media(max-width:700px){
  .app-main{padding-left:0!important;padding-right:0!important}
  .md-home-premium{width:100%;margin:0 0 42px}
  .md-home-hero{
    min-height:640px;
    border-radius:0 0 28px 28px;
    box-shadow:none;
  }
  .md-home-hero-picture img{object-position:center top}
  .md-home-hero-shade{
    background:
      linear-gradient(180deg,rgba(251,247,239,.95) 0%,rgba(251,247,239,.84) 34%,rgba(251,247,239,.42) 58%,rgba(251,247,239,.10) 74%,rgba(251,247,239,.02) 100%);
  }
  .md-home-hero-content{
    width:auto;
    padding:42px 22px 40px;
  }
  .md-home-eyebrow{margin-bottom:13px;font-size:9px;letter-spacing:.22em}
  .md-home-hero h1{font-size:clamp(46px,15vw,64px);line-height:.94}
  .md-home-lead{max-width:390px;margin-top:18px;font-size:17px;line-height:1.45}
  .md-home-actions{display:grid;grid-template-columns:1fr;margin-top:22px;max-width:330px}
  .md-home-btn{width:100%;justify-content:flex-start}
  .md-home-btn i:last-child{margin-left:auto}
  .md-home-postcards{display:none}
  .md-home-cards{
    grid-template-columns:1fr;
    margin:-46px 14px 0;
    gap:10px;
  }
  .md-home-card{min-height:0;padding:12px 13px;border-radius:17px;grid-template-columns:76px minmax(0,1fr) 34px;gap:12px}
  .md-home-card-thumb{display:block;width:76px;height:96px;border-radius:12px}
  .md-home-card h2{font-size:19px}
  .md-home-card p{font-size:12.5px;line-height:1.38}
  .md-home-card-arrow{width:34px;height:34px;font-size:15px}
  .md-home-signature{margin:22px 18px 0;padding:19px 4px 0;font-size:20px;text-align:center}
}

/* =========================================================
   MES ENVIES - direction éditoriale / carnet de voyage
   ========================================================= */
.md-wishes-page{
  --wish-paper:#fffdf8;
  --wish-sand:#f5efe5;
  --wish-green:#45672f;
  --wish-dark:#293b30;
  --wish-coral:#c9785b;
  max-width:1060px;
  margin:0 auto;
  padding:20px 18px 64px;
}
.md-wishes-hero{
  position:relative;
  overflow:hidden;
  min-height:245px;
  display:flex;
  align-items:center;
  margin-bottom:26px;
  padding:34px 330px 34px 34px;
  border:1px solid rgba(204,193,174,.55);
  border-radius:28px;
  background:
    radial-gradient(circle at 88% 18%,rgba(83,134,113,.12),transparent 31%),
    linear-gradient(135deg,#fffdf8 0%,#f7f0e5 100%);
  box-shadow:0 16px 38px rgba(74,70,57,.08);
}
.md-wishes-copy{position:relative;z-index:2;max-width:610px}
.md-wishes-copy .section-kicker{color:#637c52;letter-spacing:.14em}
.md-wishes-copy h1{
  margin:7px 0 12px;
  color:var(--wish-dark);
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(36px,4.4vw,58px);
  line-height:.98;
  letter-spacing:-.045em;
}
.md-wishes-intro{max-width:610px;margin:0;color:#62685f;font-size:16px;line-height:1.6}
.md-wishes-count{display:inline-flex;align-items:baseline;gap:6px;margin:20px 0 0;padding:8px 12px;border:1px solid #ded5c7;border-radius:999px;background:rgba(255,255,255,.72);color:#687064;font-size:12px}
.md-wishes-count strong{color:var(--wish-green);font-size:18px}
.md-wishes-postcards{position:absolute;right:28px;top:17px;width:285px;height:215px;pointer-events:none}
.md-wishes-postcard{position:absolute;width:124px;aspect-ratio:4/5;margin:0;padding:6px;background:#fff;border-radius:4px;box-shadow:0 13px 28px rgba(50,57,45,.18)}
.md-wishes-postcard img{display:block;width:100%;height:100%;object-fit:cover}
.md-wishes-postcard-a{left:16px;top:15px;transform:rotate(-8deg)}
.md-wishes-postcard-b{right:12px;bottom:0;transform:rotate(8deg)}

.md-wishes-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.md-wish-card{
  position:relative;
  display:grid;
  grid-template-columns:52px minmax(0,1fr);
  gap:14px;
  padding:18px;
  border:1px solid #e4dccf;
  border-radius:20px;
  background:rgba(255,253,248,.96);
  box-shadow:0 8px 22px rgba(65,67,55,.06);
}
.md-wish-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:50%;background:#edf3e3;color:var(--wish-green);font-size:20px}
.md-wish-copy{min-width:0}
.md-wish-topline{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:5px}
.md-wish-theme{color:#8a806f;font-size:9px;font-weight:900;letter-spacing:.13em;text-transform:uppercase}
.md-wish-heart{color:var(--wish-coral);font-size:14px}
.md-wish-card h2{margin:0 0 7px;color:var(--wish-dark);font-family:Georgia,"Times New Roman",serif;font-size:22px;line-height:1.08;letter-spacing:-.025em}
.md-wish-card p{margin:0;color:#6a7067;font-size:13px;line-height:1.48}
.md-wish-meta{display:flex;flex-wrap:wrap;gap:12px;margin-top:10px;color:#7d8179;font-size:11px}
.md-wish-meta span{display:inline-flex;align-items:center;gap:5px}.md-wish-meta i{color:#71895d}
.md-wish-map{grid-column:2;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:4px;padding-top:12px;border-top:1px solid #eee7db;color:#49633b;font-size:12px;font-weight:800;text-decoration:none}
.md-wish-map:hover{color:#2e4b25}

.md-wishes-empty{max-width:670px;margin:18px auto 0;padding:42px 32px;text-align:center;border:1px solid #e4dccf;border-radius:24px;background:#fffdf8;box-shadow:0 10px 28px rgba(65,67,55,.05)}
.md-wishes-empty-icon{width:64px;height:64px;display:grid;place-items:center;margin:0 auto 17px;border-radius:50%;background:#edf3e3;color:var(--wish-green);font-size:28px}
.md-wishes-empty h2{margin:7px 0 8px;color:var(--wish-dark);font-family:Georgia,"Times New Roman",serif;font-size:28px}
.md-wishes-empty>p:not(.section-kicker){max-width:520px;margin:0 auto 20px;color:#6d7269;line-height:1.55}

@media(max-width:760px){
  .md-wishes-page{padding:12px 14px 54px}
  .md-wishes-hero{min-height:0;display:block;padding:26px 18px 23px;border-radius:22px}
  .md-wishes-copy h1{font-size:clamp(36px,11vw,48px)}
  .md-wishes-intro{font-size:14px;line-height:1.55}
  .md-wishes-postcards{position:relative;right:auto;top:auto;width:210px;height:145px;margin:20px auto -3px}
  .md-wishes-postcard{width:88px;padding:4px;box-shadow:0 9px 20px rgba(50,57,45,.15)}
  .md-wishes-postcard-a{left:17px;top:8px;transform:rotate(-9deg)}
  .md-wishes-postcard-b{right:15px;bottom:2px;transform:rotate(9deg)}
  .md-wishes-grid{grid-template-columns:1fr;gap:10px}
  .md-wish-card{grid-template-columns:44px minmax(0,1fr);gap:11px;padding:14px;border-radius:17px}
  .md-wish-icon{width:42px;height:42px;font-size:18px}
  .md-wish-card h2{font-size:20px}
  .md-wish-map{grid-column:2}
  .md-wishes-empty{padding:34px 20px;border-radius:20px}
}


/* Explorer - passe editoriale / carnet de voyage */
.md-explorer{
    position:relative;
    padding-top:34px;
    background:linear-gradient(180deg,#f8f4ec 0%,#fbfaf6 38%,#f6f7f3 100%);
    border-radius:0 0 28px 28px;
}
.md-explorer-head{
    padding:8px 4px 4px;
}
.md-explorer-head .section-kicker{
    color:#6d8058;
    letter-spacing:.12em;
}
.md-explorer-head h1{
    color:#243226;
    font-size:clamp(32px,4vw,46px);
    letter-spacing:-.035em;
}
.md-explorer-head p{
    max-width:700px;
    color:#667064;
    font-family:Georgia,"Times New Roman",serif;
    font-size:16px;
    line-height:1.55;
}
.md-explorer-count{
    border:1px solid #dfe5d5;
    background:#f0f4e9;
    box-shadow:0 8px 22px rgba(73,87,57,.07);
}
.md-explorer-toolbar{
    margin-top:24px;
}
.md-search,.md-filter-toggle,.md-geolocate{
    border-color:#ddd7cb;
    background:#fffdf8;
    box-shadow:0 4px 14px rgba(79,69,50,.04);
}
.md-filter-chips button{
    border-color:#ddd8cd;
    background:#fffdf8;
    color:#596257;
}
.md-filter-chips button.is-active{
    border-color:#557b2f;
    background:#557b2f;
    color:#fff;
    box-shadow:0 4px 12px rgba(72,103,43,.18);
}
.md-map-shell{
    border-color:#d9d4c8;
    box-shadow:0 18px 44px rgba(63,66,50,.10);
}
.md-explorer-foot{
    padding-top:14px;
    color:#777b70;
}

.md-sheet-backdrop{
    background:rgba(35,39,31,.43);
    backdrop-filter:blur(2px);
}
.md-activity-sheet{
    background:
        linear-gradient(180deg,#fffdf8 0%,#fff 34%);
    border:1px solid rgba(210,201,184,.72);
    box-shadow:0 -18px 60px rgba(49,48,39,.20);
}
.md-sheet-close{
    background:#f4f0e7;
    color:#354033;
}
.md-sheet-topline{
    margin:-2px 42px 16px 0;
    padding-bottom:16px;
    border-bottom:1px solid #ece5d9;
}
.md-sheet-icon{
    border-radius:16px;
    box-shadow:0 8px 18px rgba(65,75,54,.10);
}
.md-sheet-ratings{
    padding:2px 0 0;
}
.md-rating-label{
    color:#4c5848;
}
.md-rating-row + .md-rating-row{
    border-top-color:#eee8dd;
}
.md-sheet-themes{
    margin-top:6px;
}
.md-sheet-themes span{
    background:#f2f0e8;
    color:#6c7367;
}
.md-activity-sheet h2{
    margin-top:10px;
    color:#253126;
    font-size:clamp(28px,3vw,38px);
    letter-spacing:-.025em;
}
.md-sheet-meta{
    color:#6b7e58;
}
.md-sheet-summary{
    margin-top:14px;
    padding:14px 16px;
    border-left:3px solid #cad8b4;
    background:#faf8f2;
    color:#5e665b;
    font-family:Georgia,"Times New Roman",serif;
    line-height:1.65;
}
.md-sheet-actions{
    margin-top:20px;
}
.md-sheet-actions .btn{
    min-height:46px;
    border-radius:12px;
}
.md-sheet-actions .btn-secondary{
    background:#fffdf8;
    border-color:#a8bb8c;
    color:#44672a;
}
.md-sheet-actions .btn-secondary:hover{
    background:#f3f7ed;
}
.md-sheet-download{
    background:#f4f1e9;
}

@media(min-width:900px){
    .md-activity-sheet{
        top:28px;
        right:28px;
        bottom:28px;
        left:auto;
        width:min(390px,calc(100vw - 56px));
        max-height:none;
        border-radius:22px;
        padding:26px 26px 28px;
    }
}

@media(max-width:700px){
    .md-explorer{
        padding-top:22px;
        background:linear-gradient(180deg,#f8f4ec 0%,#f8f7f2 30%,#f6f7f3 100%);
    }
    .md-explorer-head p{
        font-size:15px;
    }
    .md-explorer-toolbar{
        margin-top:18px;
    }
}

/* Explorer - envies : seul le coeur est rouge */
.md-sheet-actions [data-favorite] i.bi-heart,
.md-sheet-actions [data-favorite] i.bi-heart-fill {
    color:#c94a45;
}


/* Mon Madere - Donner mon avis */
/* Avis - structure reprise de CycloDort, palette Mon Madère */
.review-page { max-width:720px; margin:0 auto; padding:24px 16px 100px; }
.review-header { position:relative; padding:8px 0 22px; }
.review-header h1 { margin:4px 0 10px; font-family:Georgia,"Times New Roman",serif; font-size:32px; color:var(--md-green-dark,#365d18); }
.review-header > p:last-child { margin:0; max-width:610px; color:#667064; line-height:1.55; }
.app-eyebrow { margin:0 0 4px; color:var(--md-green,#5d821c); font-size:.75rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.review-flash { margin:0 0 20px; padding:12px 14px; border-left:4px solid var(--md-green,#5d821c); background:#eef4e3; color:#345238; }
.review-flash-error { border-color:#b83c3c; background:#fbefef; color:#843434; }
.review-current-status { display:flex; align-items:center; justify-content:space-between; gap:15px; margin:0 0 20px; padding:13px 0; border-top:1px solid #dfe5e0; border-bottom:1px solid #dfe5e0; }
.review-current-status span,.review-current-status strong { display:block; }
.review-current-status span { margin-bottom:2px; color:#6c736e; font-size:.78rem; }
.review-current-status strong { font-size:.96rem; }
.review-mini-stars { display:flex; gap:2px; color:#d99032; font-size:17px; white-space:nowrap; }
.review-admin-answer { margin:0 0 22px; padding:15px 16px; background:#f7f7f1; border-left:3px solid #d99032; }
.review-admin-answer span { display:block; margin-bottom:5px; color:#756139; font-size:.76rem; font-weight:700; text-transform:uppercase; letter-spacing:.04em; }
.review-admin-answer p { margin:0; line-height:1.55; }
.review-form { display:grid; gap:22px; }
.review-rating { margin:0; padding:0; border:0; }
.review-rating legend,.review-field label { display:block; margin-bottom:10px; font-weight:700; }
.review-stars { display:grid; grid-template-columns:repeat(5,1fr); gap:7px; }
.review-stars label { min-width:0; cursor:pointer; }
.review-stars input { position:absolute; opacity:0; pointer-events:none; }
.review-stars span { min-height:55px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1px; border:1px solid #dfe5e0; background:#fff; color:#c5c9c6; transition:.15s ease; }
.review-stars i { font-size:22px; }
.review-stars small { color:#6c736e; font-size:10px; }
.review-stars input:checked + span { border-color:#d99032; background:#fff8ec; color:#d99032; box-shadow:inset 0 0 0 1px #d99032; }
.review-stars input:focus-visible + span { outline:3px solid rgba(93,130,28,.18); outline-offset:2px; }
.review-field textarea { width:100%; min-height:150px; padding:13px 14px; border:1px solid #cfd6d0; background:#fff; color:#263126; font:inherit; font-size:16px; line-height:1.5; resize:vertical; }
.review-field textarea:focus { outline:3px solid rgba(93,130,28,.12); border-color:var(--md-green,#5d821c); }
.review-publication { display:flex; align-items:flex-start; gap:11px; padding:14px; background:#f6f8f6; cursor:pointer; }
.review-publication input { flex:none; width:20px; height:20px; margin:2px 0 0; accent-color:var(--md-green-dark,#365d18); }
.review-publication span,.review-publication strong,.review-publication small { display:block; }
.review-publication strong { margin-bottom:3px; font-size:.93rem; }
.review-publication small { color:#6c736e; line-height:1.4; }
.review-moderation-note { display:flex; align-items:flex-start; gap:7px; margin:16px 0 0; color:#6c736e; font-size:.8rem; line-height:1.4; }
.review-moderation-note i { flex:none; color:var(--md-green-dark,#365d18); font-size:15px; }
@media (min-width:700px) { .review-stars { max-width:410px; } }
