/* MapMyStaff — authentification de démonstration v1764 */
html.mms-auth-pending body[data-required-role]:not([data-required-role="public"]) main { visibility: hidden; min-height: 46rem; }
.mms-demo-authbar { position: relative; z-index: 60; border-bottom: 1px solid #d5e2de; background: #f4f8f6; color: #183d37; }
.mms-demo-authbar__inner { min-height: 3.25rem; display: flex; align-items: center; gap: 1rem; padding-top: .55rem; padding-bottom: .55rem; }
.mms-demo-authbar__mode { display: inline-flex; align-items: center; border-radius:var(--mms-control-shape-radius); padding: .32rem .65rem; background: #fff1c7; border: 1px solid #e2bd4d; color: #5f4500; font-weight: 800; font-size: .78rem; letter-spacing: .02em; white-space: nowrap; }
.mms-demo-authbar__identity { display: grid; line-height: 1.2; }
.mms-demo-authbar__identity strong { font-size: .9rem; }
.mms-demo-authbar__identity span { color: #58716b; font-size: .78rem; }
.mms-demo-authbar__warning { margin-left: auto; color: #5b6d68; font-size: .82rem; }
.mms-demo-authbar__action { flex: 0 0 auto; border: 1px solid #165e53; border-radius:var(--mms-control-shape-radius); background: #fff; color: #104c44; padding: .52rem .8rem; font: inherit; font-size: .82rem; font-weight: 800; text-decoration: none; cursor: pointer; }
.mms-demo-authbar__action:hover { background: #eaf4f1; }
.mms-demo-authbar__action:focus-visible, .mms-demo-login button:focus-visible, .mms-demo-login input:focus-visible, .mms-demo-gate a:focus-visible { outline: 3px solid #075d57; outline-offset: 3px; box-shadow: 0 0 0 6px rgba(244,197,66,.48); }
.mms-demo-private-badge { display: inline-flex; align-items: center; width: fit-content; margin-top: .8rem; padding: .3rem .58rem; border-radius:var(--mms-control-shape-radius); background: #e9f2ef; border: 1px solid #b9d2cb; color: #174f47; font-size: .75rem; font-weight: 800; }
.mms-demo-private-badge::before { content: "🔒"; margin-right: .32rem; font-size: .72rem; }
.mms-demo-gate { min-height: 70vh; display: grid; align-items: center; padding: 4rem 0; background: linear-gradient(180deg,#f6faf8,#fff); }
.mms-demo-gate__panel { max-width: 760px; margin: 0 auto; padding: clamp(1.5rem,4vw,3rem); border: 1px solid #d2e1dc; border-radius: 28px; background: #fff; box-shadow: 0 24px 70px rgba(25,68,59,.12); text-align: center; }
.mms-demo-gate__panel h1 { margin: .55rem 0 1rem; color: #173e37; font-size: clamp(2rem,5vw,3.7rem); }
.mms-demo-gate__panel p { color: #526b65; line-height: 1.7; }
.mms-demo-gate__panel .mms-actions { justify-content: center; margin-top: 1.5rem; }
.mms-demo-gate__notice { margin-top: 1.5rem; padding: 1rem; border-radius: 14px; background: #fff8e7; border: 1px solid #ead28b; color: #604b16; text-align: left; line-height: 1.55; }
.mms-demo-noscript { padding: 1rem; background: #fff1c7; border-bottom: 1px solid #e2bd4d; color: #5f4500; font-weight: 700; text-align: center; }
.mms-demo-login { padding: 4rem 0 5rem; background: linear-gradient(180deg,#f4f9f7,#fff); }
.mms-demo-login__layout { display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); gap: clamp(1.5rem,4vw,4rem); align-items: start; }
.mms-demo-login__intro h1 { margin: .5rem 0 1rem; color: #173e37; font-size: clamp(2.3rem,5vw,4.5rem); line-height: 1.04; }
.mms-demo-login__intro p { color: #526b65; line-height: 1.75; max-width: 60ch; }
.mms-demo-login__warning { margin-top: 1.5rem; padding: 1rem 1.1rem; border-radius: 16px; background: #fff8e7; border: 1px solid #ead28b; color: #604b16; line-height: 1.55; }
.mms-demo-login__panel { padding: clamp(1.35rem,3vw,2rem); border: 1px solid #d2e1dc; border-radius: 24px; background: #fff; box-shadow: 0 22px 65px rgba(25,68,59,.1); }
.mms-demo-login__panel h2 { margin: 0 0 .45rem; color: #173e37; }
.mms-demo-login__panel > p { color: #5c716c; }
.mms-demo-login__field { display: grid; gap: .45rem; margin-top: 1rem; }
.mms-demo-login__field label { color: #244e46; font-weight: 800; }
.mms-demo-login__field input { width: 100%; border: 1px solid #acc7c0; border-radius: 12px; padding: .82rem .9rem; color: #173e37; background: #fff; font: inherit; }
.mms-demo-login__submit { width: 100%; margin-top: 1.15rem; border: 0; border-radius:var(--mms-control-shape-radius); padding: .85rem 1rem; background: #0e665a; color: #fff; font: inherit; font-weight: 800; cursor: pointer; }
.mms-demo-login__error { margin: 1rem 0 0; padding: .8rem; border-radius: 12px; background: #fff0ef; color: #8c211a; border: 1px solid #e5b2ad; }
.mms-demo-login__current { margin: 1rem 0; padding: .8rem; border-radius: 12px; background: #eaf6f1; color: #194b42; border: 1px solid #b9d8cf; }
.mms-demo-accounts { display: grid; gap: .8rem; margin-top: 1.5rem; }
.mms-demo-account { display: grid; grid-template-columns: 1fr auto; gap: .35rem 1rem; align-items: center; width: 100%; text-align: left; border: 1px solid #d0e0db; border-radius: 14px; padding: .9rem; background: #f9fcfb; color: #173e37; cursor: pointer; }
.mms-demo-account:hover { background: #edf6f3; }
.mms-demo-account strong { grid-column: 1; }
.mms-demo-account span { grid-column: 1; color: #5d726c; font-size: .82rem; }
.mms-demo-account code { grid-column: 2; grid-row: 1 / span 2; color: #174f47; background: #e3efeb; border-radius: 8px; padding: .35rem .5rem; font-size: .75rem; }
.mms-demo-login__public { display: inline-flex; margin-top: 1.2rem; color: #0e665a; font-weight: 800; }
@media (max-width: 900px) {
  .mms-demo-authbar__inner { flex-wrap: wrap; gap: .55rem .8rem; }
  .mms-demo-authbar__warning { order: 4; width: 100%; margin-left: 0; }
  .mms-demo-login__layout { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .mms-demo-authbar__identity { flex: 1; }
  .mms-demo-authbar__action { width: 100%; text-align: center; }
  .mms-demo-account { grid-template-columns: 1fr; }
  .mms-demo-account code { grid-column: 1; grid-row: auto; width: fit-content; }
}


/* Point d’entrée explicite et déconnexion visible — v1764 */
.mms-demo-header-access {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.48rem;
  min-height:2.75rem;
  padding:.58rem .92rem;
  border:1px solid #0e665a;
  border-radius:var(--mms-control-shape-radius);
  background:#0e665a;
  color:#fff;
  font-size:.82rem;
  font-weight:850;
  line-height:1;
  text-decoration:none;
  white-space:nowrap;
  box-shadow:0 7px 20px rgba(14,102,90,.18);
}
.mms-demo-header-access svg { width:1rem; height:1rem; fill:currentColor; flex:0 0 auto; }
.mms-demo-header-access:hover { background:#0a574d; color:#fff; transform:translateY(-1px); }
.mms-demo-header-signout {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:2.75rem;
  padding:.58rem .82rem;
  border:1px solid #d4aaa5;
  border-radius:var(--mms-control-shape-radius);
  background:#fff;
  color:#8a2d26;
  font:inherit;
  font-size:.78rem;
  font-weight:850;
  line-height:1;
  white-space:nowrap;
  cursor:pointer;
}
.mms-demo-header-signout:hover { background:#fff1ef; border-color:#c6857e; color:#742019; }
.mms-demo-header-signout[hidden], .mms-demo-mobile-signout[hidden] { display:none; }
.mms-demo-header-access[data-demo-role="authenticated"],
.mms-demo-header-access[data-demo-role="admin"] { background:#173e37; border-color:#173e37; color:#fff; }
.mms-demo-header-access:focus-visible,
.mms-demo-header-signout:focus-visible,
.mms-demo-mobile-access:focus-visible,
.mms-demo-mobile-signout:focus-visible { outline:3px solid #075d57; outline-offset:3px; box-shadow:0 0 0 6px rgba(244,197,66,.48); }
.mms-demo-mobile-access, .mms-demo-mobile-signout { display:none; }
.mms-demo-mobile-access svg, .mms-demo-mobile-signout svg { width:1.05rem; height:1.05rem; fill:currentColor; flex:0 0 auto; }
.mms-demo-access-panel { padding:1.25rem 0; border-bottom:1px solid #d5e2de; background:linear-gradient(135deg,#eaf5f1,#fff9e8); }
.mms-demo-access-panel__inner { display:flex; align-items:center; justify-content:space-between; gap:2rem; padding:1.3rem 1.45rem; border:1px solid #c7dcd6; border-radius:20px; background:rgba(255,255,255,.92); box-shadow:0 14px 36px rgba(25,68,59,.08); }
.mms-demo-access-panel h2 { margin:.35rem 0 .45rem; color:#173e37; font-size:clamp(1.35rem,2.6vw,2rem); }
.mms-demo-access-panel p { max-width:66ch; color:#526b65; line-height:1.6; }
.mms-demo-access-panel__actions { display:flex; flex:0 0 auto; align-items:center; gap:.75rem; }
.mms-demo-access-panel__note { max-width:15rem; color:#67521c; font-size:.78rem; line-height:1.35; }
@media (max-width:72rem) {
  .mms-demo-header-access, .mms-demo-header-signout { min-height:2.5rem; padding:.5rem .68rem; font-size:.74rem; }
  .mms-demo-access-panel__inner { align-items:flex-start; flex-direction:column; }
}
@media (max-width:42rem) {
  .mms-demo-header-access, .mms-demo-header-signout { display:none; }
  .mms-demo-mobile-access, .mms-demo-mobile-signout {
    display:flex;
    align-items:center;
    gap:.6rem;
    margin-top:.45rem;
    padding:.8rem .9rem;
    border:1px solid #0e665a;
    border-radius:14px;
    background:#0e665a;
    color:#fff;
    font-weight:850;
  }
  .mms-demo-mobile-access:hover { background:#0a574d; color:#fff; }
  .mms-demo-mobile-signout { width:100%; justify-content:flex-start; margin-top:.45rem; border-color:#d4aaa5; background:#fff; color:#8a2d26; font:inherit; cursor:pointer; }
  .mms-demo-mobile-signout:hover { background:#fff1ef; color:#742019; }
  .mms-demo-access-panel__actions { width:100%; align-items:stretch; flex-direction:column; }
  .mms-demo-access-panel__actions .mms-button { width:100%; }
  .mms-demo-access-panel__note { max-width:none; text-align:center; }
}

/* Reconnexion Google et visibilité de session — v2022 */
.mms-demo-login__public[hidden],
.mms-demo-login__google-panel[hidden] { display:none; }
.mms-demo-login__google-panel { margin-top:1rem; }
.mms-demo-login__separator { display:flex; align-items:center; gap:.75rem; margin:.9rem 0; color:#6a7c77; font-size:.76rem; font-weight:750; text-transform:uppercase; letter-spacing:.08em; }
.mms-demo-login__separator::before,
.mms-demo-login__separator::after { content:""; flex:1; height:1px; background:#d8e5e1; }
.mms-demo-login__google { width:100%; min-height:3rem; display:flex; align-items:center; justify-content:center; gap:.65rem; padding:.72rem 1rem; border:1px solid #b9cec8; border-radius:var(--mms-control-shape-radius); background:#fff; color:#173e37; font:inherit; font-weight:850; cursor:pointer; }
.mms-demo-login__google:hover { border-color:#7daaa0; background:#f5faf8; }
.mms-demo-login__google:disabled { opacity:.65; cursor:wait; }
.mms-demo-login__google-mark { display:inline-grid; place-items:center; width:1.75rem; height:1.75rem; border-radius:50%; background:#fff; border:1px solid #d7e1de; color:#174f47; font-weight:900; }
.mms-demo-login__google-help{margin:.7rem 0 0;color:#61746f;font-size:.76rem;line-height:1.5;}

/* v139 — mot de passe Firebase explicite et récupération autonome. */
.mms-demo-login__password-help{margin:.55rem 0 0;color:#61746f;font-size:.78rem;line-height:1.5;}
.mms-demo-login__reset{display:inline-flex;margin:.55rem 0 0;padding:0;border:0;background:transparent;color:#0e665a;font:inherit;font-size:.8rem;font-weight:800;text-decoration:underline;text-underline-offset:.16em;cursor:pointer;}
.mms-demo-login__reset:hover{color:#094c44;}
.mms-demo-login__reset:disabled{opacity:.6;cursor:wait;}
.mms-demo-login__status{margin:1rem 0 0;padding:.8rem;border:1px solid #b9d8cf;border-radius:12px;background:#eaf6f1;color:#194b42;line-height:1.5;}
.mms-demo-login__status[hidden]{display:none;}

/* v143 — récupération strictement réservée au bootstrap du credential Password
   du super-admin. Le flux se termine toujours par une déconnexion. */

.mms-demo-login__diagnostic{margin:.75rem 0 0;padding:.75rem .85rem;border:1px solid #d7e3df;border-radius:12px;background:#f8fbfa;color:#45635d;font-size:.76rem;line-height:1.45}
.mms-demo-login__diagnostic[hidden]{display:none}
.mms-demo-login__diagnostic summary{cursor:pointer;color:#315950;font-weight:800}
.mms-demo-login__diagnostic dl{display:grid;gap:.4rem;margin:.65rem 0 0}
.mms-demo-login__diagnostic dl>div{display:grid;grid-template-columns:minmax(8.5rem,.9fr) minmax(0,1.1fr);gap:.6rem;padding-top:.4rem;border-top:1px solid #e4ece9}
.mms-demo-login__diagnostic dt{font-weight:800;color:#315950}
.mms-demo-login__diagnostic dd{margin:0;min-width:0;overflow-wrap:anywhere}
.mms-demo-login__diagnostic code{font:inherit;font-weight:750;color:#173e37}
@media (max-width:520px){.mms-demo-login__diagnostic dl>div{grid-template-columns:1fr;gap:.15rem}}


/* v229.4 — Signed-in account actions. */
[data-firebase-login-account]{margin-right:.55rem}
[data-firebase-login-account][hidden]{display:none}
[data-firebase-login-account].mms-button--primary{color:#fff}
[data-firebase-login-account].mms-button--primary:is(:hover,:focus-visible){color:#fff}
@media(max-width:520px){
  [data-firebase-login-account],
  [data-firebase-login-signout]{width:100%;justify-content:center;margin-right:0}
}


/* v229.4.18 — password visibility + provider-aware admin verification. */
.mms-password-control{position:relative;display:flex;align-items:center}
.mms-password-control>input{width:100%;padding-right:3.25rem}
.mms-password-toggle{position:absolute;right:.45rem;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:2.35rem;height:2.35rem;padding:0;border:0;border-radius:9px;background:transparent;color:#315950;cursor:pointer}
.mms-password-toggle:is(:hover,:focus-visible){background:#eef7f4;color:#0e665a;outline:none}
.mms-password-toggle:focus-visible{box-shadow:0 0 0 3px rgba(14,102,90,.18)}
.mms-password-toggle__icon{display:block;width:1.28rem;height:1.28rem;overflow:visible;fill:none;pointer-events:none;transition:transform .16s ease,opacity .16s ease}.mms-password-toggle:hover .mms-password-toggle__icon{transform:scale(1.035)}
.mms-password-toggle[data-visible="true"] .mms-password-toggle__icon{opacity:.88}
.mms-demo-login__admin-password-panel[hidden]{display:none}
.mms-demo-login__admin-password-panel{margin-top:1rem}
.mms-demo-login__admin-password-help{margin:0 0 .85rem;color:#61746f;font-size:.82rem;line-height:1.5}
.mms-demo-login__admin-password-panel form{display:grid;gap:.9rem}


/* v229.4.56 — refined Admin authentication hydration guard.
   When the shared login page is opened for /admin, present a polished, branded
   transition state instead of painting the empty shared sign-in form. */
.mms-demo-login__bootstrap{display:none}
.mms-demo-login__bootstrap-shell{display:grid;gap:1rem;min-width:0;flex:1 1 auto}
.mms-demo-login__bootstrap-brand{display:grid;grid-template-columns:auto minmax(0,1fr);gap:1rem;align-items:start}
.mms-demo-login__bootstrap-mark{
  display:grid;
  place-items:center;
  width:3rem;
  height:3rem;
  border-radius:18px;
  background:linear-gradient(145deg,#0f6b5d,#174f47);
  color:#fff;
  font-size:1.2rem;
  font-weight:900;
  box-shadow:0 14px 28px rgba(15,107,93,.24);
}
.mms-demo-login__bootstrap-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  margin-bottom:.35rem;
  color:#0e665a;
  font-size:.76rem;
  font-weight:850;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.mms-demo-login__bootstrap strong{display:block;font-size:clamp(1.05rem,2.2vw,1.28rem);line-height:1.25}
.mms-demo-login__bootstrap p{margin:.4rem 0 0;color:#58706a;line-height:1.6;max-width:36rem}
.mms-demo-login__bootstrap-progress{display:flex;flex-wrap:wrap;gap:.55rem .65rem}
.mms-demo-login__bootstrap-progress span{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  min-height:2rem;
  padding:.45rem .78rem;
  border:1px solid #d6e5e0;
  border-radius:999px;
  background:#f7fbfa;
  color:#40615a;
  font-size:.78rem;
  font-weight:760;
}
.mms-demo-login__bootstrap-progress span::before{
  content:"";
  width:.48rem;
  height:.48rem;
  border-radius:50%;
  background:#b9d1ca;
  box-shadow:0 0 0 4px rgba(185,209,202,.28);
}
.mms-demo-login__bootstrap-progress .is-active{
  border-color:#b9d8cf;
  background:#ecf7f3;
  color:#0e665a;
}
.mms-demo-login__bootstrap-progress .is-active::before{background:#0e665a;box-shadow:0 0 0 4px rgba(14,102,90,.14)}
.mms-demo-login__bootstrap-points{
  display:grid;
  gap:.55rem;
  margin:0;
  padding:0;
  list-style:none;
}
.mms-demo-login__bootstrap-points li{
  position:relative;
  padding-left:1.3rem;
  color:#58706a;
  line-height:1.55;
}
.mms-demo-login__bootstrap-points li::before{
  content:"";
  position:absolute;
  left:0;
  top:.5rem;
  width:.5rem;
  height:.5rem;
  border-radius:50%;
  background:#0e665a;
  box-shadow:0 0 0 4px rgba(14,102,90,.1);
}
html[data-admin-login-bootstrap="pending"] .mms-demo-login__layout{
  grid-template-columns:minmax(0,56rem);
  justify-content:center;
}
html[data-admin-login-bootstrap="pending"] .mms-demo-login__intro,
html[data-admin-login-bootstrap="pending"] .mms-demo-login__panel{
  display:none!important;
}
html[data-admin-login-bootstrap="pending"] .mms-demo-login__bootstrap{
  display:flex;
  align-items:flex-start;
  gap:1rem;
  min-height:12rem;
  padding:clamp(1.4rem,3vw,2rem);
  border:1px solid #d2e1dc;
  border-radius:28px;
  background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(247,251,249,.96));
  box-shadow:0 24px 70px rgba(25,68,59,.12);
  color:#173e37;
}
.mms-demo-login__bootstrap-spinner{
  width:1.9rem;
  height:1.9rem;
  flex:0 0 auto;
  margin-top:.25rem;
  border:.2rem solid #cfe0db;
  border-top-color:#0e665a;
  border-radius:50%;
  animation:mms-admin-login-bootstrap-spin .8s linear infinite;
}
@keyframes mms-admin-login-bootstrap-spin{to{transform:rotate(360deg)}}
@media (max-width:680px){
  html[data-admin-login-bootstrap="pending"] .mms-demo-login__layout{grid-template-columns:minmax(0,1fr)}
  html[data-admin-login-bootstrap="pending"] .mms-demo-login__bootstrap{flex-direction:column-reverse;align-items:stretch}
  .mms-demo-login__bootstrap-spinner{margin-top:0;align-self:flex-end}
  .mms-demo-login__bootstrap-brand{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
  .mms-demo-login__bootstrap-spinner{animation:none;border-top-color:#0e665a}
}

/* v229.4.100 — deliberately minimal session bootstrap */
html[data-admin-login-bootstrap="pending"] .mms-demo-login__bootstrap{position:fixed!important;z-index:500!important;inset:0!important;display:grid!important;place-items:center!important;padding:1.25rem!important;background:rgba(247,251,250,.78)!important;backdrop-filter:blur(8px)!important}
html[data-admin-login-bootstrap="pending"] .mms-demo-login__bootstrap-shell{display:block!important;flex:none!important;min-width:0!important;width:min(440px,calc(100vw - 2.5rem))!important;padding:1.25rem 1.35rem!important;border:1px solid #cfe0dc!important;border-radius:18px!important;background:#fff!important;box-shadow:0 22px 70px rgba(9,42,39,.18)!important;text-align:center!important}
html[data-admin-login-bootstrap="pending"] .mms-demo-login__bootstrap-brand{display:block!important}
html[data-admin-login-bootstrap="pending"] .mms-demo-login__bootstrap-mark,html[data-admin-login-bootstrap="pending"] .mms-demo-login__bootstrap-eyebrow,html[data-admin-login-bootstrap="pending"] .mms-demo-login__bootstrap-progress,html[data-admin-login-bootstrap="pending"] .mms-demo-login__bootstrap-points{display:none!important}
html[data-admin-login-bootstrap="pending"] .mms-demo-login__bootstrap strong{font-size:1rem!important;font-weight:750!important}
html[data-admin-login-bootstrap="pending"] .mms-demo-login__bootstrap-spinner{position:absolute!important;left:50%!important;top:calc(50% + 44px)!important;transform:translateX(-50%)!important;margin:0!important}
