/* Muscu Santé V1.1 — Lot 1 : identité graphique et navigation.
 * Chargé après app.css et lot2.css ... lot8.css afin de préserver la V1.
 */
:root {
  --ms-navy: #164160;
  --ms-turquoise: #279295;
  --ms-mint: #7cdbd7;
  --ms-mist: #f8fdff;
  --ms-primary-accessible: #1a7376;
  --ms-border: #d9e7e9;
  --ms-focus-ring: rgba(39, 146, 149, .24);
  --brand: var(--ms-primary-accessible);
  --brand-dark: var(--ms-navy);
  --ink: #1e2c34;
  --muted: #546870;
  --line: var(--ms-border);
  --surface: #fff;
  --bg: var(--ms-mist);
  --shadow: 0 6px 22px rgba(22,65,96,.075);
  --focus: 0 0 0 3px var(--ms-focus-ring);
}
body { background: var(--ms-mist); color: var(--ink); }
h1, h2, h3, h4, .page-heading h1 { color: var(--ms-navy); }
.eyebrow { color: #216f72; }
.card { background:#fff; border-color:var(--ms-border); box-shadow: var(--shadow); }
.card.action-card:hover, .beneficiary-session-card:hover { border-color:var(--ms-turquoise); }
.button.primary, button.button.primary, a.button.primary { background:var(--ms-primary-accessible); color:#fff; border-color:var(--ms-primary-accessible); }
.button.primary:hover, button.button.primary:hover, a.button.primary:hover { background:var(--ms-navy); border-color:var(--ms-navy); }
.button.secondary { color:var(--ms-navy); border-color:#b8d4d5; }
.button.secondary:hover { border-color:var(--ms-turquoise); background:#effbfa; }
.tabs .active { background:#dff3f0; color:var(--ms-navy); }
input, select, textarea { border-color:#bacfd0; color:var(--ink); }
input:focus, select:focus, textarea:focus { outline:3px solid var(--ms-focus-ring); border-color:var(--ms-primary-accessible); }
:focus-visible { outline:3px solid var(--ms-primary-accessible); outline-offset:3px; }
th { background:#f1f9fa; }

/* Barre professionnelle, compatible avec le layout partagé de la V1. */
.topbar.ms-topbar {
  display:block;
  min-height:76px;
  padding:0;
  margin:0;
  position:sticky;
  top:0;
  z-index:100;
  border-bottom:1px solid var(--ms-border);
  background:rgba(255,255,255,.98);
  box-shadow:0 3px 14px rgba(22,65,96,.04);
}
.ms-topbar-inner {
  width:min(1540px,calc(100% - 36px));
  min-height:76px;
  margin:0 auto;
  display:flex;
  align-items:center;
  gap:clamp(14px,2vw,28px);
  position:relative;
}
.ms-topbar .ms-brand { display:inline-flex;flex:0 0 auto;align-items:center;justify-content:flex-start;line-height:1; }
.ms-brand img { display:block; width:clamp(150px,12.4vw,188px);height:auto; }
.topbar .ms-main-nav {
  display:flex;
  flex:1 1 auto;
  align-items:center;
  justify-content:center;
  gap:2px;
  min-width:0;
  overflow:visible;
}
.topbar .ms-main-nav .ms-nav-link,
.topbar .ms-main-nav .ms-nav-button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  min-height:42px;
  padding:9px 11px;
  border:0;
  border-radius:9px;
  background:transparent;
  color:var(--ms-navy);
  line-height:1.25;
  font-family:inherit;
  font-size:.88rem;
  font-weight:600;
  white-space:nowrap;
  text-decoration:none;
  cursor:pointer;
}
.topbar .ms-main-nav .ms-nav-link:hover,
.topbar .ms-main-nav .ms-nav-button:hover,
.topbar .ms-main-nav .ms-nav-link.is-active,
.topbar .ms-main-nav .is-active > .ms-nav-link,
.topbar .ms-main-nav .is-active > .ms-nav-button,
.topbar .ms-main-nav .is-open > .ms-nav-button {
  background:#e5f6f4;
  color:var(--ms-navy);
}
.ms-nav-group, .ms-nav-split, .ms-profile-menu { position:relative; }
.ms-nav-split { display:flex; align-items:center; border-radius:9px; }
.ms-nav-split .ms-nav-link { padding-right:2px !important; }
.ms-topbar .ms-nav-chevron {
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:25px;
  min-height:42px;
  margin-left:-2px;
  padding:0 3px;
  border:0;
  background:transparent;
  color:var(--ms-navy);
  cursor:pointer;
  font-size:1.05rem;
}
.ms-nav-chevron:hover { background:#e5f6f4; border-radius:7px; }
.ms-dropdown[hidden] { display:none !important; }
.ms-dropdown {
  position:absolute;
  top:calc(100% + 10px);
  left:0;
  z-index:120;
  min-width:220px;
  padding:8px;
  background:white;
  border:1px solid var(--ms-border);
  border-radius:13px;
  box-shadow:0 18px 45px rgba(22,65,96,.15);
}
.ms-dropdown-wide { min-width:248px;max-height:min(70vh,620px);overflow-y:auto; }
.ms-dropdown a, .ms-dropdown .ms-logout-button {
  display:block;
  width:100%;
  min-height:38px;
  padding:9px 11px;
  border:0;
  border-radius:8px;
  background:transparent;
  color:var(--ms-navy);
  line-height:1.4;
  font-family:inherit;
  font-size:.87rem;
  text-align:left;
  text-decoration:none;
  cursor:pointer;
}
.ms-dropdown a:hover, .ms-dropdown .ms-logout-button:hover { background:#ebf8f7; }
.ms-dropdown-heading { padding:11px 11px 5px;font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;font-weight:750;color:#667880; }
.ms-dropdown-heading:not(:first-child){border-top:1px solid var(--ms-border);margin-top:5px;}
.topbar .ms-user-actions { display:flex;align-items:center;gap:12px;flex:0 0 auto;margin:0; }
.ms-notifications { position:relative;min-width:38px;min-height:40px;justify-content:center;color:var(--ms-navy) !important;border-radius:10px; }
.ms-notifications:hover { background:#edf8f7; }
.ms-notifications .notification-count { position:absolute;top:0;right:-2px;min-width:1.18rem;height:1.18rem;font-size:.64rem; }
.ms-profile-trigger {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  min-height:42px;
  padding:3px 7px;
  border:0;
  border-radius:10px;
  background:transparent;
  color:var(--ms-navy);
  line-height:1.2;
  font-family:inherit;
  font-size:.88rem;
  font-weight:600;
  cursor:pointer;
}
.ms-profile-trigger:hover { background:#edf8f7; }
.ms-avatar { display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#e0f3f1;color:var(--ms-navy);font-size:.83rem;font-weight:800; }
.ms-dropdown-profile { left:auto;right:0;min-width:180px; }
.ms-dropdown-profile form { margin:0; }
.ms-mobile-toggle { display:none;align-items:center;gap:6px;min-height:40px;border:1px solid var(--ms-border);border-radius:10px;background:#fff;color:var(--ms-navy);padding:7px 9px;font-weight:600;line-height:1.2;font-family:inherit;font-size:.82rem;cursor:pointer; }

/* Connexion : même identité, sans altérer les formulaires d'authentification. */
body.guest { background:radial-gradient(circle at 85% 12%,#d9f9f6 0%,transparent 34%),linear-gradient(140deg,#f8fdff,#eaf6f7); }
.ms-guest-brand { display:flex;align-items:center;justify-content:center;margin:0 auto 20px; }
.ms-guest-brand img { display:block;width:min(285px,85vw);height:auto; }
body.guest .auth-card { border:1px solid var(--ms-border);background:#fff;box-shadow:0 16px 45px rgba(22,65,96,.09); }

@media(max-width:1100px) {
  .ms-topbar-inner { min-height:68px;gap:10px; }
  .ms-brand img { width:165px; }
  .ms-mobile-toggle { display:inline-flex;order:2;margin-left:auto; }
  .topbar .ms-user-actions { order:3;gap:6px; }
  .topbar .ms-main-nav {
    display:none;
    position:absolute;
    z-index:105;
    left:-18px;
    right:-18px;
    top:100%;
    width:auto;
    max-height:calc(100vh - 76px);
    max-height:calc(100dvh - 76px);
    overflow-y:auto;
    align-items:stretch;
    flex-direction:column;
    gap:3px;
    padding:12px 18px 18px;
    background:#fff;
    border-top:1px solid var(--ms-border);
    border-bottom:1px solid var(--ms-border);
    box-shadow:0 16px 24px rgba(22,65,96,.13);
  }
  .topbar.ms-menu-open .ms-main-nav { display:flex; }
  .topbar .ms-main-nav .ms-nav-link,
  .topbar .ms-main-nav .ms-nav-button { justify-content:flex-start;min-height:44px;width:100%;text-align:left;padding:10px 13px; }
  .ms-nav-split { justify-content:space-between; }
  .ms-nav-split .ms-nav-link { flex:1; }
  .ms-nav-chevron { min-width:45px !important; }
  .ms-dropdown { position:static;min-width:0;max-width:none;max-height:none;overflow:visible;margin:0 0 5px 10px;padding:3px 7px;box-shadow:none;border-color:#e0eded;background:#f8fcfd; }
  .ms-profile-menu .ms-dropdown { position:absolute;right:0;left:auto;top:calc(100% + 9px);min-width:190px;background:#fff;box-shadow:0 12px 30px rgba(22,65,96,.14); }
}
@media(max-width:620px) {
  .ms-topbar-inner { width:calc(100% - 20px); }
  .ms-brand img { width:130px; }
  .ms-profile-name { display:none; }
  .ms-profile-trigger { gap:3px;padding:3px; }
  .ms-mobile-toggle span { display:none; }
  .ms-mobile-toggle { padding:7px; }
  .topbar .ms-main-nav { left:-10px;right:-10px; }
  .container { width:calc(100% - 24px);margin-top:22px; }
}
@media(prefers-reduced-motion:reduce) {
  .action-card, .button { transition:none !important; }
}
