/* Map layout: shared colours and timeline styles are in catnat-shared.css. */
:root{--papier:var(--catnat-surface);--encre:var(--catnat-ink);--gris:var(--catnat-muted);--trait:var(--catnat-line);--focus:var(--catnat-focus);font-family:"Atkinson Hyperlegible","Segoe UI",sans-serif;font-size:100%;line-height:1.45;color:var(--encre);background:var(--papier)}
*{box-sizing:border-box}html{ -webkit-text-size-adjust:100%;text-size-adjust:100%}html,body{height:100%;margin:0}[hidden]{display:none!important}
h1,h2,p{margin:0}h1{font-size:1.1875rem;line-height:1.2;font-weight:650}
a{color:var(--catnat-action)}button,input{font:inherit}button,summary{cursor:pointer}
a,button,input,summary{-webkit-tap-highlight-color:transparent}
button,summary{-webkit-user-select:none;user-select:none;touch-action:manipulation}
a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible,li:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
#carte{height:100%;position:relative}
#map-load-status{position:fixed;z-index:5;left:50%;top:50%;transform:translate(-50%,-50%);width:max-content;max-width:calc(100% - 32px);padding:12px 16px;border:1px solid var(--trait);border-radius:9px;background:var(--papier);color:var(--encre);box-shadow:0 4px 18px var(--catnat-shadow-soft);font-size:.875rem;text-align:center}
#map-retry{display:block;margin:8px auto 0;min-height:44px;padding:8px 16px;border:1px solid var(--catnat-action);border-radius:6px;background:var(--catnat-action);color:var(--catnat-action-ink)}
.recherche input:disabled{opacity:1;color:var(--gris)}
#panneau{position:absolute;z-index:2;left:24px;top:24px;width:350px;max-height:calc(100% - 48px);overflow:auto;padding:16px;border:1px solid var(--trait);border-radius:16px;background:var(--catnat-surface-glass);box-shadow:0 8px 32px var(--catnat-shadow-soft);display:flex;flex-direction:column;gap:12px;scrollbar-width:thin}
.header-row{display:flex;align-items:center;gap:12px}.header-row h1{flex:1;min-width:0}.marque{color:var(--encre);text-decoration:none}
.premium-entry{display:inline-flex;align-items:center;justify-content:center;min-height:32px;padding:4px 8px;border:1px solid var(--catnat-action);border-radius:999px;color:var(--catnat-action);background:var(--papier);font-size:.75rem;font-weight:650;text-decoration:none;white-space:nowrap}.premium-active{display:none}
.info-button{width:44px;height:44px;flex:none;border:1px solid var(--trait);border-radius:50%;background:transparent;color:var(--encre);font-weight:700}
.publication-line{font-size:.875rem;color:var(--gris);margin-top:4px}#publication-date{font-weight:650}
.premium-status{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:6px 0;padding:7px 9px;border:1px solid var(--catnat-action);border-radius:7px;background:var(--papier);color:var(--catnat-action);font-size:.875rem;font-weight:700}.premium-status small{font-size:.6875rem;font-weight:400;margin-left:auto}
.mobile-info,.sheet-state,.sheet-summary,.expand-sheet{display:none}
#map-bottom{display:contents}
.recherche{position:fixed;z-index:6;top:24px;right:72px;width:clamp(220px,20vw,260px);padding:8px;background:var(--papier);border:1px solid var(--trait);border-radius:9px;box-shadow:0 4px 18px var(--catnat-shadow-soft)}
.recherche label{display:block;font-size:.75rem;line-height:1.2;margin-bottom:4px;font-weight:650}
.search-toggle{display:none}
.recherche input{width:100%;height:36px;min-height:36px;padding:8px 10px;border:1px solid var(--catnat-field);border-radius:6px;background:var(--papier);color:var(--encre);font-size:.875rem}
#suggestions{position:absolute;left:8px;right:8px;top:100%;z-index:7;list-style:none;margin:4px 0 0;padding:4px;max-height:230px;overflow:auto;border:1px solid var(--trait);border-radius:9px;background:var(--papier);box-shadow:0 8px 20px var(--catnat-shadow)}
#suggestions li{padding:11px 8px;min-height:44px;cursor:pointer}#suggestions li[aria-selected=true],#suggestions li:hover{background:var(--catnat-hover)}
#suggestions .search-more{min-height:0;cursor:default;font-size:.8125rem;color:var(--gris);background:transparent}
.vue{order:1}#premium-controls{margin-bottom:6px}.onglets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:0 0 8px}
.onglets button{height:64px;border:1px solid var(--catnat-field);border-radius:8px;padding:9px 4px;background:var(--papier);color:var(--encre);display:flex;flex-direction:column;justify-content:center;gap:4px}
.header-block .onglets{margin:8px 0 0}
.onglets strong{font-size:.8125rem}.onglets small{font-size:.625rem;line-height:1.25}.onglets button[aria-pressed=true]{background:var(--catnat-action);color:var(--catnat-action-ink);border-color:var(--catnat-action);box-shadow:0 3px 0 var(--catnat-action)}
.view-explanation{height:4.2em;overflow:auto;margin:8px 0;font-size:.8125rem;line-height:1.4;overflow-anchor:none}
body[data-ready=false] .view-explanation{font-weight:650}body[data-ready=false] .onglets{opacity:.65}
.slider-caption{display:flex;justify-content:space-between;gap:8px;font-size:.75rem;font-variant-numeric:tabular-nums}
.publication-nav{display:grid;grid-template-columns:32px minmax(0,1fr) 32px;align-items:center;gap:6px;height:36px}
.publication-nav button{width:32px;height:32px;padding:0;border:1px solid var(--trait);border-radius:6px;background:var(--papier);color:var(--encre)}
.publication-nav #slider{width:100%;min-width:0;height:36px;margin:0;touch-action:pan-y}
.publication-bounds{display:flex;justify-content:space-between;gap:8px;margin:0 38px;font-size:.625rem;line-height:1.4;font-variant-numeric:tabular-nums}
.decision-history{margin:8px 0;border-top:1px solid var(--trait)}.decision-history>summary{min-height:36px;padding:8px 0;font-size:.875rem;font-weight:600;color:var(--encre)}
#view-count{font-size:.875rem;font-weight:650;margin-bottom:8px}
.territoires{list-style:none;margin:0 0 8px;padding:0;display:flex;flex-wrap:wrap;gap:6px;max-height:112px;overflow:auto;scrollbar-width:thin}
.territoires button{min-height:32px;padding:4px 9px;border:1px solid var(--trait);border-radius:999px;background:var(--papier);color:var(--encre);font-size:.75rem;font-variant-numeric:tabular-nums}.territoires button span{color:var(--gris);margin-left:3px}.territoires button:hover{background:var(--catnat-hover)}
.territory-back{min-height:44px;padding:4px 8px;margin-bottom:6px;border:1px solid var(--trait);border-radius:7px;background:var(--papier);color:var(--encre);font-size:.75rem}
body[data-selected-commune] .view-summary{display:none}
#resultat{order:2;position:relative;border-top:1px solid var(--trait);padding-top:12px}#resultat:empty{display:none}
.sheet-loading{margin-top:6px;font-size:.8125rem;color:var(--gris)}#resultat.sheet-loading-state #sheet-details,#resultat.sheet-loading-state .sheet-summary,#resultat.sheet-loading-state .sheet-state,#resultat.sheet-loading-state .share-commune{display:none}
.sheet-head{display:flex;align-items:flex-start;justify-content:space-between;gap:6px;padding-right:32px}
.commune-nom{font-size:1.125rem;font-weight:700;line-height:1.25}.commune-nom .dept{font-size:.875rem;font-weight:500;color:var(--gris)}
.close-selection{position:absolute;top:0;right:-6px;width:44px;height:44px;border:0;background:transparent;color:var(--encre);font-size:1.625rem}
.share-commune{flex:none;min-height:44px;padding:6px 10px;border:1px solid var(--encre);border-radius:8px;background:var(--papier);color:var(--encre);font-size:.8125rem;font-weight:650}
.share-commune svg{display:none}
.verdict{font-size:.875rem;font-weight:650;margin-top:7px}.synthese,.short-clarification{font-size:.8125rem;margin-top:6px}.short-clarification,.note{color:var(--gris)}
.note,.fraicheur,#share-status{font-size:.8125rem}#share-status:empty{display:none}
.actions{margin-top:12px;display:flex;flex-direction:column;gap:8px}
.commune-premium{display:inline-flex;align-items:center;min-height:44px;font-size:.8125rem;margin-top:6px}
.history-payment-note{font-size:.6875rem;color:var(--gris);margin-top:4px}
.tl-locked{margin-top:10px;padding:0;border:0;background:transparent}.tl-locked-note{margin:0;font-size:.8125rem}.history-link{display:inline-flex;align-items:center;min-height:44px;font-size:.8125rem;text-underline-offset:3px}
#subscription-dock{position:static;width:auto;height:auto;max-height:none;margin:10px 0 0;padding:4px 8px 8px;border:1px solid var(--catnat-action);border-radius:8px;background:var(--papier)}
.subscription-terms{font-size:.6875rem;color:var(--gris);line-height:1.45}.alert-details summary{display:flex;align-items:center;gap:4px;min-height:44px;padding:0;font-size:.8125rem;font-weight:650;color:var(--encre);line-height:1.35;list-style:none}.alert-details summary::-webkit-details-marker{display:none}.alert-disclosure{flex:none}.alert-details[open] .alert-disclosure{transform:rotate(90deg)}.alert-details .subscription-terms{margin-bottom:6px}
.subscription-billing{margin:0 0 6px;font-size:.6875rem;line-height:1.35;color:var(--gris)}
#subscription-dock .bouton{min-height:44px;padding:8px;font-size:.8125rem}
#map-legend{position:absolute;z-index:2;right:24px;bottom:24px;max-width:calc(100% - 420px);display:flex;align-items:center;gap:8px;padding:4px 10px;border:1px solid var(--trait);border-radius:9px;background:var(--catnat-surface);color:var(--catnat-ink);box-shadow:0 2px 10px var(--catnat-shadow-soft)}
.legende{list-style:none;display:flex;flex-wrap:wrap;gap:4px 8px;margin:0;padding:0;font-size:.875rem}.legende li{display:flex;align-items:center;gap:4px;min-height:28px}.legende i{width:12px;height:12px;border-radius:3px;flex:none}
.legende button{display:inline-flex;align-items:center;gap:4px;min-height:36px;padding:0 4px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--encre);font:inherit;white-space:nowrap}.legende button:hover{background:var(--catnat-hover)}.legende button[aria-pressed=true]{border-color:var(--catnat-axis);background:var(--catnat-hover);box-shadow:inset 0 -3px var(--encre)}
#hover-name{position:fixed;z-index:4;max-width:220px;padding:6px 10px;border:1px solid var(--trait);border-radius:7px;background:var(--catnat-overlay);color:var(--catnat-action-ink);font-size:.8125rem;box-shadow:0 2px 8px var(--catnat-shadow-soft);pointer-events:none}
.maplibregl-ctrl-top-right{top:24px;right:24px}.maplibregl-ctrl-top-right .maplibregl-ctrl{margin:0 0 8px}.maplibregl-ctrl-group{border-radius:9px;background:var(--papier)}.maplibregl-ctrl-group button{width:36px;height:36px;color:var(--encre)}.map-home-group button{display:flex;align-items:center;justify-content:center}.map-home-group svg{width:18px;height:18px}
html[data-theme=dark] .maplibregl-ctrl-icon{filter:invert(1)}
dialog{width:min(540px,calc(100% - 28px));max-height:85svh;padding:22px;border:1px solid var(--trait);border-radius:16px;background:var(--papier);color:var(--encre)}dialog::backdrop{background:var(--catnat-backdrop)}dialog h2{font-size:1.3125rem;margin:8px 44px 20px 0}dialog p{margin:14px 0;font-size:.9375rem}#info-close{position:absolute;right:10px;top:10px;width:44px;height:44px;border:0;background:transparent;font-size:1.5rem;color:var(--encre)}
.theme-controls{display:flex;flex-wrap:wrap;gap:8px}.theme-controls button{min-height:44px;padding:8px 12px;border:1px solid var(--trait);border-radius:8px;background:var(--papier);color:var(--encre);font:inherit;font-size:.875rem}.theme-controls button:hover{background:var(--catnat-hover)}.theme-controls button[aria-pressed=true]{border-color:var(--encre);box-shadow:inset 0 -2px var(--encre)}
.info-views{padding-left:20px;font-size:.9375rem}.info-views li{margin:8px 0}
@media(min-width:761px){body[data-premium=true] .header-block{position:sticky;top:-16px;z-index:5;background:var(--papier);padding-bottom:6px}}
@media(max-width:760px){
 html,body{height:var(--map-viewport-height,100svh);overflow:hidden}body{position:relative;width:100%;max-width:100%}#carte{height:100%;width:100%}#panneau{display:contents}
 .header-block,#map-bottom{position:absolute;z-index:2;background:var(--papier)}
 #map-load-status{position:absolute}
 .header-block{top:0;left:0;right:0;padding:calc(4px + env(safe-area-inset-top,0px)) max(8px,env(safe-area-inset-right,0px)) 4px max(8px,env(safe-area-inset-left,0px));border-bottom:1px solid var(--trait)}.header-row{min-height:32px;gap:6px}.header-row h1{font-size:.875rem;line-height:1.2}.info-button{width:32px;height:32px;font-size:.875rem}.premium-entry{font-size:.6875rem;padding:4px 7px}.premium-active{display:inline-flex;align-items:center;min-height:32px;font-size:.625rem;font-weight:650;color:var(--catnat-action);white-space:nowrap}
 .header-block .publication-line,.header-block .premium-status{display:none}.mobile-info{display:block}
 .recherche{position:absolute;top:calc(var(--map-header-height,41px) + 8px);left:max(8px,env(safe-area-inset-left,0px));right:calc(48px + env(safe-area-inset-right,0px));width:auto;max-width:280px;padding:0;border:0;box-shadow:none}.recherche label{display:none}.recherche input{height:36px;min-height:36px;padding:6px 9px;font-size:max(1rem,16px);border-radius:8px}#suggestions{left:0;right:0;max-height:min(230px,calc(var(--map-viewport-height,100svh) - var(--map-header-height,41px) - 52px))}
 body[data-selected-commune]:not(.search-open) .recherche{width:32px;right:auto}body[data-selected-commune]:not(.search-open) .recherche input,body[data-selected-commune]:not(.search-open) #suggestions{display:none}
 body[data-selected-commune]:not(.search-open) .search-toggle{display:flex;align-items:center;justify-content:center;width:32px;height:36px;padding:7px;border:1px solid var(--trait);border-radius:8px;background:var(--papier);color:var(--encre)}.search-toggle svg{width:18px;height:18px}
 .maplibregl-ctrl-top-right{right:max(8px,env(safe-area-inset-right,0px))}.maplibregl-ctrl-group button{width:32px;height:32px}.maplibregl-ctrl-group .maplibregl-ctrl-icon{background-size:18px 18px}.map-home-group svg{width:16px;height:16px}.maplibregl-ctrl-top-right .maplibregl-ctrl{margin-bottom:6px}
 #map-legend{position:absolute;top:calc(var(--map-header-height,41px) + 52px);bottom:auto;left:max(8px,env(safe-area-inset-left,0px));right:auto;max-width:calc(100% - 56px - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px));padding:2px 4px;gap:0}
 body[data-selected-commune]:not(.search-open) #map-legend{top:calc(var(--map-header-height,41px) + 8px);left:calc(48px + env(safe-area-inset-left,0px));max-width:calc(100% - 96px - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px))}
 #map-legend{min-height:52px;width:calc(100% - 56px - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px))}
 #map-legend .legende{position:relative;display:flex;flex-wrap:wrap;align-content:center;align-items:center;width:100%;font-size:.6875rem;gap:0 4px;min-height:46px}
 .legende .legend-title{flex-basis:100%;min-height:20px}.legende .legend-neutral{position:absolute;top:0;right:0;min-height:20px;font-size:.625rem;color:var(--gris)}
 .legende li{min-height:22px;white-space:nowrap}.legende button{min-height:32px;padding:0 2px}.legende i{width:9px;height:9px}
 #map-bottom{display:flex;flex-direction:column;bottom:0;left:env(safe-area-inset-left,0px);right:env(safe-area-inset-right,0px);max-height:max(100px,calc(var(--map-viewport-height,100svh) - var(--map-tools-bottom,210px) - 96px));border:1px solid var(--trait);border-radius:14px 14px 0 0;padding-bottom:env(safe-area-inset-bottom,0px);overflow:hidden}
 body:not([data-premium=true]):not([data-selected-commune]) #map-bottom{display:none}
 .vue{order:0;position:static;flex:none;padding:5px 10px 3px;border:0;border-radius:0;background:transparent;max-height:none;overflow:visible}
 body:not([data-premium=true]) .vue{display:none}
 #premium-controls{display:block;margin:0}.view-summary,.publication-bounds{display:none}
 .header-block .onglets{margin:4px 0 0;gap:4px}.onglets button{height:44px;padding:4px 2px;border-radius:6px}.onglets small{display:none}
 .view-explanation{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);margin:0}
 .slider-caption{font-size:.6875rem;line-height:1.3}.publication-nav{height:36px}
 #resultat{order:1;position:relative;flex:0 1 auto;min-height:0;max-height:none;padding:2px 10px;border:0;border-top:1px solid var(--trait);border-radius:0;display:flex;flex-direction:column;overflow:hidden;overscroll-behavior:contain}
 .sheet-head{min-height:44px;padding-right:36px;align-items:center;gap:0}.sheet-head .commune-nom{flex:1;min-width:0;font-size:.9375rem;overflow-wrap:anywhere}.sheet-head .share-commune{display:none;align-items:center;justify-content:center;width:44px;height:44px;padding:10px;border:0;background:transparent}.share-commune svg{display:block;width:20px;height:20px}.share-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.close-selection{right:4px;top:6px}.sheet-state{display:inline;font-size:.75rem;font-weight:400;margin-left:6px}
 .sheet-summary{display:block;font-size:.75rem;line-height:1.3;margin-bottom:4px;color:var(--encre)}.sheet-summary.has-deadline{color:var(--catnat-alert);font-weight:650}
 .expand-sheet{display:flex;align-items:center;justify-content:center;flex:none;width:44px;height:44px;padding:10px;border:0;background:transparent;color:var(--encre)}.expand-sheet svg{width:20px;height:20px}body.sheet-expanded .expand-sheet svg{transform:rotate(180deg)}.sheet-details{display:none}
 body.sheet-expanded #resultat{height:calc(var(--map-viewport-height,100svh) * .55);min-height:0;overflow:auto;padding-bottom:8px}
 body.sheet-expanded .sheet-details{display:block}body.sheet-expanded .sheet-state,body.sheet-expanded .sheet-summary{display:none}body.sheet-expanded .share-commune{display:inline-flex}
 .sheet-details #subscription-dock{display:none}body.sheet-expanded .sheet-details #subscription-dock:not([hidden]){display:block}
 .commune-nom{font-size:1rem}.verdict{font-size:.8125rem}.alert-details summary{font-size:.75rem}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
