/* Vues et fenêtres de l'application : même langage que la carte Coastal. */
body.coastal-app :is(.pm-modal .pm-sheet,.pw-sheet,.hm-content,.fcam-sheet){background:var(--coast-paper)!important;color:var(--coast-ink)!important;border:1px solid var(--coast-line)!important;border-radius:20px!important;box-shadow:0 24px 80px #102f3c30!important;backdrop-filter:none!important}
body.coastal-app .pm-modal{align-items:center;padding:24px}
body.coastal-app .pm-modal .pm-sheet{width:min(600px,100%);max-width:600px;max-height:calc(100dvh - 48px);padding-bottom:0;overflow:hidden}
body.coastal-app :is(.pm-bd,.pm-backdrop,.pw-backdrop,.hm-backdrop,.fcam-backdrop){background:#102f3c80!important;backdrop-filter:blur(5px)!important}
body.coastal-app :is(.pm-hdr,.hm-header,.fcam-hdr){background:var(--coast-surface)!important;border-bottom:1px solid var(--coast-line)!important;padding:20px 24px!important;gap:14px}
body.coastal-app :is(.pm-title,.hm-header h2,.fcam-title){font:700 23px/1.2 var(--w-font-display)!important;font-style:normal!important;letter-spacing:-.04em!important;color:var(--coast-ink)!important;text-shadow:none!important;min-width:0}
body.coastal-app :is(.pm-close,.pw-close,#help-close,.fcam-close,.week-close,.wview-close){width:44px!important;height:44px!important;min-width:44px;flex-shrink:0;border-radius:10px!important;background:var(--coast-soft)!important;border:1px solid var(--coast-line)!important;color:var(--coast-ink)!important;font:500 20px var(--w-font-body);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:none!important}
body.coastal-app .pm-handle{display:none}
body.coastal-app :is(.pm-body,.hm-body){padding:24px!important;line-height:1.6;overscroll-behavior:contain}
body.coastal-app .pm-body{min-height:0}
body.coastal-app :is(.pm-title .pm-icon,.acc-ico,.acc-hdr-ico){color:var(--coast-teal)!important;background:none!important;box-shadow:none!important}
body.coastal-app :is(.pm-icon,.acc-ico,.units-ic) svg{display:block;width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
body.coastal-app :is(.pm-modal input:not([type=range]):not([type=checkbox]),.pm-modal select,.pm-modal textarea,.feed-compose textarea){font-size:15px!important;border:1px solid #b7cccd!important;border-radius:10px!important;background:var(--coast-surface)!important;color:var(--coast-ink)!important;box-shadow:none!important;max-width:100%}
body.coastal-app :is(.pm-modal input:not([type=range]):not([type=checkbox]),.pm-modal select){min-height:46px}
body.coastal-app input[type=range]{accent-color:var(--coast-teal)!important}
body.coastal-app :is(.travel-label,.tv2-lbl,.alert-lbl,.se-sec-lbl,.units-card-h,.ios-hdr,.ios-subhdr){font:600 11px/1.5 var(--w-font-mono)!important;letter-spacing:.06em;color:var(--coast-muted)!important;text-transform:uppercase}
body.coastal-app :is(.pm-save-btn,.alert-add-btn,.tv2-cta,.auth-btn,.auth-cta,.ptb-cta,.pw-cta,.feed-post-btn,.week-cta,.sm-cta-primary,.exped-btn:not(.exped-danger),.profile-edit-save){min-height:46px!important;background:var(--coast-action)!important;color:#fff!important;border:1px solid var(--coast-action)!important;border-radius:10px!important;box-shadow:none!important;font:650 14px/1.4 var(--w-font-body)!important;font-style:normal!important;padding:12px 18px!important;letter-spacing:0!important}
body.coastal-app :is(.pm-save-btn,.alert-add-btn,.tv2-cta,.auth-btn,.auth-cta,.ptb-cta,.pw-cta,.feed-post-btn):hover{filter:brightness(.94)}
body.coastal-app :is(.tv2-seg,.auth-tabs,.acc-tabs,.riders-tabs,.feed-tabs,.units-seg,.se-tags){background:var(--coast-soft)!important;padding:4px!important;border-radius:10px!important;box-shadow:none!important;gap:4px}
body.coastal-app :is(.tv2-seg-btn,.auth-tabs button,.acc-tab,.riders-tab,.feed-tab,.unit-pill){min-height:40px!important;box-shadow:none!important;border:0!important;border-radius:7px!important;font:600 12px var(--w-font-body)!important;color:var(--coast-muted)!important;background:none!important}
body.coastal-app :is(.tv2-seg-btn.sel,.auth-tabs .active,.auth-tabs .sel,.acc-tab.active,.riders-tab.active,.feed-tab.active,.units-seg .unit-pill.active){background:var(--coast-surface)!important;color:var(--coast-action)!important;box-shadow:0 2px 6px #102f3c0b!important}
body.coastal-app :is(.ios-list,.ios-card,.profile-edit,.hist-row,.brief-row,.alert-form,.alert-item,.feed-compose,.feed-post,.feed-side-card,.news-card,.disc-card,.sm-box,.share-format-card,.se-recap,.se-rcell,.visibility-opt,.riders-card){background:var(--coast-surface)!important;border:1px solid var(--coast-line)!important;border-radius:14px!important;box-shadow:0 3px 12px #102f3c06!important;color:var(--coast-ink)!important}
body.coastal-app :is(.ios-cell,.ios-row,.ios-sec){background:var(--coast-surface)!important;color:var(--coast-ink)!important}
body.coastal-app :is(.ios-cell-ttl,.profile-locked-name,.feed-name,.brief-name,.hist-name){font-style:normal!important;color:var(--coast-ink)!important;letter-spacing:-.025em}
body.coastal-app :is(.ios-row-val,.ios-cell-sub,.auth-sub,.feed-meta,.hist-meta,.brief-meta,.feed-empty,.hist-empty,.riders-empty){color:var(--coast-muted)!important;line-height:1.6}
body.coastal-app .ios-row{min-height:54px;font-size:14px;flex-wrap:wrap;gap:8px}
body.coastal-app .ios-row-lbl{font-weight:600}
body.coastal-app .ios-row-ctrl{max-width:100%;min-width:0}
body.coastal-app .ios-tile{background:var(--coast-soft)!important;box-shadow:none!important;border:1px solid var(--coast-line)}
body.coastal-app .ios-tile svg{stroke:var(--coast-teal)!important}
body.coastal-app .ios-cell-av{font-style:normal;background:var(--coast-ink)!important}
body.coastal-app .ios-row.danger .ios-row-lbl{color:#b63838!important}
body.coastal-app .disc-card.sel,body.coastal-app .visibility-opt.sel{border-color:var(--coast-teal)!important;background:#e7f3ef!important;box-shadow:none!important}
body.coastal-app :is(.session-modal-content,.alert-form){font-size:14px}
body.coastal-app :is(.pm-title,.hist-name,.brief-name,.tv2-val,.sm-title,.sm-step,.sm-step-num){text-shadow:none!important}
body.coastal-app .pw-sheet{max-width:560px;padding-bottom:0;overflow:auto;max-height:calc(100dvh - 40px)}
body.coastal-app .pw-body{padding:36px 28px 28px}
body.coastal-app .pw-title{font:700 34px/1.1 var(--w-font-display)!important;font-style:normal!important;letter-spacing:-.045em!important;color:var(--coast-ink)!important}
body.coastal-app .pw-reason{color:var(--coast-teal)!important;font:600 10px var(--w-font-mono);letter-spacing:.1em}
body.coastal-app :is(.pw-sub,.pw-perk-desc,.pw-legal){color:var(--coast-muted)!important;line-height:1.6}
body.coastal-app .pw-perk-name{color:var(--coast-ink)!important}
body.coastal-app .pw-perks{border-top:1px solid var(--coast-line);border-bottom:1px solid var(--coast-line);padding:14px 0;margin:22px 0}
body.coastal-app :is(.pw-promo,.push-toggle-banner,.hd-optin){background:var(--coast-soft)!important;border:1px solid var(--coast-line)!important;border-radius:12px!important;box-shadow:none!important;color:var(--coast-ink)!important}
body.coastal-app :is(.pw-promo-ttl,.ptb-title,.hd-optin-t){color:var(--coast-ink)!important;font-style:normal!important}
body.coastal-app :is(.ptb-sub,.hd-optin-s,.pw-promo-sub){color:var(--coast-muted)!important}
body.coastal-app :is(.pw-icon,.pw-perk-icon){filter:none!important}
body.coastal-app :is(.hm-content,.fcam-sheet){max-height:calc(100dvh - 32px)}
body.coastal-app :is(.hm-section h3,.hm-section h3 strong){color:var(--coast-ink)!important;font-size:16px!important}
body.coastal-app :is(.hm-section p,.hm-row){color:var(--coast-muted)!important;font-size:13px!important;line-height:1.65}
body.coastal-app .hm-section{padding-bottom:16px;border-bottom:1px solid var(--coast-line)}
body.coastal-app :is(#week-modal,#exped-modal){background:var(--coast-paper)!important}
body.coastal-app .week-hd{padding:24px max(24px,calc((100vw - 760px)/2));background:var(--coast-surface);border-bottom:1px solid var(--coast-line)}
body.coastal-app :is(.week-ttl,.week-empty-ttl,.exped-t){font-style:normal!important;color:var(--coast-ink)!important;letter-spacing:-.04em}
body.coastal-app .week-ttl{font-size:28px}
body.coastal-app .week-body{width:min(808px,100%);margin:0 auto;padding:24px;min-height:0}
body.coastal-app :is(.week-row,.exped-card){background:var(--coast-surface);border-color:var(--coast-line);border-radius:14px;box-shadow:0 3px 12px #102f3c06}
body.coastal-app :is(.retro-entry-t,.retro-big,.retro-mid,.retro-share){font-style:normal!important}
body.coastal-app .retro-entry{background:var(--coast-surface);border-color:var(--coast-line);box-shadow:none}
body.coastal-app .retro-entry::before{background:var(--coast-teal)}
body.coastal-app .wview{background:var(--coast-paper)!important;top:var(--explore-top)!important;bottom:0!important;z-index:1350}
body.coastal-app .wview-hdr{padding:24px max(24px,calc((100vw - 980px)/2));background:var(--coast-surface)!important;border-bottom:1px solid var(--coast-line)}
body.coastal-app .wview-title{font:700 30px var(--w-font-display)!important;color:var(--coast-ink)!important}
body.coastal-app .wview-inner{padding:28px 24px;max-width:1040px}
body.coastal-app .feed-compose{padding:18px;gap:14px}
body.coastal-app .feed-tabs{border-radius:10px}
body.coastal-app .feed-post{overflow:hidden}
body.coastal-app .feed-side-card{padding:20px}
body.coastal-app .feed-3col{column-gap:24px}
body.coastal-app .wview-close{top:16px;right:24px}
body.coastal-app .wview-refresh-fab{background:var(--coast-surface)!important;color:var(--coast-teal)!important;border:1px solid var(--coast-line)!important;box-shadow:var(--coast-shadow)!important}
body.coastal-app :is(.rp-content,.rp-regions,.rp-search-results){color:var(--coast-ink)}
body.coastal-app .rp-title{font-style:normal!important;letter-spacing:-.045em}
@media(max-width:760px){
 body.coastal-app .pm-modal{align-items:flex-end;padding:0}
 body.coastal-app .pm-modal .pm-sheet{max-width:100%;max-height:94dvh;border-radius:20px 20px 0 0!important;padding-bottom:env(safe-area-inset-bottom,0px)}
 body.coastal-app .pm-handle{display:block;background:#b7cccd;margin:10px auto 0}
 body.coastal-app :is(.pm-hdr,.hm-header,.fcam-hdr){padding:16px 18px!important}
 body.coastal-app :is(.pm-title,.hm-header h2,.fcam-title){font-size:21px!important}
 body.coastal-app :is(.pm-body,.hm-body){padding:20px 18px!important}
 body.coastal-app :is(.pm-modal input:not([type=range]):not([type=checkbox]),.pm-modal select,.pm-modal textarea){font-size:16px!important}
 body.coastal-app .pw-sheet{border-radius:20px 20px 0 0!important;max-height:94dvh}
 body.coastal-app .pw-body{padding:32px 20px 24px}
 body.coastal-app .pw-title{font-size:30px!important}
 body.coastal-app .week-hd{padding:18px}.week-body{padding:20px 16px!important}
 body.coastal-app .wview{bottom:calc(76px + env(safe-area-inset-bottom,0px))!important}
 body.coastal-app .wview-hdr{padding:20px 18px}
 body.coastal-app .wview-inner{padding:20px 16px}
 body.coastal-app .wview-title{font-size:26px!important}
 body.coastal-app .wview-close{right:12px}
 body.coastal-app .units-row{gap:8px;flex-wrap:wrap}
 body.coastal-app .alert-row-2{gap:8px}
 body.coastal-app .ios-row .units-seg{flex-wrap:wrap}
 body.coastal-app .feed-compose-row{flex-wrap:wrap}
}

/* Notifications : le réglage quotidien occupe toute la largeur, sous le CTA. */
body.coastal-app .push-toggle-banner{display:grid!important;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:start;padding:16px!important}
body.coastal-app .ptb-txt{grid-column:1;min-width:0}
body.coastal-app .ptb-cta{grid-column:2;grid-row:1;padding:10px 12px!important;font-size:12px!important}
body.coastal-app .hd-optin{grid-column:1/-1;margin:0!important;padding:14px!important;gap:12px}
body.coastal-app .hd-optin-txt{flex:1;min-width:0}
body.coastal-app .hd-sw{flex-shrink:0}
body.coastal-app .alert-form-title{font:700 20px/1.3 var(--w-font-display)!important;color:var(--coast-ink)!important;letter-spacing:-.03em}
body.coastal-app .auth-guest-hint{color:var(--coast-muted)!important;background:var(--coast-soft)!important;border:1px solid var(--coast-line)!important;line-height:1.6;border-radius:10px;box-shadow:none!important}
@media(max-width:480px){
 body.coastal-app .tv2-seg-btn{white-space:normal!important;flex-direction:column;gap:5px!important;padding:9px 6px!important;line-height:1.3!important}
 body.coastal-app .tv2-seg-btn span{white-space:normal!important;overflow:visible!important;text-overflow:clip!important}
}

/* Titres et commandes des parcours secondaires. */
body.coastal-app :is(.hm-section h3,.hm-section h3 strong,.carnet-add-btn,.carnet-card-spot,.carnet-detail-title,.brief2-sec-ttl,.brief2-hero-name,.brief2-empty-ttl,.brief2-verdict-main,.tv2-title,.tv2-empty-title,.se-title,.sm-step,.sm-step-num,.pm-modal button){font-style:normal!important;text-shadow:none!important}
body.coastal-app .carnet-add-btn{min-height:46px;border:1px solid var(--coast-line)!important;border-radius:10px;background:var(--coast-soft)!important;font-family:var(--w-font-body)!important;box-shadow:none!important}
body.coastal-app :is(.carnet-card,.carnet-stat-card,.brief2-row,.tv2-card,.se-section){border-radius:14px!important;box-shadow:none!important;border-color:var(--coast-line)!important}
body.coastal-app :is(#knots-overlay,#covoiturage-overlay){background:var(--coast-paper)!important}
body.coastal-app :is(#knots-overlay,#covoiturage-overlay)>div:first-child{background:var(--coast-surface)!important;border-color:var(--coast-line)!important;padding:16px 20px!important;min-height:76px}
body.coastal-app :is(#knots-overlay,#covoiturage-overlay)>div:first-child>span{font-style:normal!important;font-family:var(--w-font-display)!important;color:var(--coast-ink)}
body.coastal-app :is(#knots-overlay,#covoiturage-overlay) button[aria-label=Fermer]{width:44px!important;height:44px!important;border-radius:10px!important;color:var(--coast-ink)!important;background:var(--coast-soft)!important}

body.coastal-app :is(.fsc-ttl,.prof-name,.profile-locked-ttl,.profile-edit-ttl,.pr-card-ttl,.auth-btn-riders strong,.rp-title){font-style:normal!important;letter-spacing:-.03em}
body.coastal-app :is(.fsc-search-btn,.fsc-btn.add,.pr-quiver-save,.w-consent .w-c-accept){min-height:44px!important;border-radius:10px!important;background:var(--coast-action)!important;color:#fff!important;font-family:var(--w-font-body)!important;font-style:normal!important;box-shadow:none!important}
body.coastal-app .w-consent{font-family:var(--w-font-body)!important;background:var(--coast-surface)!important;border-color:var(--coast-line)!important;border-radius:16px!important;box-shadow:var(--coast-shadow)!important}
body.coastal-app .w-consent button{min-height:44px;border-radius:10px!important}
body.coastal-app #covoiturage-overlay{background:#102f3c80!important}
body.coastal-app #covoiturage-sheet{background:var(--coast-paper)!important;padding:0!important}
body.coastal-app #covoiturage-sheet>div:first-child{min-height:76px;padding:16px 20px!important}

body.coastal-app #view-feed.wview{padding-top:0!important;top:var(--explore-top)!important}
body.coastal-app .wview-hdr{display:flex;align-items:center;justify-content:space-between;gap:16px}
body.coastal-app .coastal-view-actions{display:flex;gap:8px;flex-shrink:0}
body.coastal-app :is(.wview-close,.wview-refresh-fab){position:static!important;display:flex!important;min-width:44px!important;width:44px!important;height:44px!important;flex-shrink:0;border-radius:10px!important;backdrop-filter:none!important;transform:none!important;box-shadow:none!important}
@media(max-width:480px){body.coastal-app #view-feed .wview-title{font-size:23px!important}}
body.coastal-app #view-feed .wview-hdr{display:flex!important}
body.coastal-app .explorer-intro h2{color:#fff}
/* La carte et ses repères suffisent à signaler que les prévisions sont chargées.
   Réserver le cartouche aux états qui demandent une attention ou une action. */
body.coastal-app #weather-state[hidden]{display:none!important}
body.coastal-app #weather-state{box-sizing:border-box;max-width:min(260px,calc(100% - 108px));flex-wrap:wrap}
