.impl-root{--impl-title:var(--font-parisine,"Helvetica Neue", Arial, sans-serif);--impl-body:var(--font-geist,system-ui, sans-serif);--impl-mono:var(--font-geist-mono,ui-monospace, Menlo, monospace);--impl-shadow:0 1px 2px #0f0d0a0a, 0 8px 24px -16px #0f0d0a2e;background:var(--bg-sunken);min-height:calc(100vh - 64px);color:var(--fg-1);font-family:var(--impl-body);flex-direction:column;display:flex}.impl-top{border-bottom:1px solid var(--border-subtle);background:var(--bg-canvas);gap:10px;padding:14px 16px 12px;display:grid}.impl-kicker{font-family:var(--impl-body);letter-spacing:.02em;text-transform:uppercase;color:var(--teal-500);margin:0;font-size:12.5px;font-weight:600}.impl-title{font-family:var(--impl-title);letter-spacing:-.01em;color:var(--fg-1);margin:2px 0 0;font-size:24px;font-weight:700;line-height:1.1}.impl-title small{font-family:var(--impl-body);color:var(--fg-3);margin-top:4px;font-size:14px;font-weight:400;display:block}.impl-search{position:relative}.impl-search input{background:var(--bg-surface);border:1px solid var(--border-default);width:100%;font:500 16px var(--impl-body);color:var(--fg-1);transition:border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);border-radius:10px;outline:none;padding:13px 44px 13px 14px}.impl-search input::placeholder{color:var(--fg-muted)}.impl-search input:focus{border-color:var(--teal-500);box-shadow:var(--ring-focus)}.impl-search .impl-search-ico{color:var(--fg-3);pointer-events:none;position:absolute;top:50%;right:14px;transform:translateY(-50%)}.impl-suggest{z-index:30;background:var(--bg-surface);border:1px solid var(--border-default);border-radius:10px;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow:hidden;box-shadow:0 12px 32px -12px #0f0d0a40}.impl-suggest button{text-align:left;border:0;border-bottom:1px solid var(--border-subtle);cursor:pointer;width:100%;font:500 14px var(--impl-body);color:var(--fg-1);background:0 0;padding:11px 14px;display:block}.impl-suggest button:last-child{border-bottom:0}.impl-suggest button:hover,.impl-suggest button.is-active{background:var(--bg-brand-soft)}.impl-suggest small{font:400 11px var(--impl-mono);color:var(--fg-3);margin-top:2px;display:block}.impl-controls{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.impl-seg{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:9px;padding:3px;display:inline-flex}.impl-seg button{cursor:pointer;font:600 13px var(--impl-body);color:var(--fg-3);min-height:34px;transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);background:0 0;border:0;border-radius:7px;padding:7px 11px}.impl-seg button:hover{color:var(--fg-1)}.impl-seg button.is-on{background:var(--teal-500);color:#fff}.impl-body{flex-direction:column;flex:1;min-height:0;display:flex}.impl-map-wrap{background:var(--cream-200);height:52vh;min-height:320px;position:relative}.impl-map-wrap .impl-map{width:100%;height:100%;position:absolute;inset:0}.impl-map-legend{z-index:5;border:1px solid var(--border-subtle);font:400 10.5px var(--impl-mono);color:var(--fg-3);background:#fffffff0;border-radius:9px;gap:4px;max-width:230px;padding:8px 10px;display:grid;position:absolute;bottom:10px;left:10px}.impl-map-legend i{vertical-align:-1px;border-radius:3px;width:10px;height:10px;margin-right:6px;display:inline-block}.impl-map-legend .dot{border:1.5px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #0003}.impl-map-loading{z-index:6;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#f5f5f58c;place-items:center;display:grid;position:absolute;inset:0}.impl-map-loading div{background:var(--bg-surface);border:1px solid var(--border-subtle);font:500 14px var(--impl-body);color:var(--fg-1);box-shadow:var(--impl-shadow);border-radius:10px;padding:12px 16px}.impl-map-empty{z-index:4;pointer-events:none;place-items:center;padding:20px;display:grid;position:absolute;inset:0}.impl-map-empty div{border:1px solid var(--border-subtle);max-width:360px;font:400 14px/1.45 var(--impl-body);color:var(--fg-3);text-align:center;background:#fffffff2;border-radius:12px;padding:16px 18px}.impl-map-empty strong{color:var(--fg-1);margin-bottom:4px;font-size:15px;font-weight:600;display:block}.impl-panel{align-content:start;gap:14px;padding:16px;display:grid}.impl-score{background:var(--bg-surface);border:1px solid var(--border-subtle);box-shadow:var(--impl-shadow);border-radius:14px;grid-template-columns:auto 1fr;align-items:center;gap:14px;padding:16px;display:grid}.impl-score-num{width:82px;height:82px;font:700 30px var(--impl-mono);color:#fff;letter-spacing:-.02em;border-radius:50%;place-items:center;display:grid}.impl-score-num small{opacity:.85;margin-top:-4px;font-size:11px;font-weight:500}.impl-score h2{font:700 19px/1.15 var(--impl-title);margin:0}.impl-score p{font:400 13px/1.4 var(--impl-body);color:var(--fg-3);margin:5px 0 0}.impl-score .impl-mono{font:400 11px var(--impl-mono);color:var(--fg-3);margin-top:6px}.impl-kpis{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.impl-kpi{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:11px;padding:11px 12px}.impl-kpi b{font:700 21px var(--impl-mono);letter-spacing:-.02em;color:var(--fg-1);display:block}.impl-kpi span{font:500 12px var(--impl-body);color:var(--fg-2);margin-top:2px;display:block}.impl-kpi em{font:400 10.5px var(--impl-mono);color:var(--fg-3);margin-top:4px;font-style:normal;display:block}.impl-block{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:12px;padding:14px}.impl-block h3{font:600 15px var(--impl-body);color:var(--fg-1);margin:0 0 10px}.impl-fact{border-top:1px solid var(--border-subtle);padding:9px 0}.impl-fact:first-of-type{border-top:0;padding-top:0}.impl-fact-head{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.impl-fact-head span{font:600 13px var(--impl-body);color:var(--fg-1)}.impl-fact-head b{font:600 10.5px var(--impl-mono);letter-spacing:.04em;white-space:nowrap}.impl-bar{background:var(--bg-sunken);border-radius:4px;height:6px;margin:7px 0 6px;overflow:hidden}.impl-bar i{border-radius:4px;height:100%;display:block}.impl-fact p{font:400 12.5px/1.45 var(--impl-body);color:var(--fg-3);margin:0}.impl-cab{border-top:1px solid var(--border-subtle);cursor:pointer;grid-template-columns:1fr auto;gap:4px 10px;padding:10px 0;display:grid}.impl-cab:first-of-type{border-top:0;padding-top:0}.impl-cab:hover .impl-cab-nom{color:var(--teal-500)}.impl-cab-nom{font:600 13.5px var(--impl-body);color:var(--fg-1)}.impl-cab-meta{font:400 11px var(--impl-mono);color:var(--fg-3);flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:6px 12px;display:flex}.impl-cab-dist{font:500 11.5px var(--impl-mono);color:var(--fg-3);white-space:nowrap}.impl-badge{font:600 9.5px var(--impl-mono);letter-spacing:.05em;border:1px solid var(--border-default);color:var(--fg-3);background:var(--bg-canvas);border-radius:5px;padding:2px 6px;display:inline-block}.impl-badge.centre{color:var(--danger);background:var(--danger-soft);border-color:#c23b2a59}.impl-badge.hopital{color:var(--fg-3)}.impl-badge.rdv{color:var(--success);background:var(--success-soft);border-color:#1f857359}.impl-badge.rdv.tendu{color:#8a5e0c;background:var(--warning-soft);border-color:#d89a1f73}.impl-badge.rdv.sature{color:var(--danger);background:var(--danger-soft);border-color:#c23b2a59}.impl-more{background:var(--bg-surface);border:1px solid var(--border-default);cursor:pointer;font:600 12.5px var(--impl-body);color:var(--teal-600);border-radius:8px;width:100%;margin-top:8px;padding:9px 12px}.impl-more:hover{border-color:var(--teal-500)}.impl-history{flex-wrap:wrap;gap:6px;display:flex}.impl-chip{background:var(--bg-surface);border:1px solid var(--border-default);cursor:pointer;font:600 12px var(--impl-body);color:var(--fg-1);border-radius:999px;align-items:center;gap:7px;max-width:100%;padding:6px 10px 6px 7px;display:inline-flex}.impl-chip.is-on{border-color:var(--teal-500);box-shadow:0 0 0 1px var(--teal-500) inset}.impl-chip i{width:22px;height:22px;font:700 10px var(--impl-mono);color:#fff;border-radius:50%;flex-shrink:0;place-items:center;display:grid}.impl-chip span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.impl-cta{background:var(--teal-900);color:#fff;border-radius:12px;padding:16px}.impl-cta h3{font:700 16px var(--impl-title);color:#fff;margin:0}.impl-cta p{font:400 13px/1.45 var(--impl-body);color:#ffffffc7;margin:6px 0 12px}.impl-cta a{width:100%;min-height:44px;color:var(--teal-700);font:700 14px var(--impl-body);background:#fff;border-radius:9px;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.impl-cta a:hover{background:var(--bg-brand-soft)}.impl-method{font:400 11.5px/1.5 var(--impl-body);color:var(--fg-3)}.impl-method b{color:var(--fg-1);font-weight:600}.impl-warn{background:var(--warning-soft);font:500 12.5px/1.4 var(--impl-body);color:var(--fg-1);border:1px solid #d89a1f66;border-radius:9px;padding:9px 11px}.impl-error{background:var(--danger-soft);font:500 13px var(--impl-body);color:var(--danger);border:1px solid #c23b2a66;border-radius:9px;padding:10px 12px}.impl-root .maplibregl-popup-content{background:var(--bg-surface);color:var(--fg-1);border:1px solid var(--border-subtle);font:400 12.5px/1.4 var(--impl-body);border-radius:10px;max-width:280px;padding:12px 14px;box-shadow:0 12px 32px -12px #0f0d0a4d}.impl-root .maplibregl-popup-close-button{color:var(--fg-3);padding:2px 6px;font-size:18px}.impl-root .maplibregl-popup-anchor-bottom .maplibregl-popup-tip{border-top-color:var(--bg-surface)}.impl-root .maplibregl-popup-anchor-top .maplibregl-popup-tip{border-bottom-color:var(--bg-surface)}.impl-root .maplibregl-ctrl-group{border-radius:8px;box-shadow:0 2px 8px #00000026}.impl-popup h4{font:600 14px var(--impl-body);color:var(--fg-1);margin:0 0 4px;padding-right:14px}.impl-popup .impl-mono{font:400 11px var(--impl-mono);color:var(--fg-3)}.impl-popup ul{color:var(--fg-3);margin:6px 0 0;padding:0 0 0 14px}.impl-popup a{color:var(--teal-500);font-weight:600}@media (min-width:900px){.impl-top{grid-template-columns:minmax(220px,1fr) minmax(320px,1.4fr) auto;align-items:center;gap:16px;padding:14px 22px}.impl-body{flex-direction:row}.impl-map-wrap{flex:1;height:auto;min-height:calc(100vh - 170px)}.impl-panel{border-left:1px solid var(--border-subtle);background:var(--bg-canvas);flex-shrink:0;width:400px;max-height:calc(100vh - 170px);overflow-y:auto}}