@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:200 800;font-stretch:100%;font-display:swap;src:url(../media/033400d475fad6b1-s.11x_mcju407z-.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:200 800;font-stretch:100%;font-display:swap;src:url(../media/26daee0352f50a5f-s.456c9vb2_utt8.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:200 800;font-stretch:100%;font-display:swap;src:url(../media/017d9bea37084d9b-s.p.2fl0vhx7oyatw.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Bricolage Grotesque Fallback;src:local(Arial);ascent-override:88.21%;descent-override:25.61%;line-gap-override:0.0%;size-adjust:105.43%}._0pVUyW_className{font-family:Bricolage Grotesque,Bricolage Grotesque Fallback;font-style:normal}._0pVUyW_variable{--font-display:"Bricolage Grotesque", "Bricolage Grotesque Fallback"}
@font-face{font-family:Instrument Sans;font-style:normal;font-weight:400 700;font-stretch:100%;font-display:swap;src:url(../media/c7f47671e39f7787-s.3wn_q526zaolu.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Sans;font-style:normal;font-weight:400 700;font-stretch:100%;font-display:swap;src:url(../media/f06bf9da926bae75-s.p.3uuun_-7zsf1g.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Instrument Sans Fallback;src:local(Arial);ascent-override:94.42%;descent-override:24.33%;line-gap-override:0.0%;size-adjust:102.74%}.tyqFTq_className{font-family:Instrument Sans,Instrument Sans Fallback;font-style:normal}.tyqFTq_variable{--font-body:"Instrument Sans", "Instrument Sans Fallback"}
*,:before,:after{box-sizing:border-box}body{margin:0}.app-loading{background:var(--bg);height:100%}.row>.field{min-width:0}.field select{width:100%}:root{--bg:#f4f7f5;--surface:#fff;--ink:#14302b;--muted:#5a6f69;--line:#d9e2de;--chip:#e9efec;--sea:#bfdfe2;--land:#e8ecda;--coast:#93b9b1;--road:#fff;--road-minor:#f6f7ee;--label:#4d635d;--accent:#d6336c;--accent-ink:#fff;--live:#e5484d;--pending:#7d8b87;--c-musique:#6c45d6;--c-soiree:#d6336c;--c-sport:#1d74c4;--c-culture:#b07405;--c-gastro:#21894f;--c-famille:#d4561c;--f-display:var(--font-display), "Avenir Next", "Segoe UI", system-ui, sans-serif;--f-body:var(--font-body), "Helvetica Neue", Arial, system-ui, sans-serif;--shadow:0 1px 2px #14302b14, 0 6px 20px #14302b1a;--demo-bg:#fff1cc;--demo-ink:#5c3d00;--demo-line:#efd27d;--demo-badge:#9a6400;--demo-badge-ink:#fff}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0d191b;--surface:#132326;--ink:#e4eeeb;--muted:#93a8a2;--line:#24383a;--chip:#1b2f31;--sea:#0b2830;--land:#1c322e;--coast:#2f504b;--road:#3b5752;--road-minor:#2a433f;--label:#a9bdb7;--accent:#f0588e;--accent-ink:#1a0710;--live:#ff6b6f;--pending:#8fa09b;--c-musique:#9d7ff2;--c-soiree:#f0588e;--c-sport:#4ea5f0;--c-culture:#e3a935;--c-gastro:#45ba7d;--c-famille:#f08049;--shadow:0 1px 2px #0000004d, 0 8px 24px #00000059;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--demo-bg:#2f2610;--demo-ink:#f5dc9c;--demo-line:#4d3d15;--demo-badge:#f0b43c;--demo-badge-ink:#2a1d00}}:root[data-theme=dark]{--bg:#0d191b;--surface:#132326;--ink:#e4eeeb;--muted:#93a8a2;--line:#24383a;--chip:#1b2f31;--sea:#0b2830;--land:#1c322e;--coast:#2f504b;--road:#3b5752;--road-minor:#2a433f;--label:#a9bdb7;--accent:#f0588e;--accent-ink:#1a0710;--live:#ff6b6f;--pending:#8fa09b;--c-musique:#9d7ff2;--c-soiree:#f0588e;--c-sport:#4ea5f0;--c-culture:#e3a935;--c-gastro:#45ba7d;--c-famille:#f08049;--shadow:0 1px 2px #0000004d, 0 8px 24px #00000059;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--demo-bg:#2f2610;--demo-ink:#f5dc9c;--demo-line:#4d3d15;--demo-badge:#f0b43c;--demo-badge-ink:#2a1d00}html,body{height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:15px;line-height:1.45;overflow:hidden}button,input,select{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.shell{flex-direction:column;height:100%;display:flex}.shell>.app{flex:1;height:auto;min-height:0}.demo-banner{background:var(--demo-bg);color:var(--demo-ink);border-bottom:1px solid var(--demo-line);text-align:center;z-index:4;flex:none;justify-content:center;align-items:center;gap:10px;padding:8px 16px;font-size:13.5px;line-height:1.35;display:flex}.demo-banner b{font-weight:700}.demo-badge{background:var(--demo-badge);color:var(--demo-badge-ink);font-family:var(--f-display);letter-spacing:.08em;text-transform:uppercase;border-radius:6px;flex:none;padding:3px 8px;font-size:11.5px;font-weight:700}.app{grid-template-rows:auto minmax(0,1fr);grid-template-columns:400px minmax(0,1fr);height:100%;display:grid}.top,.scroll{background:var(--surface);border-right:1px solid var(--line);z-index:2;grid-column:1;min-width:0}.top{grid-row:1}.scroll{grid-row:2}.mapwrap{grid-area:1/2/3;min-width:0;min-height:0;position:relative}#map{background:var(--sea);position:absolute;inset:0}.top{border-bottom:1px solid var(--line);flex-direction:column;gap:12px;padding:18px 20px 12px;display:flex}.brand{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.brand h1{font-family:var(--f-display);letter-spacing:-.02em;text-wrap:balance;margin:0;font-size:26px;font-weight:750;line-height:1.02}.brand h1 em{color:var(--accent);font-style:normal}.tagline{color:var(--ink);margin-top:4px;font-size:14px;font-weight:500}.btn-add{background:var(--accent);color:var(--accent-ink);white-space:nowrap;border:0;border-radius:999px;flex:none;align-items:center;gap:6px;padding:9px 14px;font-size:14px;font-weight:600;display:flex}.btn-add svg{width:16px;height:16px}.seg{background:var(--chip);scrollbar-width:none;border-radius:12px;gap:4px;padding:3px;display:flex;overflow-x:auto}.seg::-webkit-scrollbar{display:none}.seg button{color:var(--muted);white-space:nowrap;background:0 0;border:0;border-radius:9px;flex:1 0 auto;justify-content:center;align-items:center;gap:6px;padding:7px 10px;font-size:13.5px;font-weight:500;display:flex}.seg button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:var(--shadow);font-weight:600}.seg .dot-live{background:var(--live);border-radius:50%;width:7px;height:7px}.chips{scrollbar-width:none;gap:6px;padding-bottom:2px;display:flex;overflow-x:auto}.chips::-webkit-scrollbar{display:none}.chip{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;flex:none;align-items:center;gap:6px;padding:5px 11px 5px 8px;font-size:13px;display:flex}.chip i{background:var(--c);border-radius:50%;width:10px;height:10px}.chip[aria-pressed=false]{color:var(--muted);background:0 0}.chip[aria-pressed=false] i{box-shadow:inset 0 0 0 1.5px var(--c);background:0 0}.scroll{overscroll-behavior:contain;min-height:0;overflow-y:auto}.summary{color:var(--muted);font-variant-numeric:tabular-nums;padding:12px 20px 4px;font-size:13px}.group h2{font-family:var(--f-display);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);align-items:center;gap:8px;margin:0;padding:16px 20px 6px;font-size:13px;font-weight:650;display:flex}.group h2 .dot-live{background:var(--live);border-radius:50%;width:8px;height:8px;animation:1.6s ease-in-out infinite blink}.list{margin:0;padding:0 10px;list-style:none}.item{text-align:left;background:0 0;border:0;border-radius:12px;grid-template-columns:70px 1fr;gap:12px;width:100%;padding:10px;display:grid}.item:hover,.item[aria-current=true]{background:var(--chip)}.time{font-variant-numeric:tabular-nums;font-size:15px;font-weight:600;line-height:1.2}.time small{color:var(--muted);font-size:12px;font-weight:500;display:block}.time.is-live{color:var(--live);white-space:nowrap}.item-body{min-width:0}.item-title{font-size:15.5px;font-weight:600;line-height:1.25}.item-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:4px 8px;margin-top:3px;font-size:13px;display:flex}.cat{color:var(--c);align-items:center;gap:5px;font-weight:600;display:inline-flex}.cat i{background:var(--c);border-radius:50%;width:8px;height:8px}.tag{background:var(--chip);color:var(--muted);border-radius:6px;padding:1px 7px;font-size:11.5px;font-weight:500}.tag.wait{box-shadow:inset 0 0 0 1px var(--pending);color:var(--pending);background:0 0}.empty{color:var(--muted);padding:28px 20px}.empty b{color:var(--ink);font-family:var(--f-display);margin-bottom:4px;font-size:17px;display:block}.foot{color:var(--muted);border-top:1px solid var(--line);margin-top:12px;padding:16px 20px 22px;font-size:12px}.detail{flex-direction:column;gap:14px;padding:14px 20px 24px;display:flex}.back{background:var(--chip);border:0;border-radius:999px;align-self:flex-start;align-items:center;gap:4px;padding:6px 12px 6px 9px;font-size:13px;font-weight:500;display:flex}.back svg{width:16px;height:16px}.detail h2{font-family:var(--f-display);letter-spacing:-.02em;text-wrap:balance;margin:0;font-size:28px;font-weight:720;line-height:1.05}.facts{grid-template-columns:auto 1fr;gap:8px 12px;margin:0;font-size:14.5px;display:grid}.facts dt{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;padding-top:2px;font-size:12px}.facts dd{font-variant-numeric:tabular-nums;margin:0}.live-pill{background:color-mix(in srgb,var(--live) 14%,transparent);color:var(--live);border-radius:999px;align-items:center;gap:6px;padding:3px 9px;font-size:12.5px;font-weight:600;display:inline-flex}.live-pill i{background:var(--live);border-radius:50%;width:7px;height:7px;animation:1.6s ease-in-out infinite blink}.desc{max-width:60ch;margin:0}.source{background:var(--chip);color:var(--muted);border-radius:12px;align-items:flex-start;gap:10px;padding:12px;font-size:13px;display:flex}.source svg{width:18px;height:18px;color:var(--ink);flex:none;margin-top:1px}.source b{color:var(--ink);font-weight:600}.actions{flex-wrap:wrap;gap:8px;display:flex}.actions a,.actions button{border-radius:999px;align-items:center;gap:6px;padding:9px 15px;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.actions .primary{background:var(--ink);color:var(--surface);border:0}.actions .ghost{border:1px solid var(--line);color:var(--ink);background:0 0}.leaflet-container{background:var(--sea);font-family:var(--f-body)}path.land{fill:var(--land);fill-opacity:1;stroke:var(--coast);stroke-width:1.2px}path.road-major{stroke:var(--road);stroke-width:3.2px;fill:none}path.road-minor{stroke:var(--road-minor);stroke-width:1.6px;fill:none}.z-low path.road-minor{display:none}.z-low path.road-major{stroke-width:2.2px}.place-label{pointer-events:none}.place-label span{white-space:nowrap;letter-spacing:.08em;text-transform:uppercase;color:var(--label);text-shadow:0 0 3px var(--land),0 0 3px var(--land),0 0 2px var(--land);font-size:11px;font-weight:600;position:absolute;transform:translate(-50%,-50%)}.place-label.town span{font-family:var(--f-display);letter-spacing:.04em;color:var(--ink);font-size:14px}.place-label.sea span{text-transform:none;letter-spacing:.02em;color:color-mix(in srgb,var(--label) 70%,var(--sea));text-shadow:none;font-size:12px;font-style:italic;font-weight:500}.z-low .place-label.tier2{display:none}.pin{background:var(--c);width:30px;height:30px;box-shadow:0 0 0 2.5px var(--surface),0 3px 8px #00000040;border-radius:50%;place-items:center;transition:transform .15s;display:grid;position:relative}.pin svg{stroke:#fff;fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px}.pin.live:after{content:"";border:2px solid var(--live);border-radius:50%;animation:1.8s ease-out infinite ring;position:absolute;inset:-6px}.pin.live:before{content:"";background:var(--live);width:10px;height:10px;box-shadow:0 0 0 2px var(--surface);border-radius:50%;position:absolute;top:-3px;right:-3px}.pin.pending{background:var(--surface);box-shadow:0 0 0 2px var(--pending),0 3px 8px #0003}.pin.pending svg{stroke:var(--pending)}.pin.sel{z-index:5;transform:scale(1.28)}.leaflet-marker-icon:hover .pin{transform:scale(1.15)}.leaflet-marker-icon.ev{background:0 0;border:0}.leaflet-control-zoom a{background:var(--surface)!important;color:var(--ink)!important;border-color:var(--line)!important}.leaflet-control-attribution{font-size:10px;background:color-mix(in srgb,var(--surface) 80%,transparent)!important;color:var(--muted)!important}.leaflet-control-attribution a{color:var(--muted)!important}.leaflet-tooltip.tip{background:var(--surface);color:var(--ink);box-shadow:var(--shadow);font-size:12.5px;font-weight:600;font-family:var(--f-body);border:0;border-radius:8px;padding:5px 9px}.leaflet-tooltip.tip:before{display:none}.leaflet-tooltip.tip small{color:var(--muted);font-weight:500;display:block}.legend-now{z-index:500;background:var(--surface);box-shadow:var(--shadow);color:var(--muted);font-variant-numeric:tabular-nums;border-radius:10px;padding:7px 11px;font-size:12.5px;position:absolute;top:12px;left:12px}.legend-now b{color:var(--ink)}dialog{background:var(--surface);width:min(460px,100vw - 32px);max-height:calc(100% - 32px);color:var(--ink);border:0;border-radius:18px;padding:0;box-shadow:0 20px 60px #00000059}dialog::backdrop{background:#08141673}.form{flex-direction:column;gap:14px;padding:20px;display:flex}.form h2{font-family:var(--f-display);letter-spacing:-.01em;margin:0;font-size:22px}.form p.hint{color:var(--muted);margin:-6px 0 0;font-size:13px}.field{flex-direction:column;gap:5px;display:flex}.field label{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-size:12px;font-weight:600}.field input,.field select{border:1px solid var(--line);background:var(--bg);border-radius:10px;min-width:0;padding:9px 11px}.row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.or{color:var(--muted);align-items:center;gap:10px;font-size:12px;display:flex}.or:before,.or:after{content:"";background:var(--line);flex:1;height:1px}.ai-note{color:var(--muted);background:var(--chip);border-radius:10px;padding:9px 11px;font-size:12.5px}.ai-note[hidden]{display:none}.form-actions{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.form-actions button{border-radius:999px;padding:9px 16px;font-weight:600}.form-actions .cancel{border:1px solid var(--line);background:0 0}.form-actions .submit{background:var(--accent);color:var(--accent-ink);border:0}.toast{left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));opacity:0;background:var(--ink);color:var(--surface);z-index:1000;pointer-events:none;border-radius:12px;max-width:calc(100vw - 32px);padding:10px 16px;font-size:14px;font-weight:500;transition:all .25s;position:fixed;transform:translate(-50%,20px)}.toast.show{opacity:1;transform:translate(-50%)}@keyframes ring{0%{opacity:.9;transform:scale(.7)}to{opacity:0;transform:scale(1.5)}}@keyframes blink{50%{opacity:.35}}@media (prefers-reduced-motion:reduce){.pin.live:after,.dot-live,.live-pill i{animation:none}.pin,.toast{transition:none}}@media (max-width:819px){.app{grid-template-rows:auto 44% minmax(0,1fr);grid-template-columns:100%}.top,.scroll{border-right:0}.top{grid-row:1;gap:10px;padding:12px 16px 10px}.brand h1{font-size:21px}.tagline{margin-top:2px;font-size:13px}.demo-banner{text-align:left;justify-content:flex-start;gap:8px;padding:7px 12px;font-size:12.5px}.demo-badge{padding:2px 6px;font-size:10.5px}.btn-add{padding:8px 12px;font-size:13px}.mapwrap{grid-area:2/1}.scroll{background:var(--surface);border-top:1px solid var(--line);z-index:3;border-radius:16px 16px 0 0;grid-row:3;margin-top:-14px;position:relative;box-shadow:0 -6px 16px #00000014}.summary{padding:12px 16px 2px}.group h2{padding:14px 16px 4px}.list{padding:0 6px}.detail{padding:12px 16px 24px}.detail h2{font-size:24px}.foot{padding:14px 16px 20px}}
