*{box-sizing:border-box}body{margin:0;background:#f0f6f7;color:#163841;font:15px/1.5 system-ui,-apple-system,Segoe UI,sans-serif}.wrap{max-width:700px;margin:auto;padding:0 15px 100px}header{display:flex;justify-content:space-between;align-items:center;padding:19px 0;gap:10px;color:#47666c}.brand{font-size:23px;color:#087c8c;font-weight:650}h1{font-size:23px;font-weight:650;margin:13px 0}h2{font-size:17px;font-weight:600;margin:0 0 12px}.panel{background:white;border:1px solid #dbe8e9;border-radius:17px;padding:17px;margin:13px 0;box-shadow:0 3px 14px #174e5510}label{display:block;margin:10px 0;font-size:13px;color:#385d65}input,select,textarea{display:block;width:100%;margin-top:5px;border:1px solid #c8dadd;border-radius:10px;padding:11px;font:inherit;color:#173e45;background:white}textarea{min-height:78px;resize:vertical}button{border:0;border-radius:10px;background:#087c8c;color:white;padding:11px 17px;cursor:pointer;font:inherit;margin:5px 5px 5px 0}button.secondary{background:#e0f1f2;color:#075e69}button.danger{background:#f9e5e5;color:#aa3333}.small{font-size:12px;padding:7px 10px}.inline{display:inline}.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}.meta,.hint{color:#668188;font-size:12px}.photo{display:block;max-width:100%;max-height:390px;object-fit:contain;border-radius:12px;margin:12px 0}.error{background:#fff0ed;color:#9c3928;padding:12px;border-radius:10px}nav{position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid #d8e5e7;display:flex;justify-content:center;padding:9px 3px max(9px,env(safe-area-inset-bottom));z-index:10}nav a{display:flex;flex-direction:column;align-items:center;text-decoration:none;color:#6e878c;font-size:20px;min-width:0;width:calc(min(100%,700px)/6);line-height:1.2}nav a.active{color:#087c8c}nav small{font-size:10px;margin-top:3px}.chat{display:flex;flex-direction:column-reverse;max-height:480px;overflow:auto}.bubble{align-self:flex-start;background:#eef4f5;border-radius:14px;padding:12px;margin:5px 0;max-width:85%}.bubble.mine{align-self:flex-end;background:#d8f0ee}.bubble p{margin:5px 0}a{color:#087c8c}p{overflow-wrap:anywhere}@media(max-width:380px){nav small{font-size:9px}.wrap{padding-left:10px;padding-right:10px}}

/* Pêcheurs95 : carte GPS, protection contre le débordement des tuiles Leaflet.
   Ces styles essentiels servent aussi de secours si leaflet.css du CDN ne charge pas. */
.spot-location-search{min-width:0;max-width:100%;overflow:hidden}
.spot-picker-map{display:block;position:relative!important;isolation:isolate;overflow:hidden!important;contain:layout paint;width:100%!important;max-width:100%;height:310px!important;min-height:310px;border-radius:12px;z-index:0}
.spot-picker-map .leaflet-pane,.spot-picker-map .leaflet-tile,.spot-picker-map .leaflet-marker-icon,.spot-picker-map .leaflet-marker-shadow,.spot-picker-map .leaflet-tile-container,.spot-picker-map .leaflet-pane>svg,.spot-picker-map .leaflet-pane>canvas{position:absolute;left:0;top:0}
.spot-picker-map .leaflet-pane{z-index:400}
.spot-picker-map .leaflet-tile-pane{z-index:200}
.spot-picker-map .leaflet-overlay-pane{z-index:400}
.spot-picker-map .leaflet-shadow-pane{z-index:500}
.spot-picker-map .leaflet-marker-pane{z-index:600}
.spot-picker-map .leaflet-tooltip-pane{z-index:650}
.spot-picker-map .leaflet-popup-pane{z-index:700}
.spot-picker-map .leaflet-map-pane{position:absolute;left:0;top:0}
.spot-picker-map .leaflet-tile{width:256px;height:256px;max-width:none!important;max-height:none!important;border:0!important;margin:0!important;padding:0!important;visibility:inherit}
.spot-picker-map .leaflet-tile-container{pointer-events:none}
.spot-picker-map .leaflet-control-container{position:relative;z-index:800}
.spot-picker-map .leaflet-top,.spot-picker-map .leaflet-bottom{position:absolute;z-index:1000;pointer-events:none}
.spot-picker-map .leaflet-top{top:0}.spot-picker-map .leaflet-bottom{bottom:0}.spot-picker-map .leaflet-left{left:0}.spot-picker-map .leaflet-right{right:0}
.spot-picker-map .leaflet-control{position:relative;z-index:800;pointer-events:auto;clear:both}
.spot-picker-map .leaflet-top .leaflet-control{margin-top:10px}.spot-picker-map .leaflet-left .leaflet-control{margin-left:10px}.spot-picker-map .leaflet-right .leaflet-control{margin-right:10px}.spot-picker-map .leaflet-bottom .leaflet-control{margin-bottom:10px}
.spot-picker-map .leaflet-control-zoom{border:2px solid #0003;border-radius:5px;background:#fff;overflow:hidden}
.spot-picker-map .leaflet-control-zoom a{display:block;width:30px;height:30px;line-height:30px;text-align:center;background:#fff;color:#333;text-decoration:none;font:bold 20px/30px Arial,sans-serif;border-bottom:1px solid #ddd}
.spot-picker-map .leaflet-control-attribution{background:#fffd;color:#333;font:10px/1.4 Arial,sans-serif;padding:0 5px}
.spot-picker-map .leaflet-control-attribution a{color:#087c8c}
.spot-picker-map .leaflet-grab{cursor:grab}.spot-picker-map .leaflet-dragging .leaflet-grab{cursor:grabbing}
.spot-picker-map .leaflet-marker-icon,.spot-picker-map .leaflet-marker-shadow{display:block;max-width:none!important}
@media(max-width:600px){.spot-picker-map{height:270px!important;min-height:270px}}

/* Pêcheurs95 — identité SaaS, édition 2026 */
:root{--ocean:#087e8e;--deep:#153d49;--muted:#66848c;--line:#deebee;--soft:#f3f8f9;--shadow:0 10px 30px rgba(20,68,79,.065)}
body{background:linear-gradient(180deg,#f7fbfc 0%,#eff6f8 60%,#f6fafb 100%);color:var(--deep);font-size:14px}
.wrap{max-width:1020px;padding:0 22px 115px}
header{padding:22px 0 20px;border-bottom:1px solid #e2edf0;margin-bottom:25px}
.brand{display:flex;align-items:center;gap:9px;color:var(--deep);text-decoration:none;font-size:25px;font-weight:650;letter-spacing:-.7px}
.brand>span:last-child{color:var(--ocean)}.brand-icon{display:inline-grid;place-items:center;width:40px;height:40px;background:#e4f4f4;border-radius:13px;font-size:24px}
.user-greeting{display:flex;align-items:center;gap:10px;font-size:13px;color:#355b64}.user-avatar{display:inline-grid;place-items:center;background:#d6eeee;color:#0b6977;width:34px;height:34px;border-radius:50%;font-weight:600}
.page-intro{display:flex;justify-content:space-between;align-items:center;margin:16px 0 22px}.page-intro h1{font-size:clamp(24px,3.5vw,32px);font-weight:650;letter-spacing:-.9px;margin:4px 0 6px}.page-intro p{margin:0;color:var(--muted);font-size:14px}.eyebrow{color:#0b8995;letter-spacing:1.25px;font-size:10px;font-weight:650}
.panel{border:1px solid var(--line);border-radius:19px;padding:23px;margin:16px 0;box-shadow:var(--shadow);background:#fff}
.panel h2{font-size:18px;letter-spacing:-.3px;font-weight:600}
input,select,textarea{border:1px solid #d2e2e6;border-radius:11px;min-height:43px;padding:11px 13px;outline:none;transition:border-color .15s,box-shadow .15s}
input:focus,select:focus,textarea:focus{border-color:#0a8c9b;box-shadow:0 0 0 3px #0a8c9b1a}
button{border-radius:11px;font-weight:500;background:var(--ocean);transition:filter .15s,transform .15s}
button:hover{filter:brightness(.96)}button:active{transform:translateY(1px)}
button.secondary{background:#e7f4f5;color:#086b78}.meta,.hint{color:var(--muted)}
.spots-toolbar{margin:6px 0 28px!important}.spots-toolbar button{padding:14px 21px!important;box-shadow:0 5px 15px #087e8e22}
.spots-list-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:26px 0 12px}.spots-list-heading h2{font-size:22px!important;font-weight:650!important;letter-spacing:-.5px;margin:4px 0!important}.spots-count{background:#e6f3f5;color:#166d7a;border-radius:30px;padding:7px 12px;font-size:12px;white-space:nowrap}
.spot-card{padding:22px!important;overflow:hidden}.spot-card-top{display:flex;align-items:flex-start;gap:15px}.spot-symbol{width:62px;height:62px;border-radius:16px;display:grid;place-items:center;font-size:29px;background:linear-gradient(135deg,#e0f5f4,#eaf2fb);flex:none}.spot-info{min-width:0;flex:1}.spot-info h2{margin:0 0 10px;font-size:19px;font-weight:600}.spot-badges{display:flex;flex-wrap:wrap;gap:7px}.spot-badge{font-size:11px;border-radius:30px;padding:5px 10px;font-weight:500}.badge-fresh{background:#e8f1ff;color:#2563a4}.badge-sea{background:#e2f5fb;color:#007b99}.badge-group{background:#e5f7ef;color:#18805a}.badge-private{background:#fff0ee;color:#bb5151}.spot-author{margin-top:10px}
.spot-notes{margin:16px 0 8px;color:#42616a}.spot-coordinates{color:#7a959d;font-size:12px;margin:14px 0}.spot-actions{border-top:1px solid #edf2f4;padding-top:14px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.spot-action{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:8px 12px;border:1px solid #d4e5e9;border-radius:10px;background:#fff;text-decoration:none;color:#176777;font-size:12px;font-weight:500}.spot-action:hover{background:#f0f8fa}.spot-action-primary{background:#e5f4f6}.spot-actions form.inline{display:inline-flex;margin:0}.spot-actions .danger.small{font-size:12px;min-height:38px;margin:0;padding:8px 12px}
.spot-location-search{background:#f7fafb!important;border-color:#dcebee!important;padding:17px!important;overflow:hidden}.spot-picker-map{height:350px!important;max-width:100%!important;overflow:hidden!important;isolation:isolate;border:1px solid #d4e4e7}.spot-place-result{font-weight:400!important}
nav{max-width:640px;left:50%;right:auto;transform:translateX(-50%);bottom:14px;border:1px solid #dce9eb;border-radius:18px;box-shadow:0 10px 30px #133d491f;padding:9px 10px;gap:3px;width:calc(100% - 28px);z-index:1000}nav a{flex:1;width:auto;padding:7px 3px;border-radius:11px;font-size:19px;transition:background .15s}nav a.active{background:#e4f3f5}nav small{font-size:11px}
@media(min-width:900px){.wrap{padding-bottom:125px}.spot-card{padding:25px!important}.spot-card-top{gap:20px}.spot-symbol{width:76px;height:76px;font-size:34px}}
@media(max-width:600px){.wrap{padding:0 14px 115px}header{padding:14px 0;margin-bottom:16px}.brand{font-size:21px}.brand-icon{width:33px;height:33px;font-size:20px}.user-greeting{font-size:11px}.user-avatar{width:28px;height:28px}.page-intro{margin:10px 0 18px}.page-intro p{font-size:12px}.panel{padding:16px;margin:12px 0}.spot-card{padding:16px!important}.spot-symbol{width:48px;height:48px;font-size:23px}.spot-info h2{font-size:16px}.spot-actions{gap:7px}.spot-action{font-size:11px;padding:8px 10px}.spots-list-heading h2{font-size:18px!important}.spot-picker-map{height:270px!important}nav{bottom:8px;padding:6px 4px}nav a{font-size:18px}nav small{font-size:9px}}

/* Photos des spots */
.spot-image-link,.spot-thumb{display:block;width:94px;height:94px;flex:0 0 94px;border-radius:14px;overflow:hidden}.spot-thumb{object-fit:cover;transition:transform .2s}.spot-image-link:hover .spot-thumb{transform:scale(1.04)}.spot-edit-photo img{display:block;width:160px;max-width:100%;height:115px;object-fit:cover;border-radius:12px;margin:10px 0}.spot-edit-photo label{display:flex;align-items:center;gap:8px}.spot-edit-photo input[type=checkbox]{width:auto;margin:0}@media(max-width:420px){.spot-image-link,.spot-thumb{width:76px;height:76px;flex-basis:76px}}
