*{box-sizing:border-box}html,body{margin:0;height:100%;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:#0f172a}
#map{position:fixed;inset:0}
#top{position:fixed;z-index:1000;top:max(10px,env(safe-area-inset-top));left:10px;right:10px;max-width:440px;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border-radius:18px;box-shadow:0 8px 30px rgba(0,0,0,.18);padding:10px;animation:drop .45s cubic-bezier(.2,.9,.3,1.2)}
@keyframes drop{from{transform:translateY(-30px);opacity:0}}
.tabs{display:flex;gap:6px;margin-bottom:8px}.tab{flex:1;border:0;background:#f1f5f9;border-radius:10px;padding:7px;font-weight:600;cursor:pointer;transition:.2s}
.tab.on{background:#0f766e;color:#fff}
.bar{display:flex;gap:6px}#q{flex:1;min-width:0;font-size:16px;padding:11px 12px;border:2px solid #e2e8f0;border-radius:12px;outline:0;transition:border .2s}#q:focus{border-color:#0f766e}
#near{border:0;background:#0f766e;color:#fff;border-radius:12px;padding:0 12px;font-weight:600;cursor:pointer;white-space:nowrap;transition:transform .15s}#near:active{transform:scale(.94)}
.list{max-height:46vh;overflow:auto;margin-top:6px}
.it{padding:10px;border-radius:10px;cursor:pointer;animation:fade .3s both;transition:background .15s;display:flex;gap:8px;align-items:center}
.it:hover{background:#f0fdfa}.it b{display:block;font-size:14px}.it small{color:#64748b}.it .d{margin-left:auto;font-weight:700;color:#0f766e;white-space:nowrap}
.h{font-size:12px;font-weight:700;color:#64748b;text-transform:uppercase;padding:6px 10px}
@keyframes fade{from{opacity:0;transform:translateY(6px)}}
.pop b{font-size:15px}.pop p{margin:4px 0 8px;color:#475569}.btns{display:flex;flex-direction:column;gap:6px}
.btns a,.btns button{display:block;text-align:center;padding:8px;border-radius:9px;border:0;font-weight:600;text-decoration:none;cursor:pointer;font-size:13px}
.go{background:#0f766e;color:#fff!important}.sec{background:#f1f5f9;color:#0f172a!important}
.leaflet-popup-content-wrapper{border-radius:14px}
.pin{width:26px;height:26px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:#dc2626;border:3px solid #fff;box-shadow:0 2px 6px #0006;animation:bounce .6s}
@keyframes bounce{0%{transform:rotate(-45deg) translate(20px,-20px);opacity:0}60%{transform:rotate(-45deg) translate(-3px,3px)}}
.hl{width:30px;height:30px;border-radius:50%;background:#0f766e;color:#fff;font-weight:800;display:grid;place-items:center;border:3px solid #fff;box-shadow:0 0 0 0 #0f766e88;animation:pulse 1.6s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 14px #0f766e00}}
footer{position:fixed;bottom:0;left:0;z-index:1000;font-size:11px;background:#fffc;padding:3px 8px;border-top-right-radius:8px}
.toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);background:#0f172a;color:#fff;padding:9px 16px;border-radius:20px;z-index:2000;animation:fade .3s}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.tab.mini{flex:0 0 38px}#top.folded #pTrajet,#top.folded #pArret,#top.folded .list{display:none}
.field{display:flex;gap:6px;align-items:center;margin-top:6px}.field input,#qs{flex:1;min-width:0;font-size:16px;padding:10px 12px;border:2px solid #e2e8f0;border-radius:12px;outline:0;transition:border .2s}.field input:focus,#qs:focus{border-color:#0f766e}
.ic{border:0;background:#f1f5f9;border-radius:10px;width:38px;height:40px;font-size:16px;cursor:pointer;transition:transform .15s,background .2s}.ic:hover{background:#ccfbf1}.ic:active{transform:scale(.9)}
.dot{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;color:#fff;font-weight:800;font-size:12px;flex:0 0 22px}.dot.a{background:#0f766e}.dot.b{background:#c2410c}
.pin.dst{background:#c2410c}.pin.dep{background:#0f766e}.hl.dst{background:#c2410c;box-shadow:0 0 0 0 #c2410c88}
.alt{width:18px;height:18px;border-radius:50%;border:3px solid #fff;box-shadow:0 1px 4px #0006;animation:fade .3s}.alt.dep{background:#5eead4}.alt.dst{background:#fdba74}
.tripline{stroke-dasharray:1200;stroke-dashoffset:1200;animation:draw 1s ease forwards}@keyframes draw{to{stroke-dashoffset:0}}
#sheet{position:fixed;z-index:1001;left:0;right:0;bottom:0;max-height:48vh;overflow:auto;background:#fff;border-radius:20px 20px 0 0;box-shadow:0 -8px 30px #0003;padding:6px 12px 28px;animation:up .4s cubic-bezier(.2,.9,.3,1.1)}
@keyframes up{from{transform:translateY(100%)}}.grab{width:40px;height:4px;background:#cbd5e1;border-radius:4px;margin:4px auto 8px}
@media (min-width:700px){#sheet{left:auto;right:12px;top:12px;bottom:auto;width:400px;max-height:calc(100vh - 40px);border-radius:18px}.grab{display:none}}
.sum{display:grid;gap:6px;background:#f8fafc;border-radius:12px;padding:10px;font-size:14px}.sum small{display:block;color:#64748b;margin-left:28px}
.days{display:flex;gap:6px;overflow-x:auto;margin:10px 0 4px;padding-bottom:4px}.day{flex:0 0 auto;border:0;background:#f1f5f9;border-radius:10px;padding:6px 10px;font-weight:700;cursor:pointer;text-transform:capitalize;transition:.2s}.day small{display:block;font-weight:400;font-size:11px}.day.on{background:#0f766e;color:#fff}.day.off{opacity:.5;text-decoration:line-through}
.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(82px,1fr));gap:6px}.slot{background:#f0fdfa;border-radius:10px;padding:6px;text-align:center;animation:fade .3s both}.slot b{display:block;font-size:16px;color:#0f766e}.slot small{font-size:11px;color:#475569}
.none{padding:14px;text-align:center;font-weight:700;color:#9a3412;background:#fff7ed;border-radius:12px;margin:8px 0}
.acts{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}.acts>*{flex:1 1 160px;text-align:center;padding:10px;border-radius:10px;border:0;font-weight:700;text-decoration:none;cursor:pointer;font-size:14px}
.note{font-size:11px;color:#64748b;margin:8px 0 0}
.blk{margin-top:12px}.opt{display:block;width:100%;text-align:left;border:2px solid #e2e8f0;background:#fff;border-radius:10px;padding:7px 10px;margin:4px 0;cursor:pointer;transition:.2s;font:inherit}.opt.on{border-color:#0f766e;background:#f0fdfa}.opt b{display:block;font-size:13px}.opt small{color:#64748b}
.sm{display:block;text-align:center;padding:7px;border-radius:9px;font-size:13px;font-weight:600;text-decoration:none}
.btns .b{background:#c2410c}body.picking #map{cursor:crosshair}
@media (max-width:699px){#sheet .note:after{content:" · Outil personnel non officiel"}}
