/* ================================================================
   Radio Bethel Médias — Thème Bleu Marine Premium
   Poppins + Montserrat | ZERO border-line | Page fixe
   Couleurs : #0E2A5C #1746A2 #0B1530 #F4F1EA
   ================================================================ */
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700;800&family=Montserrat:wght@400;500;600;700;800&display=swap');

:root {
  --rbm-navy: #0E2A5C;
  --rbm-blue: #1746A2;
  --rbm-ink: #0B1530;
  --rbm-cream: #F4F1EA;
  --rbm-cream-dark: #E8E4DA;
  --rbm-cream-light: #FAF8F4;
  --rbm-gold: #C89B3C;
  --rbm-gold-soft: rgba(200,155,60,0.12);
  --rbm-text: #0B1530;
  --rbm-muted: #4A5568;
  --rbm-bg: #F4F1EA;
  --rbm-bg-elev: #ffffff;
  --rbm-shadow: 0 2px 12px rgba(14,42,92,0.08);
  --rbm-shadow-lg: 0 8px 32px rgba(11,21,48,0.12);
  --rbm-poppins: "Poppins","Segoe UI",system-ui,sans-serif;
  --rbm-montserrat: "Montserrat","Segoe UI",system-ui,sans-serif;
  --rbm-radius: 10px;
  --rbm-radius-sm: 4px;
  --duration: 0.15s;
  --main-pad: clamp(1rem,3vw,2rem);
  --playbar-h: 0px;
  --rbm-footer-h: 48px;
  --primary: #0E2A5C;
  --color-title: var(--rbm-text);
  --color-text: var(--rbm-muted);
}

/* RESET */
html { line-height:1.5; -webkit-text-size-adjust:100%; -webkit-font-smoothing:antialiased; height:100%; overflow:hidden; }
*,*::before,*::after { box-sizing:border-box; } * { margin:0; }
body { font-family:var(--rbm-montserrat); font-size:1.05rem; color:var(--rbm-text); background:var(--rbm-bg); height:100%; overflow:hidden; }
a { color:var(--rbm-blue); text-decoration:none; } a:hover { text-decoration:underline; }
button,input,textarea { font:inherit; color:inherit; border:none; background:none; padding:0; }
button:focus-visible,input:focus-visible,textarea:focus-visible { outline:3px solid var(--rbm-blue); outline-offset:2px; }
img { display:block; max-width:100%; }
.player-cover-image { display:none !important; }

/* APP SHELL */
.rbm-app.app { position:relative; height:100dvh; max-height:100dvh; width:100% !important; max-width:100% !important; overflow:hidden !important; display:flex; flex-direction:column; background:var(--rbm-bg) !important; }
.rbm-app.app::after { display:none !important; }

/* ================================================================
   HEADER — dark navy
   ================================================================ */
.rbm-topbar.header { position:relative !important; z-index:10 !important; width:100%; flex-shrink:0; padding:0.3rem var(--main-pad); background:var(--rbm-ink); border:none !important; box-shadow:none !important; }
.rbm-topbar-inner { display:flex; align-items:center; justify-content:space-between; gap:1rem; max-width:1400px; margin:0 auto; }
.rbm-logo-block { display:flex; align-items:center; gap:0.75rem; text-decoration:none !important; color:#fff; }
.rbm-logo-img { height:60px; width:auto; flex-shrink:0; }
.rbm-logo-text { display:flex; flex-direction:column; gap:0; }
.rbm-eyebrow { font-family:var(--rbm-montserrat); font-size:0.7rem; font-weight:800; letter-spacing:9.5px; color:rgba(255,255,255,0.6); text-transform:uppercase; line-height:1.2; }
.rbm-wordmark { font-family:var(--rbm-poppins); font-size:clamp(1.3rem,2.8vw,1.65rem); font-weight:800; letter-spacing:-1.6px; color:#fff; line-height:1.15; }
.rbm-signature { font-family:var(--rbm-montserrat); font-size:clamp(0.6rem,1.2vw,0.72rem); font-weight:700; letter-spacing:3.4px; color:var(--rbm-gold); text-transform:uppercase; line-height:1.3; }

.rbm-header-right { display:flex; flex-direction:column; align-items:flex-end; align-self:flex-end; gap:0.3rem; }

.rbm-live-pill { display:inline-flex; align-items:center; gap:0.35rem; padding:0.22rem 0.75rem; background:rgba(200,155,60,0.2); border-radius:100px; color:var(--rbm-gold); font-family:var(--rbm-montserrat); font-weight:800; font-size:0.65rem; letter-spacing:0.1em; text-transform:uppercase; }
.rbm-live-dot { width:7px; height:7px; background:var(--rbm-gold); border-radius:50%; animation:rbm-blink 1.2s ease infinite; }
@keyframes rbm-blink { 50% { opacity:.2; } }

.rbm-header-social.player-social { position:static !important; display:flex; flex-wrap:wrap; gap:0.4rem; justify-content:flex-end; padding:0 !important; max-width:none !important; }
.player-social-item { width:42px !important; height:42px !important; min-width:42px; border-radius:50% !important; display:flex !important; align-items:center; justify-content:center; background:rgba(255,255,255,0.08) !important; box-shadow:none !important; border:none !important; transition:background var(--duration); }
.player-social-item:hover { background:rgba(255,255,255,0.18) !important; }
.player-social .i { stroke:#fff !important; width:20px !important; height:20px !important; }
.player-program { display:none !important; }

@media (max-width:640px) {
  .rbm-topbar-inner { flex-direction:column; align-items:center; text-align:center; gap:0.35rem; }
  .rbm-logo-block { flex-direction:column; text-align:center; }
  .rbm-header-right { align-items:center; align-self:center; }
  .rbm-header-social.player-social { justify-content:center; }
  .rbm-logo-img { height:50px; }
  .rbm-eyebrow { letter-spacing:6px; }
}

/* ================================================================
   FM SUPPORT BANNER
   ================================================================ */
.rbm-support-banner { flex-shrink:0; background:linear-gradient(135deg,#0E2A5C 0%,#1746A2 100%); padding:0.45rem var(--main-pad); }
.rbm-support-inner { max-width:1400px; margin:0 auto; display:flex; align-items:center; gap:0.6rem; }
.rbm-support-icon { flex-shrink:0; color:var(--rbm-gold); }
.rbm-support-text { flex:1; font-size:0.88rem; font-weight:500; color:rgba(255,255,255,0.9); line-height:1.4; margin:0; }
.rbm-support-text strong { color:#fff; font-weight:700; }
.rbm-support-link { display:inline; background:none; color:var(--rbm-gold); font-weight:700; font-size:0.88rem; cursor:pointer; text-decoration:underline; padding:0; }
.rbm-support-link:hover { color:#fff; }

/* ================================================================
   VERSET DU JOUR
   ================================================================ */
.rbm-verse-bar { flex-shrink:0; background:var(--rbm-cream-dark); padding:0.55rem var(--main-pad); }
.rbm-verse-inner { max-width:1400px; margin:0 auto; display:flex; align-items:center; gap:0.75rem; }
.rbm-verse-content { flex:1; min-width:0; }
.rbm-verse-label { display:block; font-family:var(--rbm-montserrat); font-size:0.68rem; font-weight:800; letter-spacing:0.1em; text-transform:uppercase; color:var(--rbm-navy); margin-bottom:0.1rem; }
.rbm-verse-text { font-size:0.95rem; font-weight:500; line-height:1.45; color:var(--rbm-text); margin:0; }
.rbm-verse-text strong { font-weight:800; color:var(--rbm-navy); }
.rbm-verse-share { flex-shrink:0; height:34px; border-radius:100px; display:inline-flex; align-items:center; gap:0.35rem; padding:0 0.8rem; background:var(--rbm-navy); color:#fff; cursor:pointer; transition:background var(--duration); }
.rbm-verse-share:hover { background:var(--rbm-blue); }
.rbm-share-label { font-family:var(--rbm-montserrat); font-size:0.72rem; font-weight:700; letter-spacing:0.02em; }

/* ================================================================
   MAIN
   ================================================================ */
.rbm-main { flex:1 1 auto; min-height:0; overflow-y:auto; overflow-x:hidden; -webkit-overflow-scrolling:touch; padding:0.85rem var(--main-pad) calc(var(--rbm-footer-h) + 0.75rem); }
.rbm-grid.song-now { min-height:0; align-items:start; }
.rbm-grid { display:grid; grid-template-columns:1fr; gap:1rem; max-width:1400px; margin:0 auto; align-items:start; }
@media (min-width:960px) { .rbm-grid { grid-template-columns:minmax(0,1fr) minmax(270px,330px); gap:1.25rem; } }
#rbmPlayer.player.rbm-col-player { position:relative !important; inset:auto !important; width:100% !important; height:auto !important; max-height:none; min-height:0 !important; padding:0 !important; z-index:auto !important; overflow:visible !important; display:flex; flex-direction:column; align-self:start; }

/* ================================================================
   SECTION HEADINGS
   ================================================================ */
.rbm-section-heading { font-family:var(--rbm-poppins); font-size:1.6rem; font-weight:800; color:var(--rbm-navy); letter-spacing:-0.5px; margin:0 0 0.5rem; flex-shrink:0; line-height:1.2; }

/* ================================================================
   BROADCAST CARD
   ================================================================ */
.rbm-broadcast-column { display:flex; flex-direction:column; gap:0.8rem; min-width:0; }
.rbm-broadcast-card { background:var(--rbm-bg-elev); border-radius:var(--rbm-radius); padding:clamp(0.85rem,2vw,1.25rem); border:none !important; box-shadow:var(--rbm-shadow); }
.rbm-broadcast-card-inner { display:grid; grid-template-columns:minmax(150px,220px) minmax(0,1fr); gap:clamp(1rem,2.5vw,1.75rem); align-items:stretch; }

.rbm-broadcast-art.rbm-cover.player-artwork { position:relative !important; display:block !important; flex:none !important; width:100%; max-width:220px !important; border-radius:var(--rbm-radius); overflow:hidden; background:var(--rbm-cream-dark) !important; box-shadow:0 6px 24px rgba(14,42,92,0.18) !important; aspect-ratio:1/1; align-self:start; }
.rbm-broadcast-art.rbm-cover.player-artwork img { position:absolute !important; inset:0 !important; display:block !important; width:100% !important; height:100% !important; max-width:none !important; object-fit:cover; }

.rbm-broadcast-main { display:flex; flex-direction:column; gap:0.6rem; min-width:0; justify-content:flex-start; position:relative; }
.rbm-nowblock { min-width:0; }
#rbmPlayer .song-name.rbm-now-title { font-family:var(--rbm-poppins); font-size:clamp(1.2rem,2.5vw,1.65rem); font-weight:800; line-height:1.2; color:var(--rbm-text) !important; text-wrap:balance; margin:0 0 0.1rem; letter-spacing:-0.5px; }
#rbmPlayer .song-artist.rbm-now-artist { font-family:var(--rbm-montserrat); font-size:22px; font-weight:500; color:var(--rbm-muted) !important; margin:0; line-height:1.3; }

/* PLAY */
.rbm-play-btn.player-button-play { width:65px; height:65px; min-width:65px; border-radius:50%; padding:0; display:flex; align-items:center; justify-content:center; background:var(--rbm-navy) !important; color:#fff !important; cursor:pointer; flex-shrink:0; border:none; box-shadow:0 4px 18px rgba(14,42,92,0.3); transition:background var(--duration); position:relative; z-index:1; }
.rbm-play-btn.player-button-play:hover { background:var(--rbm-blue) !important; }
.rbm-play-btn.player-button-play.is-active { background:var(--rbm-blue) !important; }
.rbm-play-btn.player-button-play::before,.rbm-play-btn.player-button-play::after { display:none !important; animation:none !important; }
.rbm-play-btn .rbm-play-icon,.rbm-play-btn svg { width:28px; height:28px; display:block; margin-left:3px; }
.rbm-play-btn .i-pause { margin-left:0; }
.rbm-play-btn .i-play path,.rbm-play-btn .i-pause path { fill:currentColor; }

/* Equalizer */
.rbm-equalizer { display:flex; align-items:flex-end; gap:3px; height:24px; padding:0 3px; opacity:0.2; }
.rbm-equalizer.rbm-eq-active { opacity:1; }
.rbm-eq-bar { display:block; width:4px; background:var(--rbm-blue); border-radius:2px; height:5px; animation:none; }
.rbm-eq-active .rbm-eq-bar { animation:rbm-eq .9s ease-in-out infinite alternate; }
.rbm-eq-active .rbm-eq-bar:nth-child(1) { animation-duration:.7s; }
.rbm-eq-active .rbm-eq-bar:nth-child(2) { animation-duration:.85s; animation-delay:.1s; }
.rbm-eq-active .rbm-eq-bar:nth-child(3) { animation-duration:.65s; animation-delay:.2s; }
.rbm-eq-active .rbm-eq-bar:nth-child(4) { animation-duration:.9s; animation-delay:.05s; }
.rbm-eq-active .rbm-eq-bar:nth-child(5) { animation-duration:.75s; animation-delay:.15s; }
@keyframes rbm-eq { 0% { height:4px; } 100% { height:22px; } }

/* Controls */
.rbm-broadcast-controls { display:flex; align-items:center; gap:0.5rem; max-width:420px; }
.rbm-vol-ico { flex-shrink:0; color:var(--rbm-muted); display:flex; opacity:.45; }
.rbm-volume,.volume-range { flex:1; max-width:160px; height:5px; min-width:60px; appearance:none; -webkit-appearance:none; background:var(--rbm-cream-dark); border-radius:3px; outline:none; }
.volume-range::-webkit-slider-thumb { appearance:none; -webkit-appearance:none; width:16px; height:16px; border-radius:50%; background:var(--rbm-navy); cursor:pointer; box-shadow:0 1px 5px rgba(14,42,92,0.3); }
.volume-range::-moz-range-thumb { width:16px; height:16px; border-radius:50%; background:var(--rbm-navy); border:0; cursor:pointer; }

/* External links — absolute so they don't push live-bar down */
.rbm-ext-listen { position:absolute; bottom:0; right:0; text-align:right; }
.rbm-ext-label { font-family:var(--rbm-montserrat); font-size:0.68rem; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; color:var(--rbm-muted); margin:0 0 0.25rem; opacity:.5; }
.rbm-player-links { display:flex; flex-wrap:wrap; gap:0.35rem; justify-content:flex-end; }
.rbm-player-link { display:inline-flex; align-items:center; justify-content:center; padding:0.22rem; border-radius:var(--rbm-radius-sm); background:var(--rbm-cream); border:none !important; box-shadow:0 1px 3px rgba(14,42,92,0.06); transition:background var(--duration); }
.rbm-player-link:hover { background:var(--rbm-cream-dark); }
.rbm-player-link img { height:22px; width:auto; }

/* Mobile broadcast */
@media (max-width:560px) {
  .rbm-broadcast-card-inner { grid-template-columns:110px minmax(0,1fr); gap:0.7rem; text-align:left; }
  .rbm-broadcast-art.rbm-cover.player-artwork { max-width:110px !important; width:110px; }
  #rbmPlayer .song-name.rbm-now-title { font-size:1.05rem; }
  #rbmPlayer .song-artist.rbm-now-artist { font-size:14px; }
  .rbm-play-btn.player-button-play { width:48px; height:48px; min-width:48px; }
  .rbm-play-btn .rbm-play-icon,.rbm-play-btn svg { width:22px; height:22px; }
  .rbm-broadcast-controls { max-width:100%; }
  .rbm-ext-listen { text-align:left; position:static; }
  .rbm-ext-label { display:none; }
  .rbm-player-links { justify-content:flex-start; }
}

/* ================================================================
   HISTORY
   ================================================================ */
.rbm-recent-section { width:100%; flex:0 0 auto; display:flex; flex-direction:column; }
.rbm-recent-section .rbm-section-heading { margin-bottom:0.4rem; }
.rbm-history-shell { display:flex; align-items:center; gap:0.45rem; background:var(--rbm-bg-elev); border-radius:var(--rbm-radius); padding:0.5rem; border:none !important; box-shadow:var(--rbm-shadow); }
.rbm-history-nav { flex:0 0 auto; width:34px; min-width:34px; height:34px; border-radius:50%; border:none; background:var(--rbm-cream); color:var(--rbm-navy); font-size:1.15rem; font-weight:700; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background var(--duration); }
.rbm-history-nav:hover { background:var(--rbm-cream-dark); }
.rbm-history-viewport { flex:1; min-width:0; overflow-x:auto; overflow-y:hidden; scroll-behavior:smooth; scrollbar-width:none; }
.rbm-history-viewport::-webkit-scrollbar { display:none; }
.rbm-history-list { display:flex; flex-wrap:nowrap; gap:0.5rem; padding:0.1rem; width:max-content; }
.rbm-history-list:empty::before { content:'Aucun historique disponible.'; display:block; width:100%; padding:0.5rem; font-size:0.9rem; color:var(--rbm-muted); }
.rbm-history-item { flex:0 0 auto; width:min(280px,82vw); display:flex; align-items:center; gap:0.55rem; padding:0.4rem 0.55rem; background:var(--rbm-cream-light); border-radius:var(--rbm-radius); border:none !important; }
.rbm-history-cover { width:82px; height:82px; min-width:82px; object-fit:cover; border-radius:var(--rbm-radius); background:var(--rbm-cream-dark); flex-shrink:0; }
.rbm-history-meta { min-width:0; flex:1; display:flex; flex-direction:column; gap:0.05rem; }
.rbm-history-title { font-family:var(--rbm-poppins); font-size:0.92rem; font-weight:700; line-height:1.25; color:var(--rbm-text); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.rbm-history-artist { font-size:0.82rem; font-weight:500; color:var(--rbm-muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

/* ================================================================
   SIDEBAR
   ================================================================ */
.rbm-col-side { align-self:start; min-height:0; }
.rbm-side-stack { display:flex; flex-direction:column; gap:0.45rem; max-height:100%; overflow-y:auto; scrollbar-width:none; }
.rbm-side-stack::-webkit-scrollbar { display:none; }

.rbm-panel { background:var(--rbm-bg-elev); padding:0.65rem 0.85rem; border-radius:var(--rbm-radius); border:none !important; box-shadow:var(--rbm-shadow); }
.rbm-panel-label { display:block; font-family:var(--rbm-montserrat); font-size:0.75rem; font-weight:800; letter-spacing:0.1em; text-transform:uppercase; color:var(--rbm-navy); margin-bottom:0.15rem; }
.rbm-time-big { display:block; font-family:var(--rbm-poppins); font-size:2rem; font-weight:800; font-variant-numeric:tabular-nums; color:var(--rbm-text); }
.rbm-time-sub { display:block; font-size:0.85rem; font-weight:500; color:var(--rbm-muted); margin-top:0.05rem; text-transform:capitalize; }

/* Weather grid - 4 cities */
.rbm-weather-grid { display:grid; grid-template-columns:1fr 1fr; gap:0.4rem 0.8rem; margin-top:0.2rem; }
.rbm-weather-city { display:flex; flex-direction:column; gap:0.05rem; }
.rbm-city-name { font-family:var(--rbm-montserrat); font-size:0.72rem; font-weight:700; letter-spacing:0.04em; color:var(--rbm-navy); text-transform:uppercase; }
.rbm-city-data { font-size:0.85rem; color:var(--rbm-text); line-height:1.3; }
.rbm-weather-temp { font-family:var(--rbm-poppins); font-size:1.25rem; font-weight:800; color:var(--rbm-text); }
.rbm-weather-desc { font-size:0.78rem; font-weight:500; color:var(--rbm-muted); }

/* Nav */
.rbm-side-nav { display:flex; flex-direction:column; gap:0.25rem; }
.rbm-navhit { cursor:pointer; text-align:left; padding:0.55rem 0.8rem; font-family:var(--rbm-montserrat); font-size:0.95rem; font-weight:700; color:var(--rbm-text); background:var(--rbm-bg-elev); border-radius:var(--rbm-radius); border:none !important; box-shadow:var(--rbm-shadow); transition:background var(--duration); display:flex; align-items:center; gap:0.55rem; }
.rbm-navhit:hover { background:var(--rbm-cream); }
.rbm-nav-ico { flex-shrink:0; color:var(--rbm-navy); stroke:var(--rbm-navy); }

/* ================================================================
   FOOTER
   ================================================================ */
.rbm-footer { position:fixed; left:0; right:0; bottom:0; z-index:100; background:var(--rbm-bg-elev); padding:0.4rem var(--main-pad); padding-bottom:max(0.4rem,env(safe-area-inset-bottom,0px)); box-shadow:0 -1px 8px rgba(14,42,92,0.06); border:none !important; }
.rbm-footer-inner { max-width:1400px; margin:0 auto; display:flex; align-items:center; justify-content:center; gap:0.3rem 1.5rem; }
.rbm-footer-left { text-align:center; }
.rbm-footer-copy { margin:0; font-size:0.78rem; font-weight:400; color:#8A8478; }
.rbm-footer-by { margin:0; font-size:0.72rem; font-weight:400; color:#A9A29A; }
.rbm-footer-by a { color:#8A8478 !important; font-weight:500; }

/* ================================================================
   WHATSAPP FAB
   ================================================================ */
.rbm-wa-fab { position:fixed; bottom:calc(var(--rbm-footer-h) + 1rem); right:1.25rem; z-index:90; width:56px; height:56px; border-radius:50%; background:#25D366; display:flex; align-items:center; justify-content:center; box-shadow:0 4px 18px rgba(37,211,102,0.35); transition:transform var(--duration); }
.rbm-wa-fab:hover { transform:scale(1.08); }

@media (max-width:640px) {
  .rbm-wa-fab { width:50px; height:50px; right:0.85rem; bottom:calc(var(--rbm-footer-h) + 0.75rem); }
  .rbm-wa-fab svg { width:24px; height:24px; }
}

/* Hidden */
.footer-app,.footer-tv { display:none !important; }
.offcanvas,.mobile-menu { display:none !important; }
.player-controller { display:none !important; }

/* ================================================================
   DIALOGS
   ================================================================ */
.rbm-dialog { border:none; padding:0; max-width:calc(100vw - 1.5rem); width:min(560px,100%); background:transparent; color:var(--rbm-text); margin:auto; }
.rbm-dialog.rbm-dialog-wide { width:min(640px,100%); }
.rbm-dialog::backdrop { background:rgba(11,21,48,0.6); }
.rbm-dialog-panel { background:var(--rbm-bg-elev); padding:1.75rem 1.5rem 1.5rem; border-radius:var(--rbm-radius); border:none !important; box-shadow:var(--rbm-shadow-lg); position:relative; max-height:85vh; display:flex; flex-direction:column; }
.rbm-dialog-nooverflow .rbm-dialog-body { overflow:visible; }
.rbm-dialog-panel .rbm-dialog-body { overflow-y:auto; scrollbar-width:none; }
.rbm-dialog-panel .rbm-dialog-body::-webkit-scrollbar { display:none; }
.rbm-dialog-scroll { scrollbar-width:none; }
.rbm-dialog-scroll::-webkit-scrollbar { display:none; }
.rbm-dialog-title { font-family:var(--rbm-poppins); font-size:1.45rem; font-weight:800; margin-bottom:0.8rem; padding-right:2.5rem; color:var(--rbm-navy); flex-shrink:0; letter-spacing:-0.5px; }
.rbm-dialog-subtitle { font-family:var(--rbm-poppins); font-size:1.05rem; font-weight:700; color:var(--rbm-navy); margin:0.85rem 0 0.35rem; }
.rbm-dialog-body { font-size:0.92rem; line-height:1.65; color:var(--rbm-muted); flex:1 1 auto; }
.rbm-dialog-body p { margin-bottom:0.65rem; } .rbm-dialog-body p:last-child { margin-bottom:0; }
.rbm-dialog-close { position:absolute; top:0.8rem; right:0.8rem; width:36px; height:36px; border-radius:50%; cursor:pointer; background:var(--rbm-cream); color:var(--rbm-navy); font-size:1.25rem; font-weight:700; display:flex; align-items:center; justify-content:center; border:none !important; transition:background var(--duration); z-index:2; }
.rbm-dialog-close:hover { background:var(--rbm-cream-dark); }

/* ================================================================
   CONTACT FORM
   ================================================================ */
.rbm-contact-form { margin-top:0.5rem; }
.rbm-form-row { display:grid; grid-template-columns:1fr 1fr; gap:0.55rem; }
@media (max-width:480px) { .rbm-form-row { grid-template-columns:1fr; } }
.rbm-form-group { margin-bottom:0.6rem; }
.rbm-form-label { display:block; font-size:0.85rem; font-weight:700; color:var(--rbm-text); margin-bottom:0.2rem; }
.rbm-form-input { display:block; width:100%; padding:0.6rem 0.8rem; font-size:0.92rem; color:var(--rbm-text); background:var(--rbm-cream-light); border:none !important; border-radius:var(--rbm-radius); box-shadow:inset 0 1px 4px rgba(14,42,92,0.06); transition:box-shadow var(--duration); }
.rbm-form-input:focus { box-shadow:inset 0 1px 4px rgba(14,42,92,0.06),0 0 0 3px rgba(23,70,162,0.15); }
.rbm-form-textarea { resize:vertical; min-height:75px; }
.rbm-form-submit { display:inline-flex; align-items:center; justify-content:center; padding:0.6rem 1.5rem; font-family:var(--rbm-montserrat); font-size:0.92rem; font-weight:700; color:#fff; background:var(--rbm-navy); border-radius:var(--rbm-radius); border:none !important; cursor:pointer; transition:background var(--duration); }
.rbm-form-submit:hover { background:var(--rbm-blue); }
.rbm-form-status { font-size:0.85rem; margin-top:0.4rem; font-weight:600; }
.rbm-form-success { color:#2e7d32; }
.rbm-form-error { color:#c62828; }

/* ================================================================
   RESPONSIVE
   ================================================================ */
@media (max-width:959px) { .rbm-section-heading { font-size:1.35rem; } #rbmPlayer .song-artist.rbm-now-artist { font-size:18px; } }
@media (max-width:560px) { .rbm-section-heading { font-size:1.2rem; } .rbm-verse-text { font-size:0.88rem; } .rbm-dialog-panel { padding:1.15rem 1rem 1rem; max-height:90vh; } .rbm-dialog-title { font-size:1.2rem; } }

/* ================================================================
   V2 CORRECTIONS — ajoutées sur le CSS original fonctionnel
   ================================================================ */

/* 1. Header: signature gold en 2 lignes, taille augmentée */
.rbm-signature { font-size:clamp(0.8rem,1.5vw,0.95rem); letter-spacing:2.5px; }
.rbm-signature-sub { font-size:clamp(0.7rem,1.2vw,0.82rem); letter-spacing:2px; opacity:.85; }

/* 2. Social icons aligned LEFT — flush with left edge of sidebar content below */
.rbm-header-right { align-items:flex-start !important; align-self:center !important; }
.rbm-header-social.player-social { justify-content:flex-start !important; }

/* 3. ON AIR — red pill, aligned with bottom of artwork */
.rbm-live-bar { text-align:left; margin-top:auto; }
.rbm-live-pill { background:#B71C1C !important; color:#fff !important; padding:0.3rem 1.2rem; border-radius:100px; font-size:0.75rem; font-weight:800; letter-spacing:0.08em; display:inline-flex; align-items:center; gap:0.4rem; animation:rbm-pill-blink 1.6s ease-in-out infinite; }
.rbm-live-dot { width:10px; height:10px; background:#FF5252 !important; border-radius:50%; animation:rbm-dot-blink 1.2s ease-in-out infinite; }
@keyframes rbm-pill-blink { 0%,100%{opacity:1} 50%{opacity:.6} }
@keyframes rbm-dot-blink { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.4;transform:scale(1.4)} }

/* 5. Horloge — tabular-nums pour empêcher le déplacement */
.rbm-time-big { font-variant-numeric:tabular-nums; letter-spacing:0; }

/* 6. Modal body — font-weight plus lisible */
.rbm-dialog-body { font-weight:500 !important; }
.rbm-dialog-body p { font-weight:500 !important; }

/* 8. Inversion couleurs : fond blanc, cards crème */
:root {
  --rbm-bg: #ffffff;
  --rbm-bg-elev: #F4F1EA;
  --rbm-cream-light: #FAF8F4;
}
body { background:#ffffff; }
.rbm-app.app { background:#ffffff !important; }

/* 10. History timestamps */
.rbm-history-time { font-family:var(--rbm-montserrat); font-size:0.72rem; font-weight:700; color:var(--rbm-blue); margin-bottom:0.1rem; }

/* 11. Weather — celsius en bleu, espacement titre */
.rbm-weather-temp { color:var(--rbm-blue) !important; }
.rbm-weatherblock .rbm-panel-label { margin-bottom:0.5rem; }

/* Footer — copyright left, badges right */
.rbm-footer-inner { justify-content:space-between !important; align-items:center !important; }
.rbm-footer-left { text-align:left; }
.rbm-footer-badges { display:flex; gap:0.5rem; align-items:center; flex-shrink:0; }
.rbm-app-badge { display:block; transition:transform var(--duration); }
.rbm-app-badge:hover { transform:scale(1.04); }
.rbm-app-badge img { height:34px; width:auto; display:block; }

/* PWA Install Banner */
.rbm-install-banner { flex-shrink:0; background:linear-gradient(135deg,#0E2A5C 0%,#1746A2 100%); padding:0.5rem var(--main-pad); }
.rbm-install-inner { max-width:1400px; margin:0 auto; display:flex; align-items:center; gap:0.6rem; color:#fff; font-size:0.88rem; font-weight:500; }
.rbm-install-inner svg { flex-shrink:0; stroke:#fff; }
.rbm-install-inner span { flex:1; }
.rbm-install-btn { background:var(--rbm-gold); color:#0B1530; border:none; border-radius:100px; padding:0.35rem 1.2rem; font-family:var(--rbm-montserrat); font-size:0.8rem; font-weight:700; cursor:pointer; white-space:nowrap; transition:background var(--duration); }
.rbm-install-btn:hover { background:#E0B84F; }
.rbm-install-close { background:none; border:none; color:rgba(255,255,255,.6); font-size:1.3rem; cursor:pointer; padding:0 0.3rem; line-height:1; }
.rbm-install-close:hover { color:#fff; }

/* 10-FIX. main.js uses wvr-history-* classes — mirror rbm-history-* styles */
.wvr-history-item { flex:0 0 auto; width:min(280px,82vw); display:flex; align-items:center; gap:0.55rem; padding:0.4rem 0.55rem; background:var(--rbm-cream-light); border-radius:var(--rbm-radius); border:none !important; }
.wvr-history-cover { width:82px; height:82px; min-width:82px; object-fit:cover; border-radius:var(--rbm-radius); background:var(--rbm-cream-dark); flex-shrink:0; }
.wvr-history-meta { min-width:0; flex:1; display:flex; flex-direction:column; gap:0.05rem; }
.wvr-history-title { font-family:var(--rbm-poppins); font-size:0.92rem; font-weight:700; line-height:1.25; color:var(--rbm-text); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.wvr-history-artist { font-size:0.82rem; font-weight:500; color:var(--rbm-muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.wvr-history-empty { font-size:0.9rem; color:var(--rbm-muted); padding:0.5rem; }

/* ================================================================
   RESPONSIVE MOBILE — player visible dès l'ouverture
   ================================================================ */
@media (max-width:640px) {
  /* Header — logo left, social icons right, all in one row */
  .rbm-topbar.header { padding:0.3rem 0.75rem !important; }
  .rbm-topbar-inner { flex-direction:row !important; text-align:left !important; gap:0.5rem !important; }
  .rbm-logo-block { flex-direction:row !important; text-align:left !important; gap:0.5rem !important; flex:1; min-width:0; }
  .rbm-logo-img { height:40px !important; width:auto !important; }
  .rbm-logo-text { gap:0 !important; }
  .rbm-signature { font-size:0.6rem !important; letter-spacing:1.5px !important; white-space:nowrap; }
  .rbm-signature-sub { font-size:0.55rem !important; letter-spacing:1px !important; white-space:nowrap; }
  .rbm-header-right { display:none !important; }

  /* Support banner compact */
  .rbm-support-banner { padding:0.3rem 0.75rem; }
  .rbm-support-text { font-size:0.78rem; }

  /* Verse compact */
  .rbm-verse-bar { padding:0.35rem 0.75rem; }
  .rbm-verse-text { font-size:0.82rem; }
  .rbm-verse-share { padding:0 0.6rem; height:28px; }
  .rbm-share-label { font-size:0.65rem; }

  /* Main */
  .rbm-main { padding:0.5rem 0.75rem calc(var(--rbm-footer-h) + 0.5rem); }

  /* Broadcast card compact */
  .rbm-broadcast-card { padding:0.65rem; }
  .rbm-broadcast-card-inner { grid-template-columns:100px minmax(0,1fr) !important; gap:0.6rem !important; }
  .rbm-broadcast-art.rbm-cover.player-artwork { max-width:100px !important; width:100px !important; }
  #rbmPlayer .song-name.rbm-now-title { font-size:1rem !important; }
  #rbmPlayer .song-artist.rbm-now-artist { font-size:13px !important; }
  .rbm-play-btn.player-button-play { width:44px !important; height:44px !important; min-width:44px !important; }
  .rbm-play-btn .rbm-play-icon, .rbm-play-btn svg { width:20px !important; height:20px !important; }
  .rbm-live-bar { margin-top:0.25rem; }
  .rbm-live-pill { font-size:0.65rem; padding:0.2rem 0.7rem; }

  /* Section headings */
  .rbm-section-heading { font-size:1.1rem !important; margin-bottom:0.35rem !important; }

  /* Footer — copyright on two lines */
  .rbm-footer { padding:0.3rem 0.75rem !important; }
  .rbm-footer-inner { flex-wrap:nowrap !important; }
  .rbm-footer-left { display:block; white-space:nowrap; }
  .rbm-footer-copy { font-size:0.68rem; white-space:nowrap; margin:0; }
  .rbm-footer-by { font-size:0.62rem; white-space:nowrap; margin:0; }
  .rbm-footer-badges { gap:0.3rem; }
  .rbm-app-badge img { height:26px; }

  /* Install banner mobile */
  .rbm-install-inner { font-size:0.78rem; gap:0.4rem; }
  .rbm-install-btn { font-size:0.72rem; padding:0.3rem 0.9rem; }
}

@media (max-width:400px) {
  .rbm-broadcast-card-inner { grid-template-columns:85px minmax(0,1fr) !important; gap:0.5rem !important; }
  .rbm-broadcast-art.rbm-cover.player-artwork { max-width:85px !important; width:85px !important; }
  .rbm-play-btn.player-button-play { width:40px !important; height:40px !important; min-width:40px !important; }
}
