:root{--ink:#171717;--purple:#171717;--muted:#737373;--line:#dddddd;--paper:#f5f5f5;--shadow:0 8px 30px #17171712}
.sidebar{background:#f5f5f5}
.intro h1{color:#171717;letter-spacing:-1.5px}
.sidebar .filter-card{background:#ffffff;border-color:#dcdcdc;box-shadow:0 3px 10px #17171706}
.sidebar .filter-card.location-tools{border-top-color:#dcdcdc}
.sidebar h2{color:#171717}
button,input,select{accent-color:#171717}
button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline-color:#a3a3a3}
.sidebar button:not(.search-toggle):not(#reset):not(.scope-info),.map-top button,.discipline-pill{transition:background .15s,box-shadow .15s,transform .15s}
.period-shortcuts button,.discipline-summary,#locate-me,#location-submit,#period-open,.view-presets button,.zone-pills button{background:linear-gradient(#ffffff,#f3f3f3);border:1px solid #d8d8d8;color:#171717;box-shadow:0 2px 3px #17171710,inset 0 1px 0 #ffffff}
.sidebar button:not(:disabled):hover,.map-top button:not(:disabled):hover{filter:brightness(.985)}
.period-shortcuts button:not(:disabled):hover,.discipline-summary:hover,#locate-me:hover,#location-submit:hover,#period-open:hover{transform:translateY(-1px);box-shadow:0 3px 7px #17171718}
.period-shortcuts button:active,.discipline-summary:active,#locate-me:active,#location-submit:active,#period-open:active{transform:translateY(1px);box-shadow:inset 0 1px 3px #17171715}
.sidebar input:not([type=checkbox]):not([type=range]),.sidebar select{background:#ffffff;border-color:#d8d8d8;color:#171717;box-shadow:inset 0 1px 2px #17171705}
.category{background:#ffffff;border-color:#e1e1e1;box-shadow:0 1px 3px #17171707}
.category input{accent-color:var(--category)}
.category-symbol,.category-count{background:color-mix(in srgb,var(--category) 9%,white)}
.price-track:before{background:#dfdfdf}
.price-track input::-webkit-slider-thumb{background:#171717;box-shadow:0 2px 5px #17171735}
.price-track input::-moz-range-thumb{background:#171717;box-shadow:0 2px 5px #17171735}
.discipline-dialog{background:#f5f5f5;color:#171717;border-color:#dcdcdc;box-shadow:0 20px 65px #17171730}
.discipline-pill{background:#f1f1f1;border-color:#d9d9d9;color:#6e6e6e;box-shadow:0 1px 2px #1717170a}
.discipline-dialog .discipline-pill[aria-pressed=true],.discipline-dialog .discipline-family-pill[aria-pressed=true],.discipline-expand{background:linear-gradient(#171717,#171717);border-color:#171717;color:#ffffff;box-shadow:inset 0 1px 0 #ffffff20,0 2px 3px #17171712}
.discipline-dialog .discipline-pill[aria-pressed=mixed]{background:#ebebeb;border-color:#8f8f8f;color:#515151;box-shadow:none}
.discipline-family:has([aria-pressed=mixed]) .discipline-expand{background:#ebebeb;border-color:#8f8f8f;color:#515151}
.discipline-family:has([aria-pressed=false]) .discipline-expand{background:#f1f1f1;border-color:#d9d9d9;color:#6e6e6e}
.discipline-detail .discipline-pills{background:#f3f3f3;border-color:#dcdcdc}
.discipline-pill:hover{box-shadow:0 2px 5px #17171720;border-color:#818181}
.cluster-bubble{box-shadow:0 3px 9px #17171730}
.cluster-bubble span{color:#171717}
.sidebar button:disabled{box-shadow:none;transform:none;filter:none}
@media(prefers-reduced-motion:reduce){button{transition:none!important;transform:none!important}}

.period-shortcuts button[aria-pressed="true"]{background:linear-gradient(#171717,#171717);border-color:#171717;color:#ffffff;box-shadow:inset 0 1px 0 #ffffff20,0 2px 4px #17171718}
.period-shortcuts button:disabled,.period-shortcuts button:disabled:hover{background:#f1f1f1;border-color:#e2e2e2;color:#a8a8a8;box-shadow:none;transform:none}

.discipline-toolbar button{color:#171717}

.location-actions{display:flex;gap:7px;align-items:stretch;margin-top:10px}
.location-actions #locate-me,.location-actions #pick-location{flex:1;min-width:0;margin:0;padding:9px 7px;border-radius:20px;font-size:11px;line-height:1.3;border:1px solid #d8d8d8;background:linear-gradient(#ffffff,#f3f3f3);color:#171717;box-shadow:0 2px 3px #17171710}
.location-actions #pick-location[aria-pressed=true]{background:#171717;color:#ffffff;border-color:#171717}
#map.picking-location,#map.picking-location .leaflet-interactive,#map.picking-location .leaflet-marker-icon{cursor:crosshair!important}

/* Pastilles : contour fin, relief doux, contraste adapté au fond. */
.cluster-bubble{padding:2px;border:1px solid #ffffffc9;box-shadow:0 2px 7px #17171726;transition:transform .15s,box-shadow .15s}
.cluster-bubble span{background:linear-gradient(145deg,#ffffff,#f2f2f2);color:#171717;font-weight:700}
.cluster-single .cluster-bubble{padding:0}
.cluster-single .cluster-bubble span{background:transparent;color:#ffffff}
#map.osm-dark .cluster-bubble{border-color:#c5c5c533;box-shadow:0 3px 9px #00000055}
#map.osm-dark .cluster-bubble span{background:linear-gradient(145deg,#414141,#313131);color:#f1f1f1;font-weight:650;text-shadow:0 1px 1px #00000030}
#map.osm-dark .cluster-single .cluster-bubble{padding:2px;background:var(--ring)}
#map.osm-dark .cluster-single .cluster-bubble span{background:#373737;color:#f1f1f1}
.cluster-icon:hover .cluster-bubble{transform:scale(1.08);box-shadow:0 4px 12px #17171740}
#map.osm-dark .cluster-icon:hover .cluster-bubble{box-shadow:0 4px 14px #00000077;border-color:#c5c5c580}

/* Échelle : largeur calculée par Leaflet, graduations et libellé discrets. */
#map .leaflet-control-scale{margin-left:22px!important;margin-bottom:22px!important;pointer-events:none}
#map .leaflet-control-scale .leaflet-control-scale-line{position:relative;box-sizing:border-box;border:0;background:none;padding:0 0 12px;height:29px;overflow:visible;text-align:center;font-family:inherit;font-size:11px;font-weight:650;letter-spacing:.2px;line-height:16px;color:#171717;text-shadow:0 1px 2px #ffffff,0 0 5px #ffffffe0;font-variant-numeric:tabular-nums}
#map .leaflet-control-scale-line:after{content:'';position:absolute;left:0;right:0;bottom:0;height:7px;box-sizing:border-box;border:1.5px solid currentColor;border-top:0;filter:drop-shadow(0 1px 1px #ffffffa0)}
#map.osm-dark .leaflet-control-scale .leaflet-control-scale-line{background:none;color:#e6e6e6;text-shadow:0 1px 3px #202020,0 0 5px #202020}
#map.osm-dark .leaflet-control-scale-line:after{filter:drop-shadow(0 1px 2px #202020)}
