/* Laborex – Calendrier des gardes | Thème #0f9c00 / blanc / texte #1e293b */
.lbg{
  --g:#0f9c00; --g-dark:#0a7a00; --g-soft:#eaf7e8; --g-line:#cfeccb;
  --ink:#1e293b; --muted:#64748b; --line:#e5e9ef; --off:#94a3b8; --off-bg:#f1f5f9;
  --r:18px; --shadow:0 1px 2px rgba(30,41,59,.05),0 8px 24px -12px rgba(30,41,59,.12);
  color:var(--ink);font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  max-width:1120px;margin:0 auto 80px;line-height:1.5;box-sizing:border-box
}
.lbg *,.lbg *::before,.lbg *::after{box-sizing:border-box}
.lbg svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
.lbg button{font-family:inherit;line-height:1;text-transform:none;letter-spacing:0;box-shadow:none;margin:0}
.lbg [hidden]{display:none!important}

/* ---------- Hero ---------- */
.lbg__hero{position:relative;border-radius:24px;padding:36px 32px 32px;margin-bottom:20px;color:#fff;
  background:radial-gradient(120% 140% at 100% 0%,#22c10f 0%,var(--g) 45%,var(--g-dark) 100%);
  box-shadow:0 18px 40px -20px rgba(15,156,0,.55)}
.lbg__hero::before,.lbg__hero::after{content:"";position:absolute;border-radius:50%;background:rgba(255,255,255,.09);pointer-events:none}
.lbg__hero::before{width:260px;height:260px;right:-70px;top:-90px}
.lbg__hero::after{width:160px;height:160px;right:140px;bottom:-90px}
.lbg__hero-text{position:relative;margin-bottom:22px}
.lbg .lbg__title{margin:0 0 6px;color:#fff;font-size:clamp(1.6rem,3.4vw,2.2rem);font-weight:800;letter-spacing:-.02em;line-height:1.15}
.lbg .lbg__subtitle{margin:0;color:rgba(255,255,255,.9)}
.lbg__search{position:relative;display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:12px;z-index:5}
.lbg__field{position:relative;display:flex;align-items:center;gap:10px;background:#fff;border-radius:14px;padding:0 16px;color:var(--muted);
  box-shadow:0 10px 30px -12px rgba(0,0,0,.35);transition:box-shadow .2s,color .2s;margin:0;cursor:text}
.lbg__field:focus-within{color:var(--g);box-shadow:0 0 0 4px rgba(255,255,255,.35),0 10px 30px -12px rgba(0,0,0,.35)}
.lbg .lbg__input,.lbg .lbg__date{flex:1;min-width:0;height:54px;border:0!important;outline:0!important;background:transparent!important;
  box-shadow:none!important;padding:0!important;margin:0!important;font-family:inherit;font-size:1rem;color:var(--ink)!important}
.lbg .lbg__input::placeholder{color:#94a3b8}
.lbg__field-label{position:absolute;left:44px;top:8px;font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#94a3b8}
.lbg__field--date .lbg__date{padding-top:16px!important;cursor:pointer}

.lbg__suggest{position:absolute;left:0;right:0;top:calc(100% + 8px);margin:0;padding:6px;list-style:none;background:#fff;border:1px solid var(--line);
  border-radius:14px;box-shadow:0 20px 40px -16px rgba(30,41,59,.3);max-height:320px;overflow:auto;z-index:30}
.lbg__suggest li{margin:0;padding:0}
.lbg .lbg-sg{display:flex;width:100%;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border:0;background:transparent;
  border-radius:10px;cursor:pointer;text-align:left;color:var(--ink);font-size:.94rem;font-weight:600}
.lbg .lbg-sg small{display:block;color:var(--muted);font-weight:500;font-size:.8rem;margin-top:3px}
.lbg .lbg-sg em{font-style:normal;font-size:.72rem;font-weight:700;padding:4px 9px;border-radius:999px;background:var(--g-soft);color:var(--g-dark);white-space:nowrap}
.lbg .lbg-sg:hover,.lbg .lbg-sg.is-on{background:var(--g-soft)}
.lbg .lbg-sg-empty{padding:14px 12px;color:var(--muted);font-size:.9rem}

/* ---------- Messages / focus / légende ---------- */
.lbg .lbg__msg{margin:0 0 14px;padding:12px 16px;border-radius:12px;font-size:.92rem;font-weight:600;background:var(--g-soft);color:var(--g-dark);border:1px solid var(--g-line);animation:lbgIn .3s ease}
.lbg .lbg__msg.is-warn{background:#fff7ed;color:#9a3412;border-color:#fed7aa}
.lbg__focus{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:14px;padding:12px 14px 12px 18px;border-radius:14px;background:#fff;border:1px solid var(--g-line);box-shadow:var(--shadow)}
.lbg__focus b{color:var(--ink)}
.lbg__focus span{color:var(--muted);font-size:.92rem}
.lbg .lbg__focus button{margin-left:auto;display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:10px;font-weight:600;font-size:.85rem;cursor:pointer}
.lbg .lbg__focus button:hover{border-color:var(--g);color:var(--g)}
.lbg .lbg__focus button svg{width:14px;height:14px}
.lbg__legend{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin-bottom:14px;font-size:.84rem;color:var(--muted)}
.lbg-key{display:inline-flex;align-items:center;gap:7px;font-weight:600}
.lbg-key i{width:10px;height:10px;border-radius:50%;display:inline-block}
.lbg-key--cours i{background:var(--g);box-shadow:0 0 0 4px rgba(15,156,0,.18)}
.lbg-key--avenir i{background:#fff;border:2px solid var(--g)}
.lbg-key--passee i{background:var(--off)}
.lbg .lbg__today{margin-left:auto;cursor:pointer;border:1px solid var(--g-line);background:#fff;color:var(--g);padding:8px 14px;border-radius:999px;font-weight:700;font-size:.82rem}
.lbg .lbg__today:hover{background:var(--g);color:#fff;border-color:var(--g)}

/* ---------- Mois ---------- */
.lbg__months{display:flex;gap:8px;overflow-x:auto;padding:6px 2px 14px;margin-bottom:6px;scrollbar-width:thin;scroll-snap-type:x proximity}
.lbg .lbg-m{position:relative;flex:none;min-width:92px;padding:12px 14px;border:1px solid var(--line);background:#fff;border-radius:14px;cursor:pointer;
  text-align:center;color:var(--ink);scroll-snap-align:start;transition:all .18s}
.lbg .lbg-m b{display:block;font-size:.95rem;font-weight:700;text-transform:capitalize;line-height:1.2}
.lbg .lbg-m small{display:block;font-size:.74rem;color:var(--muted);margin-top:4px;font-weight:600}
.lbg .lbg-m i{position:absolute;top:8px;right:8px;width:8px;height:8px;border-radius:50%;background:var(--off)}
.lbg .lbg-m.is-cours i{background:var(--g);box-shadow:0 0 0 3px rgba(15,156,0,.2)}
.lbg .lbg-m.is-avenir i{background:#fff;border:2px solid var(--g)}
.lbg .lbg-m:hover{border-color:var(--g);transform:translateY(-1px)}
.lbg .lbg-m.is-active{background:var(--g);border-color:var(--g);color:#fff;box-shadow:0 10px 20px -10px rgba(15,156,0,.7)}
.lbg .lbg-m.is-active small{color:rgba(255,255,255,.85)}
.lbg .lbg-m.is-active i{background:#fff;border-color:#fff;box-shadow:none}

.lbg__panel{min-height:200px}
.lbg-phead{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:6px 16px;margin:6px 0 16px}
.lbg .lbg-phead h3{margin:0;font-size:1.5rem;font-weight:800;letter-spacing:-.02em;text-transform:capitalize;color:var(--ink)}
.lbg-phead span{color:var(--muted);font-size:.92rem}

/* ---------- Cartes de garde ---------- */
.lbg-card{background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);margin-bottom:18px;overflow:hidden;transition:box-shadow .3s,border-color .3s}
.lbg-card.is-cours{border-color:var(--g);box-shadow:0 0 0 3px rgba(15,156,0,.12),0 16px 32px -16px rgba(15,156,0,.4)}
.lbg-card.is-hit{animation:lbgHit 2.2s ease}
@keyframes lbgHit{0%,60%{box-shadow:0 0 0 5px rgba(15,156,0,.35),0 16px 32px -16px rgba(15,156,0,.5)}100%{}}
.lbg .lbg-chead{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:16px;width:100%;padding:16px 20px;border:0;
  background:#fff;cursor:pointer;text-align:left;color:var(--ink)}
.lbg-card.is-avenir .lbg-chead{background:linear-gradient(90deg,#fafffa,#fff)}
.lbg-card.is-cours .lbg-chead{background:linear-gradient(90deg,var(--g-soft),#fff)}
.lbg-card.is-passee .lbg-chead{background:#f8fafc}
.lbg-date{width:58px;height:64px;border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--g-soft);color:var(--g-dark);line-height:1}
.lbg-date b{font-size:1.5rem;font-weight:800}
.lbg-date small{font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin-top:5px}
.lbg-card.is-cours .lbg-date{background:var(--g);color:#fff}
.lbg-card.is-passee .lbg-date{background:var(--off-bg);color:var(--off)}
.lbg .lbg-ctitle{display:block;font-size:1.02rem;font-weight:700;color:var(--ink);line-height:1.3;text-transform:capitalize}
.lbg-card.is-passee .lbg-ctitle{color:var(--muted)}
.lbg-csub{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:6px;font-size:.85rem;color:var(--muted)}
.lbg-csub b{color:var(--ink);font-weight:700}
.lbg-card.is-passee .lbg-csub b{color:var(--muted)}
.lbg-chev{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--off-bg);color:var(--muted);transition:transform .25s}
.lbg-card.is-collapsed .lbg-chev{transform:rotate(-90deg)}

.lbg-st{display:inline-flex;align-items:center;gap:7px;padding:7px 13px;border-radius:999px;font-size:.78rem;font-weight:700;white-space:nowrap}
.lbg-st svg{width:14px;height:14px}
.lbg-st--cours{background:var(--g);color:#fff;box-shadow:0 6px 14px -6px rgba(15,156,0,.7)}
.lbg-st--cours i{width:8px;height:8px;border-radius:50%;background:#fff;animation:lbgPulse 1.6s infinite}
.lbg-st--avenir{background:#fff;color:var(--g-dark);border:1.5px solid var(--g-line)}
.lbg-st--passee{background:var(--off-bg);color:var(--muted)}
@keyframes lbgPulse{0%{box-shadow:0 0 0 0 rgba(255,255,255,.7)}70%{box-shadow:0 0 0 7px rgba(255,255,255,0)}100%{box-shadow:0 0 0 0 rgba(255,255,255,0)}}

.lbg-body{border-top:1px solid var(--line)}
.lbg-card.is-collapsed .lbg-body{display:none}

/* ---------- Lignes pharmacies ---------- */
.lbg-row{display:grid;grid-template-columns:44px minmax(0,1.6fr) minmax(0,.9fr) minmax(0,1fr) auto;align-items:center;gap:16px;padding:14px 20px;
  border-top:1px solid #f0f3f7;transition:background .15s;animation:lbgIn .35s ease both;animation-delay:calc(var(--i,0)*14ms)}
.lbg-row:first-child{border-top:0}
.lbg-row:hover{background:#f9fffa}
.lbg-row__ico{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:var(--g-soft);color:var(--g)}
.lbg-row__ico svg{width:22px;height:22px}
.lbg .lbg-row__name{margin:0 0 3px;font-size:1rem;font-weight:700;color:var(--ink);line-height:1.3;text-transform:none;letter-spacing:-.01em}
.lbg-row__addr{display:flex;gap:6px;margin:0;color:var(--muted);font-size:.87rem}
.lbg-row__addr svg{width:14px;height:14px;margin-top:3px;color:var(--g)}
.lbg-lab{display:block;font-size:.68rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#94a3b8;margin-bottom:3px}
.lbg-row__area strong{display:block;font-size:.92rem;font-weight:600}
.lbg-row__area small{display:block;color:var(--muted);font-size:.8rem}
.lbg-row__tel{display:flex;flex-direction:column;gap:3px}
.lbg-row .lbg-tel{display:inline-flex;align-items:center;gap:7px;width:fit-content;color:var(--ink);font-weight:600;font-size:.9rem;text-decoration:none}
.lbg-row .lbg-tel svg{width:14px;height:14px;color:var(--g)}
.lbg-row a.lbg-tel:hover{color:var(--g)}
.lbg-row__side{display:flex;flex-direction:column;align-items:flex-end;gap:8px}
.lbg-hb{display:inline-flex;align-items:center;gap:5px;font-size:.72rem;font-weight:700;padding:4px 10px;border-radius:999px;background:var(--g-soft);color:var(--g-dark)}
.lbg-hb--nuit{background:var(--ink);color:#fff}
.lbg-hb--24{background:var(--g);color:#fff}
.lbg-pill{display:inline-flex;align-items:center;gap:6px;font-size:.74rem;font-weight:700;padding:5px 11px;border-radius:999px;white-space:nowrap}
.lbg-pill i{width:7px;height:7px;border-radius:50%;background:currentColor}
.lbg-pill--on{background:var(--g-soft);color:var(--g-dark);border:1px solid var(--g-line)}
.lbg-pill--on i{animation:lbgBlink 1.6s infinite}
.lbg-pill--soon{background:#fff;color:var(--g-dark);border:1px dashed var(--g)}
.lbg-pill--soon i{background:transparent;border:2px solid var(--g)}
.lbg-pill--off{background:var(--off-bg);color:var(--muted)}
@keyframes lbgBlink{50%{opacity:.35}}

.lbg-row.is-passee .lbg-row__ico{background:var(--off-bg);color:var(--off)}
.lbg-row.is-passee .lbg-row__name,.lbg-row.is-passee .lbg-tel,.lbg-row.is-passee .lbg-row__area strong{color:var(--muted)}
.lbg-row.is-passee .lbg-row__addr svg,.lbg-row.is-passee .lbg-tel svg{color:var(--off)}
.lbg-row.is-passee .lbg-hb{background:var(--off-bg);color:var(--muted)}
.lbg-row.is-passee{opacity:.8}
.lbg-row.is-focus{background:#f3fcf1;box-shadow:inset 4px 0 0 var(--g)}
.lbg-row.is-focus .lbg-row__name::after{content:"Votre recherche";margin-left:10px;font-size:.66rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;vertical-align:middle;
  background:var(--g);color:#fff;padding:3px 8px;border-radius:999px}

.lbg-foot{display:flex;justify-content:center;padding:14px;border-top:1px solid #f0f3f7;background:#fcfdfc}
.lbg .lbg-more{cursor:pointer;display:inline-flex;align-items:center;gap:8px;padding:11px 20px;border-radius:12px;border:1px solid var(--g-line);background:#fff;color:var(--g);font-weight:700;font-size:.9rem;transition:all .18s}
.lbg .lbg-more:hover{background:var(--g);color:#fff;border-color:var(--g);transform:translateY(-1px)}
.lbg .lbg-more:disabled{opacity:.6;cursor:wait}

/* ---------- États ---------- */
.lbg-skel{height:72px;margin:0;border-top:1px solid #f0f3f7;background:linear-gradient(100deg,#f6f8fa 30%,#fff 50%,#f6f8fa 70%);background-size:300% 100%;animation:lbgSh 1.2s linear infinite}
@keyframes lbgSh{from{background-position:100% 0}to{background-position:-100% 0}}
.lbg-empty{text-align:center;padding:56px 20px;border:1.5px dashed var(--g-line);border-radius:var(--r);background:#fafffa}
.lbg-empty svg{width:42px;height:42px;color:var(--g);margin-bottom:8px}
.lbg .lbg-empty h3{margin:0 0 6px;font-size:1.15rem;color:var(--ink)}
.lbg-empty p{margin:0;color:var(--muted)}
@keyframes lbgIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* ---------- Responsive ---------- */
@media (max-width:980px){
  .lbg-row{grid-template-columns:44px minmax(0,1fr) auto;grid-template-areas:"ico main side" "ico area tel";gap:8px 14px}
  .lbg-row__ico{grid-area:ico;align-self:start}
  .lbg-row__main{grid-area:main}.lbg-row__side{grid-area:side}.lbg-row__area{grid-area:area}.lbg-row__tel{grid-area:tel}
}
@media (max-width:720px){
  .lbg__hero{padding:26px 20px 22px;border-radius:20px}
  .lbg__search{grid-template-columns:1fr}
  .lbg .lbg-chead{grid-template-columns:auto minmax(0,1fr) auto;padding:14px 16px;gap:12px}
  .lbg .lbg-chead .lbg-st{grid-column:2;grid-row:2;justify-self:start;margin-top:2px}
  .lbg-chev{grid-column:3;grid-row:1}
  .lbg-date{width:52px;height:58px}
  .lbg-row{grid-template-columns:40px minmax(0,1fr);grid-template-areas:"ico main" "area area" "tel tel" "side side";padding:14px 16px}
  .lbg-row__ico{width:40px;height:40px}
  .lbg-row__side{flex-direction:row;justify-content:space-between;align-items:center}
  .lbg__today{margin-left:0}
}
@media (prefers-reduced-motion:reduce){.lbg *{animation:none!important;transition:none!important}}
