.nova-ff-cartographie-container,.nova-ff-cartographie-container *{box-sizing:border-box}
html.nova-map-page{overflow-y:scroll;scrollbar-gutter:stable;overflow-anchor:none}
.nova-profile-invitation{display:flex;align-items:center;justify-content:flex-start;gap:10px;font-size:13px!important;font-weight:600!important;text-align:left;color:#252127!important;margin:0 0 12px!important;line-height:1.5!important}
.nova-profile-invitation-badge{display:grid;place-items:center;flex:0 0 28px;width:28px;height:28px;background:#84536d;color:#fff;border-radius:50%;font-size:14px;font-weight:700}
.nova-profile-invitation-done{visibility:hidden}
.nova-profile-choice-frame{position:relative;isolation:isolate;padding:8px!important;border:1px solid transparent!important;border-radius:10px!important;transition:border-color .2s}
.nova-profile-choice-frame.nova-profile-choice-awaiting{border-color:#84536d70!important}
.nova-profile-choice-frame::after{content:"";position:absolute;inset:-1px;border:1.5px solid #84536d70;border-radius:inherit;pointer-events:none;opacity:0}
.nova-profile-choice-frame.nova-profile-choice-awaiting::after{animation:nova-profile-frame-pulse 2.8s ease-in-out infinite}
/* Mobile theme labels add 8px above each radio; keep this framed group balanced. */
@media(max-width:760px){form.nova-diagnostic-form .nova-choice-grid .nova-profile-choice-frame .ff-el-form-check label.ff-el-form-check-label.nova-linked-gender-label{margin-top:0!important;margin-bottom:0!important}}
@keyframes nova-profile-frame-pulse{0%,100%{box-shadow:0 0 3px 0 #84536d10;opacity:.35}50%{box-shadow:0 0 10px 3px #84536d40;opacity:.85}}
@media(prefers-reduced-motion:reduce){.nova-profile-choice-frame.nova-profile-choice-awaiting::after{animation:none}.nova-profile-choice-frame{transition:none}}
/* Only radio labels linked to this widget: draw the dot inside the circle itself. */
form.nova-diagnostic-form label.nova-linked-gender-label::after{content:none!important;display:none!important}
form.nova-diagnostic-form .nova-choice-grid .ff-el-form-check label.ff-el-form-check-label.nova-linked-gender-label:has(input:checked)::before{background:radial-gradient(circle at center,#0c0d0e 0 5px,#fff 5.5px)!important;border-color:#fff!important}
form.nova-diagnostic-form label.nova-linked-gender-label{outline:none!important}
form.nova-diagnostic-form.nova-map-keyboard label.nova-linked-gender-label:focus-within{outline:2px solid #747b91!important;outline-offset:3px}
.nova-ff-cartographie-container{display:grid;grid-template-columns:minmax(240px,36%) minmax(0,1fr);gap:18px 22px;width:100%;overflow-anchor:none}
.nova-ff-cartographie-container [hidden]{display:none!important}
.nova-ff-cartographie__gender-hint,.nova-ff-cartographie__summary,.nova-ff-cartographie__error{grid-column:1/-1}
.nova-ff-cartographie__gender-hint{grid-row:1}.nova-ff-cartographie__summary{grid-row:3}.nova-ff-cartographie__error{grid-row:4}
.nova-ff-cartographie__views{grid-column:2;grid-row:2;min-width:0}
.nova-ff-cartographie__zones{grid-column:1;grid-row:2;border:0!important;margin:0!important;padding:12px 0 0!important;min-width:0}
.nova-ff-cartographie__zones legend{font-size:14px!important;font-weight:650;padding:0;margin:0 0 12px}
.nova-ff-cartographie__view{margin:0!important;padding:12px;border:1px solid #dadce4;border-radius:15px;background:#fafafa}
.nova-ff-cartographie__view figcaption{display:none}
.nova-ff-cartographie__canvas{position:relative;aspect-ratio:952/1138;max-height:490px;margin:auto}
.nova-ff-cartographie__base,.nova-ff-cartographie__overlay,.nova-ff-cartographie__overlay svg{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;display:block}
.nova-ff-cartographie__overlay,.nova-ff-cartographie__overlay *{-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none}
.nova-ff-cartographie__overlay .tint{stroke:none;pointer-events:all}
.nova-ff-cartographie__overlay .motif{display:none}
.nova-ff-cartographie__overlay .zone{cursor:pointer}
.nova-ff-cartographie__overlay .zone:focus{outline:none}
.nova-ff-cartographie__overlay .zone:focus-visible .tint{stroke:#222;stroke-width:3}
.nova-map-tabs{display:flex;justify-content:center;gap:8px;margin-top:12px}
.nova-map-tabs button{border:1px solid #d1d1d5!important;border-radius:8px!important;background:white!important;color:#1b1c20!important;padding:10px 18px!important;font-size:13px!important;line-height:1.4!important;cursor:pointer}
.nova-map-tabs button[aria-pressed=true]{background:#111!important;color:white!important;border-color:#111!important}
.nova-ff-cartographie__zone-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.nova-ff-cartographie__zone-item{margin:0!important;min-width:0}
.nova-ff-cartographie__zone-item label.ff-el-form-check-label{position:relative;display:flex!important;align-items:center;justify-content:center;gap:5px;min-height:38px!important;padding:7px 4px!important;margin:0!important;border:1px solid white!important;border-radius:6px!important;background:white!important;color:#111!important;font-size:12px!important;font-weight:700;line-height:1.2!important;cursor:pointer}
.nova-ff-cartographie__zone-item label:after{content:''!important;position:absolute;inset:-4px;transform:none!important;opacity:1!important}
.nova-ff-cartographie__zone-item label:before{display:none!important}
.nova-ff-cartographie__zone-item input{appearance:auto!important;position:static!important;opacity:1!important;width:11px!important;height:11px!important;margin:0!important;accent-color:#111;flex:none}
.nova-ff-cartographie__zone-item.ff_item_selected label.ff-el-form-check-label{background:#111!important;color:white!important;border-color:#111!important}
.nova-ff-cartographie__zone-prefix{display:inline}
.nova-ff-cartographie-container.nova-layout-wide .nova-ff-cartographie__zone-item label.ff-el-form-check-label{min-height:46px!important;padding:10px 5px!important;font-size:13px!important}.nova-ff-cartographie-container.nova-layout-wide .nova-ff-cartographie__zone-grid{gap:10px}
.nova-ff-cartographie-container.nova-layout-compact .nova-ff-cartographie__zone-prefix{display:none}
.nova-donor{font-size:12px;line-height:1.5;color:#656770;margin:16px 0 8px}.nova-donor small{font-size:11px}
.nova-ff-cartographie-container [data-nova-clear]{background:none!important;border:0!important;padding:5px 0!important;font-size:12px!important;color:#656770!important;text-decoration:underline;cursor:pointer}
.nova-ff-cartographie__summary{border:1px solid #dfe1e8;border-radius:12px;background:#ffffff90;padding:18px}
.nova-ff-cartographie__summary strong{display:block;font-size:14px;margin-bottom:12px}
.nova-ff-cartographie__summary p{font-size:13px;color:#696b73;margin:0}
.nova-ff-cartographie__summary ul{display:flex;flex-wrap:wrap;gap:6px;padding:0!important;margin:0!important;list-style:none!important}
.nova-ff-cartographie__summary li{margin:0!important;padding:0!important;max-width:100%}
.nova-ff-cartographie__summary button{display:flex;align-items:center;gap:7px;max-width:100%;background:white!important;border:1px solid #d4d6de!important;border-radius:6px!important;padding:7px 10px!important;color:#24252a!important;font-size:12px!important;line-height:1.4;text-align:left;cursor:pointer}
.nova-ff-cartographie__summary button span{white-space:nowrap;font-weight:650}.nova-ff-cartographie__summary small{font-size:11px;color:#62646d}
.nova-ff-cartographie__error{color:#b42318;font-size:13px}
.nova-ff-cartographie__views{position:relative}
.nova-awaiting-profile .nova-ff-cartographie__views{align-self:start}
.nova-view-arrows{position:absolute;z-index:3;top:12px;left:12px;right:12px;display:flex;align-items:center;justify-content:space-between;gap:8px;pointer-events:none}
.nova-view-title{flex:1;min-width:0;text-align:center;color:#62646d;font:400 12px/1.4 system-ui;letter-spacing:.09em}
.nova-view-arrows .nova-view-arrow{position:relative;pointer-events:auto;display:grid;place-items:center;width:24px;height:24px;min-width:24px;min-height:24px;padding:0!important;background:#fff!important;color:#444!important;border:1px solid #d4d6de!important;border-radius:5px!important;box-shadow:none!important;line-height:1!important;cursor:pointer;-webkit-tap-highlight-color:transparent}
.nova-view-arrow .nova-chevron{display:block;width:6px;height:6px;border-top:1.3px solid currentColor;border-right:1.3px solid currentColor;transform:translateX(-1px) rotate(45deg)}
.nova-view-arrow[data-step="-1"] .nova-chevron{transform:translateX(1px) rotate(-135deg)}
.nova-view-arrow::after{content:'';position:absolute;inset:-10px}
.nova-view-tooltip{position:absolute;bottom:calc(100% + 9px);left:-4px;padding:7px 9px;background:#111;color:#fff;border-radius:5px;white-space:nowrap;font:11px/1.4 system-ui;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .12s}
.nova-view-tooltip::after{content:'';position:absolute;top:100%;left:14px;border:5px solid transparent;border-top-color:#111}
.nova-view-arrow:last-child .nova-view-tooltip{left:auto;right:-4px}
.nova-view-arrow:last-child .nova-view-tooltip::after{left:auto;right:14px}
@media(hover:hover){.nova-view-arrow:hover:not(.tooltip-dismissed) .nova-view-tooltip{visibility:visible;opacity:1}}
.nova-view-arrow:focus-visible:not(.tooltip-dismissed) .nova-view-tooltip{visibility:visible;opacity:1}
@media(prefers-reduced-motion:reduce){.nova-view-tooltip{transition:none}}
@keyframes nova-map-fade{from{opacity:.6}to{opacity:1}}
.nova-ff-cartographie__view:not([hidden]) .nova-ff-cartographie__canvas{animation:nova-map-fade .16s ease-out}
@media(hover:hover) and (pointer:fine){.nova-ff-cartographie__overlay .zone:not([aria-pressed="true"]):hover .tint{fill:var(--nova-hover-pattern)!important;fill-opacity:.3}}
@media(prefers-reduced-motion:reduce){.nova-ff-cartographie__view:not([hidden]) .nova-ff-cartographie__canvas{animation:none}}
.nova-ff-cartographie-container button:focus-visible,.nova-ff-cartographie-container input:focus-visible{outline:2px solid #747b91!important;outline-offset:3px}
.nova-ff-cartographie-container.nova-layout-compact{grid-template-columns:94px minmax(0,1fr);gap:16px 9px}.nova-ff-cartographie-container.nova-layout-compact .nova-ff-cartographie__zone-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.nova-ff-cartographie-container.nova-layout-compact .nova-ff-cartographie__view{padding:5px;border-radius:11px}.nova-ff-cartographie-container.nova-layout-compact .nova-map-tabs{gap:5px}.nova-ff-cartographie-container.nova-layout-compact .nova-map-tabs button{flex:1;font-size:11px!important;padding:9px 8px!important}.nova-ff-cartographie-container.nova-layout-compact .nova-donor{font-size:10px}.nova-ff-cartographie-container.nova-layout-compact .nova-donor small{font-size:9px}
/* A dedicated header band adds breathing room without shrinking the canvas. */
.nova-ff-cartographie__gender{display:grid;background:#fafafa;border-radius:15px}
.nova-ff-cartographie__view{grid-area:1/1}
.nova-ff-cartographie__view:not([hidden]) .nova-ff-cartographie__canvas{animation:none}
.nova-view-arrows .nova-view-arrow{display:flex;flex-shrink:0;width:auto;gap:6px;background:#111!important;color:#fff!important;border:0!important;border-radius:5px!important;padding:0 8px!important}
.nova-view-arrow[data-step="1"]{flex-direction:row-reverse}
.nova-view-destination{font:500 10px/1.4 system-ui;color:#fff!important;white-space:nowrap}
.nova-view-arrow::after{inset:-10px -4px}
.nova-ff-cartographie-container.nova-layout-compact .nova-view-arrows{left:9px;right:9px;gap:4px}.nova-ff-cartographie-container.nova-layout-compact .nova-view-destination{font-size:9px}.nova-ff-cartographie-container.nova-layout-compact .nova-view-title{letter-spacing:.02em!important;font-size:10px!important}.nova-ff-cartographie-container.nova-layout-compact .nova-view-arrows .nova-view-arrow{gap:4px;padding:0 6px!important}
.nova-ff-cartographie__view{padding-top:52px}
.nova-ff-cartographie__base{transition:opacity .38s ease}
.nova-ff-cartographie-container{position:relative}
.nova-ff-cartographie__views,.nova-ff-cartographie__zones,.nova-ff-cartographie__summary{transition:opacity .38s ease}
.nova-awaiting-profile .nova-ff-cartographie__views,.nova-awaiting-profile .nova-ff-cartographie__zones,.nova-awaiting-profile .nova-ff-cartographie__summary{opacity:.62;pointer-events:none}
.nova-ff-cartographie-container .nova-ff-cartographie__gender-hint{position:absolute;top:100px;left:50%;transform:translateX(-50%);width:calc(100% - 24px);z-index:4;margin:0;padding:16px 24px;max-width:520px;border:1px solid #ffffff35;border-radius:12px;background:#242225;color:#fff;box-shadow:0 8px 24px #19151d20;font-size:13px;font-weight:400;line-height:1.6;text-align:center;pointer-events:none}
.nova-ff-cartographie__gender-hint strong{display:block;font-size:14px;font-weight:600;letter-spacing:.02em;margin-bottom:3px}
.nova-ff-cartographie__gender-hint span{color:#f0edf1}
.nova-ff-cartographie-container.nova-layout-compact .nova-ff-cartographie__gender-hint{top:92px;padding:12px 14px;font-size:12px}.nova-ff-cartographie-container.nova-layout-compact .nova-ff-cartographie__gender-hint strong{font-size:13px}
@media(prefers-reduced-motion:reduce){.nova-ff-cartographie__base,.nova-ff-cartographie__views,.nova-ff-cartographie__zones,.nova-ff-cartographie__summary{transition:none}}
.nova-ff-cartographie-container.nova-layout-compact .nova-view-title{font-size:10px;letter-spacing:.06em}.nova-ff-cartographie-container.nova-layout-compact .nova-ff-cartographie__view{padding-top:48px}

/* Navigation layout approved in the responsive preview. */
.nova-ff-cartographie-container.nova-layout-wide{grid-template-columns:minmax(280px,38%) minmax(0,1fr)}.nova-ff-cartographie-container.nova-layout-wide [data-nova-clear]{display:flex;align-items:center;justify-content:center;gap:8px;min-height:38px;width:100%;padding:9px 12px!important;background:#fff!important;color:#333!important;border:1px solid #d1d1d5!important;border-radius:7px!important;text-decoration:none;font-size:12px!important}.nova-ff-cartographie-container.nova-layout-wide [data-nova-clear]::before{content:'×';font-size:18px;line-height:1}.nova-ff-cartographie-container.nova-layout-wide [data-nova-clear]:disabled{opacity:.45;cursor:default}.nova-ff-cartographie-container.nova-layout-wide .nova-ff-cartographie__zones .nova-map-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:16px;width:100%}.nova-ff-cartographie-container.nova-layout-wide .nova-ff-cartographie__zones .nova-map-tabs button{min-width:0;min-height:44px;padding:11px 5px!important;font-size:13px!important;font-weight:600}
.nova-ff-cartographie__view{container-type:inline-size}.nova-ff-cartographie__view .nova-donor{display:block;text-align:center;white-space:nowrap;font-size:clamp(7px,3.1cqw,10px);font-weight:400;line-height:1.5;margin:12px 0 3px;color:#656770}.nova-ff-cartographie__view .nova-donor br{display:none}.nova-ff-cartographie__view .nova-donor small{font-size:inherit}.nova-ff-cartographie__view .nova-donor small::before{content:' · '}.nova-ff-cartographie__zones [data-nova-clear]{margin-top:14px}.nova-ff-cartographie-container [data-nova-clear]:disabled{opacity:.45;cursor:default}.nova-ff-cartographie-container.nova-layout-compact .nova-ff-cartographie__zones [data-nova-clear]{display:flex;align-items:center;justify-content:center;gap:4px;width:100%;min-height:30px;padding:5px 3px!important;border:1px solid #d1d1d5!important;border-radius:6px!important;background:#fff!important;color:#444!important;font-size:10px!important;line-height:1.4!important;white-space:nowrap;text-decoration:none}.nova-ff-cartographie-container.nova-layout-compact .nova-ff-cartographie__zones [data-nova-clear]::before{content:'×';font-size:14px;line-height:1}
.nova-ff-cartographie-container.nova-layout-compact .nova-view-title{white-space:nowrap}

/* Larger hit areas without changing the visible controls. */
.nova-ff-cartographie-container .nova-ff-cartographie__view .nova-donor{font-size:clamp(7px,3.1cqw,10px)}
.nova-ff-cartographie-container .nova-ff-cartographie__view .nova-donor small{font-size:inherit}
.nova-ff-cartographie-container [data-nova-clear]{position:relative}
.nova-ff-cartographie-container [data-nova-clear]::after{content:'';position:absolute;inset:-7px -2px}
.nova-view-arrow::after{inset:-10px -6px}
.nova-ff-cartographie-container .nova-ff-cartographie__error{grid-row:1;margin:0;padding:10px 12px;border:1px solid #84536d50;border-radius:8px;background:#fff;color:#754158;scroll-margin-block:90px;font-size:13px;line-height:1.5}

/* Undo is temporary and occupies the existing clear-button slot. */
.nova-ff-cartographie-container [data-nova-undo]{display:flex;position:relative;align-items:center;justify-content:center;gap:8px;width:100%;min-height:38px;margin-top:14px;padding:9px 12px!important;background:#fff!important;color:#754158!important;border:1px solid #84536d65!important;border-radius:7px!important;font:600 12px/1.4 system-ui!important;cursor:pointer}.nova-ff-cartographie-container [data-nova-undo]::before{content:'↶';font-size:18px;line-height:1}.nova-ff-cartographie-container [data-nova-undo]::after{content:'';position:absolute;inset:-7px -2px}.nova-ff-cartographie-container.nova-layout-compact [data-nova-undo]{min-height:30px;padding:5px 3px!important;gap:4px;font-size:10px!important;border-radius:6px!important}.nova-ff-cartographie-container.nova-layout-compact [data-nova-undo]::before{font-size:14px}.nova-undo-announcement{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
