:root {
  --ink: #14313d;
  --muted: #526a75;
  --soft: #fff2b8;
  --paper: #fffdf4;
  --sun: #ffca3a;
  --coral: #ff595e;
  --sky: #1982c4;
  --leaf: #43aa8b;
  --violet: #6a4c93;
  --orange: #ff8c42;
  --terracotta: #e85d04;
  --line: rgba(20, 49, 61, 0.12);
  --shadow: 0 24px 70px rgba(20, 49, 61, 0.16);
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  position: relative;
  margin: 0;
  color: var(--ink);
  background:
    radial-gradient(circle at 7% 10%, rgba(255, 202, 58, 0.92) 0 9%, transparent 18%),
    radial-gradient(circle at 91% 14%, rgba(25, 130, 196, 0.58) 0 8%, transparent 18%),
    radial-gradient(circle at 15% 58%, rgba(67, 170, 139, 0.55) 0 7%, transparent 18%),
    radial-gradient(circle at 88% 64%, rgba(255, 89, 94, 0.46) 0 8%, transparent 18%),
    radial-gradient(circle at 42% 88%, rgba(106, 76, 147, 0.26) 0 10%, transparent 20%),
    linear-gradient(135deg, #fff8bd 0%, #fffdf4 28%, #dcf5ff 58%, #efffed 100%);
  font-family:
    Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.6;
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background:
    radial-gradient(circle, rgba(255, 89, 94, 0.78) 0 7px, transparent 8px) 8% 32% / 160px 160px,
    radial-gradient(circle, rgba(255, 202, 58, 0.9) 0 6px, transparent 7px) 84% 38% / 150px 150px,
    radial-gradient(circle, rgba(67, 170, 139, 0.72) 0 8px, transparent 9px) 18% 82% / 180px 180px,
    radial-gradient(circle, rgba(25, 130, 196, 0.65) 0 6px, transparent 7px) 72% 78% / 170px 170px;
  opacity: 0.72;
}

body::after {
  content: "";
  position: fixed;
  inset: auto -8vw 6vh auto;
  z-index: -1;
  width: 36vw;
  min-width: 360px;
  aspect-ratio: 1;
  border-radius: 34% 66% 55% 45% / 48% 42% 58% 52%;
  background: linear-gradient(135deg, rgba(255, 202, 58, 0.48), rgba(255, 89, 94, 0.32), rgba(25, 130, 196, 0.34));
  filter: blur(2px);
  opacity: 0.7;
}

img {
  max-width: 100%;
}

a {
  color: inherit;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
}

.site-header {
  position: fixed;
  inset: 0 0 auto;
  z-index: 20;
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 24px;
  padding: 18px max(24px, calc((100vw - 1160px) / 2));
  background: rgba(255, 253, 244, 0.84);
  backdrop-filter: blur(18px);
}

.brand {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  width: fit-content;
  font-weight: 760;
  text-decoration: none;
}

.brand-mark {
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--sun), var(--coral) 48%, var(--sky));
}

.brand-mark span {
  display: block;
  width: 17px;
  height: 17px;
  border: 2px solid rgba(23, 45, 58, 0.72);
  border-top: 0;
  border-left: 0;
  border-radius: 0 0 12px 0;
  transform: rotate(45deg);
}

.navigation {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: end;
  gap: 6px;
}

.navigation a {
  border-radius: 999px;
  padding: 9px 12px;
  color: var(--muted);
  font-size: 14px;
  text-decoration: none;
  transition: background 0.2s ease, color 0.2s ease;
}

.navigation a:hover {
  color: var(--ink);
  background: rgba(23, 45, 58, 0.08);
}

.menu-toggle {
  display: none;
  width: 42px;
  height: 42px;
  border: 0;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.86);
}

.menu-toggle span:not(.sr-only) {
  display: block;
  width: 17px;
  height: 2px;
  margin: 4px auto;
  border-radius: 999px;
  background: var(--ink);
}

main {
  overflow: hidden;
}

.hero,
.intro,
.section-grid,
.experience,
.spaces,
.info-band,
.contact {
  width: min(1160px, calc(100% - 40px));
  margin: 0 auto;
}

.hero {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(320px, 0.72fr);
  gap: 64px;
  min-height: 100dvh;
  align-items: center;
  padding: 120px 0 70px;
}

.hero-copy,
.text-stack,
.experience-copy,
.contact > div {
  display: grid;
  gap: 22px;
}

.eyebrow {
  margin: 0;
  color: var(--coral);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

h1,
h2,
h3,
p {
  margin: 0;
}

h1 {
  max-width: 780px;
  font-size: clamp(56px, 8vw, 108px);
  line-height: 0.94;
  letter-spacing: -0.04em;
}

h2 {
  font-size: clamp(38px, 5vw, 68px);
  line-height: 1;
  letter-spacing: -0.035em;
}

h3 {
  font-size: 21px;
  letter-spacing: -0.02em;
}

.hero-copy > p,
.intro p,
.section-grid p,
.experience p,
.spaces p,
.contact p {
  color: var(--muted);
  font-size: 19px;
}

.hero-actions,
.cta-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  border: 0;
  border-radius: 999px;
  padding: 0 20px;
  color: white;
  background: linear-gradient(135deg, var(--sky), var(--violet));
  font: inherit;
  font-weight: 720;
  text-decoration: none;
  cursor: pointer;
  transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.button:hover {
  transform: translateY(-1px);
  box-shadow: 0 14px 34px rgba(23, 45, 58, 0.18);
}

.button.secondary {
  color: var(--ink);
  background: var(--sun);
}

.hero-visual,
.spaces figure {
  position: relative;
  margin: 0;
}

.hero-visual::before,
.spaces figure::before {
  content: "";
  position: absolute;
  inset: 28px -18px -22px 18px;
  border-radius: 42% 58% 49% 51% / 52% 37% 63% 48%;
  background: rgba(255, 202, 58, 0.46);
  filter: blur(8px);
}

.hero-visual img,
.spaces img {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 4 / 5;
  border-radius: 42% 58% 49% 51% / 52% 37% 63% 48%;
  object-fit: cover;
  box-shadow: var(--shadow);
}

.intro {
  padding: 72px 0 96px;
}

.intro p {
  max-width: 980px;
  font-size: clamp(30px, 4vw, 54px);
  line-height: 1.18;
  letter-spacing: -0.035em;
}

.section-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.8fr) minmax(0, 1fr);
  gap: 72px;
  padding: 92px 0;
}

.soft-list,
.team-list {
  display: grid;
  gap: 22px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.soft-list li {
  display: grid;
  grid-template-columns: 44px 1fr;
  gap: 18px;
}

.soft-list li > span {
  color: var(--terracotta);
  font-weight: 800;
}

.soft-list strong {
  display: block;
  margin-bottom: 4px;
}

.experience {
  display: grid;
  grid-template-columns: minmax(0, 0.82fr) minmax(0, 1fr);
  gap: 70px;
  align-items: start;
  padding: 96px 0;
}

.timeline {
  display: grid;
  gap: 20px;
}

.timeline div {
  display: grid;
  grid-template-columns: 72px 1fr;
  gap: 18px;
}

.timeline span {
  color: var(--terracotta);
  font-weight: 760;
}

.spaces {
  display: grid;
  grid-template-columns: minmax(280px, 0.72fr) minmax(0, 0.9fr);
  gap: 72px;
  align-items: center;
  padding: 96px 0;
}

.spaces > div {
  display: grid;
  gap: 20px;
}

.team-list article {
  display: grid;
  gap: 6px;
}

.team-list span {
  color: var(--terracotta);
  font-size: 13px;
  font-weight: 800;
  text-transform: uppercase;
}

.info-band {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
  padding: 92px 0;
}

.info-band div {
  display: grid;
  gap: 6px;
}

.info-band span {
  color: var(--muted);
}

.info-band strong {
  font-size: 24px;
  line-height: 1.2;
}

.contact {
  display: grid;
  grid-template-columns: minmax(0, 0.8fr) minmax(320px, 0.8fr);
  gap: 76px;
  padding: 92px 0 120px;
}

form {
  display: grid;
  gap: 18px;
}

label {
  display: grid;
  gap: 8px;
  color: var(--muted);
  font-size: 14px;
}

input,
textarea {
  width: 100%;
  border: 0;
  border-radius: 18px;
  padding: 15px 16px;
  color: var(--ink);
  background: rgba(255, 255, 255, 0.86);
  box-shadow: inset 0 0 0 1px rgba(23, 45, 58, 0.08);
  font: inherit;
}

input:focus,
textarea:focus {
  outline: 3px solid rgba(179, 107, 83, 0.18);
}

.site-footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  width: min(1160px, calc(100% - 40px));
  margin: 0 auto;
  padding: 28px 0 36px;
  color: var(--muted);
}

.site-footer nav {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
}

.site-footer a {
  text-decoration: none;
}

.app-page {
  min-height: 100dvh;
}

.app-header {
  position: sticky;
  top: 0;
}

.portal {
  display: grid;
  gap: 64px;
  width: min(1160px, calc(100% - 40px));
  margin: 0 auto;
  padding: 70px 0 100px;
}

.portal-hero,
.portal-columns {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 420px);
  gap: 56px;
  align-items: start;
}

.portal-hero > div,
.portal-columns > div:first-child,
.family-dashboard,
.admin-workflow {
  display: grid;
  gap: 20px;
}

.portal-hero h1 {
  max-width: 760px;
  font-size: clamp(42px, 5.2vw, 72px);
  line-height: 1;
  letter-spacing: -0.045em;
}

.portal-hero p,
.portal-columns p {
  max-width: 780px;
}

.portal-photo {
  width: min(360px, 100%);
  margin: 10px 0 0;
}

.portal-photo img {
  display: block;
  width: 100%;
  aspect-ratio: 1;
  border-radius: 34px;
  object-fit: cover;
  box-shadow: var(--shadow);
}

.auth-panel {
  display: grid;
  gap: 18px;
  border-radius: 34px;
  padding: 28px;
  background: rgba(255, 255, 255, 0.56);
  box-shadow: var(--shadow);
}

.auth-panel .button {
  width: 100%;
}

.auth-panel h2,
.family-dashboard h2,
.admin-workflow h2 {
  font-size: 28px;
  line-height: 1.1;
}

.auth-panel p {
  color: var(--muted);
}

.auth-panel a {
  color: var(--terracotta);
  font-weight: 720;
}

.portal-grid,
.admin-summary {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

.admin-summary {
  grid-template-columns: repeat(4, 1fr);
}

.portal-grid article,
.family-dashboard div,
.admin-workflow div,
.admin-summary div {
  display: grid;
  gap: 8px;
  border-radius: 28px;
  padding: 24px;
  background: rgba(255, 255, 255, 0.44);
}

.portal-grid span,
.admin-summary span {
  color: var(--terracotta);
  font-size: 13px;
  font-weight: 800;
  text-transform: uppercase;
}

.portal-grid h2,
.admin-summary strong {
  font-size: 30px;
  line-height: 1.1;
}

.portal-columns h2 {
  max-width: 860px;
  font-size: clamp(34px, 4.4vw, 58px);
}

.family-dashboard,
.admin-workflow {
  align-content: start;
}

.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 760ms ease, transform 760ms cubic-bezier(0.22, 1, 0.36, 1);
}

.reveal.visible {
  opacity: 1;
  transform: none;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  .reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

@media (max-width: 860px) {
  .site-header {
    grid-template-columns: 1fr auto;
  }

  .menu-toggle {
    display: block;
  }

  .navigation {
    position: fixed;
    top: 76px;
    right: 18px;
    left: 18px;
    display: none;
    flex-direction: column;
    align-items: stretch;
    border-radius: 26px;
    padding: 16px;
    background: rgba(255, 253, 249, 0.94);
    box-shadow: var(--shadow);
  }

  .navigation.open {
    display: flex;
  }

  .navigation a {
    padding: 13px 14px;
  }

  .hero,
  .section-grid,
  .experience,
  .spaces,
  .contact,
  .portal-hero,
  .portal-columns {
    grid-template-columns: 1fr;
    gap: 38px;
  }

  .hero {
    padding-top: 112px;
  }

  .hero-visual,
  .spaces figure {
    width: min(460px, 100%);
  }

  .intro,
  .section-grid,
  .experience,
  .spaces,
  .info-band,
  .contact {
    padding: 64px 0;
  }

  .info-band {
    grid-template-columns: 1fr;
  }

  .portal-grid,
  .admin-summary {
    grid-template-columns: 1fr;
  }

  .portal {
    padding-top: 46px;
  }
}

@media (max-width: 560px) {
  .hero,
  .intro,
  .section-grid,
  .experience,
  .spaces,
  .info-band,
  .contact,
  .portal,
  .site-footer {
    width: min(100% - 28px, 1160px);
  }

  .hero-actions,
  .cta-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .button {
    width: 100%;
  }

  .timeline div,
  .soft-list li {
    grid-template-columns: 1fr;
    gap: 6px;
  }

  .portal-hero h1,
  .portal-columns h2 {
    font-size: 38px;
  }

  .auth-panel,
  .portal-grid article,
  .family-dashboard div,
  .admin-workflow div,
  .admin-summary div {
    border-radius: 22px;
    padding: 20px;
  }
}

/* Family app routes */
.family-app,
.login-family {
  min-height: 100vh;
  color: #08285a;
  background:
    radial-gradient(circle at 2% 90%, rgba(255, 205, 87, .25), transparent 240px),
    radial-gradient(circle at 95% 15%, rgba(126, 197, 241, .34), transparent 280px),
    radial-gradient(circle at 100% 75%, rgba(248, 145, 169, .24), transparent 260px),
    linear-gradient(135deg, #fffaf0 0%, #fff 44%, #f1fbff 100%);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.family-app::before,
.login-family::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  opacity: .55;
  background-image:
    radial-gradient(circle, rgba(244,91,132,.35) 0 4px, transparent 5px),
    radial-gradient(circle, rgba(255,190,55,.45) 0 4px, transparent 5px),
    radial-gradient(circle, rgba(64,151,219,.35) 0 4px, transparent 5px),
    radial-gradient(circle, rgba(93,172,104,.35) 0 4px, transparent 5px);
  background-position: 24px 28px, 88px 75px, 140px 36px, 186px 98px;
  background-size: 170px 160px;
  z-index: 0;
}

.fp-topbar,
.fp-shell,
.fp-footer,
.login-page {
  position: relative;
  z-index: 1;
}

.fp-topbar {
  width: min(1840px, calc(100% - 36px));
  min-height: 96px;
  margin: 16px auto 0;
  padding: 18px 28px;
  display: grid;
  grid-template-columns: auto 1fr auto auto;
  align-items: center;
  gap: 22px;
  border-radius: 30px;
  background: rgba(255,255,255,.9);
  border: 1px solid rgba(202,214,231,.56);
  box-shadow: 0 18px 55px rgba(48,75,112,.12);
  backdrop-filter: blur(18px);
}

.fp-brand,
.fp-mainnav a,
.fp-account,
.fp-bell,
.fp-sidebar a,
.fp-quick-grid a,
.fp-panel-head a,
.fp-more,
.fp-side-card a,
.fp-side-event a,
.fp-doc-table a,
.login-card a {
  text-decoration: none;
}

.fp-brand {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  color: #071f49;
  font-size: 1.55rem;
  font-weight: 950;
}

.fp-logo {
  width: 52px;
  height: 52px;
  border-radius: 18px 18px 26px 18px;
  background: radial-gradient(circle at 62% 34%, #fff 0 8%, transparent 9%), conic-gradient(from 210deg, #7c48d8, #2c82dd, #ff5f8f, #ffc734, #7c48d8);
  box-shadow: inset 0 -8px 14px rgba(9,34,78,.14), 0 8px 20px rgba(88,68,196,.18);
}

.fp-mainnav {
  display: flex;
  justify-content: center;
  gap: clamp(14px, 2.2vw, 40px);
}

.fp-mainnav a {
  position: relative;
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  color: #071f49;
  font-weight: 850;
}

.fp-mainnav a span { display: none; }
.fp-mainnav a.active { color: #7b43dc; }
.fp-mainnav a.active::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -9px;
  height: 4px;
  border-radius: 999px;
  background: #7b43dc;
}

/* Administration > Ã‰quipe : mÃªme rendu que la maquette Membres sur la route rÃ©ellement utilisÃ©e. */
@media (min-width: 921px) {
  body.admin-app[data-admin-page="equipe"] {
    display: grid;
    grid-template-columns: 226px minmax(0, 1fr);
    min-height: 100vh;
    background: #fdfdff;
  }

  body.admin-app[data-admin-page="equipe"] .ap-sidebar {
    width: auto;
    height: 100vh;
    padding: 38px 14px 20px;
    box-sizing: border-box;
    border-right: 1px solid #e7ebf1;
    background: #fff;
    box-shadow: 18px 0 42px rgba(36, 50, 80, .045);
  }

  body.admin-app[data-admin-page="equipe"] .ap-sidebar-toggle,
  body.admin-app[data-admin-page="equipe"] .ap-sidebar-account,
  body.admin-app[data-admin-page="equipe"] .ap-nav-domain h2 {
    display: none;
  }

  body.admin-app[data-admin-page="equipe"] .ap-main {
    padding: 34px 32px;
    background: #fbfcff;
  }

  body.admin-app[data-admin-page="equipe"] .ap-head {
    min-height: 54px;
    margin: 0 0 44px;
    align-items: start;
  }

  body.admin-app[data-admin-page="equipe"] .ap-head .ap-primary {
    min-height: 47px;
    height: 47px;
    padding: 0 20px;
    font-size: .88rem;
  }

  body.admin-app[data-admin-page="equipe"] .ap-members-page {
    gap: 28px;
  }

  body.admin-app[data-admin-page="equipe"] .ap-members-stats {
    gap: 26px;
  }

  body.admin-app[data-admin-page="equipe"] .ap-members-kpi {
    min-height: 132px;
    height: 132px;
    padding: 18px 22px;
    grid-template-columns: 58px minmax(0, 1fr);
    gap: 14px;
    border-radius: 13px;
  }

  body.admin-app[data-admin-page="equipe"] .ap-members-kpi > span {
    width: 56px;
    height: 56px;
  }

  body.admin-app[data-admin-page="equipe"] .ap-members-kpi strong {
    font-size: 2rem;
  }

  body.admin-app[data-admin-page="equipe"] .ap-members-kpi p {
    margin: 0 0 8px;
    font-size: .94rem;
  }

  body.admin-app[data-admin-page="equipe"] .ap-members-kpi small {
    font-size: .86rem;
  }

  body.admin-app[data-admin-page="equipe"] .ap-members-toolbar {
    grid-template-columns: minmax(320px, 1.7fr) repeat(3, minmax(145px, .72fr)) minmax(130px, .55fr);
    gap: 22px;
  }

  body.admin-app[data-admin-page="equipe"] .ap-members-toolbar .lpm-search-field,
  body.admin-app[data-admin-page="equipe"] .ap-members-toolbar select,
  body.admin-app[data-admin-page="equipe"] .ap-members-toolbar button {
    min-height: 49px;
    height: 49px;
    font-size: .86rem;
  }

  body.admin-app[data-admin-page="equipe"] .ap-members-table-card > header {
    padding: 0;
  }

  body.admin-app[data-admin-page="equipe"] .ap-members-table-card > header h2 {
    display: none;
  }

  body.admin-app[data-admin-page="equipe"] .ap-members-table th,
  body.admin-app[data-admin-page="equipe"] .ap-members-table td {
    padding: 13px 16px;
    font-size: .86rem;
  }

  body.admin-app[data-admin-page="equipe"] .ap-members-table tbody tr {
    height: 72px;
  }

  body.admin-app[data-admin-page="equipe"] .ap-member-avatar,
  body.admin-app[data-admin-page="equipe"] .ap-member-avatar img,
  body.admin-app[data-admin-page="equipe"] .ap-member-avatar > span {
    width: 40px;
    height: 40px;
  }

  body.admin-app[data-admin-page="equipe"] .ap-member-cell {
    grid-template-columns: 40px minmax(0, 1fr);
    gap: 14px;
  }

  body.admin-app[data-admin-page="equipe"] .ap-member-actions > button,
  body.admin-app[data-admin-page="equipe"] .ap-member-actions summary {
    width: 38px !important;
    height: 38px !important;
  }
}

/* Administration > Membres : alignement visuel sur la maquette fournie. */
@media (min-width: 921px) {
  body.admin-app[data-admin-page="membres"] {
    display: grid;
    grid-template-columns: 226px minmax(0, 1fr);
    min-height: 100vh;
    background: #fdfdff;
  }

  body.admin-app[data-admin-page="membres"] .ap-sidebar {
    position: sticky;
    top: 0;
    width: auto;
    height: 100vh;
    padding: 38px 14px 20px;
    box-sizing: border-box;
    border-right: 1px solid #e7ebf1;
    background: #fff;
    box-shadow: 18px 0 42px rgba(36, 50, 80, .045);
  }

  body.admin-app[data-admin-page="membres"] .ap-sidebar-head {
    min-height: 64px;
    margin-bottom: 18px;
  }

  body.admin-app[data-admin-page="membres"] .ap-sidebar .ap-logo {
    width: 36px;
    height: 36px;
    flex-basis: 36px;
    background-size: contain;
    box-shadow: none;
  }

  body.admin-app[data-admin-page="membres"] .ap-sidebar .ap-brand strong {
    color: #6d45d8;
    font-size: .9rem;
  }

  body.admin-app[data-admin-page="membres"] .ap-sidebar .ap-brand small {
    color: #66758c;
    font-size: .68rem;
  }

  body.admin-app[data-admin-page="membres"] .ap-sidebar-toggle,
  body.admin-app[data-admin-page="membres"] .ap-sidebar-account {
    display: none;
  }

  body.admin-app[data-admin-page="membres"] .ap-sidebar nav a,
  body.admin-app[data-admin-page="membres"] .ap-sidebar .ap-dashboard-nav a,
  body.admin-app[data-admin-page="membres"] .ap-nav-domain nav a {
    min-height: 46px;
    padding: 0 14px;
    grid-template-columns: 24px minmax(0, 1fr) auto;
    gap: 10px;
    border-radius: 8px;
    font-size: .83rem;
    font-weight: 850;
  }

  body.admin-app[data-admin-page="membres"] .ap-nav-domain {
    margin-top: 8px;
    padding-top: 8px;
  }

  body.admin-app[data-admin-page="membres"] .ap-nav-domain h2 {
    display: none;
  }

  body.admin-app[data-admin-page="membres"] .ap-nav-icon .lpm-icon {
    width: 18px;
    height: 18px;
  }

  body.admin-app[data-admin-page="membres"] .ap-main {
    padding: 34px 32px 34px;
    background: #fbfcff;
  }

  body.admin-app[data-admin-page="membres"] .ap-head {
    min-height: 54px;
    margin: 0 0 44px;
    align-items: start;
  }

  body.admin-app[data-admin-page="membres"] .ap-head h1 {
    margin-bottom: 10px;
    font-size: 1.9rem;
    line-height: 1;
  }

  body.admin-app[data-admin-page="membres"] .ap-head p {
    font-size: .94rem;
    line-height: 1.35;
  }

  body.admin-app[data-admin-page="membres"] .ap-head .ap-primary {
    min-height: 47px;
    padding: 0 20px;
    border-radius: 7px;
    font-size: .88rem;
    box-shadow: 0 14px 24px rgba(111, 70, 214, .2);
  }

  body.admin-app[data-admin-page="membres"] .ap-members-page {
    gap: 28px;
  }

  body.admin-app[data-admin-page="membres"] .ap-members-stats {
    gap: 26px;
  }

  body.admin-app[data-admin-page="membres"] .ap-members-kpi {
    min-height: 132px;
    padding: 18px 22px;
    grid-template-columns: 58px minmax(0, 1fr);
    gap: 14px;
    border-radius: 13px;
    box-shadow: 0 10px 26px rgba(24, 43, 70, .055);
  }

  body.admin-app[data-admin-page="membres"] .ap-members-kpi > span {
    width: 56px;
    height: 56px;
    border-radius: 50%;
  }

  body.admin-app[data-admin-page="membres"] .ap-members-kpi .lpm-icon {
    width: 28px;
    height: 28px;
  }

  body.admin-app[data-admin-page="membres"] .ap-members-kpi strong {
    font-size: 2rem;
  }

  body.admin-app[data-admin-page="membres"] .ap-members-kpi p {
    margin: 0 0 8px;
    font-size: .94rem;
  }

  body.admin-app[data-admin-page="membres"] .ap-members-kpi small {
    font-size: .86rem;
  }

  body.admin-app[data-admin-page="membres"] .ap-members-toolbar {
    grid-template-columns: minmax(320px, 1.7fr) repeat(3, minmax(145px, .72fr)) minmax(130px, .55fr);
    gap: 22px;
  }

  body.admin-app[data-admin-page="membres"] .ap-members-toolbar .lpm-search-field,
  body.admin-app[data-admin-page="membres"] .ap-members-toolbar select,
  body.admin-app[data-admin-page="membres"] .ap-members-toolbar button {
    min-height: 49px;
    border-radius: 7px;
    font-size: .86rem;
  }

  body.admin-app[data-admin-page="membres"] .ap-members-table-card {
    border-radius: 12px;
  }

  body.admin-app[data-admin-page="membres"] .ap-members-table-card > header {
    padding: 0;
  }

  body.admin-app[data-admin-page="membres"] .ap-members-table-card > header h2 {
    display: none;
  }

  body.admin-app[data-admin-page="membres"] .ap-members-table th,
  body.admin-app[data-admin-page="membres"] .ap-members-table td {
    padding: 13px 16px;
    font-size: .86rem;
  }

  body.admin-app[data-admin-page="membres"] .ap-members-table th {
    font-size: .78rem;
    font-weight: 950;
  }

  body.admin-app[data-admin-page="membres"] .ap-members-table tbody tr {
    height: 72px;
  }

  body.admin-app[data-admin-page="membres"] .ap-member-avatar,
  body.admin-app[data-admin-page="membres"] .ap-member-avatar img,
  body.admin-app[data-admin-page="membres"] .ap-member-avatar > span {
    width: 40px;
    height: 40px;
  }

  body.admin-app[data-admin-page="membres"] .ap-member-cell {
    grid-template-columns: 40px minmax(0, 1fr);
    gap: 14px;
  }

  body.admin-app[data-admin-page="membres"] .ap-member-cell strong {
    font-size: .92rem;
  }

  body.admin-app[data-admin-page="membres"] .ap-member-cell small,
  body.admin-app[data-admin-page="membres"] .ap-muted-cell {
    font-size: .78rem;
  }

  body.admin-app[data-admin-page="membres"] .ap-status-badge {
    padding: 5px 12px;
    font-size: .78rem;
  }

  body.admin-app[data-admin-page="membres"] .ap-member-actions {
    gap: 10px;
  }

  body.admin-app[data-admin-page="membres"] .ap-member-actions > button,
  body.admin-app[data-admin-page="membres"] .ap-member-actions summary {
    width: 38px;
    height: 38px;
    border-radius: 7px;
  }

  body.admin-app[data-admin-page="membres"] .ap-member-actions .lpm-icon {
    width: 17px;
    height: 17px;
  }

  body.admin-app[data-admin-page="membres"] .ap-members-table-footer {
    min-height: 83px;
    padding: 16px;
  }

  body.admin-app[data-admin-page="membres"] .ap-members-table-footer select,
  body.admin-app[data-admin-page="membres"] .ap-members-table-footer nav button {
    min-height: 40px;
    height: 40px;
  }
}

/* Final class form redesign: Administration > Classes. */
body.admin-app .ap-class-modal { padding: 18px; align-items: center; justify-content: center; background: rgba(28, 40, 60, .58); }
body.admin-app .ap-class-form-card { display: grid; width: min(1180px, calc(100vw - 32px)); max-height: calc(100dvh - 32px); overflow: hidden; grid-template-rows: auto minmax(0, 1fr) auto; border: 1px solid #dfe5ee; border-radius: 14px; background: #fff; box-shadow: 0 26px 70px rgba(17, 35, 67, .24); }
body.admin-app .ap-class-modal-head { display: flex; padding: 28px 32px 18px; align-items: flex-start; justify-content: space-between; gap: 18px; }
body.admin-app .ap-class-modal-head h2 { margin: 0; color: #0e2d5c; font-size: clamp(1.6rem, 2.5vw, 1.9rem); line-height: 1.05; letter-spacing: 0; }
body.admin-app .ap-class-modal-head p { margin: 9px 0 0; color: #31496d; font-size: .94rem; font-weight: 700; }
body.admin-app .ap-class-modal-head .ap-modal-close { width: 42px; height: 42px; display: grid; flex: 0 0 auto; place-items: center; border: 0; border-radius: 50%; color: #6f35d8; background: #f0e7ff; cursor: pointer; }
body.admin-app .ap-class-modal-head .ap-modal-close .lpm-icon { width: 20px; height: 20px; }
body.admin-app .ap-class-form-scroll { min-height: 0; padding: 8px 32px 22px; overflow: auto; }
body.admin-app .ap-class-card { margin-bottom: 22px; padding: 24px 26px 26px; border: 1px solid #e1e7f0; border-radius: 8px; background: #fff; box-shadow: 0 8px 20px rgba(24, 43, 70, .045); }
body.admin-app .ap-class-card > header { display: grid; margin-bottom: 22px; grid-template-columns: 48px minmax(0, 1fr); gap: 14px; align-items: center; }
body.admin-app .ap-class-card > header > span { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 10px; color: #7038d8; background: #efe7ff; }
body.admin-app .ap-class-card > header .lpm-icon { width: 22px; height: 22px; }
body.admin-app .ap-class-card h3 { margin: 0; color: #0f2f5e; font-size: 1.08rem; }
body.admin-app .ap-class-card p { margin: 4px 0 0; color: #486080; font-size: .84rem; font-weight: 700; }
body.admin-app .ap-class-main-grid, body.admin-app .ap-class-capacity-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 54px; }
body.admin-app .ap-class-capacity-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
body.admin-app .ap-class-form-card label, body.admin-app .ap-class-status-group legend { display: grid; min-width: 0; gap: 9px; color: #102d59; font-size: .86rem; font-weight: 900; }
body.admin-app .ap-class-form-card label b, body.admin-app .ap-class-status-group legend b { color: #6f35d8; }
body.admin-app .ap-class-form-card :is(input, select) { width: 100%; min-height: 50px; padding: 0 15px; box-sizing: border-box; border: 1px solid #cfd8e5; border-radius: 7px; outline: 0; color: #122d58; background: #fff; font: inherit; font-size: .86rem; font-weight: 750; }
body.admin-app .ap-class-form-card :is(input, select):focus { border-color: #7a3fe2; box-shadow: 0 0 0 3px rgba(116, 55, 232, .14); }
body.admin-app .ap-class-form-card label > span { position: relative; display: block; }
body.admin-app .ap-class-form-card [data-class-count] { position: absolute; right: 14px; bottom: 15px; color: #687993; font-size: .75rem; font-style: normal; font-weight: 850; }
body.admin-app .ap-class-form-card label > small { color: #4d6485; font-size: .77rem; font-weight: 750; line-height: 1.45; }
body.admin-app .ap-class-form-card .ap-field-error { min-height: 16px; color: #c4345a; font-size: .74rem; font-weight: 850; }
body.admin-app .ap-class-status-group { min-width: 0; margin: 0; padding: 0; border: 0; }
body.admin-app .ap-class-status-group > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
body.admin-app .ap-class-status-choice { min-height: 92px; padding: 15px 15px 14px; box-sizing: border-box; grid-template-columns: 18px minmax(0, 1fr); align-content: start; gap: 8px 10px; border: 1px solid #d7dee9; border-radius: 7px; cursor: pointer; }
body.admin-app .ap-class-status-choice input { position: absolute; opacity: 0; pointer-events: none; }
body.admin-app .ap-class-status-choice > span { width: 16px; height: 16px; margin-top: 1px; border: 2px solid #cbd5e4; border-radius: 50%; }
body.admin-app .ap-class-status-choice b { color: #112e5d; font-size: .9rem; }
body.admin-app .ap-class-status-choice small { grid-column: 2; color: #3f5577; font-size: .75rem; line-height: 1.55; }
body.admin-app .ap-class-status-choice.is-selected { border-color: #cdbaf9; background: #f7f2ff; }
body.admin-app .ap-class-status-choice.is-selected > span { border-color: #7437e8; box-shadow: inset 0 0 0 4px #fff; background: #7437e8; }
body.admin-app .ap-class-staff-search { position: relative; margin-bottom: 10px; }
body.admin-app .ap-class-staff-search .lpm-icon { position: absolute; left: 14px; top: 50%; width: 18px; height: 18px; color: #8291a9; transform: translateY(-50%); }
body.admin-app .ap-class-staff-search input { padding-left: 42px; }
body.admin-app .ap-class-staff-list { display: grid; max-height: 260px; overflow: auto; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px 8px; }
body.admin-app .ap-class-staff-row { display: grid; min-height: 72px; padding: 10px 12px; box-sizing: border-box; grid-template-columns: 22px 42px minmax(0, 1fr) auto; align-items: center; gap: 12px; border: 1px solid #dce4ef; border-radius: 7px; background: #fff; cursor: pointer; }
body.admin-app .ap-class-staff-row input { width: 20px; min-height: 20px; padding: 0; accent-color: #7437e8; }
body.admin-app .ap-class-staff-avatar, body.admin-app .ap-class-staff-avatar span, body.admin-app .ap-class-staff-avatar img { width: 40px; height: 40px; border-radius: 50%; }
body.admin-app .ap-class-staff-avatar span { display: grid; place-items: center; color: #7437e8; background: #efe7ff; font-size: .72rem; font-weight: 950; }
body.admin-app .ap-class-staff-avatar img { display: block; object-fit: cover; }
body.admin-app .ap-class-staff-copy { display: flex; min-width: 0; max-width: 100%; flex-direction: column; align-items: flex-start; gap: 3px; line-height: 1.2; }
body.admin-app .ap-class-staff-copy strong,
body.admin-app .ap-class-staff-copy small { display: block; width: 100%; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
body.admin-app .ap-class-staff-copy strong { color: #12305e; font-size: .88rem; }
body.admin-app .ap-class-staff-copy small { color: #526987; font-size: .76rem; font-weight: 750; }
body.admin-app .ap-class-staff-row em { padding: 6px 10px; border-radius: 999px; color: #357a4a; background: #e9f7ef; font-size: .68rem; font-style: normal; font-weight: 900; }
body.admin-app .ap-class-staff-row.is-selected { border-color: #cbb6f7; background: #fbf8ff; }
body.admin-app .ap-class-selected { display: grid; margin-top: 16px; gap: 10px; }
body.admin-app .ap-class-selected > strong { color: #6f35d8; font-size: .82rem; }
body.admin-app .ap-class-selected > div { display: flex; flex-flow: row wrap; gap: 9px; }
body.admin-app .ap-class-selected button { min-height: 38px; padding: 0 14px; display: inline-flex; align-items: center; gap: 8px; border: 0; border-radius: 999px; color: #132f5d; background: #eef2f8; font: inherit; font-size: .8rem; font-weight: 900; cursor: pointer; }
body.admin-app .ap-class-selected button .lpm-icon { width: 15px; height: 15px; color: #7437e8; }
body.admin-app .ap-class-empty { padding: 22px; display: grid; justify-items: start; gap: 8px; border: 1px dashed #cfd8e5; border-radius: 8px; color: #49607f; background: #f8fafc; }
body.admin-app .ap-class-empty .lpm-icon { color: #7437e8; }
body.admin-app .ap-class-empty strong { color: #12305e; }
body.admin-app .ap-class-empty p { margin: 0; }
body.admin-app .ap-class-empty a { color: #7437e8; font-weight: 900; }
body.admin-app .ap-class-footer { display: grid; min-height: 88px; padding: 14px 32px; box-sizing: border-box; grid-template-columns: auto minmax(0, 1fr) auto; gap: 18px; align-items: center; border-top: 1px solid #e1e6ef; background: #fff; }
body.admin-app .ap-class-footer button { min-height: 52px; padding: 0 24px; display: inline-flex; align-items: center; justify-content: center; gap: 10px; border-radius: 7px; font: inherit; font-weight: 950; cursor: pointer; }
body.admin-app .ap-class-footer .ap-secondary { border: 1px solid #cbd5e3; color: #17345f; background: #fff; }
body.admin-app .ap-class-footer button[type="submit"] { min-width: 220px; border: 0; color: #fff; background: linear-gradient(100deg, #5f31d7, #7837dd); box-shadow: 0 12px 22px rgba(103, 55, 214, .2); }
body.admin-app .ap-class-footer button:disabled { cursor: not-allowed; opacity: .55; }
body.admin-app .ap-class-footer-summary { display: flex; min-width: 0; justify-content: center; align-items: center; gap: 10px; color: #102d59; font-size: .92rem; font-weight: 950; }
body.admin-app .ap-class-footer-summary > span { width: 32px; height: 32px; display: grid; flex: 0 0 auto; place-items: center; border-radius: 50%; color: #7437e8; background: #efe7ff; }
body.admin-app .ap-class-footer-summary strong { min-width: 0; white-space: normal; }

@media (max-width: 900px) {
  body.admin-app .ap-class-modal { padding: 10px; }
  body.admin-app .ap-class-form-card { width: min(100%, 760px); max-height: calc(100dvh - 20px); }
  body.admin-app .ap-class-modal-head, body.admin-app .ap-class-form-scroll, body.admin-app .ap-class-footer { padding-inline: 18px; }
  body.admin-app .ap-class-main-grid, body.admin-app .ap-class-capacity-grid, body.admin-app .ap-class-staff-list { grid-template-columns: 1fr; gap: 16px; }
  body.admin-app .ap-class-status-group > div { grid-template-columns: 1fr; }
  body.admin-app .ap-class-footer { grid-template-columns: 1fr; }
  body.admin-app .ap-class-footer-summary { order: -1; justify-content: flex-start; }
  body.admin-app .ap-class-footer button, body.admin-app .ap-class-footer button[type="submit"] { width: 100%; min-width: 0; }
}

/* Administration planning, matched to Prompt Admin - Planning. */
body.admin-app[data-admin-page="planning"] .ap-main { min-width: 0; }
body.admin-app .ap-planning-page { display: grid; padding: 24px 28px 34px; gap: 24px; color: #102d59; }
body.admin-app .ap-planning-head { display: flex; align-items: center; justify-content: space-between; }
body.admin-app .ap-planning-head h1 { margin: 0 0 7px; color: #102d59; font-size: 1.55rem; line-height: 1.15; letter-spacing: 0; }
body.admin-app .ap-planning-head p { margin: 0; color: #536781; font-size: .75rem; font-weight: 650; }
body.admin-app .ap-planning-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
body.admin-app .ap-planning-kpi { display: grid; min-height: 108px; padding: 20px; box-sizing: border-box; grid-template-columns: 56px minmax(0, 1fr); align-items: center; gap: 16px; border: 1px solid #dfe5ed; border-radius: 8px; background: rgba(255,255,255,.94); box-shadow: 0 7px 20px rgba(23,45,78,.04); }
body.admin-app .ap-planning-kpi > span { display: grid; width: 56px; height: 56px; place-items: center; border-radius: 50%; }
body.admin-app .ap-planning-kpi > span svg { width: 25px; height: 25px; }
body.admin-app .ap-planning-kpi.purple > span { color: #7240d6; background: #eee6ff; }
body.admin-app .ap-planning-kpi.green > span { color: #2da64d; background: #e5f6e9; }
body.admin-app .ap-planning-kpi.orange > span { color: #e88a00; background: #fff1d9; }
body.admin-app .ap-planning-kpi.blue > span { color: #2781d4; background: #e4f1fd; }
body.admin-app .ap-planning-kpi strong { display: block; margin-bottom: 2px; color: #0e2b55; font-size: 1.25rem; line-height: 1; }
body.admin-app .ap-planning-kpi h2 { margin: 0; color: #153258; font-size: .74rem; line-height: 1.3; }
body.admin-app .ap-planning-kpi p { margin: 6px 0 0; color: #7550d5; font-size: .59rem; font-weight: 850; }
body.admin-app .ap-planning-kpi.green p { color: #2a9e47; }
body.admin-app .ap-planning-kpi.orange p { color: #df8300; }
body.admin-app .ap-planning-kpi.blue p { color: #277dcc; }
body.admin-app .ap-planning-controls { display: grid; grid-template-columns: minmax(250px,1.35fr) repeat(3,minmax(155px,.76fr)) auto; align-items: center; gap: 16px; }
body.admin-app .ap-planning-controls > label:not(.lpm-search-field) { min-width: 0; }
body.admin-app .ap-planning-controls select { width: 100%; min-height: 43px; padding: 8px 36px 8px 14px; border: 1px solid #d6dee8; border-radius: 7px; color: #19375f; background: #fff; font: inherit; font-size: .68rem; font-weight: 750; }
body.admin-app .ap-planning-search { width: 100%; min-height: 43px; }
body.admin-app .ap-planning-primary { display: inline-flex; min-height: 43px; padding: 9px 17px; align-items: center; justify-content: center; gap: 8px; border: 0; border-radius: 7px; color: #fff; background: linear-gradient(100deg,#6d3fd0,#7a3ed9); box-shadow: 0 8px 18px rgba(106,61,205,.17); font: inherit; font-size: .67rem; font-weight: 900; cursor: pointer; transition: transform 200ms ease,box-shadow 200ms ease; white-space: nowrap; }
body.admin-app .ap-planning-primary:hover { transform: translateY(-2px); box-shadow: 0 11px 22px rgba(106,61,205,.22); }
body.admin-app .ap-planning-primary svg { width: 16px; height: 16px; }
body.admin-app .ap-planning-workspace { min-width: 0; overflow: hidden; border: 1px solid #dfe5ed; border-radius: 8px; background: rgba(255,255,255,.96); box-shadow: 0 7px 22px rgba(27,47,75,.04); }
body.admin-app .ap-planning-tabs { display: flex; min-height: 56px; padding: 0 13px; align-items: end; gap: 8px; border-bottom: 1px solid #e1e6ed; }
body.admin-app .ap-planning-tabs button { min-width: 95px; min-height: 55px; padding: 10px 15px; border: 0; border-bottom: 2px solid transparent; color: #66758c; background: transparent; font: inherit; font-size: .7rem; font-weight: 900; cursor: pointer; }
body.admin-app .ap-planning-tabs button.active { color: #6d3fd0; border-bottom-color: #6d3fd0; }
body.admin-app .ap-planning-results { min-height: 510px; }
body.admin-app .ap-planning-loading { display: grid; min-height: 500px; place-items: center; align-content: center; gap: 10px; color: #738198; font-size: .7rem; }
body.admin-app .ap-planning-loading span { width: 28px; height: 28px; border: 3px solid #eee7fb; border-top-color: #7140d4; border-radius: 50%; animation: spin .8s linear infinite; }
body.admin-app .ap-planning-calendar-layout { display: grid; grid-template-columns: minmax(0,1.55fr) minmax(300px,.95fr); min-width: 0; }
body.admin-app .ap-planning-calendar-card { min-width: 0; padding: 18px 14px 14px; border-right: 1px solid #e1e6ed; }
body.admin-app .ap-planning-calendar-toolbar { display: flex; min-height: 44px; margin-bottom: 13px; align-items: center; gap: 9px; }
body.admin-app .ap-planning-calendar-toolbar h2 { min-width: 132px; margin: 0; color: #17345d; font-size: .92rem; text-align: center; text-transform: capitalize; }
body.admin-app .ap-planning-calendar-toolbar button { display: inline-grid; width: 38px; height: 38px; padding: 0; place-items: center; border: 1px solid #dbe2eb; border-radius: 7px; color: #48607f; background: #fff; cursor: pointer; }
body.admin-app .ap-planning-calendar-toolbar button svg { width: 15px; height: 15px; }
body.admin-app .ap-planning-calendar-toolbar .ap-planning-today { width: auto; min-width: 112px; margin-left: auto; padding: 0 13px; grid-auto-flow: column; gap: 7px; font: inherit; font-size: .6rem; font-weight: 850; }
body.admin-app .ap-planning-weekdays,.ap-planning-month-grid { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); }
body.admin-app .ap-planning-weekdays { min-height: 31px; align-items: center; color: #536681; font-size: .55rem; font-weight: 900; text-align: center; text-transform: uppercase; }
body.admin-app .ap-planning-month-grid { overflow: hidden; border: 1px solid #dfe5ec; border-radius: 7px; }
body.admin-app .ap-planning-month-grid > section { position: relative; min-width: 0; min-height: 94px; padding: 8px 7px; box-sizing: border-box; border-right: 1px solid #e1e6ed; border-bottom: 1px solid #e1e6ed; background: #fff; }
body.admin-app .ap-planning-month-grid > section:nth-child(7n) { border-right: 0; }
body.admin-app .ap-planning-month-grid > section:nth-last-child(-n+7) { border-bottom: 0; }
body.admin-app .ap-planning-month-grid > section.is-outside { color: #a2adbc; background: #fafbfc; }
body.admin-app .ap-planning-month-grid > section > time { display: grid; width: 22px; height: 22px; margin-bottom: 4px; place-items: center; border-radius: 50%; color: #1a375e; font-size: .56rem; font-weight: 900; }
body.admin-app .ap-planning-month-grid > section.is-today > time { color: #fff; background: #7540d6; }
body.admin-app .ap-planning-event-chip { display: grid; width: 100%; min-height: 29px; margin-top: 3px; padding: 4px 5px 4px 7px; overflow: hidden; border: 0; border-left: 3px solid var(--event-color); border-radius: 4px; color: #18365d; background: color-mix(in srgb,var(--event-color) 12%,white); font: inherit; text-align: left; cursor: pointer; }
body.admin-app .ap-planning-event-chip small { color: var(--event-color); font-size: .43rem; font-weight: 900; }
body.admin-app .ap-planning-event-chip strong { overflow: hidden; font-size: .48rem; line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }
body.admin-app .ap-planning-event-chip.is-cancelled { opacity: .55; text-decoration: line-through; }
body.admin-app .ap-planning-more { padding: 3px 2px; border: 0; color: #7041d2; background: transparent; font: inherit; font-size: .45rem; font-weight: 850; cursor: pointer; }
body.admin-app .ap-planning-upcoming { min-width: 0; padding: 18px 16px 15px; }
body.admin-app .ap-planning-upcoming > header { display: flex; min-height: 44px; margin-bottom: 8px; align-items: center; justify-content: space-between; gap: 12px; }
body.admin-app .ap-planning-upcoming h2 { margin: 0; color: #112f59; font-size: .88rem; }
body.admin-app .ap-planning-upcoming select { min-height: 35px; padding: 7px 29px 7px 10px; border: 1px solid #dbe2eb; border-radius: 6px; color: #50627c; background: #fff; font: inherit; font-size: .54rem; font-weight: 800; }
body.admin-app .ap-planning-upcoming-item { position: relative; display: grid; min-height: 70px; padding: 8px 42px 8px 0; grid-template-columns: 52px minmax(0,1fr) auto; align-items: center; gap: 10px; border-bottom: 1px solid #e5e9ef; }
body.admin-app .ap-planning-upcoming-item > time { display: grid; width: 47px; height: 50px; place-items: center; align-content: center; border: 1px solid color-mix(in srgb,var(--event-color) 23%,#e1e6ed); border-radius: 7px; background: color-mix(in srgb,var(--event-color) 7%,white); }
body.admin-app .ap-planning-upcoming-item > time strong { color: #17345d; font-size: .78rem; line-height: 1; }
body.admin-app .ap-planning-upcoming-item > time span { margin-top: 3px; color: #536783; font-size: .42rem; font-weight: 900; }
body.admin-app .ap-planning-upcoming-item > div { min-width: 0; }
body.admin-app .ap-planning-upcoming-item > div small { color: #263f64; font-size: .49rem; font-weight: 850; }
body.admin-app .ap-planning-upcoming-item > div > button { display: block; max-width: 100%; margin: 3px 0; padding: 0; overflow: hidden; border: 0; color: #112e57; background: transparent; font: inherit; font-size: .61rem; font-weight: 900; text-align: left; text-overflow: ellipsis; white-space: nowrap; cursor: pointer; }
body.admin-app .ap-planning-upcoming-item p { margin: 0; overflow: hidden; color: #68778e; font-size: .5rem; text-overflow: ellipsis; white-space: nowrap; }
body.admin-app .ap-planning-upcoming-item .ap-status-badge { padding: 4px 7px; border-radius: 7px; color: #7242cf; background: #f0e8ff; font-size: .46rem; font-weight: 900; }
body.admin-app .ap-planning-upcoming-item details { position: absolute; top: 22px; right: 3px; }
body.admin-app .ap-planning-upcoming-item summary { display: grid; width: 30px; height: 30px; place-items: center; border: 1px solid #dce3ec; border-radius: 6px; color: #65748a; cursor: pointer; list-style: none; }
body.admin-app .ap-planning-upcoming-item summary svg { width: 15px; height: 15px; }
body.admin-app .ap-planning-upcoming-item details > div { position: absolute; top: 34px; right: 0; z-index: 5; display: grid; min-width: 120px; padding: 5px; border: 1px solid #e0e5ec; border-radius: 7px; background: #fff; box-shadow: 0 10px 28px rgba(28,45,72,.15); }
body.admin-app .ap-planning-upcoming-item details button { padding: 7px 9px; border: 0; border-radius: 5px; color: #314968; background: transparent; font: inherit; font-size: .52rem; font-weight: 750; text-align: left; cursor: pointer; }
body.admin-app .ap-planning-upcoming-item details button:hover { background: #f5f2fb; }
body.admin-app .ap-planning-upcoming-item details button.is-danger { color: #c33c60; }
body.admin-app .ap-planning-all { display: inline-flex; margin-top: 15px; padding: 7px 0; align-items: center; gap: 8px; border: 0; color: #6e3ed0; background: transparent; font: inherit; font-size: .58rem; font-weight: 900; cursor: pointer; }
body.admin-app .ap-planning-all svg { width: 13px; height: 13px; }
body.admin-app .ap-planning-empty { display: grid; min-height: 255px; padding: 24px; place-items: center; align-content: center; gap: 8px; color: #6e7b8f; text-align: center; }
body.admin-app .ap-planning-empty > svg { width: 30px; height: 30px; color: #8958dd; }
body.admin-app .ap-planning-empty strong { color: #17345d; font-size: .7rem; }
body.admin-app .ap-planning-empty p { margin: 0; font-size: .58rem; }
body.admin-app .ap-planning-empty button { margin-top: 5px; padding: 8px 12px; border: 1px solid #dacdf1; border-radius: 6px; color: #7040ce; background: #f8f4ff; font: inherit; font-size: .55rem; font-weight: 850; cursor: pointer; }
body.admin-app .ap-planning-list { overflow-x: auto; }
body.admin-app .ap-planning-list-scopes { display: flex; min-height: 50px; padding: 9px 14px; box-sizing: border-box; align-items: center; gap: 7px; border-bottom: 1px solid #e5e9ef; }
body.admin-app .ap-planning-list-scopes button { min-height: 31px; padding: 6px 11px; border: 1px solid #dde3eb; border-radius: 6px; color: #5f7088; background: #fff; font: inherit; font-size: .54rem; font-weight: 850; cursor: pointer; }
body.admin-app .ap-planning-list-scopes button.active { color: #7040cf; border-color: #d8c8f1; background: #f4edff; }
body.admin-app .ap-planning-list table { width: 100%; border-collapse: collapse; }
body.admin-app .ap-planning-list th { padding: 13px 15px; color: #66758b; background: #fafbfc; font-size: .53rem; text-align: left; text-transform: uppercase; }
body.admin-app .ap-planning-list td { padding: 13px 15px; border-top: 1px solid #e5e9ef; color: #405674; font-size: .58rem; }
body.admin-app .ap-planning-list-title { display: inline-flex; align-items: center; gap: 9px; border: 0; color: #17345d; background: transparent; font: inherit; cursor: pointer; }
body.admin-app .ap-planning-list-title > span { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 7px; color: var(--event-color); background: color-mix(in srgb,var(--event-color) 11%,white); }
body.admin-app .ap-planning-list-title svg { width: 15px; height: 15px; }
body.admin-app .ap-planning-list td:last-child button { display: grid; width: 30px; height: 30px; place-items: center; border: 1px solid #dde3eb; border-radius: 6px; color: #586a83; background: #fff; cursor: pointer; }
body.admin-app .ap-planning-tip { display: flex; min-height: 46px; padding: 10px 16px; box-sizing: border-box; align-items: center; gap: 8px; border-radius: 7px; color: #5c6c83; background: linear-gradient(90deg,#fff8e7,#fff1de); font-size: .58rem; }
body.admin-app .ap-planning-tip > svg { width: 16px; height: 16px; color: #e39b12; }
body.admin-app .ap-planning-tip strong { color: #445a77; }
body.admin-app .ap-event-type-settings { padding: 20px; }
body.admin-app .ap-event-type-settings > header { display: flex; margin-bottom: 15px; align-items: center; justify-content: space-between; gap: 16px; }
body.admin-app .ap-event-type-settings > header h2 { margin: 0 0 4px; color: #17345d; font-size: .85rem; }
body.admin-app .ap-event-type-settings > header p { margin: 0; color: #6b798e; font-size: .58rem; }
body.admin-app .ap-event-type-settings > header button { display: inline-flex; min-height: 37px; padding: 7px 12px; align-items: center; gap: 6px; border: 0; border-radius: 7px; color: #fff; background: #7140d2; font: inherit; font-size: .56rem; font-weight: 850; cursor: pointer; }
body.admin-app .ap-event-type-settings > header button svg { width: 14px; height: 14px; }
body.admin-app [data-event-types-list] { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
body.admin-app [data-event-types-list] article { display: grid; min-height: 56px; padding: 9px 10px; grid-template-columns: 36px minmax(0,1fr) auto; align-items: center; gap: 10px; border: 1px solid #e0e5ec; border-radius: 7px; background: #fff; }
body.admin-app [data-event-types-list] article > span { display: grid; width: 36px; height: 36px; place-items: center; border-radius: 7px; color: var(--event-color); background: color-mix(in srgb,var(--event-color) 11%,white); }
body.admin-app [data-event-types-list] article > span svg { width: 17px; height: 17px; }
body.admin-app [data-event-types-list] article > div { display: grid; gap: 2px; }
body.admin-app [data-event-types-list] article strong { color: #19375f; font-size: .59rem; }
body.admin-app [data-event-types-list] article small { color: #788598; font-size: .48rem; }
body.admin-app [data-event-types-list] article button { display: inline-flex; padding: 6px 8px; align-items: center; gap: 5px; border: 1px solid #ded5ef; border-radius: 6px; color: #7040ce; background: #faf7ff; font: inherit; font-size: .5rem; font-weight: 850; cursor: pointer; }
body.admin-app [data-event-types-list] article button svg { width: 12px; height: 12px; }
body.admin-app .ap-planning-drawer-overlay { position: fixed; inset: 0; z-index: 70; border: 0; background: rgba(13,31,58,.17); backdrop-filter: blur(2px); opacity: 0; pointer-events: none; transition: opacity 200ms ease; }
body.admin-app .ap-planning-drawer { position: fixed; top: 0; right: 0; z-index: 75; width: min(430px,92vw); height: 100dvh; display: grid; grid-template-rows: auto minmax(0,1fr) auto; border-left: 1px solid #e1e6ed; background: #fff; box-shadow: -24px 0 60px rgba(23,42,70,.16); opacity: 0; transform: translateX(40px); pointer-events: none; transition: opacity 210ms ease,transform 210ms cubic-bezier(.22,1,.36,1); }
body.admin-app.ap-planning-drawer-open .ap-planning-drawer-overlay { opacity: 1; pointer-events: auto; }
body.admin-app.ap-planning-drawer-open .ap-planning-drawer { opacity: 1; transform: translateX(0); pointer-events: auto; }
body.admin-app .ap-planning-drawer > header { position: relative; padding: 34px 25px 20px; border-bottom: 1px solid #e5e9ef; }
body.admin-app .ap-planning-drawer > header > button { position: absolute; top: 14px; right: 14px; display: grid; width: 32px; height: 32px; place-items: center; border: 0; border-radius: 7px; color: #62718a; background: #f6f7f9; cursor: pointer; }
body.admin-app .ap-planning-drawer > header > span { display: grid; width: 48px; height: 48px; margin-bottom: 12px; place-items: center; border-radius: 8px; color: var(--event-color); background: color-mix(in srgb,var(--event-color) 12%,white); }
body.admin-app .ap-planning-drawer > header > span svg { width: 22px; height: 22px; }
body.admin-app .ap-planning-drawer > header p { margin: 0 0 4px; color: #7644d2; font-size: .58rem; font-weight: 900; }
body.admin-app .ap-planning-drawer > header h2 { margin: 0 0 10px; color: #12305a; font-size: 1.15rem; }
body.admin-app .ap-planning-drawer > header em { display: inline-flex; padding: 4px 8px; border-radius: 6px; color: #7040ce; background: #eee6fc; font-size: .52rem; font-style: normal; font-weight: 900; }
body.admin-app .ap-planning-drawer-body { padding: 20px 25px; overflow-y: auto; }
body.admin-app .ap-planning-drawer dl { display: grid; margin: 0; gap: 16px; }
body.admin-app .ap-planning-drawer dl > div { display: grid; grid-template-columns: 115px minmax(0,1fr); gap: 12px; }
body.admin-app .ap-planning-drawer dt { display: flex; align-items: center; gap: 7px; color: #6a788d; font-size: .58rem; }
body.admin-app .ap-planning-drawer dt svg { width: 14px; height: 14px; }
body.admin-app .ap-planning-drawer dd { margin: 0; color: #17345d; font-size: .62rem; font-weight: 750; }
body.admin-app .ap-planning-drawer-body section { margin-top: 24px; padding-top: 18px; border-top: 1px solid #e5e9ef; }
body.admin-app .ap-planning-drawer-body h3 { margin: 0 0 8px; color: #17345d; font-size: .68rem; }
body.admin-app .ap-planning-drawer-body p { color: #566a85; font-size: .61rem; line-height: 1.65; }
body.admin-app .ap-planning-drawer > footer { display: flex; padding: 15px 20px; gap: 8px; border-top: 1px solid #e5e9ef; }
body.admin-app .ap-planning-drawer > footer button { min-height: 38px; padding: 8px 12px; display: inline-flex; align-items: center; gap: 6px; border: 1px solid #d8e0e9; border-radius: 7px; color: #48607d; background: #fff; font: inherit; font-size: .56rem; font-weight: 850; cursor: pointer; }
body.admin-app .ap-planning-drawer > footer button:first-child { color: #fff; border-color: #7040ce; background: #7040ce; }
body.admin-app .ap-planning-drawer > footer button.is-danger { margin-left: auto; color: #bd3b5f; }
body.admin-app .ap-planning-event-modal { padding: 14px; background: rgba(14,30,56,.46); backdrop-filter: blur(7px); }
body.admin-app .ap-planning-event-modal .ap-modal-card { width: min(1100px,calc(100vw - 28px)); height: min(900px,calc(100dvh - 28px)); max-height: none; padding: 0; overflow: hidden; grid-template-rows: auto minmax(0,1fr) auto; gap: 0; border: 1px solid rgba(216,223,234,.95); border-radius: 12px; background: #fff; box-shadow: 0 28px 80px rgba(15,38,70,.25); }
body.admin-app .ap-planning-event-modal .ap-modal-card > header { position: relative; display: grid; padding: 20px 22px 17px; grid-template-columns: 42px minmax(0,1fr) 36px; align-items: start; gap: 12px; border-bottom: 1px solid #e4e9ef; }
body.admin-app .ap-planning-event-modal .ap-planning-modal-icon { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 9px; color: #7438dc; background: #f0e9ff; }
body.admin-app .ap-planning-event-modal .ap-planning-modal-icon svg { width: 19px; height: 19px; }
body.admin-app .ap-planning-event-modal .ap-modal-card > header h2 { margin: 2px 0 4px; padding: 0; color: #0c2d5a; font-size: 1.15rem; line-height: 1.15; letter-spacing: 0; }
body.admin-app .ap-planning-event-modal .ap-modal-card > header .ap-modal-kicker { margin: 0; color: #526783; font-size: .62rem; font-weight: 650; }
body.admin-app .ap-planning-event-modal .ap-modal-card > header div > span { color: #718097; font-size: .55rem; }
body.admin-app .ap-planning-event-modal .ap-modal-close { position: static; display: grid; width: 34px; height: 34px; padding: 0; place-items: center; border: 1px solid #ded8f4; border-radius: 50%; color: #6941c7; background: #fbf9ff; }
body.admin-app .ap-planning-form-scroll { min-height: 0; padding: 20px 22px 24px; overflow-y: auto; scrollbar-color: #c9b9eb transparent; scrollbar-width: thin; }
body.admin-app .ap-planning-form-columns { display: grid; grid-template-columns: minmax(0,1.38fr) minmax(340px,1fr); gap: 34px; }
body.admin-app .ap-planning-form-column { display: grid; align-content: start; gap: 18px; }
body.admin-app .ap-planning-form-column > label,body.admin-app .ap-planning-form-column > fieldset { margin: 0; }
body.admin-app .ap-planning-form-column label { display: block; }
body.admin-app .ap-planning-form-column label,body.admin-app .ap-planning-form-column legend { color: #102e58; font-size: .61rem; font-weight: 850; }
body.admin-app .ap-planning-form-column label > b,body.admin-app .ap-planning-form-column legend b { color: #ee3974; }
body.admin-app .ap-planning-form-column label > small,body.admin-app .ap-planning-form-column legend small { color: #7b8799; font-size: .52rem; font-weight: 650; }
body.admin-app .ap-planning-form-column input:not([type="radio"]):not([type="checkbox"]),body.admin-app .ap-planning-form-column select,body.admin-app .ap-planning-form-column textarea { width: 100%; min-height: 42px; margin-top: 7px; box-sizing: border-box; border: 1px solid #d7dfe9; border-radius: 7px; color: #18365d; background: #fff; font: inherit; font-size: .59rem; }
body.admin-app .ap-planning-form-column textarea { min-height: 104px; padding: 13px; border-radius: 7px 7px 0 0; resize: vertical; }
body.admin-app .ap-input-with-icon { position: relative; display: block; }
body.admin-app .ap-input-with-icon > svg { position: absolute; z-index: 1; top: 21px; left: 12px; width: 14px; height: 14px; color: #657a97; pointer-events: none; }
body.admin-app .ap-input-with-icon > input { padding-left: 38px; }
body.admin-app .ap-event-type-field { padding: 0; border: 0; }
body.admin-app .ap-event-type-field legend { margin-bottom: 8px; }
body.admin-app .ap-event-type-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 9px; }
body.admin-app .ap-event-type-grid label { position: relative; display: grid; min-height: 68px; padding: 9px 6px; box-sizing: border-box; place-items: center; align-content: center; gap: 5px; border: 1px solid #dbe2eb; border-radius: 7px; color: #17345c; background: #fff; text-align: center; cursor: pointer; transition: transform .18s ease,border-color .18s ease,box-shadow .18s ease,background .18s ease; }
body.admin-app .ap-event-type-grid label:last-child:nth-child(4n + 1) { grid-column: 1/-1; min-height: 40px; grid-auto-flow: column; justify-content: center; }
body.admin-app .ap-event-type-grid label:hover { transform: translateY(-1px); border-color: color-mix(in srgb,var(--type-color) 48%,#dbe2eb); box-shadow: 0 8px 20px rgba(28,47,78,.07); }
body.admin-app .ap-event-type-grid label.is-selected { border-color: var(--type-color); background: color-mix(in srgb,var(--type-color) 7%,white); box-shadow: 0 0 0 1px color-mix(in srgb,var(--type-color) 35%,transparent); }
body.admin-app .ap-event-type-grid input { position: absolute; width: 1px; height: 1px; opacity: 0; }
body.admin-app .ap-event-type-grid input:focus-visible ~ .ap-event-type-icon { outline: 3px solid color-mix(in srgb,var(--type-color) 25%,transparent); outline-offset: 3px; }
body.admin-app .ap-event-type-icon { display: grid; width: 28px; height: 28px; place-items: center; border-radius: 50%; color: var(--type-color); background: color-mix(in srgb,var(--type-color) 12%,white); }
body.admin-app .ap-event-type-icon svg { width: 15px; height: 15px; }
body.admin-app .ap-event-type-grid label > i { position: absolute; top: 6px; right: 6px; display: none; width: 16px; height: 16px; place-items: center; border-radius: 50%; color: #fff; background: var(--type-color); }
body.admin-app .ap-event-type-grid label > i svg { width: 10px; height: 10px; }
body.admin-app .ap-event-type-grid label.is-selected > i { display: grid; }
body.admin-app .ap-planning-date-row { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: 24px; }
body.admin-app .ap-planning-switch-row { display: flex !important; min-height: 42px; padding-bottom: 1px; flex-direction: row !important; align-items: center; gap: 12px !important; white-space: nowrap; }
body.admin-app .ap-switch-input { position: absolute; width: 1px !important; height: 1px !important; min-height: 1px !important; opacity: 0; }
body.admin-app .ap-switch-input + i { position: relative; display: inline-block; width: 40px; height: 22px; flex: 0 0 auto; border-radius: 99px; background: #d8dfe8; cursor: pointer; transition: background .2s ease; }
body.admin-app .ap-switch-input + i::after { position: absolute; top: 2px; left: 2px; width: 18px; height: 18px; border-radius: 50%; background: #fff; box-shadow: 0 2px 6px rgba(24,46,76,.22); content: ""; transition: transform .2s ease; }
body.admin-app .ap-switch-input:checked + i { background: #7438df; }
body.admin-app .ap-switch-input:checked + i::after { transform: translateX(18px); }
body.admin-app .ap-switch-input:focus-visible + i { outline: 3px solid rgba(116,56,223,.22); outline-offset: 2px; }
body.admin-app .ap-switch-input:disabled + i { cursor: not-allowed; opacity: .5; }
body.admin-app .ap-planning-time-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
body.admin-app .ap-planning-time-fields[hidden] { display: none; }
body.admin-app .ap-planning-time-summary,body.admin-app .ap-planning-context-note,body.admin-app .ap-planning-notifications > p { display: flex; min-height: 37px; margin: -7px 0 0; padding: 9px 11px; box-sizing: border-box; align-items: flex-start; gap: 9px; border-radius: 6px; color: #61718a; background: #f3f5f8; font-size: .52rem; line-height: 1.45; }
body.admin-app .ap-planning-time-summary svg,body.admin-app .ap-planning-context-note svg,body.admin-app .ap-planning-notifications > p svg { width: 15px; height: 15px; flex: 0 0 auto; color: #eeaa13; }
body.admin-app .ap-planning-context-note { margin-top: -10px; border: 1px solid #cfe0fb; color: #466080; background: #f1f6ff; }
body.admin-app .ap-planning-context-note svg { color: #2980e3; }
body.admin-app .ap-description-field { gap: 0 !important; }
body.admin-app .ap-description-tools { display: flex; min-height: 37px; margin-top: -1px; padding: 5px 9px; align-items: center; justify-content: space-between; border: 1px solid #d7dfe9; border-radius: 0 0 7px 7px; }
body.admin-app .ap-description-tools > span { display: flex; gap: 3px; }
body.admin-app .ap-description-tools button { display: grid; width: 28px; height: 26px; padding: 0; place-items: center; border: 0; border-radius: 5px; color: #526987; background: transparent; cursor: pointer; }
body.admin-app .ap-description-tools button:hover { background: #f0edf9; }
body.admin-app .ap-description-tools button svg { width: 14px; height: 14px; }
body.admin-app .ap-description-tools small { color: #7d899b; font-size: .49rem; }
body.admin-app .ap-planning-recurrence-options { display: grid; margin-top: -10px; padding: 11px; gap: 10px; border: 1px solid #e1e6ed; border-radius: 7px; background: #fafbfc; }
body.admin-app .ap-planning-recurrence-options[hidden],body.admin-app [data-custom-recurrence][hidden] { display: none; }
body.admin-app .ap-planning-recurrence-options > p { margin: 0; color: #61728a; font-size: .52rem; }
body.admin-app [data-custom-recurrence] { display: grid; grid-template-columns: 1fr 1.4fr; gap: 10px; }
body.admin-app .ap-planning-classes { padding: 14px; border: 1px solid #d9e0e9; border-radius: 7px; }
body.admin-app .ap-planning-classes legend { padding: 0 5px; }
body.admin-app .ap-planning-classes > div { display: grid; max-height: 160px; margin-top: 7px; overflow-y: auto; }
body.admin-app .ap-planning-classes label { display: flex; min-height: 34px; padding: 5px 7px; flex-direction: row; align-items: center; gap: 9px; border-radius: 5px; cursor: pointer; }
body.admin-app .ap-planning-classes label:hover { background: #f7f5fb; }
body.admin-app .ap-planning-classes input { width: 16px; min-height: 16px; margin: 0; accent-color: #7540dc; }
body.admin-app .ap-planning-class-all { border: 1px solid #dbcdf5; color: #6d3fc6 !important; background: #f8f3ff; }
body.admin-app .ap-planning-classes > strong { display: block; margin-top: 8px; padding-top: 8px; border-top: 1px solid #e7eaf0; color: #344c6d; font-size: .52rem; }
body.admin-app .ap-planning-classes.is-optional legend b { display: none; }
body.admin-app .ap-planning-notifications { display: grid; gap: 8px; }
body.admin-app .ap-planning-notifications > label { display: flex; min-height: 38px; margin: 0; padding: 0 5px; flex-direction: row; align-items: center; justify-content: space-between; gap: 12px; }
body.admin-app .ap-planning-notifications > label > span { display: flex; align-items: center; gap: 9px; }
body.admin-app .ap-planning-notifications > label > span svg { width: 16px; height: 16px; color: #596f8c; }
body.admin-app .ap-planning-notifications > p { margin: 0; border: 1px solid #e6dafa; color: #5d5480; background: #faf6ff; }
body.admin-app .ap-planning-notifications > p svg { color: #8758dd; }
body.admin-app .ap-planning-cancel-notify { padding-top: 8px !important; border-top: 1px solid #e7e9ef; }
body.admin-app .ap-field-error { display: block; min-height: 0; margin-top: 4px; color: #c82f58 !important; font-size: .49rem !important; font-weight: 700 !important; }
body.admin-app .has-error :is(input,select,textarea),body.admin-app .ap-planning-classes.has-error { border-color: #e24c70 !important; box-shadow: 0 0 0 2px rgba(226,76,112,.1); }
body.admin-app .ap-planning-record-status { min-height: 18px; margin: 12px 0 0; color: #5e6f87; font-size: .55rem; text-align: center; }
body.admin-app .ap-planning-event-modal .ap-modal-card > footer { display: grid; min-height: 72px; padding: 12px 22px; box-sizing: border-box; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 16px; border-top: 1px solid #e3e7ed; background: #fff; }
body.admin-app .ap-planning-event-modal .ap-modal-card > footer button { min-height: 42px; padding: 8px 17px; display: inline-flex; align-items: center; gap: 8px; border-radius: 7px; }
body.admin-app .ap-planning-event-modal .ap-modal-card > footer button[type="submit"] { color: #fff; border: 0; background: linear-gradient(100deg,#5d31d7,#843de2); }
body.admin-app .ap-planning-event-modal .ap-modal-card > footer button.is-loading { cursor: wait; opacity: .72; }
body.admin-app .ap-planning-event-modal .ap-modal-card > footer .ap-secondary { color: #344d6f; border: 1px solid #cfd8e4; background: #fff; }
body.admin-app .ap-planning-footer-summary { display: flex; min-width: 0; padding: 8px 12px; align-items: center; gap: 9px; border-radius: 7px; background: linear-gradient(90deg,#faf8ff,#fbfcfd); }
body.admin-app .ap-planning-footer-summary > span { display: grid; width: 32px; height: 32px; flex: 0 0 auto; place-items: center; border-radius: 7px; color: #6d3dd4; background: #ece5fb; }
body.admin-app .ap-planning-footer-summary > span svg { width: 16px; height: 16px; }
body.admin-app .ap-planning-footer-summary p { display: grid; min-width: 0; margin: 0; gap: 2px; }
body.admin-app .ap-planning-footer-summary small { color: #778397; font-size: .45rem; }
body.admin-app .ap-planning-footer-summary strong { overflow: hidden; color: #1c395f; font-size: .58rem; text-overflow: ellipsis; white-space: nowrap; }
body.admin-app .ap-planning-footer-summary em { margin-left: auto; padding: 5px 9px; border-radius: 99px; color: #438338; background: #eaf7e5; font-size: .47rem; font-style: normal; font-weight: 850; white-space: nowrap; }

@media (max-width: 1450px) {
  body.admin-app .ap-planning-page { padding: 22px 22px 30px; gap: 20px; }
  body.admin-app .ap-planning-controls { grid-template-columns: minmax(220px,1.2fr) repeat(3,minmax(135px,.75fr)) auto; gap: 10px; }
  body.admin-app .ap-planning-calendar-layout { grid-template-columns: minmax(0,1.45fr) minmax(270px,.8fr); }
  body.admin-app .ap-planning-month-grid > section { min-height: 84px; padding: 6px 5px; }
  body.admin-app .ap-planning-upcoming { padding-inline: 12px; }
}
@media (max-width: 1180px) {
  body.admin-app .ap-planning-kpis { grid-template-columns: repeat(2,minmax(0,1fr)); }
  body.admin-app .ap-planning-controls { grid-template-columns: repeat(3,minmax(0,1fr)); }
  body.admin-app .ap-planning-search { grid-column: span 2; }
  body.admin-app .ap-planning-primary { grid-column: 3; grid-row: 1; }
  body.admin-app .ap-planning-calendar-layout { grid-template-columns: 1fr; }
  body.admin-app .ap-planning-calendar-card { border-right: 0; border-bottom: 1px solid #e1e6ed; }
  body.admin-app .ap-planning-upcoming > div { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); column-gap: 20px; }
  body.admin-app .ap-planning-form-columns { grid-template-columns: 1fr; gap: 26px; }
  body.admin-app .ap-planning-event-modal .ap-modal-card { width: min(760px,calc(100vw - 28px)); }
}
@media (max-width: 820px) {
  body.admin-app .ap-planning-page { padding: 18px 14px 28px; }
  body.admin-app .ap-planning-kpis { grid-template-columns: 1fr; gap: 10px; }
  body.admin-app .ap-planning-kpi { min-height: 88px; padding: 15px; grid-template-columns: 46px 1fr; }
  body.admin-app .ap-planning-kpi > span { width: 46px; height: 46px; }
  body.admin-app .ap-planning-controls { grid-template-columns: 1fr; }
  body.admin-app .ap-planning-search,body.admin-app .ap-planning-primary { grid-column: auto; grid-row: auto; }
  body.admin-app .ap-planning-month-grid { min-width: 740px; }
  body.admin-app .ap-planning-calendar-card { overflow-x: auto; }
  body.admin-app .ap-planning-calendar-toolbar,body.admin-app .ap-planning-weekdays { min-width: 740px; }
  body.admin-app .ap-planning-upcoming > div { grid-template-columns: 1fr; }
  body.admin-app .ap-planning-event-modal .ap-modal-card { width: 100vw; max-height: 100dvh; min-height: 100dvh; border-radius: 0; }
  body.admin-app .ap-planning-event-modal { padding: 0; }
  body.admin-app .ap-planning-event-modal .ap-modal-card { height: 100dvh; }
  body.admin-app .ap-planning-event-modal .ap-modal-card > header { padding-inline: 16px; grid-template-columns: 38px minmax(0,1fr) 34px; }
  body.admin-app .ap-planning-form-scroll { padding-inline: 16px; }
  body.admin-app .ap-event-type-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  body.admin-app .ap-event-type-grid label:last-child:nth-child(4n + 1) { grid-column: auto; min-height: 68px; grid-auto-flow: row; }
  body.admin-app .ap-planning-event-modal .ap-modal-card > footer { padding-inline: 14px; grid-template-columns: auto minmax(0,1fr); }
  body.admin-app .ap-planning-footer-summary { grid-column: 1/-1; grid-row: 1; }
  body.admin-app .ap-planning-event-modal .ap-modal-card > footer button[type="submit"] { justify-self: end; }
  body.admin-app .ap-planning-drawer { width: 100vw; max-width: none; }
  body.admin-app [data-event-types-list] { grid-template-columns: 1fr; }
}
@media (max-width: 520px) {
  body.admin-app .ap-planning-date-row,body.admin-app .ap-planning-time-fields { grid-template-columns: 1fr; gap: 12px; }
  body.admin-app .ap-planning-switch-row { min-height: 30px; justify-content: space-between; }
  body.admin-app .ap-planning-footer-summary em { display: none; }
  body.admin-app .ap-planning-event-modal .ap-modal-card > footer button { padding-inline: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  body.admin-app :is(.ap-planning-primary,.ap-planning-drawer,.ap-planning-drawer-overlay,.ap-planning-event-chip,.ap-event-type-grid label,.ap-switch-input + i) { transition-duration: 1ms !important; }
}

/* Public experience: shared, data-driven chrome and forms */
:root {
  --lpm-navy: #0b2b59;
  --lpm-violet: #7437e8;
  --lpm-pink: #f23878;
  --lpm-blue: #1673d2;
  --lpm-green: #36a853;
  --lpm-orange: #f59e0b;
  --lpm-ink: #172033;
  --lpm-muted: #657085;
  --lpm-line: #dfe4ec;
  --lpm-surface: #f6f8fb;
}

body.public-site {
  margin: 0;
  padding: 76px 0 0;
  color: var(--lpm-ink);
  background: #fff;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.public-header {
  position: fixed;
  z-index: 1000;
  inset: 0 0 auto;
  min-height: 76px;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 28px;
  padding: 0 4vw;
  border-bottom: 1px solid var(--lpm-line);
  background: rgba(255, 255, 255, .98);
  box-shadow: 0 8px 24px rgba(11, 43, 89, .07);
}

.public-brand { display: inline-flex; align-items: center; gap: 10px; color: var(--lpm-navy); text-decoration: none; white-space: nowrap; }
.public-brand strong { font-size: 1.08rem; }
.public-menu { display: flex; justify-content: center; align-items: center; gap: clamp(12px, 2vw, 30px); }
.public-menu a { position: relative; padding: 27px 0 24px; color: #3d475a; font-size: .93rem; font-weight: 700; text-decoration: none; }
.public-menu a:hover, .public-menu a[aria-current="page"] { color: var(--lpm-violet); }
.public-menu a[aria-current="page"]::after { content: ""; position: absolute; right: 0; bottom: 17px; left: 0; height: 3px; background: var(--lpm-violet); border-radius: 3px; }
.public-menu-toggle { display: none; }
.public-account-link { min-width: 138px; justify-content: center; }

.public-footer {
  position: relative;
  z-index: 1;
  color: #fff;
  background: var(--lpm-navy);
  box-shadow: 0 -8px 24px rgba(11, 43, 89, .08);
}
.public-footer-inner { width: min(1180px, calc(100% - 40px)); margin: 0 auto; padding: 58px 0 22px; }
.public-footer-grid { display: grid; grid-template-columns: 1.45fr 1fr 1fr 1.2fr; gap: 46px; }
.public-footer-grid > section, .public-footer-grid > nav { display: flex; align-items: flex-start; flex-direction: column; gap: 11px; }
.public-footer-grid > * > strong { margin-bottom: 5px; color: #fff; font-size: .9rem; }
.public-footer-brand p, .public-footer-grid span { margin: 0; color: #c9d5e8; font-size: .86rem; line-height: 1.55; }
.public-footer-brand .public-brand { margin-bottom: 4px; color: #fff; }
.public-footer-contact { font-size: .86rem; color: #dfe9fa; }
.public-footer nav { display: flex; }
.public-footer a { color: #fff; font-size: .86rem; font-weight: 700; text-decoration: none; }
.public-footer a:hover { text-decoration: underline; text-underline-offset: 3px; }
.public-footer-legal { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-top: 42px; padding-top: 20px; border-top: 1px solid rgba(255, 255, 255, .15); }
.public-footer-legal nav { display: flex; flex-flow: row wrap; gap: 22px; }

.public-hero { position: relative; min-height: min(700px, calc(100vh - 115px)); display: flex; align-items: flex-end; overflow: hidden; background: var(--lpm-navy); }
.public-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(9, 27, 52, .9) 0%, rgba(9, 27, 52, .58) 48%, rgba(9, 27, 52, .08) 78%); }
.public-hero > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 42%; }
.public-hero-copy { position: relative; z-index: 1; width: min(780px, 90vw); margin: 0 7vw 9vh; color: #fff; }
.public-hero-copy p, .public-eyebrow { margin: 0 0 12px; color: var(--lpm-orange); font-size: .78rem; font-weight: 850; letter-spacing: 0; text-transform: uppercase; }
.public-hero-copy h1 { max-width: 700px; margin: 0 0 18px; font-size: clamp(3.2rem, 7vw, 6.8rem); line-height: .95; letter-spacing: 0; }
.public-hero-copy strong { display: block; max-width: 620px; margin-bottom: 28px; font-size: clamp(1.15rem, 2vw, 1.6rem); line-height: 1.45; }
.public-hero-small { min-height: 560px; }

.public-band, .public-inner { width: min(1180px, calc(100% - 40px)); margin: 0 auto; }
.public-band { padding: 86px 0; }
.public-inner { padding: 70px 0 90px; }
.public-intro { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 8vw; }
.public-band h2, .public-page-intro h1 { margin: 0 0 18px; color: var(--lpm-navy); font-size: clamp(2rem, 4vw, 3.8rem); line-height: 1.05; letter-spacing: 0; }
.public-band p, .public-page-intro p { color: var(--lpm-muted); font-size: 1.05rem; line-height: 1.75; }
.public-value-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.public-value-list article { padding: 24px; border-top: 4px solid var(--lpm-green); background: var(--lpm-surface); border-radius: 8px; }
.public-value-list article:nth-child(2) { border-color: var(--lpm-pink); }
.public-value-list article:nth-child(3) { border-color: var(--lpm-blue); }
.public-life { width: 100%; max-width: none; display: grid; grid-template-columns: 1fr 1fr; align-items: stretch; padding: 0; background: #f4f7fc; }
.public-life > div { width: min(590px, calc(100% - 40px)); margin-left: auto; padding: 90px 70px 90px 20px; }
.public-life img { width: 100%; height: 100%; min-height: 460px; object-fit: cover; }
.text-link { display: inline-flex; color: var(--lpm-violet); font-weight: 800; text-decoration: none; }
.public-section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 28px; }
.public-content-grid, .public-team-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.public-content-grid.compact > article:nth-child(n+4), .public-team-grid.compact > article:nth-child(n+4) { display: none; }
.public-content-card, .public-team-card { overflow: hidden; border: 1px solid var(--lpm-line); background: #fff; border-radius: 8px; box-shadow: 0 14px 34px rgba(11, 43, 89, .08); }
.public-content-card img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.public-content-card div, .public-team-card div { padding: 22px; }
.public-content-card h2, .public-team-card h2 { margin: 0 0 8px; color: var(--lpm-navy); font-size: 1.25rem; }
.public-content-card p, .public-team-card p { margin: 0; color: var(--lpm-muted); line-height: 1.6; }
.public-team-band { border-top: 1px solid var(--lpm-line); }
.public-team-card { display: flex; align-items: center; min-height: 180px; }
.public-team-card:is(button) { width: 100%; padding: 0; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.public-team-card img { width: 128px; height: 100%; min-height: 180px; object-fit: cover; }
.public-team-avatar { display: grid; flex: 0 0 92px; height: 92px; margin-left: 22px; place-items: center; color: #fff; background: var(--lpm-violet); border-radius: 50%; font-size: 2rem; font-weight: 900; }
.public-team-card strong { color: var(--lpm-violet); font-size: .9rem; }
.public-empty { grid-column: 1 / -1; padding: 38px; border: 1px dashed #b6c0cf; background: var(--lpm-surface); border-radius: 8px; text-align: center; }
.public-empty p { margin: 8px 0 0; }
.public-practical { display: grid; grid-template-columns: .7fr 1.3fr; gap: 60px; padding-top: 60px; border-top: 1px solid var(--lpm-line); }
.public-practical dl { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; margin: 0; }
.public-practical dl div { padding: 20px; background: var(--lpm-surface); border-left: 4px solid var(--lpm-blue); border-radius: 4px; }
.public-practical dt { color: var(--lpm-muted); font-size: .8rem; font-weight: 800; text-transform: uppercase; }
.public-practical dd { margin: 6px 0 0; color: var(--lpm-navy); font-weight: 850; }
.public-cta { display: flex; align-items: center; justify-content: space-between; gap: 50px; padding: 64px max(4vw, calc((100vw - 1180px) / 2)); color: #fff; background: var(--lpm-violet); }
.public-cta h2 { margin: 0 0 10px; color: #fff; font-size: clamp(2rem, 4vw, 3.4rem); }
.public-cta p { max-width: 680px; color: #f2edff; line-height: 1.6; }
.public-cta .primary-cta { flex: 0 0 auto; background: #fff; color: var(--lpm-violet); }

.public-page-intro { max-width: 820px; margin-bottom: 52px; }
.public-form-layout { display: grid; grid-template-columns: 320px minmax(0, 1fr); gap: 32px; align-items: start; }
.public-contact-details, .public-form { border: 1px solid var(--lpm-line); background: #fff; border-radius: 8px; box-shadow: 0 14px 36px rgba(11, 43, 89, .07); }
.public-contact-details { padding: 28px; }
.public-contact-details h2, .public-form h2 { margin: 0 0 24px; color: var(--lpm-navy); font-size: 1.35rem; }
.public-contact-details dl { margin: 0; }
.public-contact-details dl div { padding: 15px 0; border-top: 1px solid var(--lpm-line); }
.public-contact-details dt { color: var(--lpm-muted); font-size: .8rem; font-weight: 800; }
.public-contact-details dd { margin: 5px 0 0; color: var(--lpm-navy); font-weight: 750; }
.public-form { max-width: 840px; padding: 34px; }
.registration-form { margin: 0 auto; }
.public-form fieldset { min-width: 0; margin: 0 0 28px; padding: 0; border: 0; }
.public-form legend { margin-bottom: 18px; color: var(--lpm-navy); font-size: 1.2rem; font-weight: 850; }
.form-grid, .registration-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.registration-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.public-form label { display: grid; gap: 8px; margin-bottom: 18px; color: #344055; font-size: .9rem; font-weight: 750; }
.public-form input, .public-form select, .public-form textarea { width: 100%; min-width: 0; box-sizing: border-box; padding: 12px 13px; border: 1px solid #bdc6d3; background: #fff; border-radius: 6px; color: var(--lpm-ink); font: inherit; }
.public-form input:focus, .public-form select:focus, .public-form textarea:focus { outline: 3px solid rgba(22, 115, 210, .18); border-color: var(--lpm-blue); }
.form-consent { grid-template-columns: 20px 1fr !important; align-items: start; }
.form-consent input { width: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--lpm-violet); }
.hp-field { position: absolute !important; left: -9999px !important; }
.primary-cta, .secondary-button, .registration-modal button { display: inline-flex; min-height: 46px; align-items: center; justify-content: center; padding: 11px 20px; border: 0; border-radius: 7px; background: var(--lpm-violet); color: #fff; font: inherit; font-weight: 850; text-decoration: none; cursor: pointer; }
.secondary-button { margin: -6px 0 26px; border: 1px solid var(--lpm-violet); background: #fff; color: var(--lpm-violet); }
.primary-cta:disabled { opacity: .55; cursor: wait; }
.registration-child { position: relative; padding: 22px !important; border: 1px solid var(--lpm-line) !important; background: var(--lpm-surface); border-radius: 8px; }
.registration-child .icon-button { position: absolute; top: 15px; right: 15px; width: 34px; height: 34px; border: 0; border-radius: 50%; color: #7e263f; background: #ffe9f0; font-size: 1.4rem; cursor: pointer; }
.form-status { min-height: 24px; font-weight: 750; }
.form-status.success { padding: 12px; color: #17652d; background: #e9f8ed; border-radius: 6px; }
.form-status.error { padding: 12px; color: #8e243d; background: #fff0f3; border-radius: 6px; }
.public-steps { display: flex; gap: 28px; margin: 28px 0 0; padding: 0; list-style: none; }
.public-steps li { display: flex; align-items: center; gap: 9px; color: var(--lpm-navy); font-weight: 750; }
.public-steps strong { display: grid; width: 30px; height: 30px; place-items: center; color: #fff; background: var(--lpm-violet); border-radius: 50%; }
.registration-modal { position: fixed; z-index: 2000; inset: 0; display: grid; padding: 20px; place-items: center; background: rgba(11, 43, 89, .64); }
.registration-modal[hidden] { display: none; }
.registration-modal section { width: min(480px, 100%); padding: 38px; border-radius: 8px; background: #fff; text-align: center; }
.success-mark { display: grid; width: 56px; height: 56px; margin: 0 auto 18px; place-items: center; color: #fff; background: var(--lpm-green); border-radius: 50%; font-size: 1.7rem; }
.public-day-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin-bottom: 70px; }
.public-day-grid article { padding: 30px; border: 1px solid var(--lpm-line); border-radius: 8px; }
.public-day-grid span { color: var(--lpm-pink); font-weight: 900; }
.public-day-grid h2 { color: var(--lpm-navy); font-size: 1.35rem; }
.public-day-grid p { color: var(--lpm-muted); line-height: 1.6; }
.public-practical-inline { width: 100%; box-sizing: border-box; padding: 38px; background: var(--lpm-surface); border: 0; }
.public-practical-inline > strong { align-self: center; color: var(--lpm-violet); font-size: clamp(2rem, 5vw, 4rem); }

/* Public page compositions */
.public-hero-actions, .public-cta-actions, .public-dual-cta, .modal-actions { display: flex; flex-flow: row wrap; align-items: center; gap: 12px; }
.secondary-light { display: inline-flex; min-height: 46px; align-items: center; justify-content: center; padding: 11px 20px; border: 1px solid rgba(255, 255, 255, .8); border-radius: 7px; color: #fff; font-weight: 850; text-decoration: none; }
.public-value-list.four { grid-template-columns: repeat(4, 1fr); }
.public-value-list.four article:nth-child(4) { border-color: var(--lpm-orange); }
.public-photo-mosaic { display: grid; grid-template-columns: 1.2fr .8fr; grid-template-rows: repeat(2, 210px); gap: 12px; min-height: 432px; }
.public-photo-mosaic img { width: 100%; height: 100%; min-height: 0; object-fit: cover; }
.public-photo-mosaic img:first-child { grid-row: 1 / 3; }
.public-stage-grid, .public-moment-grid, .public-principle-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.public-stage-grid article, .public-moment-grid article, .public-principle-grid article { padding: 25px; border: 1px solid var(--lpm-line); border-radius: 8px; background: #fff; }
.public-stage-grid article { border-top: 4px solid var(--lpm-blue); }
.public-stage-grid article:nth-child(2) { border-color: var(--lpm-green); }
.public-stage-grid article:nth-child(3) { border-color: var(--lpm-pink); }
.public-stage-grid h3, .public-moment-grid h3, .public-principle-grid h3 { margin: 5px 0 9px; color: var(--lpm-navy); }
.public-stage-grid p, .public-moment-grid p, .public-principle-grid p { margin: 0 0 16px; color: var(--lpm-muted); line-height: 1.6; }
.public-split-hero { min-height: 520px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(440px, .9fr); align-items: center; background: var(--lpm-surface); }
.public-split-hero > div { width: min(620px, calc(100% - 70px)); margin-left: max(4vw, calc((100vw - 1180px) / 2)); padding: 66px 50px 66px 0; }
.public-split-hero h1 { margin: 0 0 16px; color: var(--lpm-navy); font-size: clamp(2.8rem, 5vw, 5rem); line-height: 1; }
.public-split-hero strong { display: block; margin-bottom: 15px; color: var(--lpm-violet); font-size: 1.2rem; line-height: 1.5; }
.public-split-hero p:not(.public-eyebrow) { color: var(--lpm-muted); line-height: 1.7; }
.public-split-hero > img { width: 100%; height: 100%; min-height: 520px; object-fit: cover; }
.public-page-section { width: min(1180px, calc(100% - 40px)); margin: 0 auto; padding: 76px 0; }
.public-page-section > header { max-width: 760px; margin-bottom: 30px; }
.public-page-section h2, .public-age-section h2 { margin: 0 0 12px; color: var(--lpm-navy); font-size: clamp(2rem, 4vw, 3.4rem); }
.public-check-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 28px; padding: 0; list-style: none; }
.public-check-list li { position: relative; padding: 18px 18px 18px 48px; border: 1px solid var(--lpm-line); border-radius: 8px; }
.public-check-list li::before { content: "âœ“"; position: absolute; top: 17px; left: 18px; color: var(--lpm-green); font-weight: 900; }
.public-stage-strip { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--lpm-line); }
.public-stage-strip article { padding: 40px max(22px, 4vw); background: #fff; }
.public-stage-strip h2 { font-size: 1.5rem; }
.public-dual-cta { justify-content: center; padding: 55px 20px; background: var(--lpm-surface); }
.public-hours { display: inline-flex; gap: 14px; margin-top: 15px; padding: 12px 15px; border-left: 4px solid var(--lpm-orange); background: #fff; }
.public-moment-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.public-moment-grid article span { color: var(--lpm-pink); font-weight: 900; }
.public-tabs { display: flex; gap: 8px; margin-bottom: 22px; border-bottom: 1px solid var(--lpm-line); }
.public-tabs button { padding: 14px 18px; border: 0; border-bottom: 3px solid transparent; color: var(--lpm-muted); background: transparent; font: inherit; font-weight: 850; cursor: pointer; }
.public-tabs button small { display: block; margin-top: 3px; font-weight: 600; }
.public-tabs button.active { border-color: var(--lpm-violet); color: var(--lpm-violet); }
.public-tab-panel { padding: 28px; border: 1px solid var(--lpm-line); border-radius: 8px; background: var(--lpm-surface); }
.public-tab-panel h3 { margin-top: 0; color: var(--lpm-navy); }
.public-highlight-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.public-highlight-grid article { padding: 30px; border-radius: 8px; background: #eef6ff; }
.public-highlight-grid article:nth-child(2) { background: #edf8ef; }
.public-role-tags { display: flex; flex-flow: row wrap; gap: 6px; margin-top: 12px; }
.public-role-tags em { padding: 4px 8px; border-radius: 999px; color: #594184; background: #f0e9ff; font-size: .75rem; font-style: normal; font-weight: 750; }
.team-intro strong { display: block; margin-bottom: 12px; color: var(--lpm-violet); font-size: 1.12rem; }
.public-team-modal .public-role-tags { justify-content: center; }
.public-modal { position: fixed; z-index: 2500; inset: 0; display: grid; padding: 20px; place-items: center; background: rgba(11, 43, 89, .66); }
.public-modal > section { position: relative; width: min(520px, 100%); box-sizing: border-box; padding: 34px; border-radius: 8px; background: #fff; }
.public-modal h2 { margin: 0 0 8px; color: var(--lpm-navy); }
.public-modal p { color: var(--lpm-muted); line-height: 1.7; }
.public-modal-close { position: absolute; top: 10px; right: 12px; width: 36px; height: 36px; border: 0; color: var(--lpm-navy); background: transparent; font-size: 1.6rem; cursor: pointer; }
.public-age-section { padding: 48px max(4vw, calc((100vw - 1180px) / 2)); background: var(--lpm-surface); }
.public-success-panel { padding: 32px; border-left: 5px solid var(--lpm-green); border-radius: 8px; background: #effaf2; }
.public-place-banner { display: flex; align-items: center; justify-content: space-between; gap: 28px; padding: 44px max(4vw, calc((100vw - 1180px) / 2)); background: #edf4ff; }
.registration-layout-v3 { width: min(1180px, calc(100% - 40px)); margin: 0 auto 80px; display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 30px; align-items: start; }
.registration-layout-v3 .registration-form { max-width: none; }
.registration-aside { position: sticky; top: 100px; display: grid; gap: 18px; }
.registration-aside > section, .public-reassurance { padding: 24px; border: 1px solid var(--lpm-line); border-radius: 8px; background: var(--lpm-surface); }
.registration-aside h2 { margin-top: 0; color: var(--lpm-navy); font-size: 1.15rem; }
.public-steps.detailed { flex-flow: row wrap; }
.public-steps.detailed li { flex: 1 1 190px; }
.modal-actions { justify-content: center; margin-top: 24px; }
.modal-actions a { font-weight: 800; color: var(--lpm-violet); }

@media (max-width: 980px) {
  body.public-site { padding-top: 70px; }
  .public-header { min-height: 70px; grid-template-columns: 1fr auto auto; }
  .public-menu-toggle { display: inline-flex; padding: 9px 12px; border: 1px solid var(--lpm-line); background: #fff; border-radius: 6px; color: var(--lpm-navy); font-weight: 800; }
  .public-menu { position: absolute; top: 70px; right: 0; left: 0; display: none; padding: 14px 20px 20px; border-bottom: 1px solid var(--lpm-line); background: #fff; box-shadow: 0 14px 24px rgba(11, 43, 89, .1); }
  .public-menu.open { display: grid; grid-template-columns: repeat(3, 1fr); }
  .public-menu a { padding: 10px; }
  .public-menu a[aria-current="page"]::after { display: none; }
  .public-intro, .public-practical { grid-template-columns: 1fr; gap: 30px; }
  .public-value-list, .public-value-list.four, .public-content-grid, .public-team-grid, .public-stage-grid, .public-moment-grid, .public-principle-grid { grid-template-columns: repeat(2, 1fr); }
  .public-form-layout { grid-template-columns: 1fr; }
  .public-contact-details { order: 2; }
  .registration-grid { grid-template-columns: 1fr; }
  .public-footer-grid { grid-template-columns: repeat(2, 1fr); }
  .public-split-hero { grid-template-columns: 1fr; }
  .public-split-hero > div { width: auto; margin: 0; padding: 58px 30px; }
  .public-split-hero > img { min-height: 360px; }
  .registration-layout-v3 { grid-template-columns: 1fr; }
  .registration-aside { position: static; grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 680px) {
  .public-header { padding: 0 14px; gap: 10px; }
  .public-account-link { min-width: auto; padding: 9px; font-size: .78rem; }
  .public-brand strong { font-size: .92rem; }
  .public-menu.open { grid-template-columns: 1fr 1fr; }
  .public-hero { min-height: calc(100vh - 100px); }
  .public-hero-copy { margin: 0 24px 9vh; }
  .public-hero-copy h1 { font-size: 3.2rem; }
  .public-band, .public-inner { width: min(100% - 28px, 1180px); }
  .public-band { padding: 58px 0; }
  .public-value-list, .public-value-list.four, .public-content-grid, .public-team-grid, .public-day-grid, .form-grid, .public-stage-grid, .public-moment-grid, .public-principle-grid, .public-highlight-grid, .public-check-list { grid-template-columns: 1fr; }
  .public-life { grid-template-columns: 1fr; }
  .public-life > div { width: auto; margin: 0; padding: 58px 24px; }
  .public-life img { min-height: 320px; }
  .public-section-head { align-items: flex-start; flex-direction: column; }
  .public-team-card { min-height: 150px; }
  .public-team-card img { width: 105px; min-height: 150px; }
  .public-practical dl { grid-template-columns: 1fr; }
  .public-cta { align-items: flex-start; flex-direction: column; padding: 48px 24px; }
  .public-form { padding: 22px; }
  .public-steps { align-items: flex-start; flex-direction: column; gap: 12px; }
  .public-footer-inner { width: min(100% - 32px, 1180px); padding-top: 42px; }
  .public-footer-grid { grid-template-columns: 1fr; gap: 30px; }
  .public-footer-legal { align-items: flex-start; flex-direction: column; }
  .public-photo-mosaic { grid-template-columns: 1fr; grid-template-rows: repeat(3, 230px); }
  .public-photo-mosaic img:first-child { grid-row: auto; }
  .public-stage-strip { grid-template-columns: 1fr; }
  .public-tabs { overflow-x: auto; }
  .public-tabs button { flex: 0 0 auto; }
  .public-place-banner { align-items: flex-start; flex-direction: column; }
  .registration-aside { grid-template-columns: 1fr; }
}

.fp-top-title {
  justify-self: center;
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  border: 1px solid rgba(123, 67, 220, .14);
  border-radius: 999px;
  padding: 0 18px;
  color: #5f35c7;
  background: linear-gradient(135deg, rgba(239, 228, 255, .86), rgba(255, 247, 252, .76));
  box-shadow: 0 10px 22px rgba(85, 62, 156, .08);
  font-size: .98rem;
  font-weight: 950;
  letter-spacing: .01em;
}

.fp-mainnav em,
.fp-sidebar em,
.fp-bell em {
  min-width: 24px;
  height: 24px;
  display: inline-grid;
  place-items: center;
  border-radius: 999px;
  color: #fff;
  background: #f8467b;
  font-size: .78rem;
  font-style: normal;
  font-weight: 950;
}

.fp-bell {
  position: relative;
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  color: #071f49;
}

.fp-bell em {
  position: absolute;
  top: 2px;
  right: 2px;
}

.fp-account {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: #071f49;
}

.fp-avatar-mini {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #7b43dc;
  background: #efe4ff;
  font-weight: 950;
}

.fp-account strong,
.fp-account small {
  display: block;
}

.fp-account small {
  color: #586987;
  font-weight: 750;
}

.fp-avatar {
  width: 46px;
  height: 46px;
  flex: 0 0 auto;
  border-radius: 50%;
  background: url("/assets/smiling-student.jpg") center/cover;
  box-shadow: 0 6px 16px rgba(20,47,86,.14);
}

.fp-avatar-stack {
  width: 56px;
  border: 3px solid #fff;
  background-image: url("/assets/children-activity.jpg");
}

.fp-shell {
  width: min(1840px, calc(100% - 36px));
  margin: 0 auto;
  display: grid;
  grid-template-columns: 310px minmax(0, 1fr);
  gap: 42px;
}

.fp-sidebar {
  position: sticky;
  top: 18px;
  height: calc(100vh - 32px);
  padding: 34px 22px;
  border-radius: 0 0 34px 34px;
  background: rgba(255,255,255,.7);
  box-shadow: 18px 0 45px rgba(71,88,117,.05);
}

.fp-sidebar p {
  margin: 0 16px 18px;
  color: #6f4bd2;
  font-weight: 950;
}

.fp-sidebar nav {
  display: grid;
  gap: 8px;
}

.fp-sidebar a {
  min-height: 58px;
  padding: 0 18px;
  display: flex;
  align-items: center;
  gap: 17px;
  color: #071f49;
  border-radius: 16px;
  font-weight: 900;
}

.fp-sidebar a span {
  width: 28px;
  font-size: 1.35rem;
  text-align: center;
}

.fp-sidebar nav a:nth-child(5n + 1) { color: #1976e8; }
.fp-sidebar nav a:nth-child(5n + 2) { color: #f25588; }
.fp-sidebar nav a:nth-child(5n + 3) { color: #eaa500; }
.fp-sidebar nav a:nth-child(5n + 4) { color: #4ca447; }
.fp-sidebar nav a:nth-child(5n + 5) { color: #7b43dc; }

.fp-sidebar a.active {
  color: #7b43dc;
  background: linear-gradient(100deg, rgba(248,240,255,.96), rgba(249,232,250,.72));
}

.fp-sidebar a em {
  margin-left: auto;
}

.fp-help {
  margin-top: 42px;
  padding: 26px 22px 22px;
  min-height: 318px;
  overflow: hidden;
  border-radius: 28px;
  background: linear-gradient(145deg, rgba(255,246,219,.94), rgba(255,225,239,.82));
  box-shadow: 0 18px 40px rgba(92,52,141,.1);
}

.fp-help strong,
.fp-help span {
  display: block;
  line-height: 1.5;
}

.fp-help i {
  display: block;
  margin: 28px auto 14px;
  text-align: center;
  font-size: 5.8rem;
  font-style: normal;
}

.fp-help a {
  min-height: 52px;
  display: flex;
  justify-content: center;
  color: #fff;
  background: linear-gradient(90deg, #6b84f4, #803dcd);
  box-shadow: 0 12px 24px rgba(94,63,208,.22);
}

.fp-help-faq {
  min-height: auto;
  padding: 14px;
  border-radius: 18px;
}

.fp-logout {
  width: 100%;
  min-height: 50px;
  margin-top: 18px;
  border: 0;
  border-radius: 16px;
  color: #fff;
  background: linear-gradient(90deg, #236dd8, #70329a);
  font: inherit;
  font-weight: 950;
  cursor: pointer;
}

.fp-content {
  padding: 62px 0 54px;
}

.fp-page-head {
  margin-bottom: 34px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 640px);
  align-items: center;
  gap: 44px;
}

.fp-page-head-simple {
  grid-template-columns: minmax(0, 1fr);
}

.fp-page-head h1 {
  max-width: 780px;
  margin: 0;
  color: #08285a;
  font-size: clamp(2.3rem, 3.25vw, 4rem);
  line-height: 1.02;
  font-weight: 950;
}

.fp-page-head h1::after,
.fp-panel h2::after {
  content: "";
  display: block;
  width: 74px;
  height: 8px;
  margin-top: 10px;
  border-radius: 999px;
  background: repeating-linear-gradient(90deg, #f6bb24 0 14px, transparent 14px 21px);
}

.fp-page-head h1 span {
  margin-left: 0;
  color: #f76d95;
}

.family-app .fp-hero h1 {
  color: #5f35c7;
  font-size: clamp(1.9rem, 2.7vw, 3rem);
}

.fp-account-form input[readonly] {
  color: #51627c;
  background: #f5f8fc;
}

.fp-menu-record p {
  margin: 8px 0;
}

.fp-menu-record b {
  color: #5f35c7;
}

.fp-page-head p {
  max-width: 670px;
  margin: 22px 0 0;
  font-size: 1.18rem;
  line-height: 1.75;
  font-weight: 750;
}

.fp-page-head aside,
.fp-panel,
.fp-side-card,
.fp-side-event,
.fp-banner {
  border: 1px solid rgba(205,217,232,.62);
  background: rgba(255,255,255,.74);
  box-shadow: 0 18px 46px rgba(46,67,97,.09);
  backdrop-filter: blur(18px);
}

.fp-page-head aside {
  padding: 28px 36px;
  border-radius: 28px;
  background: linear-gradient(110deg, rgba(255,242,192,.88), rgba(255,250,239,.84));
}

.fp-page-head aside strong,
.fp-page-head aside small {
  display: block;
}

.fp-page-head aside strong {
  color: #c57500;
  font-size: 1.28rem;
  font-weight: 950;
}

.fp-panel {
  padding: 30px;
  border-radius: 32px;
}

.fp-panel h2,
.fp-side-card h2,
.fp-side-event h2 {
  margin: 0;
  color: #08285a;
  font-size: 1.55rem;
  font-weight: 950;
}

.fp-grid-hero {
  margin-bottom: 32px;
}

.fp-welcome {
  background: radial-gradient(circle at 16% 100%, rgba(255,216,91,.22), transparent 18rem), radial-gradient(circle at 78% 100%, rgba(248,145,169,.12), transparent 16rem), rgba(255,255,255,.72);
}

.fp-quick-grid,
.fp-categories,
.fp-card-mosaic,
.fp-profile-grid,
.fp-dashboard-grid,
.fp-two-col,
.fp-planning-layout,
.fp-messages-layout {
  display: grid;
  gap: 30px;
}

.fp-quick-grid {
  grid-template-columns: repeat(4, minmax(120px, 1fr));
  gap: 22px;
}

.fp-quick-grid a {
  min-height: 138px;
  padding: 20px 12px;
  display: grid;
  place-items: center;
  text-align: center;
  gap: 12px;
  color: #08285a;
  border-radius: 24px;
  background: rgba(255,255,255,.68);
  border: 1px solid rgba(218,226,239,.82);
  box-shadow: 0 12px 30px rgba(30,48,79,.06);
  font-weight: 950;
}

.fp-quick-grid span,
.fp-round,
.fp-side-card > span,
.fp-categories span {
  width: 64px;
  height: 64px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  font-size: 1.9rem;
  background: #efe4ff;
}

.fp-quick-grid .blue span { color: #1976e8; background: #e1f0ff; }
.fp-quick-grid .pink span { color: #f25588; background: #ffe1ec; }
.fp-quick-grid .yellow span { color: #eaa500; background: #fff1be; }
.fp-quick-grid .green span { color: #4ca447; background: #e5f8de; }
.fp-quick-grid .purple span { color: #7b43dc; background: #efe4ff; }

.fp-dashboard-grid {
  grid-template-columns: 1.35fr .95fr 1fr;
}

.fp-two-col,
.fp-planning-layout {
  grid-template-columns: minmax(0, 1fr) 360px;
}

.fp-messages-layout {
  grid-template-columns: 460px minmax(0, 1fr) 350px;
}

.fp-stack {
  display: grid;
  align-content: start;
  gap: 28px;
}

.fp-panel-head,
.fp-toolbar,
.fp-table-tools,
.fp-tabs {
  margin-bottom: 22px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
}

.fp-panel-head a,
.fp-more,
.fp-side-card a,
.fp-side-event a {
  color: #6136ca;
  font-weight: 950;
}

.fp-news > article,
.fp-thread-list > article,
.fp-recent > article {
  padding: 16px 0;
  display: grid;
  grid-template-columns: 180px 1fr auto;
  gap: 22px;
  align-items: center;
  border-bottom: 1px dashed rgba(164,176,196,.45);
}

.fp-news img,
.fp-side-event img,
.fp-event-card img,
.fp-album-grid img,
.fp-recent img {
  width: 100%;
  object-fit: cover;
}

.fp-news img {
  height: 104px;
  border-radius: 18px;
}

.fp-news h3,
.fp-thread-list h3,
.fp-recent h3,
.fp-album-grid h3 {
  margin: 0 0 8px;
  color: #08285a;
  font-weight: 950;
}

.fp-news p,
.fp-thread-list p,
.fp-side-card p,
.fp-side-event p,
.fp-doc-table small {
  color: #183761;
  line-height: 1.55;
  font-weight: 700;
}

.fp-side-card,
.fp-side-event {
  padding: 28px;
  border-radius: 30px;
}

.fp-side-card.pink { background: linear-gradient(135deg, rgba(255,229,239,.92), rgba(255,250,252,.78)); }
.fp-side-card.yellow { background: linear-gradient(135deg, rgba(255,239,190,.92), rgba(255,250,240,.78)); }
.fp-side-card.purple { background: linear-gradient(135deg, rgba(239,229,255,.92), rgba(255,250,255,.78)); }
.fp-side-card.blue { background: linear-gradient(135deg, rgba(222,240,255,.92), rgba(246,252,255,.78)); }
.fp-side-card.green { background: linear-gradient(135deg, rgba(226,248,221,.92), rgba(250,255,248,.78)); }

.fp-side-event img,
.fp-event-card img {
  height: 150px;
  margin: 18px 0;
  border-radius: 20px;
}

.fp-side-event h3,
.fp-event-card h3 {
  color: #f25588;
  font-size: 1.35rem;
}

.fp-categories {
  margin-bottom: 26px;
  grid-template-columns: repeat(5, 1fr);
  gap: 22px;
}

.fp-categories-compact {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.fp-categories article,
.fp-categories a {
  padding: 22px;
  display: flex;
  align-items: center;
  gap: 18px;
  border-radius: 20px;
  border: 1px solid rgba(211,221,235,.7);
  min-width: 0;
  color: inherit;
  text-decoration: none;
}

.fp-categories strong,
.fp-categories small {
  min-width: 0;
}

.fp-categories small {
  line-height: 1.35;
}

.fp-menu-note {
  width: fit-content;
  max-width: 720px;
  margin: 18px 0 0;
  padding: 12px 16px;
  border-radius: 14px;
  color: #51627c;
  background: rgba(255,255,255,.62);
  font-size: .92rem;
  font-weight: 750;
  line-height: 1.45;
}

.fp-categories .yellow { background: #fff3cf; color: #e39d00; }
.fp-categories .blue { background: #e8f4ff; color: #1976e8; }
.fp-categories .green { background: #e8f8e2; color: #46a444; }
.fp-categories .pink { background: #ffe6ef; color: #f25588; }
.fp-categories .purple { background: #efe6ff; color: #7548dc; }

.fp-table-tools input,
.fp-conversations input,
.fp-chat-form input,
.fp-account-form input,
.login-card input {
  width: 100%;
  min-height: 52px;
  padding: 0 20px;
  border-radius: 16px;
  border: 1px solid rgba(198,211,230,.92);
  background: rgba(255,255,255,.76);
  color: #08285a;
  font: inherit;
  font-weight: 750;
}

.fp-table-tools label {
  flex: 1;
  min-width: 260px;
}

.fp-table-tools button,
.fp-toolbar button,
.fp-toolbar a,
.fp-tabs button,
.fp-replies button,
.fp-account-form button,
.login-card button {
  min-height: 48px;
  padding: 0 22px;
  border: 0;
  border-radius: 999px;
  color: #08285a;
  background: rgba(255,255,255,.82);
  box-shadow: 0 8px 22px rgba(50,70,100,.08);
  font: inherit;
  font-weight: 950;
}

.fp-toolbar strong,
.fp-toolbar .active,
.fp-tabs .active,
.fp-account-form button,
.login-card button {
  color: #fff;
  background: linear-gradient(90deg, #6d86f4, #813bd0);
}

.fp-doc-table {
  overflow-x: auto;
}

.fp-doc-table table {
  width: 100%;
  min-width: 760px;
  border-collapse: collapse;
}

.fp-doc-table th,
.fp-doc-table td {
  padding: 18px;
  text-align: left;
  border-bottom: 1px solid rgba(204,215,231,.62);
}

.fp-doc-table td:first-child {
  display: flex;
  align-items: center;
  gap: 16px;
}

.fp-doc-table td:first-child > span {
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  border-radius: 12px;
  color: #fff;
  font-size: .78rem;
  font-weight: 950;
}

.fp-doc-table .pink { background: #ff7aa4; }
.fp-doc-table .green { background: #7ccf72; }
.fp-doc-table .purple { background: #9c70e5; }
.fp-doc-table .yellow { background: #ffc54f; }
.fp-doc-table .blue { background: #75baf0; }

.fp-doc-table td a {
  padding: 10px 18px;
  border: 1px solid rgba(126,75,220,.22);
  border-radius: 999px;
  color: #753ed7;
  font-weight: 950;
}

.fp-week-grid {
  min-height: 620px;
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  border-radius: 24px;
  overflow: hidden;
  border: 1px solid rgba(208,218,233,.72);
  background: repeating-linear-gradient(180deg, transparent 0 96px, rgba(164,176,196,.2) 97px 98px), rgba(255,255,255,.72);
}

.fp-day {
  padding: 0 14px 18px;
  border-right: 1px solid rgba(208,218,233,.6);
}

.fp-day h3 {
  min-height: 82px;
  margin: 0 -14px 18px;
  padding-top: 18px;
  text-align: center;
  background: rgba(255,255,255,.74);
}

.fp-day h3 small {
  display: block;
}

.fp-day article {
  margin: 14px 0;
  padding: 16px;
  min-height: 116px;
  display: grid;
  gap: 8px;
  border-radius: 16px;
  font-weight: 800;
}

.fp-day article.yellow { background: #fff0bf; color: #9d6500; margin-top: 34px; }
.fp-day article.purple { background: #efe5ff; color: #6f43d6; margin-top: 172px; }
.fp-day article.blue { background: #e1f0ff; color: #1266c2; margin-top: 132px; }
.fp-day article.green { background: #e7f8df; color: #3d8938; margin-top: 68px; }
.fp-day article.pink { background: #ffe0eb; color: #ef477d; margin-top: 34px; }

.fp-legend,
.fp-banner {
  margin-top: 22px;
  padding: 16px 22px;
  display: flex;
  justify-content: center;
  gap: 34px;
  flex-wrap: wrap;
  border-radius: 999px;
  background: rgba(255,255,255,.72);
  font-weight: 750;
}

.fp-menu-board {
  overflow-x: auto;
}

.fp-menu-table {
  min-width: 980px;
  display: grid;
  grid-template-columns: 120px repeat(5, 1fr);
  border: 1px solid rgba(204,215,231,.72);
  border-radius: 24px;
  overflow: hidden;
}

.fp-menu-table h3,
.fp-menu-table h4,
.fp-menu-table ul {
  margin: 0;
  padding: 22px;
  border-right: 1px solid rgba(204,215,231,.62);
  border-bottom: 1px solid rgba(204,215,231,.62);
}

.fp-menu-table h3 {
  text-align: center;
  color: #e08b00;
  background: linear-gradient(135deg, #fff0c3, #fff8e3);
}

.fp-menu-table h4 {
  display: grid;
  place-items: center;
  background: #f5efff;
}

.fp-menu-table li {
  margin: 0 0 16px;
  font-weight: 760;
}

.fp-menu-table em {
  padding: 9px 20px;
  display: inline-block;
  border-radius: 999px;
  color: #7049d7;
  background: rgba(255,240,191,.78);
  font-style: normal;
  font-weight: 950;
}

.fp-messages-layout .fp-panel {
  min-height: 760px;
}

.fp-conversations h2,
.fp-chat-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.fp-conversations label {
  margin: 24px 0;
  display: block;
}

.fp-conversations a {
  min-height: 104px;
  padding: 16px;
  display: grid;
  grid-template-columns: 54px 1fr auto;
  gap: 12px;
  color: #08285a;
  border-radius: 20px;
}

.fp-conversations a.active {
  background: linear-gradient(110deg, rgba(240,230,255,.92), rgba(255,244,250,.84));
}

.fp-chat {
  display: grid;
  grid-template-rows: auto 1fr auto;
}

.fp-chat-body {
  padding: 28px 0;
  display: grid;
  gap: 24px;
}

.fp-chat-body > small {
  text-align: center;
  font-weight: 850;
}

.fp-bubble {
  width: min(440px, 82%);
}

.fp-bubble p {
  margin: 0;
  padding: 22px;
  border-radius: 22px;
  line-height: 1.65;
  font-weight: 760;
}

.fp-bubble.in p { background: linear-gradient(135deg, #f0e7ff, #fff3fb); }
.fp-bubble.out { justify-self: end; }
.fp-bubble.out p { background: #dff0ff; }

.fp-chat-form {
  padding-top: 18px;
  display: grid;
  grid-template-columns: 52px 1fr 52px;
  gap: 12px;
}

.fp-chat-form button {
  border: 0;
  border-radius: 50%;
  color: #fff;
  background: linear-gradient(135deg, #6b84f4, #803dcd);
}

.fp-album-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
}

.fp-album-grid article {
  position: relative;
  overflow: hidden;
  border-radius: 20px;
  background: rgba(255,255,255,.74);
  border: 1px solid rgba(211,221,235,.72);
}

.fp-album-grid img {
  height: 185px;
}

.fp-album-grid h3,
.fp-album-grid p {
  margin-inline: 18px;
}

.fp-album-grid em {
  position: absolute;
  top: 14px;
  right: 14px;
  padding: 8px 12px;
  border-radius: 999px;
  background: #fff;
  font-style: normal;
  font-weight: 950;
}

.fp-card-mosaic {
  grid-template-columns: repeat(3, 1fr);
}

.fp-info {
  min-height: 220px;
}

.fp-info.yellow { background: linear-gradient(135deg, rgba(255,239,190,.78), rgba(255,255,255,.72)); }
.fp-info.pink { background: linear-gradient(135deg, rgba(255,230,238,.78), rgba(255,255,255,.72)); }
.fp-info.green { background: linear-gradient(135deg, rgba(229,248,222,.78), rgba(255,255,255,.72)); }
.fp-info.blue { background: linear-gradient(135deg, rgba(225,240,255,.78), rgba(255,255,255,.72)); }
.fp-info.teal { background: linear-gradient(135deg, rgba(224,250,248,.78), rgba(255,255,255,.72)); }

.fp-info li {
  margin: 13px 0;
  line-height: 1.55;
  font-weight: 760;
}

.fp-health-hero {
  margin: -12px 0 28px;
  display: grid;
  justify-content: end;
}

.fp-child-card,
.fp-profile-main,
.fp-child-mini {
  display: flex;
  align-items: center;
  gap: 22px;
}

.fp-child-card {
  min-width: 520px;
  padding: 22px 34px;
  border-radius: 30px;
  background: linear-gradient(110deg, rgba(244,232,255,.86), rgba(255,255,255,.8));
}

.fp-child-card img,
.fp-profile-main img,
.fp-child-mini img {
  width: 112px;
  height: 112px;
  border-radius: 50%;
  object-fit: cover;
}

.fp-profile-grid {
  grid-template-columns: repeat(3, 1fr);
}

.fp-profile-main {
  grid-column: span 2;
  gap: 46px;
  background: linear-gradient(135deg, rgba(243,234,255,.84), rgba(255,255,255,.76));
}

.fp-profile-main img {
  width: 180px;
  height: 180px;
}

.fp-authorized {
  background: linear-gradient(135deg, rgba(255,239,190,.84), rgba(255,255,255,.76));
}

.fp-authorized article {
  padding: 16px 0;
  display: flex;
  justify-content: space-between;
  border-bottom: 1px solid rgba(202,173,113,.3);
}

.fp-health-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
}

.fp-span-3 {
  grid-column: 1 / -1;
}

.fp-banner {
  border-radius: 28px;
  background: linear-gradient(90deg, rgba(225,240,255,.84), rgba(249,232,255,.74));
}

.login-family .fp-topbar {
  grid-template-columns: auto 1fr auto;
}

.login-page {
  width: min(1460px, calc(100% - 48px));
  margin: 70px auto;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(420px, 660px);
  gap: 92px;
  align-items: center;
}

.login-copy h1,
.login-card h1 {
  margin: 0;
  font-size: clamp(2.5rem, 4vw, 4.7rem);
  line-height: 1.1;
  font-weight: 950;
}

.login-copy p,
.login-card p {
  margin: 24px 0;
  max-width: 540px;
  font-size: 1.22rem;
  line-height: 1.75;
  font-weight: 720;
}

.login-benefits {
  margin: 56px 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 22px;
}

.login-benefits span {
  display: grid;
  gap: 12px;
  justify-items: center;
  text-align: center;
  font-size: .9rem;
  font-weight: 850;
}

.login-benefits b {
  width: 62px;
  height: 62px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #ffe6ee;
  font-size: 1.5rem;
}

.login-photo {
  width: min(620px, 100%);
  aspect-ratio: 1.18;
  border-radius: 45% 55% 42% 58% / 58% 45% 55% 42%;
  background: url("/assets/children-activity.jpg") center/cover;
  box-shadow: 0 26px 70px rgba(22,42,74,.16);
}

.login-card {
  padding: 64px 54px;
  border-radius: 34px;
  background: rgba(255,255,255,.78);
  border: 1px solid rgba(205,217,232,.7);
  box-shadow: 0 30px 80px rgba(40,64,95,.13);
}

.login-card h1 {
  font-size: clamp(2.1rem, 3vw, 3.2rem);
}

.login-card form,
.fp-account-form {
  display: grid;
  gap: 20px;
}

.login-card label,
.fp-account-form label {
  display: grid;
  gap: 10px;
  font-weight: 950;
}

.login-card input {
  min-height: 64px;
}

.login-card select,
.ap-modal-card select {
  min-height: 52px;
  border: 1px solid rgba(139,155,180,.35);
  border-radius: 14px;
  padding: 0 14px;
  background: rgba(255,255,255,.9);
  color: #09224a;
  font: inherit;
}

.login-row {
  display: flex;
  justify-content: space-between;
  gap: 18px;
}

.remember-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}

.remember-check {
  width: auto;
  display: inline-flex !important;
  align-items: center;
  gap: 10px !important;
  cursor: pointer;
  font-weight: 850 !important;
}

.remember-check input {
  width: 16px !important;
  height: 16px !important;
  min-height: 16px !important;
  flex: 0 0 16px;
  accent-color: #7545d8;
}

.admin-photo {
  background-image: url("/assets/family-portal.jpg"), url("/assets/children-activity.jpg");
}

.login-card button {
  min-height: 62px;
  font-size: 1.08rem;
}

.login-card .login-secondary {
  border: 1px solid rgba(45, 125, 224, .22);
  color: #2d4f7d;
  background: #eef6ff;
  box-shadow: none;
}

.login-create {
  min-height: 62px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(124,67,220,.48);
  border-radius: 999px;
  color: #08285a;
  background: #fff;
  font-weight: 950;
}

.login-secure {
  margin-top: 34px;
  padding: 22px;
  display: flex;
  gap: 18px;
  border-radius: 18px;
  background: linear-gradient(90deg, #f3edff, #f8fbff);
}

@media (max-width: 1280px) {
  .fp-shell { grid-template-columns: 250px minmax(0,1fr); gap: 22px; }
  .fp-messages-layout,
  .fp-dashboard-grid,
  .fp-two-col,
  .fp-planning-layout { grid-template-columns: 1fr; }
  .fp-stack { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 920px) {
  .fp-topbar { grid-template-columns: 1fr auto; }
  .fp-mainnav { grid-column: 1 / -1; justify-content: flex-start; overflow-x: auto; }
  .fp-account span:not(.fp-avatar), .fp-bell { display: none; }
  .fp-shell { display: block; }
  .fp-sidebar { position: relative; top: auto; height: auto; margin: 14px 0; padding: 14px; border-radius: 24px; }
  .fp-sidebar nav { display: flex; overflow-x: auto; }
  .fp-sidebar p, .fp-help { display: none; }
  .fp-sidebar a { flex: 0 0 auto; }
  .fp-content { padding-top: 24px; }
  .fp-page-head, .login-page { grid-template-columns: 1fr; }
  .fp-quick-grid, .fp-categories, .fp-card-mosaic, .fp-profile-grid, .fp-health-row, .fp-album-grid, .fp-stack, .login-benefits { grid-template-columns: 1fr 1fr; }
  .fp-week-grid { overflow-x: auto; grid-template-columns: repeat(7, minmax(160px, 1fr)); }
}

@media (max-width: 620px) {
  .fp-topbar, .fp-shell, .login-page { width: calc(100% - 20px); }
  .fp-topbar, .fp-panel, .fp-side-card, .login-card { padding: 22px; border-radius: 24px; }
  .fp-brand { font-size: 1.15rem; }
  .fp-logo { width: 42px; height: 42px; }
  .fp-page-head h1 { font-size: 2.25rem; }
  .fp-quick-grid, .fp-categories, .fp-card-mosaic, .fp-profile-grid, .fp-health-row, .fp-album-grid, .fp-stack, .login-benefits { grid-template-columns: 1fr; }
  .fp-news > article, .fp-thread-list > article { grid-template-columns: 1fr; }
  .fp-news img { height: 180px; }
  .fp-profile-main, .fp-child-card { flex-direction: column; align-items: flex-start; min-width: 0; }
}

/* Administration app routes */
.admin-app {
  min-height: 100vh;
  display: grid;
  grid-template-columns: 306px minmax(0, 1fr);
  color: #081f50;
  background:
    radial-gradient(circle at 0 100%, rgba(255, 205, 87, .22), transparent 250px),
    radial-gradient(circle at 100% 12%, rgba(132, 204, 245, .3), transparent 310px),
    linear-gradient(135deg, #fffaf1, #fff 42%, #f7fbff);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.admin-login-app {
  min-height: 100vh;
  color: #081f50;
  background:
    radial-gradient(circle at 0 20%, rgba(255, 211, 224, .32), transparent 240px),
    radial-gradient(circle at 100% 0, rgba(234, 219, 255, .42), transparent 260px),
    linear-gradient(135deg, #fffaf6, #fff 48%, #f6fbff);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.ap-sidebar {
  position: sticky;
  top: 0;
  height: 100vh;
  padding: 30px 18px;
  background: rgba(255, 255, 255, .72);
  border-right: 1px solid rgba(208, 218, 233, .76);
  box-shadow: 20px 0 50px rgba(40, 60, 90, .05);
}

.ap-brand,
.ap-sidebar a,
.ap-primary,
.ap-soft-link,
.ap-user,
.ap-bell {
  text-decoration: none;
}

.ap-logout {
  min-height: 42px;
  padding: 0 18px;
  border: 0;
  border-radius: 999px;
  color: #fff;
  background: linear-gradient(90deg, #7f52e7, #6b35cd);
  font-weight: 950;
  cursor: pointer;
}

.ap-brand {
  margin: 0 8px 32px;
  display: grid;
  grid-template-columns: 58px 1fr;
  column-gap: 14px;
  align-items: center;
  color: #081f50;
}

.ap-logo {
  grid-row: span 2;
  width: 58px;
  height: 58px;
  border-radius: 18px 18px 28px 18px;
  background: radial-gradient(circle at 63% 32%, #fff 0 8%, transparent 9%), conic-gradient(from 210deg, #7c48d8, #2c82dd, #ff5f8f, #ffc734, #7c48d8);
}

.ap-brand strong {
  font-size: 1.42rem;
  font-weight: 950;
}

.ap-brand small {
  color: #6f37d3;
  font-size: 1.05rem;
  font-weight: 850;
}

.ap-sidebar nav {
  display: grid;
  gap: 8px;
}

.ap-sidebar nav a {
  min-height: 52px;
  padding: 0 16px;
  display: flex;
  align-items: center;
  gap: 16px;
  color: #081f50;
  border-radius: 14px;
  font-weight: 900;
}

.ap-sidebar nav a:nth-child(5n + 1) { color: #7b43dc; }
.ap-sidebar nav a:nth-child(5n + 2) { color: #4ca447; }
.ap-sidebar nav a:nth-child(5n + 3) { color: #1976e8; }
.ap-sidebar nav a:nth-child(5n + 4) { color: #f25588; }
.ap-sidebar nav a:nth-child(5n + 5) { color: #e29a00; }

.ap-sidebar nav a span {
  width: 26px;
  font-size: 1.25rem;
}

.ap-sidebar nav a.active {
  color: #7439d4;
  background: linear-gradient(100deg, rgba(243, 232, 255, .96), rgba(250, 238, 255, .74));
}

.ap-nav-group {
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid rgba(208, 218, 233, .76);
}

.ap-nav-group p {
  margin: 0 12px 10px;
  color: #61708d;
  font-size: .78rem;
  font-weight: 950;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.ap-nav-group nav a {
  min-height: 46px;
  font-size: .92rem;
}

.ap-help {
  margin-top: 36px;
  min-height: 260px;
  padding: 24px;
  overflow: hidden;
  border-radius: 20px;
  background: linear-gradient(145deg, rgba(244, 231, 255, .92), rgba(255, 245, 217, .82));
}

.ap-help strong {
  color: #7439d4;
  font-size: 1.15rem;
}

.ap-help p {
  line-height: 1.55;
  font-weight: 700;
}

.ap-help a,
.ap-primary {
  min-height: 44px;
  padding: 0 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  color: #fff;
  background: linear-gradient(90deg, #7f52e7, #6b35cd);
  font-weight: 950;
}

.ap-help i {
  display: block;
  margin-top: 16px;
  font-size: 4.8rem;
  font-style: normal;
}

.ap-main {
  padding: 32px 30px 60px;
}

.ap-top {
  min-height: 60px;
  margin-bottom: 20px;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 22px;
}

.ap-top label {
  position: relative;
  width: min(360px, 100%);
}

.ap-top input,
.ap-form input,
.ap-filters button {
  width: 100%;
  min-height: 52px;
  padding: 0 20px;
  border-radius: 15px;
  border: 1px solid rgba(190, 205, 229, .92);
  background: rgba(255,255,255,.82);
  color: #081f50;
  font: inherit;
  font-weight: 760;
}

.ap-bell {
  position: relative;
  color: #081f50;
  font-size: 1.5rem;
}

.ap-bell em {
  position: absolute;
  top: -10px;
  right: -11px;
  min-width: 22px;
  height: 22px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  color: #fff;
  background: #f8467b;
  font-size: .75rem;
  font-style: normal;
}

.ap-user {
  display: grid;
  grid-template-columns: 46px auto auto;
  column-gap: 12px;
  align-items: center;
  color: #081f50;
}

.ap-avatar,
.ap-photo {
  width: 46px;
  height: 46px;
  border-radius: 50%;
  object-fit: cover;
  background: url("/assets/smiling-student.jpg") center/cover;
}

.ap-user strong,
.ap-user small {
  display: block;
}

.ap-user strong {
  align-self: center;
}

.ap-user b {
  grid-row: span 2;
}

.ap-head {
  margin-bottom: 28px;
  display: flex;
  justify-content: space-between;
  gap: 24px;
  align-items: flex-start;
}

.ap-head h1 {
  margin: 0;
  color: #081f50;
  font-size: clamp(2.1rem, 3vw, 3.75rem);
  line-height: 1.05;
  font-weight: 950;
}

.ap-head h1 span {
  margin-left: 14px;
  color: #f45d8e;
}

.ap-head h1::after,
.ap-card h2::after {
  content: "";
  display: block;
  width: 58px;
  height: 7px;
  margin-top: 8px;
  border-radius: 999px;
  background: repeating-linear-gradient(90deg, #f4b91f 0 13px, transparent 13px 20px);
}

.ap-head p {
  margin: 14px 0 0;
  font-size: 1.05rem;
  font-weight: 750;
}

.ap-card,
.ap-stat,
.ap-tip,
.ap-filters button {
  border: 1px solid rgba(205, 216, 232, .82);
  background: rgba(255,255,255,.78);
  box-shadow: 0 16px 42px rgba(42, 61, 93, .08);
  backdrop-filter: blur(18px);
}

.ap-card,
.ap-tip {
  padding: 28px;
  border-radius: 24px;
}

.ap-stats {
  margin-bottom: 28px;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 20px;
}

.ap-stat {
  min-height: 128px;
  padding: 22px;
  display: flex;
  align-items: center;
  gap: 18px;
  border-radius: 20px;
}

.ap-stat > span {
  width: 58px;
  height: 58px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  font-size: 1.7rem;
}

.ap-stat.purple > span { color: #753ed7; background: #f0e6ff; }
.ap-stat.green > span { color: #38a04a; background: #e6f8e2; }
.ap-stat.pink > span { color: #f04c82; background: #ffe4ee; }
.ap-stat.yellow > span { color: #dd9200; background: #fff0c9; }
.ap-stat.blue > span { color: #1976e8; background: #e3f1ff; }

.ap-stat strong,
.ap-stat b,
.ap-stat small {
  display: block;
}

.ap-stat b {
  margin: 8px 0;
  font-size: 2rem;
  font-weight: 950;
}

.ap-stat small {
  color: #0f8d31;
  font-weight: 820;
}

.ap-dashboard-grid {
  display: grid;
  grid-template-columns: 1.1fr 1.1fr 1.45fr;
  gap: 24px;
}

.ap-card h2 {
  margin: 0 0 22px;
  color: #081f50;
  font-size: 1.45rem;
  font-weight: 950;
}

.ap-list article,
.ap-alerts article,
.ap-birthdays article {
  padding: 16px 0;
  display: grid;
  grid-template-columns: 72px 56px 1fr;
  align-items: center;
  gap: 16px;
  border-bottom: 1px solid rgba(206, 216, 232, .58);
}

.ap-list time {
  font-weight: 900;
}

.ap-list span,
.ap-alerts span {
  width: 50px;
  height: 50px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #f0e6ff;
}

.ap-list strong,
.ap-list small,
.ap-birthdays strong,
.ap-birthdays small {
  display: block;
}

.ap-alerts article {
  grid-template-columns: 50px 1fr;
}

.ap-soft-link {
  margin-top: 18px;
  min-height: 42px;
  display: grid;
  place-items: center;
  border-radius: 12px;
  color: #703ed1;
  background: #f3e9ff;
  font-weight: 950;
}

.ap-soft-link.danger {
  color: #f04c74;
  background: #ffe4eb;
}

.ap-ring {
  width: 210px;
  height: 210px;
  margin: 8px auto 24px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: conic-gradient(#7e48dc 0 25%, #69bdf3 25% 50%, #79cf82 50% 74%, #ffc13d 74%);
}

.ap-ring span {
  width: 118px;
  height: 118px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #fff;
  font-size: 2rem;
  font-weight: 950;
}

.ap-ring small {
  display: block;
  font-size: .85rem;
}

.ap-donut p,
.ap-side p,
.ap-bars p,
.ap-preferences p {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  font-weight: 820;
}

.ap-donut i {
  width: 12px;
  height: 12px;
  border-radius: 50%;
}

.ap-donut i.purple { background: #7e48dc; }
.ap-donut i.blue { background: #69bdf3; }
.ap-donut i.green { background: #79cf82; }
.ap-donut i.yellow { background: #ffc13d; }

.ap-actions {
  grid-column: span 2;
}

.ap-actions div {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 18px;
}

.ap-actions a {
  min-height: 132px;
  display: grid;
  place-items: center;
  gap: 12px;
  text-align: center;
  color: #081f50;
  border-radius: 20px;
  background: rgba(255,255,255,.7);
  border: 1px solid rgba(210, 221, 236, .8);
  font-weight: 900;
  text-decoration: none;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.ap-inline-search {
  margin: -8px 0 24px;
}

.ap-inline-search label {
  display: block;
  width: min(460px, 100%);
}

.ap-inline-search input {
  width: 100%;
  min-height: 52px;
  padding: 0 20px;
  border-radius: 15px;
  border: 1px solid rgba(190, 205, 229, .92);
  background: rgba(255,255,255,.86);
  color: #081f50;
  font: inherit;
  font-weight: 760;
}

.ap-settings-actions {
  margin-top: 28px;
}

[data-class-cards] {
  display: grid;
  gap: 10px;
}

[data-class-cards] article {
  padding: 12px 14px;
  border: 1px solid rgba(190, 205, 229, .72);
  border-radius: 12px;
  background: #fff;
}

.ap-actions a:hover,
.ap-actions a:focus-visible {
  transform: translateY(-2px);
  border-color: rgba(116, 57, 212, .28);
  box-shadow: 0 18px 38px rgba(42, 61, 93, .14);
}

.ap-actions span {
  width: 58px;
  height: 58px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #efe5ff;
  font-size: 1.6rem;
}

.ap-actions a:nth-child(2) span { color: #f04c82; background: #ffe4ee; }
.ap-actions a:nth-child(3) span { color: #1976e8; background: #e3f1ff; }
.ap-actions a:nth-child(4) span { color: #dd9200; background: #fff0c9; }
.ap-actions a:nth-child(5) span { color: #38a04a; background: #e6f8e2; }
.ap-actions a:nth-child(6) span { color: #7439d4; background: #f0e6ff; }

.ap-tip {
  margin-top: 28px;
  display: flex;
  align-items: center;
  gap: 18px;
  background: linear-gradient(90deg, #fff1bf, rgba(255,255,255,.82));
}

.ap-tip span {
  font-weight: 950;
}

.ap-filters,
.ap-tabs {
  margin-bottom: 24px;
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
}

.ap-filters button,
.ap-tabs a {
  width: auto;
  padding: 0 22px;
  min-height: 48px;
  border-radius: 14px;
  color: #081f50;
  font-weight: 900;
}

.ap-tabs a {
  display: inline-flex;
  align-items: center;
  border-bottom: 3px solid transparent;
}

.ap-tabs a.active {
  color: #7439d4;
  border-color: #7439d4;
}

.ap-two,
.ap-calendar-layout,
.ap-analytics {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 310px;
  gap: 28px;
}

.ap-stack {
  display: grid;
  align-content: start;
  gap: 20px;
}

.ap-table {
  overflow-x: auto;
}

.ap-table table,
.ap-team-table table,
.ap-menu-table table {
  width: 100%;
  min-width: 900px;
  border-collapse: collapse;
}

.ap-table th,
.ap-table td,
.ap-team-table th,
.ap-team-table td,
.ap-menu-table th,
.ap-menu-table td {
  padding: 18px;
  text-align: left;
  border-bottom: 1px solid rgba(205, 216, 232, .76);
}

.ap-table th,
.ap-team-table th,
.ap-menu-table th {
  color: #081f50;
  background: rgba(249, 251, 255, .9);
  font-weight: 950;
}

.ap-table small,
.ap-table strong {
  display: block;
}

.ap-table em,
.ap-table mark,
.ap-team-table em {
  padding: 8px 16px;
  border-radius: 999px;
  background: #ffe4ee;
  color: #e82366;
  font-style: normal;
  font-weight: 900;
}

.ap-table mark {
  color: #16852b;
  background: #e0f7df;
}

.ap-table td a {
  margin-right: 8px;
  color: #081f50;
}

.ap-table footer {
  padding-top: 18px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.ap-table footer nav {
  display: flex;
  gap: 18px;
}

.ap-table footer a.active {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: #7439d4;
}

.ap-calendar-layout {
  grid-template-columns: 250px minmax(0, 1fr) 300px;
}

.ap-mini-cal div {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 8px;
}

.ap-mini-cal span {
  min-height: 28px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  font-weight: 800;
}

.ap-mini-cal .active {
  color: #fff;
  background: #7439d4;
}

.ap-check {
  display: block;
  margin: 14px 0;
  font-weight: 850;
}

.ap-cal-grid {
  min-width: 920px;
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  border: 1px solid rgba(205, 216, 232, .76);
  border-radius: 20px;
  overflow: hidden;
}

.ap-cal-grid h3,
.ap-cal-grid > div {
  margin: 0;
  min-height: 74px;
  padding: 16px;
  border-right: 1px solid rgba(205, 216, 232, .76);
  border-bottom: 1px solid rgba(205, 216, 232, .76);
}

.ap-cal-grid article {
  margin: 12px 0;
  padding: 14px;
  min-height: 86px;
  border-radius: 10px;
  font-weight: 850;
}

.ap-cal-grid .purple { background: #efe5ff; }
.ap-cal-grid .pink { background: #ffe4ee; }
.ap-cal-grid .yellow { background: #fff0c6; }
.ap-cal-grid .blue { background: #e4f2ff; }
.ap-cal-grid .green { background: #e5f8df; }

.ap-side p {
  padding: 12px 0;
  border-bottom: 1px solid rgba(205, 216, 232, .62);
}

.ap-child-hero {
  margin-bottom: 24px;
  display: grid;
  grid-template-columns: 220px 1fr minmax(320px, .75fr);
  gap: 38px;
  align-items: center;
}

.ap-child-hero img {
  width: 210px;
  height: 210px;
  border-radius: 20px;
  object-fit: cover;
}

.ap-child-hero h2 {
  margin: 0;
  color: #7439d4;
  font-size: 2.2rem;
}

.ap-mini-grid {
  margin-top: 28px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border: 1px solid rgba(205, 216, 232, .76);
  border-radius: 18px;
}

.ap-mini-grid article {
  padding: 18px;
  border-right: 1px solid rgba(205, 216, 232, .76);
}

.ap-card-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
}

.ap-info p {
  display: flex;
  justify-content: space-between;
  gap: 20px;
}

.ap-info span {
  color: #53678a;
}

.ap-photo-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 16px;
}

.ap-empty,
.fp-empty {
  display: grid;
  place-items: center;
  gap: 8px;
  min-height: 150px;
  padding: 28px;
  text-align: center;
  color: #50627f;
  border: 1px dashed rgba(124, 72, 220, 0.22);
  border-radius: 24px;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.72), rgba(246, 239, 255, 0.34));
}

.ap-empty strong,
.fp-empty strong {
  color: #071f43;
  font-size: 1.05rem;
}

.ap-empty p,
.fp-empty p {
  margin: 0;
  line-height: 1.55;
}

.ap-planning-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 22px;
}

.ap-planning-toolbar button,
.ap-planning-toolbar a {
  min-height: 46px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 999px;
  padding: 0 18px;
  color: #fff;
  background: linear-gradient(90deg, #236dd8, #70329a);
  box-shadow: 0 14px 28px rgba(58, 62, 161, .18);
  font-weight: 950;
  text-decoration: none;
  cursor: pointer;
}

.ap-planning-toolbar a {
  color: #062347;
  background: #ffd96a;
}

.fp-record-list {
  display: grid;
  gap: 12px;
}

.fp-record-item,
.fp-record-detail {
  display: grid;
  gap: 7px;
  padding: 16px;
  border: 1px solid rgba(205, 217, 232, .68);
  border-radius: 18px;
  background: rgba(255, 255, 255, .74);
}

.fp-record-item strong,
.fp-record-detail strong {
  color: #071f43;
  font-weight: 950;
}

.fp-record-item small,
.fp-record-detail small {
  color: #6f4bd2;
  font-weight: 850;
}

.fp-record-item p,
.fp-record-detail p {
  margin: 0;
  color: #183761;
  line-height: 1.5;
  font-weight: 700;
}

.fp-record-item a {
  width: fit-content;
  min-height: 36px;
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 0 14px;
  color: #fff;
  background: linear-gradient(90deg, #6b84f4, #803dcd);
  font-size: .88rem;
  font-weight: 950;
  text-decoration: none;
}

.ap-week {
  display: grid;
  grid-template-columns: repeat(7, minmax(110px, 1fr));
  gap: 1px;
  overflow: hidden;
  border: 1px solid rgba(206, 216, 232, 0.72);
  border-radius: 24px;
  background: rgba(206, 216, 232, 0.72);
}

.ap-week section {
  min-height: 360px;
  padding: 18px;
  background: rgba(255, 255, 255, 0.82);
}

.ap-week h3 {
  margin: 0 0 18px;
  color: #071f43;
}

.ap-empty-slot {
  display: grid;
  place-items: center;
  min-height: 84px;
  padding: 12px;
  border-radius: 18px;
  color: #667693;
  background: rgba(238, 244, 252, 0.72);
}

.ap-classes {
  margin-top: 24px;
}

.ap-classes > div {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.ap-classes article {
  padding: 18px;
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(255, 245, 209, .78), rgba(235, 248, 255, .7));
}

.ap-classes strong,
.ap-classes b {
  display: block;
  color: #071f43;
}

.ap-classes b {
  margin-top: 8px;
  font-size: 2rem;
}

.ap-modal {
  position: fixed;
  inset: 0;
  z-index: 40;
  display: grid;
  place-items: center;
  padding: 22px;
  background: rgba(8, 31, 80, .34);
  backdrop-filter: blur(8px);
}

.ap-modal-card {
  position: relative;
  width: min(560px, 100%);
  padding: 30px;
  display: grid;
  gap: 16px;
  border-radius: 28px;
  background: rgba(255, 255, 255, .96);
  box-shadow: 0 24px 80px rgba(40, 60, 90, .22);
}

.ap-modal-card h2 {
  margin: 0;
  color: #071f43;
}

.ap-modal-card label {
  display: grid;
  gap: 8px;
  color: #081f50;
  font-weight: 900;
}

.ap-modal-card input,
.ap-modal-card select,
.ap-modal-card textarea {
  min-height: 48px;
  padding: 0 14px;
  border: 1px solid rgba(190, 205, 229, .92);
  border-radius: 12px;
  background: #fff;
}

.ap-modal-card textarea {
  min-height: 96px;
  padding: 12px 14px;
  resize: vertical;
}

.ap-modal-card select[multiple] {
  min-height: 128px;
  padding: 10px 14px;
}

.ap-modal-card input[readonly] {
  color: #51627c;
  background: #f5f8fc;
}

.ap-conversion-summary {
  display: grid;
  gap: 4px;
  padding: 14px 16px;
  border: 1px solid rgba(45, 125, 224, .16);
  border-radius: 14px;
  background: #f5fbff;
  color: #071f43;
}

.ap-conversion-summary span,
.ap-conversion-summary small {
  color: #51627c;
}

.ap-modal-card button[type="submit"] {
  min-height: 50px;
  border: 0;
  border-radius: 14px;
  color: #fff;
  background: linear-gradient(90deg, #2d7de0, #7439d4);
  font-weight: 950;
}

.ap-modal-close {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 34px;
  height: 34px;
  border: 0;
  border-radius: 50%;
  background: #f2edff;
  color: #7439d4;
  font-weight: 950;
}

.faq-list {
  display: grid;
  gap: 16px;
  margin-top: 28px;
}

.faq-list details {
  padding: 20px 22px;
  border-radius: 18px;
  background: rgba(255,255,255,.82);
  box-shadow: 0 14px 38px rgba(30,48,79,.08);
}

.faq-list summary {
  cursor: pointer;
  color: #071f43;
  font-weight: 950;
}

.fp-health-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
}

.fp-profile-hero {
  min-height: 260px;
}

.fp-week-summary {
  margin: -4px 0 18px;
  color: #6136ca;
  font-weight: 950;
}

.fp-empty-slot {
  display: grid;
  min-height: 84px;
  place-items: center;
  border-radius: 16px;
  color: #667693;
  background: rgba(238, 244, 252, .72);
  font-weight: 800;
  text-align: center;
}

.fp-health-forms {
  align-items: start;
}

.fp-health-form {
  display: grid;
  gap: 14px;
}

.fp-health-form label,
.fp-account-form label {
  display: grid;
  gap: 8px;
  color: #081f50;
  font-weight: 900;
}

.fp-health-form input,
.fp-health-form textarea {
  width: 100%;
  min-height: 48px;
  padding: 12px 14px;
  border: 1px solid rgba(190, 205, 229, .92);
  border-radius: 12px;
  color: #08285a;
  background: rgba(255, 255, 255, .88);
  font: inherit;
}

.fp-health-form textarea {
  min-height: 96px;
  resize: vertical;
}

.fp-health-form button,
.fp-password-request button {
  min-height: 48px;
  border: 0;
  border-radius: 999px;
  color: #fff;
  background: linear-gradient(90deg, #6d86f4, #813bd0);
  font-weight: 950;
  cursor: pointer;
}

.fp-profile-list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.fp-child-profile-card {
  display: grid;
  gap: 16px;
}

.fp-child-profile-card dl {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin: 0;
}

.fp-child-profile-card > dl > div {
  padding: 14px;
  border-radius: 14px;
  background: rgba(245, 248, 252, .82);
}

.fp-child-profile-card dt {
  color: #6f4bd2;
  font-size: .82rem;
  font-weight: 950;
}

.fp-child-profile-card dd {
  margin: 4px 0 0;
  color: #183761;
  font-weight: 800;
}

.fp-password-request {
  align-content: start;
  gap: 18px;
}

.ap-photo-grid figure {
  position: relative;
  margin: 0;
  overflow: hidden;
  border-radius: 14px;
}

.ap-photo-grid img {
  width: 100%;
  aspect-ratio: 1.2;
  object-fit: cover;
}

.ap-photo-grid figcaption,
.ap-photo-grid button {
  position: absolute;
  border: 0;
  border-radius: 999px;
  background: #fff;
}

.ap-photo-grid figcaption {
  left: 8px;
  bottom: 8px;
  padding: 5px 8px;
  font-size: .8rem;
  font-weight: 850;
}

.ap-photo-grid button {
  top: 8px;
  right: 8px;
}

.ap-menu-table {
  overflow-x: auto;
}

.ap-menu-table th:first-child {
  width: 150px;
}

.ap-menu-table td {
  min-width: 160px;
  line-height: 1.55;
}

.ap-chart svg {
  width: 100%;
  height: 190px;
  border-radius: 18px;
  background: repeating-linear-gradient(0deg, transparent 0 38px, rgba(205, 216, 232, .52) 39px 40px);
}

.ap-analytics {
  grid-template-columns: 1fr 1fr 320px;
}

.ap-bars b {
  height: 12px;
  display: inline-block;
  border-radius: 999px;
  background: linear-gradient(90deg, #7439d4, #9d6bf0);
}

.ap-form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 22px;
}

.ap-form h2,
.ap-form button {
  grid-column: 1 / -1;
}

.ap-form label {
  display: grid;
  gap: 8px;
  font-weight: 900;
}

.ap-form button {
  justify-self: end;
  min-height: 48px;
  padding: 0 26px;
  border: 0;
  border-radius: 10px;
  color: #fff;
  background: #7439d4;
  font-weight: 950;
}

.ap-preferences {
  margin-top: 24px;
}

.ap-preferences button {
  min-width: 190px;
  min-height: 44px;
  border: 1px solid rgba(190, 205, 229, .92);
  border-radius: 12px;
  background: #fff;
}

.admin-login {
  width: min(1680px, calc(100% - 72px));
  min-height: calc(100vh - 72px);
  margin: 36px auto;
  padding: 72px;
  display: grid;
  grid-template-columns: 1fr minmax(420px, 720px);
  align-items: center;
  gap: 72px;
  border-radius: 34px;
  background: rgba(255,255,255,.74);
  box-shadow: 0 24px 90px rgba(40, 60, 90, .1);
}

.admin-login h1 {
  margin: 0;
  font-size: clamp(2.4rem, 4vw, 4.3rem);
  line-height: 1.12;
}

.admin-login p {
  max-width: 580px;
  font-size: 1.25rem;
  line-height: 1.7;
  font-weight: 720;
}

.admin-login-illustration {
  margin-top: 60px;
  min-height: 360px;
  display: grid;
  place-items: center;
  border-radius: 42% 58% 48% 52% / 54% 44% 56% 46%;
  background: linear-gradient(135deg, #f4e9ff, #fff3d8);
  font-size: 11rem;
}

.admin-login-card {
  padding: 60px;
  border-radius: 30px;
  background: rgba(255,255,255,.86);
  box-shadow: 0 24px 70px rgba(40, 60, 90, .13);
}

.admin-login-card form {
  display: grid;
  gap: 20px;
}

.admin-login-card input {
  min-height: 60px;
  padding: 0 20px;
  border-radius: 14px;
  border: 1px solid rgba(190, 205, 229, .92);
}

.admin-login-card button {
  min-height: 62px;
  border: 0;
  border-radius: 14px;
  color: #fff;
  background: linear-gradient(90deg, #7f52e7, #6b35cd);
  font-size: 1.08rem;
  font-weight: 950;
}

@media (max-width: 1200px) {
  .admin-app { grid-template-columns: 220px minmax(0, 1fr); }
  .ap-brand { grid-template-columns: 42px 1fr; }
  .ap-logo { width: 42px; height: 42px; }
  .ap-brand strong { font-size: 1rem; }
  .ap-brand small { font-size: .82rem; }
  .ap-sidebar nav a { padding: 0 12px; gap: 10px; font-size: .88rem; }
  .ap-nav-group nav a { font-size: .82rem; }
  .ap-help { display: none; }
  .ap-stats, .ap-dashboard-grid, .ap-card-grid, .ap-analytics { grid-template-columns: 1fr 1fr; }
  .ap-two, .ap-calendar-layout { grid-template-columns: 1fr; }
  .ap-photo-grid { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 760px) {
  .admin-app { display: block; }
  .ap-sidebar { position: relative; height: auto; padding: 16px; }
  .ap-sidebar nav { display: flex; overflow-x: auto; }
  .ap-nav-group { margin-top: 12px; padding-top: 12px; }
  .ap-nav-group p { margin-left: 4px; }
  .ap-sidebar nav a { flex: 0 0 auto; min-width: 64px; }
  .ap-main { padding: 18px; }
  .ap-top { justify-content: flex-start; flex-wrap: wrap; }
  .ap-head { flex-direction: column; }
  .ap-stats, .ap-dashboard-grid, .ap-card-grid, .ap-analytics, .ap-actions div, .ap-photo-grid, .ap-form, .ap-classes > div { grid-template-columns: 1fr; }
  .ap-child-hero { grid-template-columns: 1fr; }
  .ap-mini-grid { grid-template-columns: 1fr; }
  .admin-login { width: calc(100% - 24px); padding: 28px; grid-template-columns: 1fr; }
}

/* Home v2 rebuilt from scratch */
body.home-v2 {
  min-height: 100vh;
  overflow-x: hidden;
  color: #071f3d;
  background:
    radial-gradient(circle at 6% 8%, rgba(255, 215, 87, 0.82), transparent 24rem),
    radial-gradient(circle at 92% 8%, rgba(112, 190, 239, 0.72), transparent 24rem),
    radial-gradient(circle at 0% 88%, rgba(138, 190, 111, 0.5), transparent 16rem),
    radial-gradient(circle at 96% 70%, rgba(255, 127, 153, 0.42), transparent 22rem),
    linear-gradient(135deg, #fff6dc 0%, #fffdf3 42%, #e5f6ff 100%);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

body.home-v2::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background:
    radial-gradient(circle, rgba(255, 255, 255, 0.95) 0 7px, transparent 8px) 2% 6% / 170px 170px,
    radial-gradient(circle, rgba(255, 196, 54, 0.72) 0 5px, transparent 6px) 45% 16% / 210px 210px,
    radial-gradient(circle, rgba(92, 170, 116, 0.58) 0 5px, transparent 6px) 10% 64% / 220px 220px,
    radial-gradient(circle, rgba(239, 112, 142, 0.5) 0 5px, transparent 6px) 78% 28% / 190px 190px,
    radial-gradient(circle, rgba(83, 160, 222, 0.5) 0 5px, transparent 6px) 86% 86% / 190px 190px;
  opacity: 0.95;
}

body.home-v2::after {
  content: "";
  position: fixed;
  right: -9vw;
  bottom: -10vw;
  z-index: -1;
  width: 42vw;
  min-width: 360px;
  aspect-ratio: 1;
  border-radius: 56% 44% 38% 62% / 50% 36% 64% 50%;
  background: linear-gradient(135deg, rgba(255, 139, 164, 0.54), rgba(255, 206, 103, 0.34), rgba(102, 181, 228, 0.42));
  filter: blur(2px);
}

body.home-v2,
body.project-v2,
body.route-body,
body.family-app,
body.login-family {
  padding-top: 104px;
  padding-bottom: 132px;
}

.landing-header {
  position: fixed;
  top: 18px;
  left: 50%;
  z-index: 30;
  width: min(1180px, calc(100% - 32px));
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 10px 12px 10px 14px;
  border: 1px solid rgba(255, 255, 255, 0.6);
  border-radius: 999px;
  background: rgba(255, 250, 230, 0.72);
  box-shadow: 0 16px 44px rgba(7, 31, 61, 0.08);
  backdrop-filter: blur(14px);
  transform: translateX(-50%);
}

.landing-brand,
.landing-nav,
.primary-cta,
.secondary-cta {
  display: inline-flex;
  align-items: center;
}

.landing-brand {
  gap: 10px;
  color: #071f3d;
  font-weight: 900;
  text-decoration: none;
}

.landing-logo {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 16px;
  color: #071f3d;
  background: linear-gradient(135deg, #ffd95c, #7ec7f2);
  font-size: 0.78rem;
  font-weight: 950;
}

.landing-nav {
  gap: 4px;
  padding: 4px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.34);
}

.landing-nav a {
  min-height: 38px;
  padding: 9px 14px;
  border-radius: 999px;
  color: #1d3b55;
  font-size: 0.92rem;
  font-weight: 800;
  text-decoration: none;
}

.landing-nav a:hover,
.landing-nav a:focus-visible {
  background: rgba(255, 255, 255, 0.72);
}

.landing-hero {
  position: relative;
  width: min(1240px, calc(100% - 44px));
  min-height: 760px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(440px, 1fr);
  gap: clamp(34px, 6vw, 80px);
  align-items: center;
  padding: 130px 0 70px;
}

.hero-content {
  position: relative;
  z-index: 2;
  max-width: 620px;
}

.landing-kicker {
  width: fit-content;
  margin: 0 0 22px;
  padding: 13px 18px;
  border-radius: 999px;
  color: #082242;
  background: linear-gradient(135deg, #ffd452, #ffe486);
  box-shadow: 0 10px 26px rgba(255, 194, 38, 0.18);
  font-size: clamp(0.78rem, 1.3vw, 1rem);
  font-weight: 950;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.landing-hero h1 {
  max-width: 680px;
  margin: 0;
  color: #061e3b;
  font-size: clamp(4.4rem, 7.6vw, 7.6rem);
  line-height: 0.95;
  letter-spacing: -0.055em;
}

.hero-lead {
  max-width: 560px;
  margin: 26px 0 0;
  color: #102c4b;
  font-size: clamp(1.05rem, 1.6vw, 1.28rem);
  line-height: 1.62;
  font-weight: 560;
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  margin-top: 32px;
}

.primary-cta,
.secondary-cta {
  min-height: 56px;
  justify-content: center;
  gap: 10px;
  border-radius: 999px;
  padding: 0 24px;
  font-weight: 950;
  text-decoration: none;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.primary-cta {
  color: #fff;
  background: linear-gradient(135deg, #0b70d8, #7041a8);
  box-shadow: 0 18px 34px rgba(47, 83, 166, 0.24);
}

.secondary-cta {
  color: #071f3d;
  background: linear-gradient(135deg, #ffd84f, #ffec91);
  box-shadow: 0 14px 28px rgba(255, 195, 37, 0.24);
}

.primary-cta:hover,
.secondary-cta:hover {
  transform: translateY(-2px);
}

.hero-photo {
  position: relative;
  z-index: 1;
  margin: 0;
  min-height: 560px;
}

.hero-photo::before {
  content: "";
  position: absolute;
  right: -92px;
  top: -110px;
  width: 330px;
  height: 270px;
  border-radius: 42% 58% 58% 42% / 42% 38% 62% 58%;
  background: rgba(108, 184, 236, 0.72);
}

.hero-photo::after {
  content: "";
  position: absolute;
  right: -54px;
  bottom: -26px;
  width: 260px;
  height: 230px;
  border-radius: 54% 46% 40% 60% / 48% 34% 66% 52%;
  background:
    radial-gradient(circle, rgba(255,255,255,0.8) 0 3px, transparent 4px) 0 0 / 28px 28px,
    linear-gradient(135deg, rgba(255, 126, 154, 0.72), rgba(255, 180, 199, 0.54));
}

.hero-photo img {
  position: relative;
  z-index: 1;
  width: 100%;
  height: min(58vw, 620px);
  min-height: 520px;
  object-fit: cover;
  object-position: center;
  border-radius: 48% 52% 45% 55% / 48% 38% 62% 52%;
  box-shadow: 0 28px 80px rgba(7, 31, 61, 0.14);
}

.decor-dot {
  position: absolute;
  z-index: 0;
  width: 10px;
  height: 10px;
  border-radius: 50%;
}

.dot-a { left: 40%; top: 18%; background: #f2a0b0; }
.dot-b { left: 48%; top: 58%; background: #f2c543; }
.dot-c { left: 8%; bottom: 24%; background: #77b771; }

.promise-section {
  position: relative;
  width: min(1240px, calc(100% - 44px));
  margin: -18px auto 0;
  display: grid;
  grid-template-columns: minmax(0, 0.98fr) minmax(360px, 0.72fr);
  gap: clamp(34px, 6vw, 72px);
  align-items: end;
  padding-bottom: 74px;
}

.values-panel {
  position: relative;
  padding: 44px 46px 38px;
  border-radius: 36px 36px 120px 36px;
  background:
    radial-gradient(circle at 20% 8%, rgba(255, 231, 145, 0.72), transparent 18rem),
    linear-gradient(135deg, rgba(255, 255, 255, 0.72), rgba(255, 250, 228, 0.6));
  box-shadow: 0 24px 70px rgba(7, 31, 61, 0.08);
}

.panel-title {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 28px;
}

.panel-title h2 {
  margin: 0;
  color: #2f4aa0;
  font-size: clamp(1.45rem, 2.2vw, 2rem);
  letter-spacing: -0.02em;
}

.panel-title span {
  color: #ee8da7;
  font-size: 1.5rem;
}

.value-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 26px;
}

.value-grid article {
  position: relative;
  display: grid;
  gap: 12px;
  padding-right: 22px;
}

.value-grid article + article {
  border-left: 1px dashed rgba(7, 31, 61, 0.16);
  padding-left: 26px;
}

.value-icon {
  width: 62px;
  height: 62px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  font-size: 1.8rem;
}

.value-icon.green { color: #43833d; background: #e1f2d7; }
.value-icon.pink { color: #e55f83; background: #ffdfe8; }
.value-icon.blue { color: #1c78d4; background: #dff0ff; }
.value-icon.yellow { color: #b57400; background: #fff0b8; }

.value-grid h3 {
  margin: 0;
  font-size: 1.18rem;
}

.value-grid article:nth-child(1) h3 { color: #43833d; }
.value-grid article:nth-child(2) h3 { color: #e55f83; }
.value-grid article:nth-child(3) h3 { color: #0870c9; }
.value-grid article:nth-child(4) h3 { color: #d18a00; }

.value-grid p {
  margin: 0;
  color: #0f2949;
  font-size: 0.96rem;
  line-height: 1.6;
}

.promise-copy {
  position: relative;
  padding: 22px 0 38px;
}

.promise-copy p {
  max-width: 520px;
  margin: 0;
  color: #061e3b;
  font-size: clamp(1.25rem, 2vw, 1.7rem);
  font-weight: 780;
  line-height: 1.58;
}

.promise-copy strong:nth-of-type(1) { color: #4f9b51; }
.promise-copy strong:nth-of-type(2) { color: #ee7a9c; }
.promise-copy strong:nth-of-type(3) { color: #255bc5; }

.schedule-band,
.contact-strip {
  width: min(1120px, calc(100% - 44px));
  margin: 34px auto 0;
  display: grid;
  grid-template-columns: minmax(0, 0.8fr) minmax(360px, 1fr);
  gap: 34px;
  align-items: center;
  padding: 34px;
  border-radius: 34px;
  background: linear-gradient(135deg, rgba(255, 230, 137, 0.5), rgba(217, 244, 255, 0.58));
}

.schedule-band h2,
.contact-strip h2 {
  margin: 0;
  color: #061e3b;
  font-size: clamp(2rem, 3.6vw, 4rem);
  line-height: 1;
}

.schedule-band p:not(.landing-kicker) {
  color: #163350;
  font-size: 1.08rem;
}

.schedule-list {
  display: grid;
  gap: 10px;
}

.schedule-list span {
  padding: 12px 16px;
  border-radius: 999px;
  color: #082242;
  background: rgba(255, 255, 255, 0.46);
  font-weight: 850;
}

.contact-strip {
  margin-bottom: 70px;
}

@media (max-width: 980px) {
  .landing-header {
    align-items: flex-start;
    border-radius: 26px;
    flex-direction: column;
  }

  .landing-nav {
    width: 100%;
    justify-content: center;
    flex-wrap: wrap;
  }

  .landing-hero,
  .promise-section,
  .schedule-band,
  .contact-strip {
    grid-template-columns: 1fr;
  }

  .landing-hero {
    min-height: auto;
    padding-top: 170px;
  }

  .hero-photo {
    min-height: auto;
  }

  .hero-photo img {
    height: auto;
    min-height: 0;
    aspect-ratio: 1.35;
  }

  .value-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .value-grid article:nth-child(3) {
    border-left: 0;
    padding-left: 0;
  }

  .promise-copy {
    padding-top: 0;
  }
}

/* Strict homepage reference composition */
@media (min-width: 1100px) {
  body.home-v2 main {
    min-height: 100vh;
  }

  .landing-hero {
    width: 100%;
    max-width: none;
    min-height: 652px;
    grid-template-columns: 560px minmax(620px, 1fr);
    gap: 64px;
    align-items: start;
    margin: 0;
    padding: 78px clamp(42px, 4vw, 72px) 24px clamp(112px, 9.7vw, 150px);
  }

  .hero-content {
    width: 560px;
    max-width: 560px;
    padding: 0;
    justify-self: start;
    text-align: left;
  }

  .landing-kicker {
    margin: 0 0 22px;
    padding: 13px 19px;
    font-size: 14px;
    line-height: 1;
    letter-spacing: 0.095em;
  }

  .landing-hero h1 {
    width: 560px;
    max-width: 560px;
    font-size: 82px;
    line-height: 0.98;
    letter-spacing: -0.055em;
  }

  .hero-lead {
    width: 540px;
    max-width: 540px;
    margin: 24px 0 0;
    font-size: 18px;
    line-height: 1.58;
    font-weight: 600;
  }

  .hero-actions {
    justify-content: flex-start;
    gap: 18px;
    margin-top: 30px;
  }

  .primary-cta,
  .secondary-cta {
    min-width: 222px;
    min-height: 54px;
    padding: 0 22px;
    font-size: 16px;
  }

  .hero-photo {
    width: 690px;
    min-height: 0;
    justify-self: start;
    align-self: start;
    margin: -42px 0 0;
  }

  .hero-photo img {
    width: 690px;
    height: 590px;
    min-height: 0;
    object-fit: cover;
    object-position: 50% 50%;
    border-radius: 49% 51% 47% 53% / 46% 38% 62% 54%;
  }

  .hero-photo::before {
    right: -82px;
    top: -118px;
    width: 315px;
    height: 245px;
  }

  .hero-photo::after {
    right: -52px;
    bottom: -40px;
    width: 270px;
    height: 232px;
  }

  .promise-section {
    width: 100%;
    max-width: none;
    grid-template-columns: 820px 470px;
    gap: 78px;
    align-items: center;
    margin: -8px 0 0;
    padding: 0 clamp(42px, 4vw, 72px) 64px clamp(66px, 4.4vw, 76px);
  }

  .values-panel {
    width: 820px;
    justify-self: start;
    padding: 36px 42px 34px;
    border-radius: 34px 34px 112px 34px;
  }

  .panel-title {
    margin-bottom: 28px;
  }

  .panel-title h2 {
    font-size: 28px;
    line-height: 1.05;
  }

  .value-grid {
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
  }

  .value-grid article {
    min-height: 218px;
    gap: 10px;
    padding: 0 24px 0 0;
  }

  .value-grid article + article {
    padding-left: 26px;
    border-left: 1px dashed rgba(7, 31, 61, 0.18);
  }

  .value-icon {
    width: 60px;
    height: 60px;
    margin-bottom: 12px;
    font-size: 1.45rem;
  }

  .value-grid h3 {
    margin: 0 0 8px;
    font-size: 18px;
    line-height: 1.18;
  }

  .value-grid p {
    max-width: 134px;
    font-size: 14px;
    line-height: 1.55;
  }

  .promise-copy {
    justify-self: start;
    align-self: center;
    padding: 64px 0 0;
  }

  .promise-copy p {
    max-width: 460px;
    font-size: 22px;
    line-height: 1.58;
    text-align: left;
  }
}

/* Correct oversized canvas: keep reference composition contained */
@media (min-width: 1100px) {
  .landing-hero {
    width: min(1240px, calc(100% - 64px)) !important;
    max-width: 1240px !important;
    min-height: 640px !important;
    grid-template-columns: 520px 620px !important;
    gap: 58px !important;
    margin: 0 auto !important;
    padding: 76px 0 22px !important;
  }

  .hero-content {
    width: 520px !important;
    max-width: 520px !important;
    padding-left: 0 !important;
  }

  .landing-hero h1 {
    width: 520px !important;
    max-width: 520px !important;
    font-size: 76px !important;
    line-height: 0.98 !important;
  }

  .hero-lead {
    width: 500px !important;
    max-width: 500px !important;
    font-size: 17px !important;
    line-height: 1.55 !important;
  }

  .hero-photo {
    width: 620px !important;
    justify-self: start !important;
    margin-top: -22px !important;
  }

  .hero-photo img {
    width: 620px !important;
    height: 520px !important;
  }

  .promise-section {
    width: min(1240px, calc(100% - 64px)) !important;
    max-width: 1240px !important;
    grid-template-columns: 690px 430px !important;
    gap: 66px !important;
    margin: -2px auto 0 !important;
    padding: 0 0 58px !important;
  }

  .values-panel {
    width: 690px !important;
    padding: 34px 36px 32px !important;
  }

  .value-grid article {
    min-height: 208px !important;
    padding-right: 22px !important;
  }

  .value-grid article + article {
    padding-left: 24px !important;
  }

  .promise-copy {
    padding-top: 62px !important;
  }

  .promise-copy p {
    max-width: 430px !important;
    font-size: 21px !important;
    line-height: 1.58 !important;
  }
}

/* Pixel closer to supplied reference */
@media (min-width: 981px) {
  .landing-hero {
    width: min(1210px, calc(100% - 80px));
    min-height: 604px;
    grid-template-columns: 540px 1fr;
    gap: 56px;
    padding-top: 74px;
    padding-bottom: 26px;
  }

  .hero-content {
    max-width: 540px;
    padding-left: 0;
  }

  .landing-kicker {
    margin-bottom: 18px;
    padding: 12px 18px;
    font-size: 14px;
  }

  .landing-hero h1 {
    max-width: 540px;
    font-size: 84px;
    line-height: 0.97;
    letter-spacing: -0.055em;
  }

  .hero-lead {
    max-width: 510px;
    margin-top: 22px;
    font-size: 18px;
    line-height: 1.54;
  }

  .hero-actions {
    margin-top: 28px;
  }

  .primary-cta,
  .secondary-cta {
    min-width: 212px;
    min-height: 52px;
    font-size: 16px;
  }

  .hero-photo {
    margin-top: -38px;
  }

  .hero-photo img {
    height: 546px;
    border-radius: 50% 50% 46% 54% / 46% 37% 63% 54%;
  }

  .promise-section {
    width: min(1210px, calc(100% - 80px));
    grid-template-columns: 710px 1fr;
    gap: 56px;
    margin-top: -8px;
    padding-bottom: 58px;
  }

  .values-panel {
    width: 710px;
    padding: 34px 36px 32px;
    border-radius: 32px 32px 100px 32px;
  }

  .panel-title {
    margin-bottom: 26px;
  }

  .panel-title h2 {
    font-size: 26px;
    line-height: 1.1;
  }

  .value-grid {
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
  }

  .value-grid article {
    min-height: 202px;
    gap: 10px;
    padding: 0 24px 0 0;
  }

  .value-grid article + article {
    padding-left: 26px;
    border-left: 1px dashed rgba(7, 31, 61, 0.18);
  }

  .value-icon {
    width: 58px;
    height: 58px;
    margin-bottom: 10px;
    font-size: 1.45rem;
  }

  .value-grid h3 {
    font-size: 18px;
    line-height: 1.2;
  }

  .value-grid p {
    max-width: 128px;
    font-size: 14px;
    line-height: 1.55;
  }

  .promise-copy {
    padding-top: 72px;
  }

  .promise-copy p {
    max-width: 438px;
    font-size: 22px;
    line-height: 1.58;
  }
}

@media (max-width: 620px) {
  .landing-header,
  .landing-hero,
  .promise-section,
  .schedule-band,
  .contact-strip {
    width: min(100% - 28px, 1240px);
  }

  .landing-hero h1 {
    font-size: clamp(3.3rem, 16vw, 4.7rem);
  }

  .hero-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .primary-cta,
  .secondary-cta {
    width: 100%;
  }

  .values-panel {
    padding: 28px;
    border-radius: 30px;
  }

  .value-grid {
    grid-template-columns: 1fr;
  }

  .value-grid article,
  .value-grid article + article {
    border-left: 0;
    border-top: 1px dashed rgba(7, 31, 61, 0.14);
    padding: 18px 0 0;
  }

  .value-grid article:first-child {
    border-top: 0;
    padding-top: 0;
  }
}

/* Home v2 reference alignment pass */
body.home-v2 .landing-header {
  display: none;
}

body.home-v2 {
  background:
    radial-gradient(circle at 7% 7%, rgba(255, 214, 80, 0.86), transparent 25rem),
    radial-gradient(circle at 92% 8%, rgba(119, 194, 240, 0.78), transparent 26rem),
    radial-gradient(circle at 0% 66%, rgba(126, 185, 99, 0.58), transparent 12rem),
    radial-gradient(circle at 98% 55%, rgba(255, 127, 153, 0.5), transparent 20rem),
    linear-gradient(135deg, #fff5d8 0%, #fffdf4 44%, #e8f7ff 100%);
}

.landing-hero {
  width: min(1280px, calc(100% - 64px));
  min-height: 650px;
  grid-template-columns: minmax(0, 0.82fr) minmax(500px, 0.98fr);
  gap: clamp(42px, 5vw, 76px);
  padding: 80px 0 42px;
}

.hero-content {
  max-width: 620px;
  padding-left: clamp(12px, 2vw, 22px);
}

.landing-kicker {
  margin-bottom: 20px;
  padding: 13px 20px;
  color: #062244;
  font-size: clamp(0.78rem, 1.05vw, 0.95rem);
  letter-spacing: 0.1em;
}

.landing-hero h1 {
  max-width: 620px;
  font-size: clamp(4.6rem, 6.4vw, 6.4rem);
  line-height: 0.98;
  letter-spacing: -0.055em;
}

.hero-lead {
  max-width: 540px;
  margin-top: 24px;
  font-size: clamp(1rem, 1.25vw, 1.16rem);
  line-height: 1.58;
}

.hero-actions {
  gap: 18px;
  margin-top: 30px;
}

.primary-cta,
.secondary-cta {
  min-width: 220px;
  min-height: 54px;
  padding: 0 24px;
  font-size: 1rem;
}

.hero-photo {
  align-self: start;
  min-height: 0;
  margin-top: -12px;
}

.hero-photo::before {
  right: -72px;
  top: -120px;
  width: 300px;
  height: 240px;
  border-radius: 0 0 42% 58% / 0 0 70% 55%;
}

.hero-photo::after {
  right: -44px;
  bottom: -42px;
  width: 260px;
  height: 230px;
}

.hero-photo img {
  height: clamp(470px, 48vw, 575px);
  min-height: 0;
  border-radius: 52% 48% 45% 55% / 48% 38% 62% 52%;
  object-position: center;
}

.promise-section {
  width: min(1280px, calc(100% - 64px));
  grid-template-columns: minmax(0, 0.98fr) minmax(390px, 0.72fr);
  gap: clamp(44px, 5vw, 70px);
  align-items: center;
  margin-top: -10px;
  padding-bottom: 64px;
}

.values-panel {
  width: 100%;
  padding: 38px 44px 34px;
  border-radius: 32px 32px 110px 32px;
}

.panel-title {
  margin-bottom: 28px;
}

.panel-title h2 {
  font-size: clamp(1.4rem, 1.9vw, 1.82rem);
}

.value-grid {
  gap: 24px;
}

.value-icon {
  width: 56px;
  height: 56px;
  font-size: 1.55rem;
}

.value-grid h3 {
  font-size: 1.05rem;
}

.value-grid p {
  font-size: 0.88rem;
  line-height: 1.58;
}

.promise-copy {
  align-self: center;
  padding-top: 54px;
}

.promise-copy p {
  max-width: 520px;
  font-size: clamp(1.2rem, 1.65vw, 1.48rem);
  line-height: 1.62;
}

@media (max-width: 980px) {
  .landing-hero,
  .promise-section {
    width: min(100% - 36px, 1280px);
    grid-template-columns: 1fr;
  }

  .hero-content {
    max-width: 760px;
    padding-left: 0;
    text-align: center;
    justify-self: center;
  }

  .landing-kicker,
  .hero-actions {
    margin-left: auto;
    margin-right: auto;
  }

  .hero-lead {
    margin-left: auto;
    margin-right: auto;
  }

  .hero-photo {
    width: min(720px, 100%);
    justify-self: center;
  }

  .promise-copy {
    padding-top: 0;
  }
}

@media (max-width: 620px) {
  .landing-hero,
  .promise-section {
    width: min(100% - 28px, 1280px);
  }

  .landing-hero {
    padding-top: 42px;
  }

  .landing-hero h1 {
    font-size: clamp(3.3rem, 15vw, 4.5rem);
  }

  .hero-photo img {
    height: auto;
    aspect-ratio: 1.1;
  }
}

/* Home v2 centering after removing lower blocks */
body.home-v2 main {
  min-height: 100vh;
}

.promise-section {
  align-items: center;
  margin-top: -36px;
  padding-bottom: clamp(54px, 8vw, 110px);
}

.values-panel {
  justify-self: center;
  width: min(100%, 760px);
}

.promise-copy {
  align-self: center;
  justify-self: center;
  padding: 0;
}

.promise-copy p {
  text-align: left;
}

@media (max-width: 980px) {
  .promise-section {
    text-align: center;
  }

  .promise-copy p {
    margin-inline: auto;
    text-align: center;
  }
}

/* Non-white visual system override */
.hero-copy,
.intro {
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
}

.hero-copy {
  padding: 0 !important;
}

.hero-copy p,
.intro p {
  text-shadow: 0 2px 0 rgba(255, 255, 255, 0.7);
}

.section-grid,
.experience,
.spaces,
.contact,
.portal-hero,
.portal-columns {
  border-color: rgba(20, 49, 61, 0.08) !important;
  background:
    radial-gradient(circle at 8% 12%, rgba(255, 214, 87, 0.56), transparent 18rem),
    radial-gradient(circle at 92% 16%, rgba(98, 181, 226, 0.5), transparent 22rem),
    radial-gradient(circle at 22% 92%, rgba(103, 190, 143, 0.42), transparent 20rem),
    linear-gradient(135deg, rgba(255, 225, 132, 0.46), rgba(207, 239, 255, 0.46) 52%, rgba(219, 247, 228, 0.42)) !important;
  box-shadow: 0 18px 46px rgba(20, 49, 61, 0.07) !important;
}

.experience {
  grid-template-columns: minmax(320px, 0.9fr) minmax(360px, 0.92fr) !important;
  align-items: center !important;
}

.experience-copy {
  align-self: center !important;
  display: grid;
  gap: 22px;
}

.experience-copy h2,
.experience-copy p {
  max-width: 580px !important;
}

.timeline {
  align-self: center !important;
  gap: 16px !important;
}

.soft-list li,
.team-list article,
.timeline div,
.portal-grid article,
.family-dashboard div,
.admin-workflow div,
.admin-summary div,
.auth-panel {
  border-color: rgba(20, 49, 61, 0.1) !important;
  background:
    linear-gradient(135deg, rgba(255, 213, 90, 0.66), rgba(133, 208, 231, 0.34)) !important;
  box-shadow: 0 12px 26px rgba(20, 49, 61, 0.055) !important;
}

.soft-list li:nth-child(2),
.team-list article:nth-child(2),
.timeline div:nth-child(2),
.timeline div:nth-child(5) {
  background:
    linear-gradient(135deg, rgba(123, 205, 226, 0.58), rgba(143, 213, 165, 0.34)) !important;
}

.soft-list li:nth-child(3),
.team-list article:nth-child(3),
.timeline div:nth-child(3) {
  background:
    linear-gradient(135deg, rgba(255, 151, 128, 0.48), rgba(255, 216, 111, 0.4)) !important;
}

.timeline div {
  grid-template-columns: 88px minmax(0, 1fr) !important;
  min-height: 74px;
  align-items: center !important;
}

.timeline span {
  align-self: center !important;
  justify-self: start !important;
  background: rgba(255, 246, 205, 0.72) !important;
}

.timeline strong {
  align-self: center !important;
  line-height: 1.25 !important;
}

@media (max-width: 860px) {
  .experience {
    grid-template-columns: 1fr !important;
    align-items: start !important;
  }
}

@media (max-width: 560px) {
  .hero-copy {
    padding: 0 !important;
  }

  .section-grid,
  .experience,
  .spaces,
  .contact,
  .portal-hero,
  .portal-columns {
    background:
      radial-gradient(circle at 10% 8%, rgba(255, 214, 87, 0.52), transparent 15rem),
      linear-gradient(135deg, rgba(255, 225, 132, 0.5), rgba(207, 239, 255, 0.46)) !important;
  }

  .timeline div {
    grid-template-columns: 1fr !important;
  }
}

/* Definitive color and alignment override */
:root {
  --panel-blue-wash: rgba(218, 246, 255, 0.44);
  --panel-yellow-wash: rgba(255, 234, 166, 0.34);
  --panel-green-wash: rgba(219, 247, 231, 0.34);
  --card-yellow: rgba(255, 222, 112, 0.54);
  --card-blue: rgba(198, 235, 249, 0.48);
  --card-green: rgba(196, 239, 214, 0.48);
  --card-coral: rgba(255, 205, 196, 0.46);
}

.section-grid,
.experience,
.spaces,
.contact,
.portal-hero,
.portal-columns {
  border: 1px solid rgba(20, 49, 61, 0.06) !important;
  background:
    radial-gradient(circle at 7% 12%, var(--panel-yellow-wash), transparent 24rem),
    radial-gradient(circle at 92% 18%, var(--panel-blue-wash), transparent 26rem),
    radial-gradient(circle at 20% 92%, var(--panel-green-wash), transparent 22rem),
    linear-gradient(135deg, rgba(255, 247, 216, 0.32), rgba(219, 245, 255, 0.26) 48%, rgba(232, 251, 236, 0.22)) !important;
  box-shadow: 0 18px 48px rgba(20, 49, 61, 0.055) !important;
  backdrop-filter: blur(2px) saturate(1.04) !important;
}

.experience {
  align-items: center !important;
}

.experience-copy {
  align-self: center;
  justify-content: center;
}

.experience-copy p:not(.eyebrow) {
  max-width: 560px;
}

.timeline {
  align-self: center;
}

.soft-list li,
.team-list article,
.timeline div {
  border: 1px solid rgba(20, 49, 61, 0.08) !important;
  background:
    linear-gradient(135deg, rgba(255, 222, 112, 0.38), rgba(198, 235, 249, 0.28)) !important;
  box-shadow: 0 10px 24px rgba(20, 49, 61, 0.045) !important;
}

.soft-list li:nth-child(2),
.team-list article:nth-child(2),
.timeline div:nth-child(2),
.timeline div:nth-child(5) {
  background:
    linear-gradient(135deg, rgba(198, 235, 249, 0.44), rgba(196, 239, 214, 0.28)) !important;
}

.soft-list li:nth-child(3),
.team-list article:nth-child(3),
.timeline div:nth-child(3) {
  background:
    linear-gradient(135deg, rgba(255, 205, 196, 0.4), rgba(255, 234, 166, 0.28)) !important;
}

.timeline div {
  grid-template-columns: 88px minmax(0, 1fr) !important;
  min-height: 76px;
  align-items: center !important;
  padding: 16px 20px !important;
}

.timeline span {
  align-self: center;
  justify-self: start;
}

.timeline strong {
  align-self: center;
  line-height: 1.25;
}

.soft-list li:hover,
.team-list article:hover,
.timeline div:hover {
  filter: saturate(1.04);
  transform: translateY(-1px);
}

@media (max-width: 860px) {
  .experience {
    align-items: start !important;
  }
}

@media (max-width: 560px) {
  .section-grid,
  .experience,
  .spaces,
  .contact,
  .portal-hero,
  .portal-columns {
    background:
      radial-gradient(circle at 10% 10%, rgba(255, 222, 112, 0.34), transparent 18rem),
      linear-gradient(135deg, rgba(255, 247, 216, 0.46), rgba(219, 245, 255, 0.36)) !important;
  }

  .timeline div {
    grid-template-columns: 1fr !important;
    gap: 8px;
  }
}

/* Final blend pass: reduce white panels and align project copy */
:root {
  --wash-panel: rgba(255, 250, 232, 0.22);
  --wash-panel-strong: rgba(255, 250, 232, 0.32);
  --wash-card: rgba(255, 255, 255, 0.24);
}

.section-grid,
.experience,
.spaces,
.contact,
.portal-hero,
.portal-columns {
  border-color: rgba(255, 255, 255, 0.18);
  background:
    linear-gradient(135deg, rgba(255, 250, 232, 0.24), rgba(225, 248, 255, 0.16)),
    radial-gradient(circle at 12% 18%, rgba(255, 202, 58, 0.12), transparent 20rem),
    radial-gradient(circle at 92% 85%, rgba(67, 170, 139, 0.1), transparent 18rem);
  box-shadow: 0 18px 48px rgba(16, 39, 51, 0.045);
  backdrop-filter: blur(3px);
}

.section-grid {
  grid-template-columns: minmax(320px, 0.84fr) minmax(360px, 0.86fr);
  align-items: start;
}

.section-grid::before,
.experience::before,
.spaces::before,
.contact::before,
.portal-hero::before,
.portal-columns::before {
  opacity: 0.2;
}

.section-copy {
  display: grid;
  gap: 18px;
  align-content: start;
  max-width: 620px;
}

.section-copy .eyebrow {
  margin-bottom: 0;
}

.section-copy p:not(.eyebrow) {
  max-width: 560px;
  color: #284552;
  font-size: clamp(17px, 1.3vw, 20px);
  line-height: 1.72;
  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.52);
}

.soft-list li,
.team-list article,
.timeline div,
.portal-grid article,
.family-dashboard div,
.admin-workflow div,
.admin-summary div,
.auth-panel {
  border-color: rgba(255, 255, 255, 0.2);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.3), rgba(255, 245, 214, 0.16));
  box-shadow: 0 10px 24px rgba(16, 39, 51, 0.035);
  backdrop-filter: blur(3px);
}

.soft-list li {
  padding: 17px 19px;
}

.soft-list li:hover,
.team-list article:hover,
.timeline div:hover {
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.42), rgba(255, 238, 183, 0.22));
}

.text-stack {
  align-self: start;
}

@media (max-width: 860px) {
  .section-grid {
    grid-template-columns: 1fr;
  }

  .section-copy {
    max-width: 100%;
  }
}

@media (max-width: 560px) {
  .section-grid,
  .experience,
  .spaces,
  .contact,
  .portal-hero,
  .portal-columns {
    background:
      linear-gradient(135deg, rgba(255, 250, 232, 0.42), rgba(225, 248, 255, 0.28));
    backdrop-filter: blur(2px);
  }
}

/* Immersive readability pass: remove heavy white card feeling */
:root {
  --mist-surface: rgba(255, 253, 246, 0.58);
  --mist-surface-soft: rgba(255, 253, 246, 0.46);
  --mist-stroke: rgba(255, 255, 255, 0.54);
  --text-glow: 0 1px 0 rgba(255, 255, 255, 0.68);
}

body::before {
  opacity: 0.12;
}

body::after {
  opacity: 0.18;
}

.hero-copy,
.intro,
.section-grid,
.experience,
.spaces,
.contact,
.portal-hero,
.portal-columns {
  border-color: transparent;
  background:
    linear-gradient(135deg, rgba(255, 253, 246, 0.68), rgba(255, 253, 246, 0.34)),
    radial-gradient(circle at 12% 18%, rgba(255, 202, 58, 0.16), transparent 18rem),
    radial-gradient(circle at 92% 88%, rgba(25, 130, 196, 0.12), transparent 18rem);
  box-shadow: none;
  backdrop-filter: blur(7px) saturate(1.02);
}

.section-grid,
.experience,
.spaces,
.contact,
.portal-hero,
.portal-columns {
  padding-inline: clamp(18px, 3vw, 42px);
}

.section-grid::before,
.experience::before,
.spaces::before,
.contact::before,
.portal-hero::before,
.portal-columns::before {
  width: 3px;
  opacity: 0.42;
  border-radius: 999px;
}

.hero-copy {
  max-width: 680px;
  background:
    linear-gradient(135deg, rgba(255, 253, 246, 0.72), rgba(255, 253, 246, 0.3)),
    radial-gradient(circle at 20% 0%, rgba(255, 202, 58, 0.18), transparent 16rem);
}

.intro {
  background: transparent;
  backdrop-filter: none;
  padding-top: clamp(38px, 5vw, 72px);
  padding-bottom: clamp(38px, 5vw, 72px);
}

.intro p {
  max-width: 1040px;
  text-shadow: var(--text-glow);
}

.soft-list li,
.team-list article,
.timeline div,
.portal-grid article,
.family-dashboard div,
.admin-workflow div,
.admin-summary div,
.auth-panel {
  border-color: rgba(255, 255, 255, 0.32);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.42), rgba(255, 250, 232, 0.24));
  box-shadow: 0 10px 26px rgba(16, 39, 51, 0.045);
  backdrop-filter: blur(6px);
}

.soft-list li:hover,
.team-list article:hover,
.timeline div:hover {
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.58), rgba(255, 244, 205, 0.34));
}

.section-grid p,
.experience p,
.spaces p,
.contact p,
.team-list p,
.soft-list p {
  text-shadow: var(--text-glow);
}

.contact {
  margin-top: clamp(56px, 7vw, 96px);
}

.info-band {
  display: none;
}

@media (max-width: 860px) {
  .section-grid,
  .experience,
  .spaces,
  .contact,
  .portal-hero,
  .portal-columns {
    background:
      linear-gradient(135deg, rgba(255, 253, 246, 0.76), rgba(255, 253, 246, 0.42)),
      radial-gradient(circle at 12% 18%, rgba(255, 202, 58, 0.12), transparent 14rem);
  }
}

@media (max-width: 560px) {
  .hero-copy,
  .section-grid,
  .experience,
  .spaces,
  .contact,
  .portal-hero,
  .portal-columns {
    background:
      linear-gradient(135deg, rgba(255, 253, 246, 0.82), rgba(255, 253, 246, 0.52));
    backdrop-filter: blur(5px);
  }
}

/* Visual harmony pass from screenshot review */
:root {
  --header-surface: rgba(255, 250, 235, 0.82);
  --panel-surface: rgba(255, 253, 248, 0.975);
  --panel-border: rgba(16, 39, 51, 0.11);
  --nav-pill: rgba(255, 255, 255, 0.62);
  --nav-pill-hover: rgba(255, 246, 214, 0.92);
  --premium-shadow: 0 22px 54px rgba(16, 39, 51, 0.13);
}

body::before {
  opacity: 0.16;
  background:
    radial-gradient(circle, rgba(255, 202, 58, 0.85) 0 5px, transparent 6px) 8% 32% / 176px 176px,
    radial-gradient(circle, rgba(67, 170, 139, 0.52) 0 6px, transparent 7px) 18% 82% / 198px 198px,
    radial-gradient(circle, rgba(25, 130, 196, 0.48) 0 5px, transparent 6px) 72% 78% / 190px 190px;
}

body::after {
  right: -12vw;
  bottom: 3vh;
  opacity: 0.22;
  filter: blur(10px);
}

.site-header {
  left: 50%;
  width: min(1180px, calc(100% - 32px));
  margin-top: 14px;
  padding: 10px 12px 10px 14px;
  border: 1px solid rgba(255, 255, 255, 0.72);
  border-radius: 999px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.9), var(--header-surface)),
    linear-gradient(90deg, rgba(255, 202, 58, 0.16), rgba(25, 130, 196, 0.12));
  box-shadow: 0 16px 42px rgba(16, 39, 51, 0.1);
  transform: translateX(-50%);
}

.site-header.scrolled {
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(255, 248, 226, 0.94)),
    linear-gradient(90deg, rgba(255, 202, 58, 0.12), rgba(67, 170, 139, 0.1));
  box-shadow: 0 18px 46px rgba(16, 39, 51, 0.14);
}

.brand {
  min-height: 44px;
  padding-right: 10px;
}

.brand-mark {
  width: 42px;
  height: 42px;
  box-shadow: 0 10px 22px rgba(25, 130, 196, 0.14);
}

.navigation {
  padding: 4px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.44);
  box-shadow: inset 0 0 0 1px rgba(16, 39, 51, 0.06);
}

.navigation a {
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  padding: 9px 14px;
  color: #243f4a;
  background: transparent;
  font-size: 14px;
  font-weight: 760;
}

.navigation a:hover,
.navigation a:focus-visible {
  color: #102733;
  background: var(--nav-pill-hover);
  box-shadow: 0 8px 18px rgba(16, 39, 51, 0.08);
}

.navigation a[href="#contact"],
.navigation a[href="espace-familles.html"] {
  color: #173545;
  background: linear-gradient(135deg, rgba(255, 212, 71, 0.82), rgba(255, 255, 255, 0.8));
  box-shadow: inset 0 0 0 1px rgba(16, 39, 51, 0.08);
}

.hero,
.intro,
.section-grid,
.experience,
.spaces,
.info-band,
.contact {
  width: min(1120px, calc(100% - 48px));
}

.hero {
  gap: clamp(38px, 5vw, 70px);
  padding-top: 142px;
  padding-bottom: 58px;
}

.section-grid,
.experience,
.spaces,
.info-band,
.contact,
.intro,
.portal-hero,
.portal-columns {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border-color: var(--panel-border);
  background:
    linear-gradient(135deg, var(--panel-surface), rgba(255, 255, 255, 0.94)),
    linear-gradient(135deg, rgba(255, 202, 58, 0.1), rgba(25, 130, 196, 0.08));
  box-shadow: var(--premium-shadow);
}

.section-grid::before,
.experience::before,
.spaces::before,
.contact::before,
.portal-hero::before,
.portal-columns::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  z-index: -1;
  width: 8px;
  background: linear-gradient(180deg, var(--sun), var(--leaf), var(--sky));
}

.section-grid {
  grid-template-columns: minmax(300px, 0.82fr) minmax(0, 1fr);
  gap: clamp(44px, 6vw, 78px);
  align-items: start;
}

.experience {
  grid-template-columns: minmax(320px, 0.82fr) minmax(0, 0.95fr);
  gap: clamp(44px, 6vw, 76px);
  align-items: start;
}

.spaces {
  grid-template-columns: minmax(280px, 0.62fr) minmax(0, 0.9fr);
}

.section-grid > div:first-child,
.experience-copy,
.spaces > div,
.contact > div {
  max-width: 620px;
}

.text-stack,
.team-list,
.timeline {
  max-width: 720px;
  justify-self: stretch;
}

.eyebrow {
  margin-bottom: 8px;
  color: #873000;
  background: rgba(255, 221, 115, 0.74);
  letter-spacing: 0.1em;
}

h1 {
  font-size: clamp(48px, 6.6vw, 92px);
  line-height: 0.98;
}

h2 {
  max-width: 680px;
  font-size: clamp(40px, 4.8vw, 74px);
  line-height: 1;
  letter-spacing: -0.028em;
}

h3 {
  font-size: clamp(20px, 1.45vw, 24px);
}

.section-grid p,
.experience p,
.spaces p,
.contact p,
.team-list p,
.soft-list p {
  max-width: 680px;
}

.soft-list,
.team-list,
.timeline {
  gap: 16px;
}

.soft-list li,
.team-list article,
.timeline div {
  grid-template-columns: 54px minmax(0, 1fr);
  gap: 20px;
  align-items: start;
  border-radius: 22px;
  padding: 18px 20px;
  background: rgba(255, 255, 255, 0.88);
}

.team-list article {
  grid-template-columns: 1fr;
}

.soft-list li > span,
.timeline span {
  display: inline-flex;
  min-width: 48px;
  min-height: 34px;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  color: #7a2b00;
  background: rgba(255, 202, 58, 0.5);
}

.timeline div {
  grid-template-columns: 86px minmax(0, 1fr);
}

.timeline strong {
  align-self: center;
}

.team-list span {
  width: fit-content;
  border-radius: 999px;
  padding: 6px 11px;
  color: #7a2b00;
  background: rgba(255, 202, 58, 0.5);
}

.button {
  min-height: 50px;
  padding-inline: 22px;
  background:
    linear-gradient(135deg, #176aa8, #376996 54%, #5d4d90),
    linear-gradient(135deg, var(--sky), var(--violet));
  box-shadow: 0 12px 28px rgba(23, 53, 69, 0.18);
}

.button.secondary {
  background: linear-gradient(135deg, #ffdd73, #fff1bc);
}

.button:hover {
  box-shadow: 0 16px 32px rgba(23, 53, 69, 0.22);
}

.info-band {
  align-items: stretch;
}

.info-band div {
  border-radius: 24px;
  padding: 22px;
}

@media (max-width: 860px) {
  .site-header {
    width: min(100% - 24px, 1180px);
    grid-template-columns: 1fr auto;
    border-radius: 28px;
  }

  .navigation {
    top: 88px;
    right: 12px;
    left: 12px;
    border-radius: 24px;
    background: rgba(255, 253, 248, 0.98);
  }

  .navigation a,
  .navigation a[href="#contact"],
  .navigation a[href="espace-familles.html"] {
    justify-content: center;
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.62);
  }

  .hero,
  .intro,
  .section-grid,
  .experience,
  .spaces,
  .info-band,
  .contact {
    width: min(100% - 32px, 1120px);
  }

  .section-grid,
  .experience,
  .spaces,
  .contact,
  .portal-hero,
  .portal-columns {
    gap: 28px;
  }

  h2 {
    max-width: 100%;
  }
}

@media (max-width: 560px) {
  .site-header {
    margin-top: 10px;
    padding: 8px 10px;
  }

  .brand {
    gap: 9px;
    font-size: 15px;
  }

  .brand-mark {
    width: 38px;
    height: 38px;
  }

  .hero {
    padding-top: 126px;
  }

  .section-grid,
  .experience,
  .spaces,
  .info-band,
  .contact,
  .intro,
  .portal-hero,
  .portal-columns {
    padding: 24px;
  }

  .soft-list li,
  .timeline div {
    grid-template-columns: 1fr;
  }

  .soft-list li > span,
  .timeline span {
    width: fit-content;
  }
}

/* Accessibility and readability pass */
:root {
  --ink: #102733;
  --muted: #314a55;
  --deep-blue: #0f3448;
  --readable-surface: rgba(255, 255, 255, 0.91);
  --readable-surface-strong: rgba(255, 255, 255, 0.96);
  --focus: #0b5fc0;
  --line: rgba(16, 39, 51, 0.16);
  --shadow: 0 24px 70px rgba(16, 39, 51, 0.18);
}

body {
  color: var(--ink);
  background:
    radial-gradient(circle at 7% 10%, rgba(255, 202, 58, 0.42) 0 9%, transparent 18%),
    radial-gradient(circle at 91% 14%, rgba(25, 130, 196, 0.25) 0 8%, transparent 18%),
    radial-gradient(circle at 15% 58%, rgba(67, 170, 139, 0.24) 0 7%, transparent 18%),
    radial-gradient(circle at 88% 64%, rgba(255, 89, 94, 0.2) 0 8%, transparent 18%),
    radial-gradient(circle at 42% 88%, rgba(106, 76, 147, 0.16) 0 10%, transparent 20%),
    linear-gradient(135deg, #fff8d4 0%, #fffdf7 32%, #eaf8ff 62%, #f2fff0 100%);
  font-size: 17px;
}

body::before {
  opacity: 0.28;
}

body::after {
  opacity: 0.32;
}

.site-header {
  background: rgba(255, 253, 244, 0.96);
  box-shadow: 0 10px 30px rgba(16, 39, 51, 0.08);
}

.brand {
  color: var(--ink);
  font-weight: 850;
}

.navigation a {
  color: #263f4a;
  font-weight: 720;
}

.navigation a:hover,
.navigation a:focus-visible {
  color: #0d2631;
  background: rgba(255, 255, 255, 0.92);
  box-shadow: inset 0 0 0 1px rgba(16, 39, 51, 0.12);
}

.hero-copy,
.intro,
.section-grid,
.experience,
.spaces,
.info-band,
.contact,
.portal-hero,
.portal-columns {
  border: 1px solid rgba(255, 255, 255, 0.82);
  border-radius: 36px;
  background: var(--readable-surface);
  box-shadow: 0 18px 50px rgba(16, 39, 51, 0.1);
}

.hero-copy {
  padding: clamp(24px, 4vw, 42px);
  backdrop-filter: blur(14px);
}

.intro,
.section-grid,
.experience,
.spaces,
.info-band,
.contact,
.portal-hero,
.portal-columns {
  padding: clamp(34px, 5vw, 72px);
}

.intro {
  margin-top: 24px;
  margin-bottom: 24px;
}

.section-grid,
.experience,
.spaces,
.info-band,
.contact {
  margin-top: 34px;
  margin-bottom: 34px;
}

.eyebrow {
  width: fit-content;
  border-radius: 999px;
  padding: 7px 12px;
  color: #611d18;
  background: rgba(255, 202, 58, 0.72);
  font-size: 12px;
  font-weight: 900;
}

h1,
h2,
h3,
strong {
  color: var(--ink);
}

h1 {
  max-width: 820px;
  line-height: 0.98;
  letter-spacing: -0.03em;
}

h2 {
  line-height: 1.04;
  letter-spacing: -0.025em;
}

h3 {
  line-height: 1.16;
  letter-spacing: -0.01em;
}

.hero-copy > p,
.intro p,
.section-grid p,
.experience p,
.spaces p,
.contact p,
.portal-hero p,
.portal-columns p,
.auth-panel p,
.portal-grid p,
.family-dashboard p,
.admin-workflow p,
.team-list p {
  color: var(--muted);
  font-size: clamp(17px, 1.35vw, 20px);
  line-height: 1.72;
}

.intro p {
  color: var(--deep-blue);
  font-size: clamp(28px, 3.7vw, 48px);
  line-height: 1.24;
}

.button {
  min-height: 52px;
  color: #ffffff;
  background: linear-gradient(135deg, #0b65c8, #4c2d7f);
  box-shadow: 0 14px 28px rgba(15, 52, 72, 0.22);
  font-weight: 850;
}

.button:hover {
  transform: translateY(-2px);
  box-shadow: 0 18px 36px rgba(15, 52, 72, 0.28);
}

.button.secondary {
  color: #102733;
  background: #ffd447;
  box-shadow: inset 0 0 0 2px rgba(16, 39, 51, 0.12), 0 12px 24px rgba(255, 202, 58, 0.28);
}

.button:focus-visible,
.menu-toggle:focus-visible,
a:focus-visible,
input:focus-visible,
textarea:focus-visible {
  outline: 4px solid rgba(11, 95, 192, 0.36);
  outline-offset: 4px;
}

.soft-list li,
.team-list article,
.timeline div,
.info-band div,
.portal-grid article,
.family-dashboard div,
.admin-workflow div,
.admin-summary div,
.auth-panel {
  border: 1px solid rgba(16, 39, 51, 0.1);
  background: var(--readable-surface-strong);
  box-shadow: 0 10px 28px rgba(16, 39, 51, 0.07);
}

.soft-list li,
.team-list article,
.timeline div {
  border-radius: 24px;
  padding: 20px;
}

.soft-list li > span,
.timeline span,
.team-list span,
.portal-grid span,
.admin-summary span {
  color: #9d3900;
  font-weight: 900;
}

.info-band span,
.site-footer,
.site-footer a,
label {
  color: #304955;
}

.info-band strong {
  color: var(--deep-blue);
  font-size: clamp(22px, 2.1vw, 30px);
}

input,
textarea {
  color: var(--ink);
  background: #ffffff;
  box-shadow: inset 0 0 0 1px rgba(16, 39, 51, 0.2);
}

input::placeholder,
textarea::placeholder {
  color: #6c7f87;
  opacity: 1;
}

input:focus,
textarea:focus {
  outline: 4px solid rgba(11, 95, 192, 0.26);
  box-shadow: inset 0 0 0 2px var(--focus);
}

.auth-panel a {
  color: #8b3100;
}

.site-footer {
  border-top: 1px solid rgba(16, 39, 51, 0.12);
}

@media (max-width: 860px) {
  .navigation {
    background: rgba(255, 253, 249, 0.98);
  }

  .hero-copy,
  .intro,
  .section-grid,
  .experience,
  .spaces,
  .info-band,
  .contact,
  .portal-hero,
  .portal-columns {
    border-radius: 28px;
  }
}

@media (max-width: 560px) {
  body {
    font-size: 16px;
  }

  h1 {
    font-size: clamp(42px, 14vw, 58px);
  }

  h2 {
    font-size: clamp(32px, 10vw, 44px);
  }

  .hero-copy,
  .intro,
  .section-grid,
  .experience,
  .spaces,
  .info-band,
  .contact,
  .portal-hero,
  .portal-columns {
    padding: 24px;
    border-radius: 24px;
  }
}

/* Final reference lock: centered, contained home composition */
body.home-v2 main {
  width: 100%;
  max-width: 1660px;
  margin-inline: auto;
}

@media (min-width: 1100px) {
  body.home-v2 .landing-hero {
    width: min(1500px, calc(100% - 72px)) !important;
    max-width: 1500px !important;
    min-height: 664px !important;
    margin: 0 auto !important;
    padding: 76px 0 8px !important;
    display: grid !important;
    grid-template-columns: 570px 720px !important;
    gap: 92px !important;
    align-items: start !important;
    justify-content: space-between !important;
  }

  body.home-v2 .hero-content {
    width: 570px !important;
    max-width: 570px !important;
    padding: 0 !important;
    justify-self: start !important;
    text-align: left !important;
  }

  body.home-v2 .landing-kicker {
    width: fit-content !important;
    margin: 0 0 28px !important;
    padding: 12px 24px !important;
    border-radius: 999px !important;
    font-size: 14px !important;
    line-height: 1 !important;
    letter-spacing: 0.09em !important;
  }

  body.home-v2 .landing-hero h1 {
    width: 570px !important;
    max-width: 570px !important;
    margin: 0 0 24px !important;
    font-size: 90px !important;
    line-height: 0.99 !important;
    letter-spacing: -0.055em !important;
  }

  body.home-v2 .hero-lead {
    width: 560px !important;
    max-width: 560px !important;
    margin: 0 0 28px !important;
    font-size: 18px !important;
    line-height: 1.55 !important;
    font-weight: 650 !important;
  }

  body.home-v2 .hero-actions {
    gap: 20px !important;
    align-items: center !important;
    margin-top: 0 !important;
  }

  body.home-v2 .primary-cta,
  body.home-v2 .secondary-cta {
    min-height: 48px !important;
    padding: 0 26px !important;
    border-radius: 999px !important;
    font-size: 15px !important;
    line-height: 48px !important;
  }

  body.home-v2 .hero-photo {
    width: 720px !important;
    max-width: 720px !important;
    margin: -54px 0 0 !important;
    justify-self: start !important;
    transform: none !important;
  }

  body.home-v2 .hero-photo img {
    width: 720px !important;
    height: 560px !important;
    object-fit: cover !important;
    object-position: center !important;
    border-radius: 47% 53% 48% 52% / 40% 44% 56% 60% !important;
  }

  body.home-v2 .hero-photo::before {
    width: 260px !important;
    height: 190px !important;
    right: -58px !important;
    top: -76px !important;
    border-radius: 42% 58% 48% 52% / 58% 42% 58% 42% !important;
  }

  body.home-v2 .hero-photo::after {
    width: 220px !important;
    height: 188px !important;
    right: -30px !important;
    bottom: -4px !important;
    border-radius: 56% 44% 52% 48% / 46% 52% 48% 54% !important;
  }

  body.home-v2 .promise-section {
    width: min(1500px, calc(100% - 72px)) !important;
    max-width: 1500px !important;
    margin: -34px auto 0 !important;
    padding: 0 0 78px !important;
    display: grid !important;
    grid-template-columns: 820px 470px !important;
    gap: 104px !important;
    align-items: center !important;
    justify-content: space-between !important;
  }

  body.home-v2 .values-panel {
    width: 820px !important;
    max-width: 820px !important;
    padding: 38px 42px 34px !important;
    border-radius: 0 34px 34px 34px !important;
    background: rgba(255, 253, 238, 0.58) !important;
    box-shadow: 0 22px 58px rgba(24, 55, 76, 0.09) !important;
  }

  body.home-v2 .panel-title {
    margin: 0 0 28px !important;
    align-items: center !important;
    justify-content: flex-start !important;
    text-align: left !important;
  }

  body.home-v2 .panel-title h2 {
    font-size: 25px !important;
    line-height: 1.1 !important;
  }

  body.home-v2 .value-grid {
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 0 !important;
  }

  body.home-v2 .value-grid article {
    min-height: 210px !important;
    padding: 0 24px 0 0 !important;
    text-align: left !important;
  }

  body.home-v2 .value-grid article + article {
    padding-left: 24px !important;
  }

  body.home-v2 .value-icon {
    width: 58px !important;
    height: 58px !important;
    margin-bottom: 22px !important;
    font-size: 24px !important;
  }

  body.home-v2 .value-grid h3 {
    margin-bottom: 12px !important;
    font-size: 18px !important;
    line-height: 1.15 !important;
  }

  body.home-v2 .value-grid p {
    max-width: 130px !important;
    font-size: 14px !important;
    line-height: 1.52 !important;
  }

  body.home-v2 .promise-copy {
    width: 470px !important;
    max-width: 470px !important;
    padding-top: 62px !important;
    justify-self: start !important;
  }

  body.home-v2 .promise-copy p {
    max-width: 470px !important;
    margin: 0 !important;
    font-size: 22px !important;
    line-height: 1.62 !important;
    letter-spacing: -0.01em !important;
  }
}

@media (min-width: 1500px) {
  body.home-v2 .landing-hero,
  body.home-v2 .promise-section {
    transform: translateX(-18px);
  }
}

/* Project page reference */
body.project-v2 {
  min-height: 100vh;
  overflow-x: hidden;
  color: #061f3f;
  background:
    radial-gradient(circle at 0% 0%, rgba(255, 214, 96, 0.52), transparent 26rem),
    radial-gradient(circle at 98% 8%, rgba(132, 199, 238, 0.7), transparent 27rem),
    radial-gradient(circle at 96% 38%, rgba(255, 150, 178, 0.45), transparent 18rem),
    radial-gradient(circle at 0% 92%, rgba(175, 220, 240, 0.42), transparent 19rem),
    linear-gradient(135deg, #fff9e9 0%, #fffefd 42%, #eef9ff 100%);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

body.project-v2::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background:
    radial-gradient(circle, rgba(255, 196, 53, 0.85) 0 4px, transparent 5px) 9% 18% / 178px 170px,
    radial-gradient(circle, rgba(111, 185, 223, 0.6) 0 4px, transparent 5px) 22% 9% / 210px 188px,
    radial-gradient(circle, rgba(245, 126, 157, 0.68) 0 4px, transparent 5px) 84% 24% / 190px 190px,
    radial-gradient(circle, rgba(108, 183, 117, 0.62) 0 5px, transparent 6px) 60% 54% / 220px 210px;
  opacity: 0.42;
}

body.project-v2::after {
  content: "";
  position: fixed;
  right: -7vw;
  bottom: -14vw;
  z-index: -1;
  width: 44vw;
  min-width: 420px;
  aspect-ratio: 1;
  border-radius: 53% 47% 44% 56% / 43% 50% 50% 57%;
  background: linear-gradient(135deg, rgba(255, 224, 143, 0.42), rgba(244, 143, 164, 0.32), rgba(171, 222, 232, 0.46));
  filter: blur(1px);
}

.project-nav-shell {
  position: relative;
  z-index: 5;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  width: min(1440px, calc(100% - 72px));
  min-height: 98px;
  margin: 34px auto 0;
  padding: 0 44px;
  border: 1px solid rgba(6, 31, 63, 0.06);
  border-radius: 34px;
  background: rgba(255, 255, 255, 0.86);
  box-shadow: 0 20px 58px rgba(19, 46, 68, 0.12);
  backdrop-filter: blur(18px);
}

.project-brand,
.project-menu,
.family-pill {
  display: inline-flex;
  align-items: center;
}

.project-brand {
  gap: 18px;
  color: #061f3f;
  font-size: 22px;
  font-weight: 900;
  letter-spacing: -0.025em;
  text-decoration: none;
}

.project-logo {
  position: relative;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: conic-gradient(from 42deg, #ffd74e, #ff6f72 35%, #6446bc 66%, #61bde8 86%, #ffd74e);
  box-shadow: 0 12px 26px rgba(35, 58, 95, 0.14);
}

.project-logo::after {
  content: "";
  position: absolute;
  left: 16px;
  top: 18px;
  width: 20px;
  height: 13px;
  border: 4px solid #061f3f;
  border-top: 0;
  border-left: 0;
  border-radius: 0 0 18px 0;
  transform: rotate(32deg);
}

.project-menu {
  justify-content: center;
  gap: 34px;
}

.project-menu a,
.family-pill {
  color: #061f3f;
  font-size: 17px;
  font-weight: 800;
  text-decoration: none;
}

.project-menu a {
  position: relative;
  padding: 12px 0;
}

.project-menu a[aria-current="page"]::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 8px;
  border-radius: 999px;
  background: repeating-linear-gradient(90deg, #ffd447 0 18px, transparent 18px 23px);
  mask: radial-gradient(9px 6px at 8px 50%, #000 98%, transparent) 0 0 / 24px 8px repeat-x;
}

.family-pill {
  gap: 9px;
  justify-content: center;
  min-height: 56px;
  padding: 0 28px;
  border-radius: 999px;
  background: linear-gradient(135deg, #ffe189, #ffc84a);
  box-shadow: inset 0 -2px 0 rgba(151, 97, 0, 0.08), 0 13px 28px rgba(255, 194, 66, 0.22);
}

.project-page {
  position: relative;
  width: min(1440px, calc(100% - 72px));
  margin: 0 auto;
  overflow: visible;
}

.project-hero {
  position: relative;
  display: grid;
  grid-template-columns: 540px 1fr;
  gap: 88px;
  align-items: center;
  min-height: 620px;
  padding: 24px 46px 42px;
}

.project-copy {
  position: relative;
  display: grid;
  gap: 32px;
  align-content: center;
}

.breadcrumb {
  display: inline-flex;
  gap: 12px;
  align-items: center;
  color: #061f3f;
  font-size: 16px;
  font-weight: 650;
}

.breadcrumb a {
  border-radius: 999px;
  padding: 7px 10px;
  color: #061f3f;
  font-weight: 850;
  text-decoration: none;
  transition: background 0.18s ease, transform 0.18s ease;
}

.breadcrumb a:hover,
.breadcrumb a:focus-visible {
  background: rgba(255, 212, 71, 0.32);
  transform: translateY(-1px);
}

.project-copy h1,
.project-values h2,
.approach-text h2 {
  position: relative;
  color: #062347;
  font-weight: 950;
  letter-spacing: -0.055em;
}

.project-copy h1 {
  width: fit-content;
  font-size: 80px;
  line-height: 0.98;
}

.project-copy h1::after,
.project-values h2::after,
.approach-text h2::after {
  content: "";
  position: absolute;
  left: 4px;
  bottom: -13px;
  width: 112px;
  height: 10px;
  background: repeating-linear-gradient(90deg, #ffc928 0 16px, transparent 16px 23px);
  mask: radial-gradient(10px 7px at 9px 50%, #000 98%, transparent) 0 0 / 25px 10px repeat-x;
}

.project-copy > p:not(.breadcrumb) {
  max-width: 440px;
  color: #092a50;
  font-size: 18px;
  font-weight: 650;
  line-height: 1.82;
}

.line-star {
  position: absolute;
  right: 40px;
  top: 166px;
  color: #f1779d;
  font-size: 58px;
  line-height: 1;
}

.green-squiggle {
  width: 130px;
  height: 26px;
  margin-top: 8px;
  border-bottom: 6px solid rgba(122, 191, 117, 0.78);
  border-radius: 50%;
  transform: rotate(4deg);
}

.project-hero-photo,
.approach-photo {
  position: relative;
  margin: 0;
}

.project-hero-photo::before {
  content: "";
  position: absolute;
  right: -110px;
  top: -42px;
  z-index: -1;
  width: 280px;
  height: 235px;
  border-radius: 52% 48% 40% 60% / 50% 44% 56% 50%;
  background: rgba(129, 202, 239, 0.72);
}

.project-hero-photo::after {
  content: "";
  position: absolute;
  right: -52px;
  bottom: -52px;
  z-index: -1;
  width: 260px;
  height: 190px;
  border-radius: 54% 46% 45% 55% / 50% 46% 54% 50%;
  background:
    radial-gradient(circle, rgba(255, 255, 255, 0.82) 0 3px, transparent 4px) 15px 16px / 28px 28px,
    #f6a0b6;
}

.project-hero-photo img {
  display: block;
  width: 690px;
  height: 470px;
  object-fit: cover;
  object-position: center;
  border-radius: 48% 52% 47% 53% / 42% 45% 55% 58%;
  box-shadow: 0 26px 58px rgba(16, 39, 61, 0.12);
}

.project-values {
  position: relative;
  padding: 48px 46px 70px;
}

.project-values h2,
.approach-text h2 {
  margin-bottom: 54px;
  font-size: 36px;
  line-height: 1;
}

.project-values h2 span {
  display: inline-block;
  margin-left: 14px;
  color: #f1779d;
  font-size: 42px;
  transform: rotate(-12deg);
}

.project-value-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 34px;
}

.project-value-grid article {
  display: grid;
  min-height: 270px;
  justify-items: center;
  align-content: start;
  padding: 30px 26px 24px;
  border: 1px solid rgba(6, 31, 63, 0.08);
  border-radius: 28px;
  background: rgba(255, 255, 255, 0.56);
  box-shadow: 0 22px 52px rgba(30, 58, 82, 0.07);
  text-align: center;
  backdrop-filter: blur(10px);
}

.project-value-icon {
  display: grid;
  width: 86px;
  height: 86px;
  margin-bottom: 20px;
  place-items: center;
  border-radius: 999px;
  font-size: 42px;
  line-height: 1;
}

.project-value-icon.green { color: #3f9b36; background: #dff2cf; }
.project-value-icon.pink { color: #f25f91; background: #ffe0ea; }
.project-value-icon.blue { color: #1472cf; background: #dcefff; }
.project-value-icon.yellow { color: #ee9b00; background: #fff0bd; }

.project-value-grid h3 {
  margin-bottom: 14px;
  font-size: 19px;
  line-height: 1.15;
  font-weight: 950;
  letter-spacing: -0.02em;
}

.project-value-grid article:nth-child(1) h3 { color: #3f9b36; }
.project-value-grid article:nth-child(2) h3 { color: #f25f91; }
.project-value-grid article:nth-child(3) h3 { color: #1472cf; }
.project-value-grid article:nth-child(4) h3 { color: #ee9b00; }

.project-value-grid p {
  max-width: 210px;
  color: #092a50;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.72;
}

.project-approach {
  position: relative;
  display: grid;
  grid-template-columns: 430px 1fr;
  gap: 80px;
  align-items: center;
  min-height: 500px;
  margin: 8px 0 0;
  padding: 52px 58px 50px;
  border-radius: 44px;
  background: rgba(255, 255, 255, 0.46);
  box-shadow: 0 20px 60px rgba(25, 49, 74, 0.07);
}

.approach-text p {
  max-width: 410px;
  margin-bottom: 24px;
  color: #092a50;
  font-size: 16px;
  font-weight: 650;
  line-height: 1.72;
}

.approach-text ul {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.approach-text li {
  position: relative;
  padding-left: 34px;
  color: #092a50;
  font-size: 16px;
  font-weight: 700;
}

.approach-text li::before {
  content: "\2713";
  position: absolute;
  left: 0;
  top: -1px;
  display: grid;
  width: 22px;
  height: 22px;
  place-items: center;
  border-radius: 50%;
  color: #3f9b36;
  background: #e4f5da;
  font-size: 16px;
}

.approach-photo::before {
  content: "";
  position: absolute;
  left: -54px;
  top: -20px;
  z-index: -1;
  width: 190px;
  height: 140px;
  border-radius: 50%;
  background: rgba(255, 212, 79, 0.52);
}

.approach-photo img {
  display: block;
  width: 710px;
  height: 360px;
  object-fit: cover;
  object-position: center;
  border-radius: 32% 68% 36% 64% / 46% 34% 66% 54%;
  box-shadow: 0 22px 46px rgba(19, 47, 70, 0.1);
}

.project-cta {
  display: grid;
  grid-template-columns: 120px 1fr auto;
  gap: 32px;
  align-items: center;
  min-height: 142px;
  margin: 58px 60px 92px;
  padding: 24px 58px;
  border-radius: 32px;
  background: linear-gradient(135deg, #ffeaa8, #ffd26c 60%, #ffe09a);
  box-shadow: 0 22px 48px rgba(194, 139, 35, 0.14);
}

.sun-doodle {
  position: relative;
  width: 58px;
  height: 58px;
  border: 4px solid rgba(255, 255, 255, 0.92);
  border-radius: 50%;
}

.sun-doodle::before {
  content: "";
  position: absolute;
  inset: -22px;
  background: repeating-conic-gradient(from 0deg, rgba(255, 255, 255, 0.95) 0 7deg, transparent 7deg 28deg);
  border-radius: 50%;
  mask: radial-gradient(circle, transparent 0 36px, #000 37px 42px, transparent 43px);
}

.project-cta p {
  color: #061f3f;
  font-size: 24px;
  font-weight: 950;
  line-height: 1.22;
  letter-spacing: -0.025em;
}

.project-cta a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 330px;
  min-height: 56px;
  padding: 0 36px;
  border-radius: 999px;
  color: #ffffff;
  background: linear-gradient(135deg, #315ed6, #4f3096);
  box-shadow: 0 18px 34px rgba(58, 62, 161, 0.24);
  font-size: 16px;
  font-weight: 900;
  text-decoration: none;
}

@media (max-width: 1180px) {
  .project-nav-shell,
  .project-page {
    width: min(100% - 40px, 1440px);
  }

  .project-nav-shell {
    grid-template-columns: 1fr;
    justify-items: center;
    gap: 18px;
    padding: 24px;
  }

  .project-menu {
    gap: 24px;
    flex-wrap: wrap;
  }

  .project-hero,
  .project-approach {
    grid-template-columns: 1fr;
  }

  .project-hero-photo img,
  .approach-photo img {
    width: 100%;
  }

  .project-value-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .project-cta {
    grid-template-columns: 1fr;
    justify-items: start;
  }
}

@media (max-width: 680px) {
  .project-nav-shell,
  .project-page {
    width: min(100% - 28px, 1440px);
  }

  .project-nav-shell {
    margin-top: 14px;
    border-radius: 26px;
  }

  .project-menu {
    gap: 14px;
  }

  .project-menu a,
  .family-pill {
    font-size: 14px;
  }

  .project-hero,
  .project-values,
  .project-approach {
    padding-left: 10px;
    padding-right: 10px;
  }

  .project-copy h1 {
    font-size: clamp(54px, 17vw, 72px);
  }

  .project-value-grid {
    grid-template-columns: 1fr;
  }

  .project-hero-photo img {
    height: 340px;
  }

  .approach-photo img {
    height: 280px;
  }

  .project-cta {
    margin: 38px 0 62px;
    padding: 28px;
  }

  .project-cta a {
    min-width: 0;
    width: 100%;
  }
}

/* Daily page */
body.daily-v2::after {
  right: -4vw;
  bottom: -11vw;
}

.daily-page {
  width: min(1440px, calc(100% - 72px));
  margin: 0 auto;
}

.daily-hero {
  position: relative;
  display: grid;
  grid-template-columns: 470px 1fr;
  gap: 84px;
  align-items: center;
  min-height: 780px;
  padding: 48px 44px 76px;
}

.daily-hero::before {
  content: "";
  position: absolute;
  right: -90px;
  top: -150px;
  z-index: -1;
  width: 360px;
  height: 260px;
  border-radius: 48% 52% 45% 55% / 50% 42% 58% 50%;
  background: rgba(129, 202, 239, 0.68);
}

.daily-intro {
  position: relative;
  display: grid;
  align-content: center;
  gap: 34px;
}

.daily-intro h1,
.spaces-section h1,
.spaces-section h2 {
  position: relative;
  color: #062347;
  font-weight: 950;
  letter-spacing: -0.055em;
}

.daily-intro h1 {
  width: fit-content;
  font-size: 70px;
  line-height: 0.98;
}

.daily-intro h1::after,
.spaces-section h1::after,
.spaces-section h2::after {
  content: "";
  position: absolute;
  left: 4px;
  bottom: -14px;
  width: 112px;
  height: 10px;
  background: repeating-linear-gradient(90deg, #ffc928 0 16px, transparent 16px 23px);
  mask: radial-gradient(10px 7px at 9px 50%, #000 98%, transparent) 0 0 / 25px 10px repeat-x;
}

.daily-intro > p {
  max-width: 330px;
  color: #092a50;
  font-size: 19px;
  font-weight: 650;
  line-height: 1.8;
}

.daily-heart {
  position: absolute;
  right: 90px;
  top: 320px;
  color: #f1779d;
  font-size: 60px;
  transform: rotate(-14deg);
}

.daily-photo {
  position: relative;
  width: 420px;
  margin: 8px 0 0;
}

.daily-photo::before {
  content: "";
  position: absolute;
  left: -34px;
  top: -32px;
  z-index: -1;
  width: 200px;
  height: 150px;
  border-radius: 55% 45% 48% 52% / 45% 50% 50% 55%;
  background: rgba(255, 214, 93, 0.7);
}

.daily-photo img {
  display: block;
  width: 420px;
  height: 245px;
  object-fit: cover;
  border-radius: 48% 52% 44% 56% / 46% 40% 60% 54%;
  box-shadow: 0 22px 46px rgba(16, 39, 61, 0.12);
}

.daily-schedule {
  position: relative;
  display: grid;
  gap: 18px;
}

.daily-schedule::after {
  content: "";
  position: absolute;
  right: -128px;
  top: 36px;
  width: 112px;
  height: 112px;
  border: 8px solid #ffc43d;
  border-radius: 50%;
  box-shadow: 0 0 0 24px rgba(255, 196, 61, 0.08);
}

.daily-schedule article {
  display: grid;
  grid-template-columns: 88px 1fr 78px;
  gap: 28px;
  align-items: center;
  min-height: 100px;
  padding: 18px 28px;
  border: 1px solid rgba(6, 31, 63, 0.08);
  border-radius: 24px;
  background: rgba(255, 255, 255, 0.62);
  box-shadow: 0 18px 44px rgba(21, 48, 73, 0.08);
  backdrop-filter: blur(10px);
}

.time {
  display: inline-grid;
  min-width: 78px;
  height: 40px;
  place-items: center;
  border-radius: 999px;
  color: #062347;
  font-size: 19px;
  font-weight: 950;
}

.time.yellow { background: #ffd968; }
.time.green { background: #8dde89; }
.time.pink { background: #ffb7c3; }
.time.blue { background: #a9dcfb; }
.time.purple { background: #d5baf2; }

.daily-schedule h2 {
  margin-bottom: 7px;
  color: #062347;
  font-size: 20px;
  line-height: 1.15;
  font-weight: 950;
  letter-spacing: -0.02em;
}

.daily-schedule p {
  color: #092a50;
  font-size: 16px;
  font-weight: 650;
  line-height: 1.55;
}

.schedule-icon {
  display: grid;
  width: 68px;
  height: 68px;
  place-items: center;
  border-radius: 50%;
  font-size: 33px;
  line-height: 1;
}

.schedule-icon.peach { color: #f28e2b; background: #fff0df; }
.schedule-icon.green { color: #52b850; background: #e6f7df; }
.schedule-icon.pink { color: #f25f91; background: #ffe5ee; }
.schedule-icon.blue { color: #1472cf; background: #e0f2ff; }
.schedule-icon.purple { color: #8f5bd6; background: #efe4ff; }
.schedule-icon.yellow { color: #ee9b00; background: #fff2c7; }

.spaces-section {
  position: relative;
  margin: 0 -36px;
  padding: 68px 80px 86px;
  background: rgba(255, 255, 255, 0.5);
  box-shadow: inset 0 30px 70px rgba(28, 53, 76, 0.04);
}

.spaces-section h1,
.spaces-section h2 {
  width: fit-content;
  margin: 32px 0 30px;
  font-size: 64px;
  line-height: 1;
}

.spaces-lead {
  max-width: 420px;
  margin-bottom: 34px;
  color: #092a50;
  font-size: 18px;
  font-weight: 650;
  line-height: 1.75;
}

.spaces-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 36px;
}

.spaces-grid article {
  position: relative;
  overflow: hidden;
  min-height: 382px;
  border: 1px solid rgba(6, 31, 63, 0.07);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.78);
  box-shadow: 0 22px 52px rgba(22, 49, 72, 0.09);
}

.spaces-grid img {
  display: block;
  width: 100%;
  height: 190px;
  object-fit: cover;
}

.space-icon {
  display: grid;
  width: 68px;
  height: 68px;
  margin: -34px 0 16px 36px;
  place-items: center;
  position: relative;
  z-index: 1;
  border-radius: 50%;
  font-size: 34px;
  box-shadow: 0 12px 24px rgba(18, 45, 67, 0.08);
}

.space-icon.yellow { color: #ee9b00; background: #fff2c7; }
.space-icon.pink { color: #f25f91; background: #ffe5ee; }
.space-icon.blue { color: #1472cf; background: #e0f2ff; }
.space-icon.green { color: #52b850; background: #e6f7df; }
.space-icon.purple { color: #8f5bd6; background: #efe4ff; }

.spaces-grid h2,
.spaces-grid h3 {
  padding: 0 34px;
  color: #062347;
  font-size: 22px;
  line-height: 1.2;
  font-weight: 950;
  letter-spacing: -0.02em;
}

.spaces-grid p {
  max-width: 260px;
  padding: 12px 34px 34px;
  color: #092a50;
  font-size: 17px;
  font-weight: 650;
  line-height: 1.55;
}

/* Team and contact pages */
.team-page,
.contact-page {
  width: min(1440px, calc(100% - 72px));
  margin: 0 auto;
}

.team-hero {
  position: relative;
  min-height: 330px;
  padding: 58px 42px 28px;
}

.team-hero::after {
  content: "";
  position: absolute;
  right: -44px;
  top: 48px;
  z-index: -1;
  width: 270px;
  height: 210px;
  border-radius: 49% 51% 45% 55% / 46% 48% 52% 54%;
  background: rgba(218, 239, 204, 0.76);
}

.team-hero h1,
.contact-copy h1 {
  position: relative;
  width: fit-content;
  color: #062347;
  font-weight: 950;
  letter-spacing: -0.055em;
}

.team-hero h1 {
  margin: 54px 0 32px;
  font-size: 76px;
  line-height: 0.98;
}

.team-hero h1::after,
.contact-copy h1::after {
  content: "";
  position: absolute;
  left: 4px;
  bottom: -14px;
  width: 112px;
  height: 10px;
  background: repeating-linear-gradient(90deg, #ffc928 0 16px, transparent 16px 23px);
  mask: radial-gradient(10px 7px at 9px 50%, #000 98%, transparent) 0 0 / 25px 10px repeat-x;
}

.team-hero p {
  max-width: 360px;
  color: #092a50;
  font-size: 18px;
  font-weight: 650;
  line-height: 1.75;
}

.team-heart,
.team-star {
  position: absolute;
  color: #f1779d;
  line-height: 1;
}

.team-heart {
  left: 340px;
  top: 150px;
  font-size: 58px;
  transform: rotate(-10deg);
}

.team-star {
  left: 470px;
  top: 292px;
  font-size: 52px;
}

.team-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 34px;
  padding: 0 34px 72px;
}

.team-grid article {
  position: relative;
  display: grid;
  grid-template-columns: 170px 1fr;
  gap: 28px;
  align-items: center;
  min-height: 260px;
  padding: 28px;
  border: 1px solid rgba(6, 31, 63, 0.07);
  border-radius: 24px;
  background: rgba(255, 255, 255, 0.66);
  box-shadow: 0 18px 48px rgba(22, 49, 72, 0.08);
  backdrop-filter: blur(12px);
}

.team-grid img {
  width: 165px;
  height: 190px;
  object-fit: cover;
  border-radius: 45% 55% 48% 52% / 44% 48% 52% 56%;
}

.team-role-icon {
  width: 128px;
  height: 128px;
  display: grid;
  place-items: center;
  flex: 0 0 128px;
  border-radius: 44% 56% 52% 48% / 48% 42% 58% 52%;
  font-size: 3rem;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.72), 0 18px 40px rgba(30,48,79,.08);
}

.team-role-icon.pink { color: #f25f91; background: #ffe5ee; }
.team-role-icon.yellow { color: #ee9b00; background: #fff2c7; }
.team-role-icon.green { color: #52a84f; background: #e6f7df; }
.team-role-icon.blue { color: #1472cf; background: #e0f2ff; }
.team-role-icon.purple { color: #8f5bd6; background: #efe4ff; }

.ap-row-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.ap-row-actions button {
  min-height: 36px;
  border: 1px solid rgba(101,70,210,.18);
  border-radius: 999px;
  padding: 0 13px;
  background: rgba(255,255,255,.86);
  color: #09285c;
  font-weight: 900;
  cursor: pointer;
}

.ap-row-actions button[data-delete-id],
.ap-row-actions button[data-registration-status="Refusee"] {
  color: #dc3b6d;
  background: #fff1f5;
}

.ap-row-actions button[data-registration-convert-id],
.ap-row-actions button[data-child-family-id] {
  color: #1d7a5f;
  background: #eaf8f1;
}

.ap-status {
  display: inline-flex;
  width: fit-content;
  min-height: 30px;
  align-items: center;
  border-radius: 999px;
  padding: 0 11px;
  color: #6b35cd;
  background: #f2e9ff;
  font-size: .86rem;
  font-weight: 950;
}

/* Modern action polish */
.ap-primary,
.primary-cta,
.family-pill,
.account-pill,
.fp-logout,
.fp-toolbar button,
.fp-side-card a,
.ap-row-actions button,
.ap-modal-card button[type="submit"],
.registration-modal button {
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease;
}

.ap-primary:hover,
.primary-cta:hover,
.family-pill:hover,
.account-pill:hover,
.fp-logout:hover,
.fp-toolbar button:hover,
.fp-side-card a:hover,
.ap-modal-card button[type="submit"]:hover,
.registration-modal button:hover {
  transform: translateY(-2px);
  box-shadow: 0 18px 42px rgba(34, 73, 154, .2);
}

.ap-row-actions button:hover,
.ap-row-actions button:focus-visible {
  transform: translateY(-1px);
  border-color: rgba(101, 70, 210, .34);
  box-shadow: 0 12px 26px rgba(31, 53, 91, .12);
}

.ap-modal {
  z-index: 120;
  background: rgba(5, 20, 46, .52);
}

.ap-modal-card {
  border: 1px solid rgba(255, 255, 255, .72);
}

.ap-modal-card h2 {
  padding-right: 42px;
  font-size: 1.65rem;
}

.ap-modal-card input:focus,
.ap-modal-card select:focus,
.ap-modal-card textarea:focus,
.registration-card input:focus,
.registration-card textarea:focus {
  outline: 3px solid rgba(45, 125, 224, .16);
  border-color: rgba(45, 125, 224, .62);
}

.ap-modal-close:hover,
.ap-modal-close:focus-visible {
  background: #e7ddff;
  transform: rotate(90deg);
}

.fp-side-card a {
  width: fit-content;
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 0 15px;
  color: #fff;
  background: linear-gradient(90deg, #236dd8, #7439d4);
  text-decoration: none;
}

.fp-toolbar button {
  border: 1px solid rgba(99, 78, 205, .18);
}

.fp-toolbar button.active,
.fp-toolbar button[aria-pressed="true"] {
  color: #fff;
  background: linear-gradient(90deg, #236dd8, #7439d4);
  box-shadow: 0 14px 30px rgba(55, 76, 174, .18);
}

nav a[hidden] {
  display: none !important;
}

/* Administration workflow refinement */
.admin-app .ap-card,
.admin-app .ap-stat,
.admin-app .ap-tip,
.admin-app .ap-inline-search input,
.admin-app .ap-modal-card {
  border-radius: 8px;
}

.admin-app .ap-head h1::after,
.admin-app .ap-card h2::after {
  display: none;
}

.admin-app .ap-head h1 {
  font-size: clamp(2rem, 2.6vw, 3rem);
  letter-spacing: 0;
}

.ap-context-actions {
  margin: -4px 0 22px;
  display: flex;
  justify-content: flex-end;
}

/* Administration daily cockpit */
.ap-top-date {
  position: relative;
  width: auto !important;
  min-width: 230px;
  min-height: 46px;
  padding: 6px 14px;
  display: flex;
  align-items: center;
  gap: 10px;
  border: 1px solid rgba(190, 205, 229, .72);
  border-radius: 8px;
  color: #0b2b59;
  background: rgba(255, 255, 255, .76);
  cursor: pointer;
}

.ap-top-date > span:first-child {
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #7437e8;
  background: #f3ebff;
}

.ap-top-date > span:nth-child(2) {
  display: grid;
  gap: 1px;
}

.ap-top-date small {
  color: #77849c;
  font-size: .68rem;
  font-weight: 750;
}

.ap-top-date strong {
  font-size: .78rem;
  line-height: 1.2;
}

.ap-top-date input {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  min-height: 0;
  opacity: 0;
  cursor: pointer;
}

.ap-notification {
  margin-left: -8px;
}

.ap-dashboard-head {
  margin: 2px 0 22px;
}

.ap-dashboard-head h1 {
  margin: 0;
  color: #0b2b59;
  font-size: clamp(1.8rem, 2.4vw, 2.65rem);
  line-height: 1.08;
  letter-spacing: 0;
}

.ap-dashboard-head h1 span {
  display: inline-block;
  font-size: .72em;
  transform: translateY(-2px);
}

.ap-dashboard-head p {
  margin: 7px 0 0;
  color: #65738f;
  font-weight: 720;
}

.ap-dashboard-cockpit {
  display: grid;
  gap: 20px;
}

.ap-dashboard-loading {
  min-height: 330px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 15px;
  color: #6f7d97;
}

.ap-dashboard-loading span {
  width: 38px;
  height: 38px;
  border: 3px solid #eee8fb;
  border-top-color: #7437e8;
  border-radius: 50%;
  animation: ap-cockpit-spin .8s linear infinite;
}

@keyframes ap-cockpit-spin { to { transform: rotate(360deg); } }

.ap-cockpit-kpis {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 14px;
}

.ap-cockpit-kpi {
  position: relative;
  min-height: 118px;
  padding: 17px;
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) 16px;
  align-items: center;
  gap: 12px;
  overflow: hidden;
  border: 1px solid rgba(205, 216, 232, .82);
  border-radius: 8px;
  color: #0b2b59;
  background: rgba(255, 255, 255, .84);
  box-shadow: 0 10px 28px rgba(42, 61, 93, .06);
  text-decoration: none;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.ap-cockpit-kpi::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 3px;
  background: var(--cockpit-accent);
  opacity: .72;
}

.ap-cockpit-kpi:hover,
.ap-cockpit-kpi:focus-visible,
.ap-today-item:hover,
.ap-today-item:focus-visible,
.ap-attention-item:hover,
.ap-attention-item:focus-visible,
.ap-occupancy-row:hover,
.ap-occupancy-row:focus-visible,
.ap-upcoming-item:hover,
.ap-upcoming-item:focus-visible {
  transform: translateY(-2px);
  border-color: color-mix(in srgb, var(--cockpit-accent, #7437e8) 30%, #d5deeb);
  box-shadow: 0 14px 30px rgba(42, 61, 93, .1);
}

.ap-cockpit-kpi.purple { --cockpit-accent: #7437e8; --cockpit-soft: #f3ebff; }
.ap-cockpit-kpi.green { --cockpit-accent: #3d9c54; --cockpit-soft: #eaf7ed; }
.ap-cockpit-kpi.pink { --cockpit-accent: #e85b89; --cockpit-soft: #fff0f5; }
.ap-cockpit-kpi.yellow { --cockpit-accent: #d88d12; --cockpit-soft: #fff5dd; }
.ap-cockpit-kpi.blue { --cockpit-accent: #2978cf; --cockpit-soft: #edf6ff; }

.ap-cockpit-kpi-icon {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: var(--cockpit-accent);
  background: var(--cockpit-soft);
}

.ap-cockpit-kpi-icon svg { width: 22px; height: 22px; }
.ap-cockpit-kpi > span:nth-child(2) { min-width: 0; }
.ap-cockpit-kpi strong,
.ap-cockpit-kpi b,
.ap-cockpit-kpi small { display: block; }
.ap-cockpit-kpi strong { margin-bottom: 1px; font-size: 1.7rem; line-height: 1; }
.ap-cockpit-kpi b { font-size: .88rem; line-height: 1.25; }
.ap-cockpit-kpi small { margin-top: 5px; color: #75819a; font-size: .7rem; line-height: 1.32; font-weight: 700; }
.ap-cockpit-kpi > i { color: #a7b1c2; }
.ap-cockpit-kpi > i svg { width: 16px; height: 16px; }

.ap-cockpit-primary,
.ap-cockpit-secondary {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(330px, .8fr);
  gap: 20px;
  align-items: start;
}

.ap-dashboard-cockpit .ap-card {
  padding: 22px;
  box-shadow: 0 10px 30px rgba(42, 61, 93, .065);
}

.ap-dashboard-cockpit .ap-card > header {
  min-height: 48px;
  margin-bottom: 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}

.ap-dashboard-cockpit .ap-card > header > div {
  display: flex;
  align-items: center;
  gap: 11px;
}

.ap-dashboard-cockpit .ap-card > header > div > span {
  width: 38px;
  height: 38px;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #7437e8;
  background: #f3ebff;
}

.ap-dashboard-cockpit .ap-card > header h2 {
  margin: 0;
  font-size: 1.08rem;
}

.ap-dashboard-cockpit .ap-card > header p {
  margin: 3px 0 0;
  color: #78849b;
  font-size: .75rem;
  font-weight: 700;
}

.ap-dashboard-cockpit .ap-card > header > a,
.ap-cockpit-footer-link {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: #6731cc;
  font-size: .76rem;
  font-weight: 850;
  text-decoration: none;
}

.ap-dashboard-cockpit .ap-card > header > a svg,
.ap-cockpit-footer-link svg { width: 15px; height: 15px; }

.ap-today-list,
.ap-attention-list,
.ap-cockpit-upcoming > div {
  display: grid;
  gap: 7px;
}

.ap-today-item {
  --cockpit-accent: #7437e8;
  min-height: 62px;
  padding: 8px 10px;
  display: grid;
  grid-template-columns: 82px 38px minmax(0, 1fr) 18px;
  align-items: center;
  gap: 11px;
  border: 1px solid transparent;
  border-radius: 8px;
  color: #0b2b59;
  background: #fbfcfe;
  text-decoration: none;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.ap-today-item.orange { --cockpit-accent: #d88d12; }
.ap-today-item.yellow { --cockpit-accent: #d88d12; }
.ap-today-item.blue { --cockpit-accent: #2978cf; }
.ap-today-item.pink { --cockpit-accent: #e85b89; }
.ap-today-item.green { --cockpit-accent: #3d9c54; }
.ap-today-item time { color: #53627f; font-size: .76rem; font-weight: 850; }
.ap-today-item > span:nth-child(2) { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%; color: var(--cockpit-accent); background: color-mix(in srgb, var(--cockpit-accent) 10%, white); }
.ap-today-item > span:nth-child(2) svg { width: 19px; height: 19px; }
.ap-today-item strong,
.ap-today-item small,
.ap-today-item em { display: block; }
.ap-today-item strong { font-size: .82rem; }
.ap-today-item small,
.ap-today-item em { margin-top: 2px; color: #738099; font-size: .7rem; font-style: normal; }
.ap-today-item > i { color: #adb6c5; }

.ap-attention-item {
  --cockpit-accent: #2978cf;
  padding: 11px;
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) 18px;
  align-items: center;
  gap: 11px;
  border: 1px solid transparent;
  border-radius: 8px;
  color: #0b2b59;
  background: #f3f8ff;
  text-decoration: none;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.ap-attention-item.urgent { --cockpit-accent: #d94c75; background: #fff3f7; }
.ap-attention-item.attention { --cockpit-accent: #cb8410; background: #fff8e9; }
.ap-attention-item > span:first-child { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%; color: var(--cockpit-accent); background: rgba(255, 255, 255, .76); }
.ap-attention-item > span:first-child svg { width: 19px; height: 19px; }
.ap-attention-item small { display: block; margin-bottom: 2px; color: var(--cockpit-accent); font-size: .63rem; font-weight: 850; text-transform: uppercase; }
.ap-attention-item strong { font-size: .8rem; line-height: 1.3; }
.ap-attention-item p { margin: 2px 0 0; color: #748098; font-size: .68rem; line-height: 1.35; }
.ap-attention-item > i { color: var(--cockpit-accent); }

.ap-cockpit-actions > div {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 10px;
}

.ap-cockpit-actions > div > a {
  min-height: 72px;
  padding: 10px;
  display: flex;
  align-items: center;
  gap: 10px;
  border: 1px solid rgba(205, 216, 232, .72);
  border-radius: 8px;
  color: #0b2b59;
  background: #fff;
  font-size: .75rem;
  font-weight: 850;
  text-decoration: none;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.ap-cockpit-actions > div > a:hover,
.ap-cockpit-actions > div > a:focus-visible { transform: translateY(-2px); border-color: #d6c5f4; box-shadow: 0 11px 24px rgba(42, 61, 93, .08); }
.ap-cockpit-actions > div > a > span { width: 35px; height: 35px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 50%; color: #7437e8; background: #f3ebff; }
.ap-cockpit-actions > div > a:nth-child(2) > span { color: #e85b89; background: #fff0f5; }
.ap-cockpit-actions > div > a:nth-child(3) > span { color: #2978cf; background: #edf6ff; }
.ap-cockpit-actions > div > a:nth-child(4) > span { color: #d88d12; background: #fff5dd; }
.ap-cockpit-actions > div > a:nth-child(5) > span { color: #3d9c54; background: #eaf7ed; }
.ap-cockpit-actions > div > a > span svg { width: 18px; height: 18px; }

.ap-cockpit-occupancy > div { display: grid; gap: 4px; }
.ap-occupancy-row {
  --cockpit-accent: #3d9c54;
  position: relative;
  min-height: 63px;
  padding: 9px 50px 9px 10px;
  display: grid;
  grid-template-columns: minmax(145px, .75fr) minmax(120px, 1fr) minmax(130px, .65fr);
  align-items: center;
  gap: 14px;
  border: 1px solid transparent;
  border-radius: 8px;
  color: #0b2b59;
  text-decoration: none;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.ap-occupancy-row.warning { --cockpit-accent: #d88d12; }
.ap-occupancy-row.critical { --cockpit-accent: #d94c75; }
.ap-occupancy-row > span:first-child { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.ap-occupancy-row strong { font-size: .79rem; }
.ap-occupancy-row b { color: #64718a; font-size: .7rem; white-space: nowrap; }
.ap-occupancy-track { height: 7px; overflow: hidden; border-radius: 999px; background: #edf0f5; }
.ap-occupancy-track i { display: block; height: 100%; border-radius: inherit; background: var(--cockpit-accent); }
.ap-occupancy-row small { color: #68758d; font-size: .68rem; font-weight: 720; }
.ap-occupancy-row em { position: absolute; right: 10px; color: var(--cockpit-accent); font-size: .7rem; font-style: normal; font-weight: 900; }

.ap-upcoming-item {
  --cockpit-accent: #7437e8;
  min-height: 61px;
  padding: 9px 7px;
  display: grid;
  grid-template-columns: 34px 57px minmax(0, 1fr) 16px;
  align-items: center;
  gap: 8px;
  border: 1px solid transparent;
  border-radius: 8px;
  color: #0b2b59;
  text-decoration: none;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.ap-upcoming-item.pink { --cockpit-accent: #e85b89; }
.ap-upcoming-item.orange,
.ap-upcoming-item.yellow { --cockpit-accent: #d88d12; }
.ap-upcoming-item.blue { --cockpit-accent: #2978cf; }
.ap-upcoming-item.green { --cockpit-accent: #3d9c54; }
.ap-upcoming-item > span:first-child { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; color: var(--cockpit-accent); background: color-mix(in srgb, var(--cockpit-accent) 10%, white); }
.ap-upcoming-item > span:first-child svg { width: 17px; height: 17px; }
.ap-upcoming-item time { color: var(--cockpit-accent); font-size: .68rem; font-weight: 850; }
.ap-upcoming-item strong,
.ap-upcoming-item small { display: block; }
.ap-upcoming-item strong { font-size: .77rem; }
.ap-upcoming-item small { margin-top: 2px; color: #748098; font-size: .66rem; }
.ap-cockpit-footer-link { margin-top: 15px; justify-content: flex-end; }

.ap-cockpit-empty {
  min-height: 150px;
  padding: 20px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 7px;
  text-align: center;
  color: #0b2b59;
  border: 1px dashed rgba(190, 205, 229, .72);
  border-radius: 8px;
  background: #fbfcfe;
}
.ap-cockpit-empty > span { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%; color: #7437e8; background: #f3ebff; }
.ap-cockpit-empty > span svg { width: 20px; height: 20px; }
.ap-cockpit-empty strong { font-size: .83rem; }
.ap-cockpit-empty p { margin: 0; color: #77839a; font-size: .7rem; }
.ap-cockpit-empty a,
.ap-cockpit-empty button { margin-top: 4px; min-height: 38px; padding: 0 13px; display: inline-flex; align-items: center; gap: 6px; border: 1px solid #d7c6f4; border-radius: 8px; color: #6731cc; background: #fff; font-size: .72rem; font-weight: 850; text-decoration: none; }
.ap-cockpit-empty a svg,
.ap-cockpit-empty button svg { width: 15px; height: 15px; }

.ap-dashboard-error { grid-column: 1 / -1; }

@media (max-width: 1450px) {
  .ap-cockpit-kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ap-cockpit-actions > div { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 1120px) {
  .ap-top-date { min-width: 195px; }
  .ap-top-date small { display: none; }
  .ap-cockpit-primary,
  .ap-cockpit-secondary { grid-template-columns: 1fr; }
}

@media (max-width: 820px) {
  .ap-cockpit-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ap-cockpit-actions > div { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ap-occupancy-row { grid-template-columns: 1fr; padding-right: 50px; gap: 7px; }
  .ap-occupancy-row > span:first-child { justify-content: flex-start; }
}

@media (max-width: 560px) {
  .ap-top-date { min-width: 0; width: 46px !important; padding: 6px; }
  .ap-top-date > span:nth-child(2) { display: none; }
  .ap-cockpit-kpis,
  .ap-cockpit-actions > div { grid-template-columns: 1fr; }
  .ap-today-item { grid-template-columns: 64px 34px minmax(0, 1fr); }
  .ap-today-item > i { display: none; }
  .ap-dashboard-cockpit .ap-card > header { align-items: flex-start; flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
  .ap-dashboard-loading span { animation: none; }
  .ap-cockpit-kpi,
  .ap-today-item,
  .ap-attention-item,
  .ap-occupancy-row,
  .ap-upcoming-item { transition: none; }
}

/* Administration navigation domains */
.admin-app {
  --ap-sidebar-width: 286px;
  grid-template-columns: var(--ap-sidebar-width) minmax(0, 1fr);
  transition: grid-template-columns .2s cubic-bezier(.22, 1, .36, 1);
}

.admin-app.ap-sidebar-collapsed {
  --ap-sidebar-width: 84px;
}

.ap-sidebar {
  z-index: 35;
  padding: 20px 14px 16px;
  display: flex;
  flex-direction: column;
  overflow: visible;
  background: rgba(255, 255, 255, .88);
  backdrop-filter: blur(22px);
  transition: width .2s cubic-bezier(.22, 1, .36, 1), transform .2s cubic-bezier(.22, 1, .36, 1);
}

.ap-sidebar-head {
  min-height: 64px;
  padding: 0 4px 0 2px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.ap-sidebar .ap-brand {
  min-width: 0;
  margin: 0;
  display: flex;
  align-items: center;
  gap: 11px;
}

.ap-sidebar .ap-logo {
  width: 47px;
  height: 47px;
  flex: 0 0 47px;
}

.ap-brand-copy {
  min-width: 0;
  display: grid;
  gap: 1px;
  white-space: nowrap;
  opacity: 1;
  transform: translateX(0);
  transition: opacity .16s ease, transform .2s ease;
}

.ap-sidebar .ap-brand strong {
  overflow: hidden;
  color: #0b2b59;
  font-size: 1rem;
  text-overflow: ellipsis;
}

.ap-sidebar .ap-brand small {
  color: #7437e8;
  font-size: .72rem;
}

.ap-sidebar-toggle,
.ap-sidebar-close,
.ap-sidebar-mobile {
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(190, 205, 229, .75);
  border-radius: 8px;
  color: #65738d;
  background: rgba(255, 255, 255, .82);
  cursor: pointer;
  transition: color .2s ease, border-color .2s ease, background .2s ease;
}

.ap-sidebar-toggle:hover,
.ap-sidebar-toggle:focus-visible,
.ap-sidebar-close:hover,
.ap-sidebar-close:focus-visible,
.ap-sidebar-mobile:hover,
.ap-sidebar-mobile:focus-visible {
  color: #7437e8;
  border-color: #cfbaf2;
  background: #f6f0ff;
}

.ap-sidebar-toggle svg,
.ap-sidebar-close svg,
.ap-sidebar-mobile svg {
  width: 18px;
  height: 18px;
}

.ap-sidebar-account {
  position: relative;
  min-height: 55px;
  margin: 12px 2px 15px;
  padding: 8px 10px;
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr) 14px;
  align-items: center;
  gap: 9px;
  color: #0b2b59;
  border: 1px solid rgba(214, 202, 240, .66);
  border-radius: 8px;
  background: linear-gradient(110deg, rgba(248, 243, 255, .92), rgba(255, 250, 240, .75));
}

.ap-sidebar-account > span:first-child {
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #7437e8;
  background: #eee4ff;
}

.ap-sidebar-account > span:nth-child(2) {
  min-width: 0;
  display: grid;
  gap: 1px;
  white-space: nowrap;
}

.ap-sidebar-account small {
  color: #7b879b;
  font-size: .62rem;
  font-weight: 750;
}

.ap-sidebar-account strong {
  overflow: hidden;
  font-size: .74rem;
  text-overflow: ellipsis;
}

.ap-sidebar-account > svg {
  width: 14px;
  height: 14px;
  color: #9aa5b8;
}

.ap-sidebar-scroll {
  min-height: 0;
  padding: 1px 2px 18px;
  overflow-x: visible;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: rgba(116, 55, 232, .22) transparent;
}

.ap-sidebar-scroll::-webkit-scrollbar { width: 5px; }
.ap-sidebar-scroll::-webkit-scrollbar-thumb { border-radius: 999px; background: rgba(116, 55, 232, .22); }

.ap-sidebar .ap-dashboard-nav,
.ap-nav-domain nav {
  display: grid;
  gap: 3px;
}

.ap-nav-domain {
  margin-top: 13px;
  padding-top: 11px;
  border-top: 1px solid rgba(208, 218, 233, .62);
}

.ap-nav-domain h2 {
  margin: 0 10px 7px;
  color: #7a879c;
  font-size: .61rem;
  font-weight: 900;
  letter-spacing: .06em;
  text-transform: uppercase;
  white-space: nowrap;
  transition: opacity .14s ease;
}

.ap-sidebar nav a,
.ap-sidebar .ap-dashboard-nav a,
.ap-nav-domain nav a {
  --ap-nav-color: #68758c;
  position: relative;
  min-height: 39px;
  padding: 0 9px;
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  color: #425372;
  border: 1px solid transparent;
  border-radius: 8px;
  font-size: .76rem;
  font-weight: 800;
  transition: color .2s ease, background .2s ease, border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.ap-sidebar .ap-dashboard-nav a { --ap-nav-color: #7437e8; }
.ap-nav-domain:nth-of-type(1) nav a:nth-child(1) { --ap-nav-color: #3f9e51; }
.ap-nav-domain:nth-of-type(1) nav a:nth-child(2) { --ap-nav-color: #2978cf; }
.ap-nav-domain:nth-of-type(1) nav a:nth-child(3) { --ap-nav-color: #d88d12; }
.ap-nav-domain:nth-of-type(2) nav a:nth-child(1) { --ap-nav-color: #e85b89; }
.ap-nav-domain:nth-of-type(2) nav a:nth-child(2) { --ap-nav-color: #2978cf; }
.ap-nav-domain:nth-of-type(2) nav a:nth-child(3) { --ap-nav-color: #d88d12; }
.ap-nav-domain:nth-of-type(2) nav a:nth-child(4) { --ap-nav-color: #e85b89; }
.ap-nav-domain:nth-of-type(3) nav a:nth-child(1) { --ap-nav-color: #2978cf; }
.ap-nav-domain:nth-of-type(3) nav a:nth-child(2) { --ap-nav-color: #3f9e51; }
.ap-nav-domain:nth-of-type(4) nav a:nth-child(1) { --ap-nav-color: #7437e8; }
.ap-nav-domain:nth-of-type(4) nav a:nth-child(2) { --ap-nav-color: #3f9e51; }
.ap-nav-domain:nth-of-type(4) nav a:nth-child(3) { --ap-nav-color: #7437e8; }
.ap-nav-domain:nth-of-type(4) nav a:nth-child(4) { --ap-nav-color: #2978cf; }
.ap-nav-domain:nth-of-type(4) nav a:nth-child(5) { --ap-nav-color: #68758c; }
.ap-nav-domain:nth-of-type(5) nav a { --ap-nav-color: #7437e8; }

.ap-nav-icon {
  width: 28px !important;
  height: 28px;
  display: grid;
  place-items: center;
  color: var(--ap-nav-color);
}

.ap-nav-icon svg {
  width: 18px;
  height: 18px;
}

.ap-sidebar nav a .ap-nav-label {
  width: auto;
  overflow: hidden;
  font-size: inherit;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
  transition: opacity .14s ease, transform .2s ease;
}

.ap-sidebar nav a:hover,
.ap-sidebar nav a:focus-visible {
  color: #0b2b59;
  background: rgba(246, 248, 252, .94);
  transform: translateX(2px);
}

.ap-sidebar :is(a, button):focus-visible {
  outline: 3px solid rgba(116, 55, 232, .26);
  outline-offset: 2px;
}

.ap-sidebar nav a.active {
  color: #5f2fc3;
  border-color: rgba(116, 55, 232, .1);
  background: linear-gradient(100deg, rgba(243, 235, 255, .96), rgba(252, 246, 255, .82));
  box-shadow: 0 7px 18px rgba(78, 56, 139, .07);
}

.ap-sidebar nav a.active::before {
  content: "";
  position: absolute;
  left: -3px;
  top: 8px;
  bottom: 8px;
  width: 3px;
  border-radius: 999px;
  background: #7437e8;
}

.ap-nav-badge {
  min-width: 20px;
  height: 20px;
  padding: 0 5px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  color: #fff;
  background: #ee3f76;
  box-shadow: 0 4px 10px rgba(238, 63, 118, .2);
  font-size: .61rem;
  font-style: normal;
  font-weight: 900;
}

.ap-sidebar-mobile,
.ap-sidebar-close,
.ap-sidebar-overlay {
  display: none;
}

.admin-app.ap-sidebar-collapsed .ap-sidebar {
  padding-inline: 12px;
}

.admin-app.ap-sidebar-collapsed .ap-sidebar-head {
  min-height: 104px;
  flex-direction: column;
  justify-content: center;
}

.admin-app.ap-sidebar-collapsed .ap-brand-copy,
.admin-app.ap-sidebar-collapsed .ap-sidebar-account > span:nth-child(2),
.admin-app.ap-sidebar-collapsed .ap-sidebar-account > svg,
.admin-app.ap-sidebar-collapsed .ap-nav-domain h2,
.admin-app.ap-sidebar-collapsed .ap-sidebar nav a .ap-nav-label {
  width: 0;
  opacity: 0;
  pointer-events: none;
  transform: translateX(-5px);
}

.admin-app.ap-sidebar-collapsed .ap-sidebar-account {
  width: 42px;
  min-height: 42px;
  margin: 7px auto 12px;
  padding: 4px;
  grid-template-columns: 1fr;
  place-items: center;
}

.admin-app.ap-sidebar-collapsed .ap-sidebar nav a {
  width: 44px;
  min-height: 42px;
  margin-inline: auto;
  padding: 0;
  grid-template-columns: 1fr;
  place-items: center;
}

.admin-app.ap-sidebar-collapsed .ap-nav-domain {
  margin-top: 8px;
  padding-top: 8px;
}

.admin-app.ap-sidebar-collapsed .ap-nav-badge {
  position: absolute;
  top: 0;
  right: -2px;
}

.admin-app.ap-sidebar-collapsed [data-tooltip]::after {
  content: attr(data-tooltip);
  position: absolute;
  z-index: 80;
  left: calc(100% + 12px);
  top: 50%;
  width: max-content;
  max-width: 220px;
  padding: 7px 10px;
  border: 1px solid rgba(205, 216, 232, .8);
  border-radius: 7px;
  color: #fff;
  background: #0b2b59;
  box-shadow: 0 9px 24px rgba(21, 42, 77, .16);
  font-size: .68rem;
  font-weight: 800;
  opacity: 0;
  pointer-events: none;
  transform: translate(4px, -50%);
  transition: opacity .16s ease, transform .16s ease;
}

.admin-app.ap-sidebar-collapsed [data-tooltip]:hover::after,
.admin-app.ap-sidebar-collapsed [data-tooltip]:focus-visible::after {
  opacity: 1;
  transform: translate(0, -50%);
}

@media (max-width: 1200px) and (min-width: 761px) {
  .admin-app:not(.ap-sidebar-collapsed) { --ap-sidebar-width: 248px; }
  .ap-sidebar { padding-inline: 12px; }
  .ap-sidebar nav a,
  .ap-nav-domain nav a { font-size: .72rem; }
  .ap-sidebar-account { grid-template-columns: 30px minmax(0, 1fr) 12px; }
}

@media (max-width: 760px) {
  .admin-app,
  .admin-app.ap-sidebar-collapsed { display: block; }
  .ap-sidebar,
  .admin-app.ap-sidebar-collapsed .ap-sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    z-index: 90;
    width: min(286px, 88vw);
    height: 100dvh;
    padding: 18px 14px;
    transform: translateX(-105%);
    box-shadow: 22px 0 60px rgba(18, 42, 76, .16);
  }
  .admin-app.ap-sidebar-open .ap-sidebar { transform: translateX(0); }
  .admin-app.ap-sidebar-collapsed .ap-sidebar-head { min-height: 64px; flex-direction: row; justify-content: space-between; }
  .admin-app.ap-sidebar-collapsed .ap-brand-copy,
  .admin-app.ap-sidebar-collapsed .ap-sidebar-account > span:nth-child(2),
  .admin-app.ap-sidebar-collapsed .ap-sidebar-account > svg,
  .admin-app.ap-sidebar-collapsed .ap-sidebar nav a .ap-nav-label { width: auto; opacity: 1; pointer-events: auto; transform: none; }
  .admin-app.ap-sidebar-collapsed .ap-nav-domain h2 { width: auto; opacity: 1; }
  .admin-app.ap-sidebar-collapsed .ap-sidebar-account { width: auto; min-height: 55px; margin: 12px 2px 15px; padding: 8px 10px; grid-template-columns: 32px minmax(0, 1fr) 14px; place-items: initial; }
  .admin-app.ap-sidebar-collapsed .ap-sidebar nav a { width: auto; min-height: 39px; margin: 0; padding: 0 9px; grid-template-columns: 28px minmax(0, 1fr) auto; place-items: initial; }
  .admin-app.ap-sidebar-collapsed .ap-nav-badge { position: static; }
  .ap-sidebar nav,
  .ap-nav-domain nav { display: grid; overflow: visible; }
  .ap-sidebar nav a { min-width: 0; }
  .ap-sidebar-toggle { display: none; }
  .ap-sidebar-close { display: grid; }
  .ap-sidebar-mobile { display: grid; }
  .ap-sidebar-overlay {
    position: fixed;
    inset: 0;
    z-index: 80;
    width: 100%;
    height: 100%;
    border: 0;
    background: rgba(11, 43, 89, .28);
    backdrop-filter: blur(3px);
    opacity: 0;
    pointer-events: none;
    transition: opacity .2s ease;
  }
  .admin-app.ap-sidebar-open .ap-sidebar-overlay { display: block; opacity: 1; pointer-events: auto; }
  .ap-main { padding: 14px; }
  .ap-top { min-height: 48px; margin-bottom: 14px; justify-content: flex-start; flex-wrap: nowrap; }
  .ap-top .ap-user strong { display: none; }
  .ap-top .ap-user { grid-template-columns: 38px 14px; }
  .ap-top .ap-avatar { width: 38px; height: 38px; }
  .ap-top .ap-logout { margin-left: auto; padding-inline: 13px; }
}

@media (prefers-reduced-motion: reduce) {
  .admin-app,
  .ap-sidebar,
  .ap-brand-copy,
  .ap-nav-label,
  .ap-sidebar nav a,
  .ap-sidebar-overlay { transition: none; }
}

.ap-context-actions button,
.ap-chat-header button,
.ap-chat-reply button {
  min-height: 44px;
  padding: 0 17px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  border: 1px solid rgba(48, 101, 187, .18);
  border-radius: 8px;
  color: #fff;
  background: linear-gradient(100deg, #216fd3, #7041cc);
  box-shadow: 0 10px 24px rgba(38, 83, 159, .16);
  font: inherit;
  font-weight: 900;
  cursor: pointer;
}

.ap-data-section {
  margin-top: 28px;
}

.ap-data-section > header {
  margin-bottom: 12px;
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 18px;
}

.ap-data-section > header h2 {
  margin: 0;
  color: #102951;
  font-size: 1.25rem;
  letter-spacing: 0;
}

.ap-data-section > header p {
  margin: 5px 0 0;
  color: #63718a;
  font-size: .92rem;
  font-weight: 650;
}

.ap-data-section .ap-table {
  margin: 0;
  padding: 0;
  overflow-x: auto;
}

.ap-data-section .ap-table table {
  min-width: 820px;
}

.ap-data-section .ap-table footer {
  padding: 14px 18px;
}

.ap-row-actions a,
.ap-row-actions button {
  min-height: 34px;
  padding: 0 11px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(55, 89, 145, .13);
  border-radius: 7px;
  color: #294a7c;
  background: #f5f8fc;
  font-size: .82rem;
  font-weight: 850;
  text-decoration: none;
  cursor: pointer;
}

.ap-switch-row {
  min-height: 58px;
  padding: 10px 12px 10px 16px;
  grid-template-columns: 1fr auto !important;
  align-items: center;
  border: 1px solid rgba(118, 139, 176, .24);
  border-radius: 8px;
  background: #f7f9fd;
}

.ap-switch-row input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.ap-switch-row i {
  position: relative;
  width: 46px;
  height: 26px;
  border-radius: 999px;
  background: #cbd4e2;
  transition: background .18s ease;
}

.ap-switch-row i::after {
  content: "";
  position: absolute;
  top: 3px;
  left: 3px;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 2px 6px rgba(20, 39, 70, .22);
  transition: transform .18s ease;
}

.ap-switch-row input:checked + i {
  background: #397dd7;
}

.ap-switch-row input:checked + i::after {
  transform: translateX(20px);
}

.ap-switch-row:focus-within {
  outline: 3px solid rgba(45, 125, 224, .16);
}

.ap-cancellation-notice {
  border-color: rgba(211, 71, 101, .24);
  background: #fff5f7;
}

.ap-cancellation-notice[hidden] {
  display: none;
}

.ap-modal-note {
  padding: 13px 15px;
  display: grid;
  gap: 3px;
  border-left: 4px solid #2d7de0;
  border-radius: 6px;
  color: #38506f;
  background: #f2f7ff;
  font-size: .9rem;
}

.ap-modal-card label.is-locked textarea {
  color: #7b879a;
  background: #eef1f5;
  cursor: not-allowed;
}

.ap-modal-card label.is-locked::after {
  content: "VerrouillÃ© : journÃ©e en cours ou passÃ©e";
  color: #7b879a;
  font-size: .78rem;
  font-weight: 700;
}

.ap-message-workspace {
  display: grid;
  grid-template-columns: minmax(620px, 1.3fr) minmax(340px, .7fr);
  gap: 22px;
  align-items: start;
}

.ap-message-workspace .ap-data-section {
  margin-top: 0;
  min-width: 0;
}

.ap-message-workspace .ap-table table {
  min-width: 680px;
}

.ap-message-workspace .ap-row-actions {
  display: grid;
  gap: 6px;
}

.ap-chat-panel {
  position: sticky;
  top: 24px;
  min-height: 460px;
  padding: 0;
  overflow: hidden;
}

.ap-chat-header {
  padding: 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  border-bottom: 1px solid #e4eaf3;
  background: #f8faff;
}

.ap-chat-header h2,
.ap-chat-header p,
.ap-chat-header small {
  margin: 0;
}

.ap-chat-header h2 {
  margin: 3px 0;
  font-size: 1.1rem;
}

.ap-chat-header button {
  min-height: 36px;
  padding: 0 11px;
  color: #4b5e7d;
  background: #fff;
  box-shadow: none;
  font-size: .78rem;
}

.ap-chat-messages {
  max-height: 460px;
  padding: 20px;
  display: grid;
  gap: 12px;
  overflow-y: auto;
  background: #fff;
}

.ap-chat-messages article {
  width: min(86%, 520px);
  padding: 12px 14px;
  border-radius: 8px;
  background: #f0f4f9;
}

.ap-chat-messages article.is-admin {
  margin-left: auto;
  color: #fff;
  background: #316fca;
}

.ap-chat-messages p {
  margin: 6px 0;
  line-height: 1.45;
  white-space: pre-wrap;
}

.ap-chat-messages time {
  font-size: .72rem;
  opacity: .78;
}

.ap-chat-reply {
  padding: 16px 20px 20px;
  display: grid;
  gap: 8px;
  border-top: 1px solid #e4eaf3;
}

.ap-chat-reply textarea {
  min-height: 90px;
  padding: 12px;
  resize: vertical;
  border: 1px solid #cfd9e8;
  border-radius: 8px;
  font: inherit;
}

.ap-chat-reply > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.ap-chat-loading,
.ap-inline-status {
  padding: 24px;
  color: #66758d;
  font-weight: 750;
}

@media (max-width: 1280px) {
  .ap-message-workspace { grid-template-columns: 1fr; }
  .ap-chat-panel { position: static; }
}

@media (max-width: 760px) {
  .registration-page {
    width: min(100% - 28px, 1180px);
    padding-top: 38px;
  }

  .registration-layout,
  .registration-grid {
    grid-template-columns: 1fr;
  }

  .registration-next {
    position: static;
  }
}

/* Premium family inbox aligned with the official Messages 2 reference. */
body.family-app .fp-messages-page-head h1 { color: var(--fp-pink); font-style: italic; }
body.family-app .fp-messages-page-head button { display: inline-flex; min-height: 42px; align-items: center; gap: 8px; border-radius: 9px; background: linear-gradient(135deg, #7746e8, #5632c7); box-shadow: 0 8px 20px rgba(101, 61, 210, .18); }
body.family-app .fp-messages-page-head button svg { width: 16px; height: 16px; }
body.family-app .fp-messages-layout { min-height: 680px; grid-template-columns: minmax(315px, .62fr) minmax(0, 1.48fr); gap: 18px; }
body.family-app .fp-conversations { padding: 0; overflow: hidden; }
body.family-app .fp-conversations > header { min-height: 64px; margin: 0; padding: 0 20px; border-bottom: 1px solid #e6e9f0; }
body.family-app .fp-conversations > header span { display: grid; min-width: 24px; height: 24px; padding: 0 5px; place-items: center; border-radius: 12px; color: #fff; background: #8662e7; box-sizing: border-box; font-size: .66rem; font-weight: 900; }
body.family-app .fp-conversations > .fp-message-search { margin: 16px 16px 12px; border-color: #e2e5ed; border-radius: 8px; background: #f8f9fc; }
body.family-app .fp-conversations > .fp-message-search svg { width: 15px; height: 15px; margin-inline: auto; color: #7f8ba0; }
body.family-app .fp-message-filters { margin: 0 16px 14px; }
body.family-app .fp-message-filters button { display: inline-flex; min-height: 30px; padding: 5px 10px; align-items: center; gap: 5px; border: 0; border-radius: 7px; background: transparent; }
body.family-app .fp-message-filters button.active { background: #f1eaff; }
body.family-app .fp-message-filters em { display: grid; min-width: 18px; height: 18px; padding: 0 4px; place-items: center; border-radius: 9px; color: #fff; background: #f23870; font-size: .57rem; font-style: normal; }
body.family-app .fp-conversations > .fp-record-list { display: flex; min-height: 0; padding: 0 10px; overflow-y: auto; flex: 1; gap: 4px; }
body.family-app .fp-conversations .fp-thread-button { grid-template-columns: 42px minmax(0, 1fr); padding: 12px 10px; gap: 10px; border-color: transparent; border-radius: 8px; }
body.family-app .fp-conversations .fp-thread-button:hover,
body.family-app .fp-conversations .fp-thread-button:focus-visible { border-color: #e3d6fb; outline: 0; background: #faf7ff; }
body.family-app .fp-conversations .fp-thread-button.active { border-color: #ddcdfa; background: #f2ebff; box-shadow: inset 3px 0 #7750dc; }
body.family-app .fp-thread-avatar { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 50%; color: #5e42ae; background: #e9e2fa; font-size: .72rem; font-weight: 900; }
body.family-app .fp-thread-button:nth-child(3n + 2) .fp-thread-avatar { color: #1670a7; background: #dff3fb; }
body.family-app .fp-thread-button:nth-child(3n) .fp-thread-avatar { color: #2b8a56; background: #e0f6e8; }
body.family-app .fp-thread-content { display: grid; min-width: 0; gap: 2px; }
body.family-app .fp-thread-heading time { color: #8b95a5; font-size: .6rem; font-weight: 650; }
body.family-app .fp-conversations .fp-thread-button .fp-thread-content > b { overflow: hidden; color: #36445a; font-size: .68rem; text-overflow: ellipsis; white-space: nowrap; }
body.family-app .fp-conversations .fp-thread-button p { margin: 2px 0 0; -webkit-line-clamp: 1; }
body.family-app .fp-thread-tags { display: flex; min-height: 18px; margin-top: 3px; gap: 5px; }
body.family-app .fp-thread-tags em { padding: 2px 6px; border-radius: 5px; color: #6e3bd1; background: #eee5ff; font-size: .55rem; font-style: normal; font-weight: 850; }
body.family-app .fp-thread-tags em.urgent { color: #c32c54; background: #ffe4ec; }
body.family-app .fp-thread-tags em.treated { color: #247849; background: #e1f6e9; }
body.family-app .fp-archived-link { display: flex; min-height: 44px; margin: 8px 16px 14px; padding: 8px 10px; align-items: center; gap: 8px; border: 0; color: #6d7789; background: transparent; font: inherit; font-size: .66rem; font-weight: 800; cursor: pointer; }
body.family-app .fp-archived-link svg { width: 15px; height: 15px; }
body.family-app .fp-chat { min-height: 680px; }
body.family-app .fp-chat-head { min-height: 72px; padding: 13px 18px; }
body.family-app .fp-chat-head > div:nth-child(2) { min-width: 0; }
body.family-app .fp-chat-head .fp-avatar { color: #5c3cb4; background: #e8e0fa; font-size: .68rem; font-weight: 900; }
body.family-app .fp-chat-head-actions { display: flex; margin-left: auto; gap: 6px; }
body.family-app .fp-chat-head-actions button { display: grid; width: 34px; height: 34px; padding: 0; place-items: center; border: 1px solid #e2e6ed; border-radius: 8px; color: #68758a; background: #fff; cursor: pointer; }
body.family-app .fp-chat-head-actions svg { width: 15px; height: 15px; }
body.family-app .fp-chat-body { min-height: 500px; max-height: 500px; padding: 24px 28px; gap: 9px; background: #fbfbfd; }
body.family-app .fp-chat-date { display: flex; width: 100%; margin: 8px 0; align-items: center; gap: 10px; color: #98a0ae; font-size: .59rem; text-transform: capitalize; }
body.family-app .fp-chat-date::before,
body.family-app .fp-chat-date::after { height: 1px; flex: 1; background: #e7eaf0; content: ""; }
body.family-app .fp-chat-bubble { width: min(66%, 520px); padding: 10px 13px; border: 0; border-radius: 7px 14px 14px; box-shadow: 0 3px 12px rgba(28, 47, 76, .06); }
body.family-app .fp-chat-bubble.sent { border: 0; border-radius: 14px 7px 14px 14px; background: linear-gradient(135deg, #7250dc, #6237cf); box-shadow: 0 5px 14px rgba(92, 54, 190, .15); }
body.family-app .fp-chat-bubble.sent p { color: #fff; }
body.family-app .fp-chat-bubble.sent small { color: rgba(255, 255, 255, .75); }
body.family-app .fp-chat-bubble p { margin: 0 0 5px; font-size: .74rem; }
body.family-app .fp-chat-reply { position: relative; padding: 12px 14px; grid-template-columns: minmax(0, 1fr) 40px; align-items: center; }
body.family-app .fp-composer { display: grid; min-width: 0; grid-template-columns: minmax(0, 1fr) auto; align-items: center; border: 1px solid #dfe3eb; border-radius: 9px; background: #fff; }
body.family-app .fp-chat-reply .fp-composer textarea { min-height: 42px; max-height: 120px; padding: 11px 12px; resize: none; border: 0; outline: 0; background: transparent; font-size: .74rem; }
body.family-app .fp-composer-actions { display: flex; padding-right: 7px; align-items: center; gap: 2px; }
body.family-app .fp-composer-actions button,
body.family-app .fp-composer-actions label { display: grid; width: 30px; height: 30px; padding: 0; place-items: center; border: 0; border-radius: 7px; color: #7b8798; background: transparent; cursor: pointer; }
body.family-app .fp-composer-actions :is(button, label):hover { color: #7145d5; background: #f3edff; }
body.family-app .fp-composer-actions input { position: absolute; width: 1px; height: 1px; overflow: hidden; opacity: 0; }
body.family-app .fp-composer-actions svg { width: 16px; height: 16px; }
body.family-app .fp-chat-reply .fp-composer-send { display: grid; width: 40px; height: 40px; min-height: 40px; padding: 0; place-items: center; border-radius: 50%; background: linear-gradient(135deg, #7650df, #5c35c8); }
body.family-app .fp-composer-send svg { width: 16px; height: 16px; }
body.family-app .fp-composer-file { display: flex; min-width: 0; grid-column: 1 / -1; padding: 7px 9px; align-items: center; gap: 7px; border-radius: 7px; color: #5c6680; background: #f3effb; font-size: .64rem; }
body.family-app .fp-composer-file span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
body.family-app .fp-composer-file button { width: 24px; height: 24px; min-height: 24px; margin-left: auto; padding: 0; color: #6d52ad; background: transparent; }

@media (max-width: 900px) {
  body.family-app .fp-messages-layout { grid-template-columns: minmax(280px, .75fr) minmax(0, 1.25fr); }
}

@media (max-width: 700px) {
  body.family-app .fp-messages-layout { grid-template-columns: 1fr; }
  body.family-app .fp-conversations { min-height: 390px; }
  body.family-app .fp-chat { min-height: 560px; }
  body.family-app .fp-chat-body { min-height: 380px; max-height: 60vh; padding: 18px 14px; }
  body.family-app .fp-chat-bubble { width: 86%; }
}

/* Administration inbox shares the family messaging language. */
body.admin-app .ap-message-workspace { display: grid; min-height: 690px; grid-template-columns: minmax(330px, .65fr) minmax(0, 1.45fr); align-items: stretch; gap: 18px; }
body.admin-app .ap-inbox-list { display: flex; min-width: 0; padding: 0; overflow: hidden; flex-direction: column; }
body.admin-app .ap-inbox-list > header { display: flex; min-height: 64px; padding: 0 20px; align-items: center; justify-content: space-between; border-bottom: 1px solid #e5e9f0; }
body.admin-app .ap-inbox-list h2 { margin: 0; color: #102d59; font-size: 1rem; }
body.admin-app .ap-inbox-list > header span { display: grid; min-width: 24px; height: 24px; place-items: center; border-radius: 12px; color: #fff; background: #7956df; font-size: .65rem; font-weight: 900; }
body.admin-app .ap-inbox-search { display: grid; margin: 16px 16px 11px; grid-template-columns: 34px 1fr; align-items: center; border: 1px solid #dfe4eb; border-radius: 8px; background: #f8f9fc; }
body.admin-app .ap-inbox-search svg { width: 15px; height: 15px; margin: auto; color: #7d889a; }
body.admin-app .ap-inbox-search input { min-height: 40px; padding: 8px 9px 8px 0; border: 0; outline: 0; background: transparent; font: inherit; font-size: .72rem; }
body.admin-app .ap-inbox-filters { display: flex; margin: 0 16px 13px; flex-wrap: wrap; gap: 5px; }
body.admin-app .ap-inbox-filters button { min-height: 29px; padding: 5px 9px; border: 0; border-radius: 7px; color: #59677d; background: transparent; font: inherit; font-size: .63rem; font-weight: 850; cursor: pointer; }
body.admin-app .ap-inbox-filters button.active { color: #6a3bd2; background: #f0e9ff; }
body.admin-app .ap-inbox-threads { display: flex; min-height: 0; padding: 0 9px 10px; overflow-y: auto; flex: 1; flex-direction: column; gap: 4px; }
body.admin-app .ap-inbox-thread { display: grid; width: 100%; padding: 11px 9px; grid-template-columns: 42px minmax(0, 1fr); gap: 10px; border: 1px solid transparent; border-radius: 8px; color: inherit; background: #fff; text-align: left; cursor: pointer; }
body.admin-app .ap-inbox-thread:hover,
body.admin-app .ap-inbox-thread:focus-visible { border-color: #e3d7f8; outline: 0; background: #faf8ff; }
body.admin-app .ap-inbox-thread.active { border-color: #decefa; background: #f1ebff; box-shadow: inset 3px 0 #7651da; }
body.admin-app .ap-thread-avatar { display: grid; width: 42px; height: 42px; flex: 0 0 42px; place-items: center; border-radius: 50%; color: #6040b2; background: #eae2fb; font-size: .72rem; font-weight: 900; }
body.admin-app .ap-inbox-thread > span:last-child { display: grid; min-width: 0; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 8px; }
body.admin-app .ap-inbox-thread strong { overflow: hidden; color: #102d59; font-size: .74rem; text-overflow: ellipsis; white-space: nowrap; }
body.admin-app .ap-inbox-thread time { color: #8994a5; font-size: .58rem; }
body.admin-app .ap-inbox-thread b,
body.admin-app .ap-inbox-thread p,
body.admin-app .ap-inbox-thread small { grid-column: 1 / -1; }
body.admin-app .ap-inbox-thread b { overflow: hidden; color: #3f4d63; font-size: .65rem; text-overflow: ellipsis; white-space: nowrap; }
body.admin-app .ap-inbox-thread p { margin: 1px 0; overflow: hidden; color: #738096; font-size: .64rem; text-overflow: ellipsis; white-space: nowrap; }
body.admin-app .ap-inbox-thread small { overflow: hidden; color: #8994a5; font-size: .57rem; text-overflow: ellipsis; white-space: nowrap; }
body.admin-app .ap-inbox-thread em { justify-self: start; margin-top: 3px; padding: 2px 6px; border-radius: 5px; color: #6a3bc7; background: #eee5ff; font-size: .54rem; font-style: normal; font-weight: 900; }
body.admin-app .ap-chat-panel { display: grid; min-width: 0; min-height: 690px; padding: 0; grid-template-rows: auto 1fr auto; overflow: hidden; }
body.admin-app .ap-chat-header { display: flex; min-height: 74px; padding: 13px 17px; align-items: center; gap: 11px; border-bottom: 1px solid #e3e7ed; }
body.admin-app .ap-chat-header > div:nth-child(2) { min-width: 0; }
body.admin-app .ap-chat-header h2 { margin: 0; color: #102d59; font-size: .88rem; }
body.admin-app .ap-chat-header p,
body.admin-app .ap-chat-header small { margin: 1px 0; color: #778399; font-size: .63rem; }
body.admin-app .ap-chat-actions { display: flex; margin-left: auto; gap: 5px; }
body.admin-app .ap-chat-actions button { display: grid; width: 34px; height: 34px; padding: 0; place-items: center; border: 1px solid #dfe4eb; border-radius: 8px; color: #65728a; background: #fff; cursor: pointer; }
body.admin-app .ap-chat-actions button:hover { color: #7043d3; border-color: #d6c3f6; background: #f7f2ff; }
body.admin-app .ap-chat-actions svg { width: 15px; height: 15px; }
body.admin-app .ap-chat-messages { display: flex; min-height: 0; max-height: 540px; padding: 24px 27px; overflow-y: auto; flex-direction: column; gap: 9px; background: #fbfbfd; }
body.admin-app .ap-chat-messages article { width: min(66%, 500px); padding: 10px 13px; align-self: flex-end; border: 0; border-radius: 14px 7px 14px 14px; color: #fff; background: linear-gradient(135deg, #7250dc, #6237cf); box-shadow: 0 5px 14px rgba(92, 54, 190, .14); }
body.admin-app .ap-chat-messages article.is-family { align-self: flex-start; border-radius: 7px 14px 14px; color: #3f4e63; background: #fff; box-shadow: 0 3px 12px rgba(28, 47, 76, .07); }
body.admin-app .ap-chat-messages p { margin: 0 0 5px; font-size: .72rem; line-height: 1.5; }
body.admin-app .ap-chat-messages time { color: rgba(255, 255, 255, .72); font-size: .57rem; }
body.admin-app .ap-chat-messages .is-family time { color: #8b95a5; }
body.admin-app .ap-chat-date { display: flex; width: 100%; margin: 8px 0; align-items: center; gap: 10px; color: #969fad; font-size: .57rem; text-transform: capitalize; }
body.admin-app .ap-chat-date::before,
body.admin-app .ap-chat-date::after { height: 1px; flex: 1; background: #e5e9ef; content: ""; }
body.admin-app .ap-chat-reply { display: grid; padding: 12px 14px; grid-template-columns: minmax(0, 1fr) 40px; align-items: center; gap: 8px; border-top: 1px solid #e2e6ed; background: #fff; }
body.admin-app .ap-chat-composer { display: grid; min-width: 0; grid-template-columns: minmax(0, 1fr) 30px 30px; align-items: center; border: 1px solid #dfe3eb; border-radius: 9px; }
body.admin-app .ap-chat-composer textarea { min-height: 42px; max-height: 120px; padding: 11px 12px; resize: none; border: 0; outline: 0; font: inherit; font-size: .72rem; }
body.admin-app .ap-chat-composer label { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 7px; color: #778397; cursor: pointer; }
body.admin-app .ap-chat-composer label:hover { color: #7044d3; background: #f1ebfd; }
body.admin-app .ap-chat-composer input { position: absolute; width: 1px; height: 1px; opacity: 0; }
body.admin-app .ap-chat-composer svg { width: 15px; height: 15px; }
body.admin-app .ap-chat-reply > button { display: grid; width: 40px; height: 40px; padding: 0; place-items: center; border: 0; border-radius: 50%; color: #fff; background: linear-gradient(135deg, #7650df, #5c35c8); cursor: pointer; }
body.admin-app .ap-chat-reply > button svg { width: 16px; height: 16px; }
body.admin-app .ap-chat-reply > span,
body.admin-app .ap-chat-reply progress,
body.admin-app .ap-composer-file { grid-column: 1 / -1; }
body.admin-app .ap-composer-file { display: flex; padding: 7px 9px; align-items: center; gap: 7px; border-radius: 7px; color: #59677e; background: #f2edfb; font-size: .62rem; }
body.admin-app .ap-composer-file button { width: 24px; height: 24px; margin-left: auto; padding: 0; border: 0; color: #674ba9; background: transparent; }
body.admin-app .ap-file-field small { display: block; margin-top: 5px; color: #7b8798; font-size: .64rem; }

@media (max-width: 980px) {
  body.admin-app .ap-message-workspace { grid-template-columns: minmax(285px, .72fr) minmax(0, 1.28fr); }
}

@media (max-width: 760px) {
  body.admin-app .ap-message-workspace { grid-template-columns: 1fr; }
  body.admin-app .ap-inbox-list { min-height: 390px; }
  body.admin-app .ap-chat-panel { min-height: 570px; }
  body.admin-app .ap-chat-messages { max-height: 60vh; padding: 18px 14px; }
  body.admin-app .ap-chat-messages article { width: 86%; }
}

/* UI cleanup requested for preproduction polish */
.fp-page-head h1::after,
.fp-panel h2::after,
.ap-head h1::after,
.ap-card h2::after,
.project-copy h1::after,
.project-values h2::after,
.approach-text h2::after,
.daily-intro h1::after,
.spaces-section h1::after,
.spaces-section h2::after,
.team-hero h1::after,
.contact-copy h1::after,
.family-panel-head h2::after,
.quick-panel h2::after,
.admin-welcome h1::after,
.admin-card h2::after,
.admin-card-head h2::after,
.route-section h2::after {
  content: none !important;
  display: none !important;
}

.team-heart,
.daily-heart,
.family-heart,
.panel-title > span,
.project-values h2 span {
  display: none !important;
}

.team-grid article {
  grid-template-columns: 96px 1fr;
  min-height: 230px;
}

.team-role-icon {
  width: 82px;
  height: 82px;
  flex-basis: 82px;
  font-size: 2rem;
}

.team-grid h2 {
  font-size: 25px;
}

.team-grid p {
  max-width: none;
  font-size: 15.5px;
}

.fp-dashboard-focus {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.fp-dashboard-focus .fp-panel {
  min-height: 250px;
}

.fp-dashboard-focus .fp-feature-card {
  background:
    radial-gradient(circle at 12% 100%, rgba(255, 216, 91, .22), transparent 14rem),
    linear-gradient(135deg, rgba(255, 255, 255, .9), rgba(241, 248, 255, .78));
  border-color: rgba(123, 67, 220, .14);
  box-shadow: 0 22px 54px rgba(46, 67, 97, .12);
}

.fp-month-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(92px, 1fr));
  gap: 8px;
}

.fp-month-grid > strong {
  padding: 8px;
  color: #5f35c7;
  text-align: center;
}

.fp-month-day {
  min-height: 112px;
  display: grid;
  align-content: start;
  gap: 6px;
  padding: 10px;
  border: 1px solid rgba(205, 217, 232, .68);
  border-radius: 14px;
  background: rgba(255, 255, 255, .78);
}

.fp-month-day.empty {
  background: rgba(255, 255, 255, .36);
}

.fp-month-day b {
  color: #08285a;
}

.fp-month-day span {
  border-radius: 999px;
  padding: 5px 8px;
  color: #1266c2;
  background: #e1f0ff;
  font-size: .78rem;
  font-weight: 850;
}

.fp-health-forms {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.fp-health-question {
  display: grid;
  gap: 10px;
  padding: 14px;
  border: 1px solid rgba(205, 217, 232, .68);
  border-radius: 16px;
  background: rgba(248, 251, 255, .76);
}

.fp-choice-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.fp-choice-row label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 38px;
  border-radius: 999px;
  padding: 0 14px;
  background: #fff;
}

.fp-health-detail[hidden] {
  display: none;
}

@media (max-width: 760px) {
  .fp-dashboard-focus,
  .fp-health-forms,
  .fp-month-grid {
    grid-template-columns: 1fr;
  }

  .fp-month-grid > strong {
    display: none;
  }
}

.member-icon {
  position: absolute;
  right: 28px;
  top: 28px;
  display: grid;
  width: 64px;
  height: 64px;
  place-items: center;
  border-radius: 50%;
  font-size: 30px;
}

.member-icon.pink { color: #f25f91; background: #ffe5ee; }
.member-icon.yellow { color: #ee9b00; background: #fff2c7; }
.member-icon.green { color: #52a84f; background: #e6f7df; }
.member-icon.blue { color: #1472cf; background: #e0f2ff; }
.member-icon.purple { color: #8f5bd6; background: #efe4ff; }

.team-grid h2 {
  margin-bottom: 8px;
  color: #062347;
  font-size: 22px;
  line-height: 1.15;
  font-weight: 950;
  letter-spacing: -0.02em;
}

.team-grid strong {
  display: block;
  margin-bottom: 10px;
  color: #f25f91;
  font-size: 14px;
  font-weight: 950;
}

.team-grid article:nth-child(2) strong,
.team-grid article:nth-child(4) strong { color: #1472cf; }
.team-grid article:nth-child(3) strong { color: #59a83e; }
.team-grid article:nth-child(5) strong { color: #8f5bd6; }
.team-grid article:nth-child(6) strong { color: #f25f91; }

.team-grid p {
  max-width: 190px;
  color: #092a50;
  font-size: 14px;
  font-weight: 650;
  line-height: 1.6;
}

.contact-layout {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 0.88fr) minmax(520px, 0.95fr);
  gap: 88px;
  align-items: start;
  padding: 62px 48px 88px;
}

.contact-copy {
  position: relative;
}

.contact-copy h1 {
  max-width: 560px;
  margin: 46px 0 36px;
  font-size: 58px;
  line-height: 1.02;
}

.contact-copy p {
  max-width: 470px;
  color: #092a50;
  font-size: 17px;
  font-weight: 650;
  line-height: 1.7;
}

.paper-plane {
  position: absolute;
  right: 52px;
  top: 42px;
  color: #9ed3f2;
  font-size: 58px;
  transform: rotate(-18deg);
}

.contact-info-card {
  display: grid;
  gap: 22px;
  width: 330px;
  margin: 42px 0 0 130px;
  padding: 28px;
  border: 1px solid rgba(6, 31, 63, 0.07);
  border-radius: 24px;
  background: rgba(255, 255, 255, 0.68);
  box-shadow: 0 18px 48px rgba(22, 49, 72, 0.08);
}

.contact-info-card article {
  display: grid;
  grid-template-columns: 48px 1fr;
  gap: 18px;
  align-items: start;
}

.contact-icon {
  display: grid;
  width: 48px;
  height: 48px;
  place-items: center;
  border-radius: 50%;
  font-size: 22px;
}

.contact-icon.green { color: #52a84f; background: #e6f7df; }
.contact-icon.pink { color: #f25f91; background: #ffe5ee; }
.contact-icon.blue { color: #1472cf; background: #e0f2ff; }
.contact-icon.yellow { color: #ee9b00; background: #fff2c7; }

.contact-info-card h2 {
  margin-bottom: 4px;
  color: #59a83e;
  font-size: 15px;
  font-weight: 950;
}

.contact-info-card article:nth-child(2) h2 { color: #f25f91; }
.contact-info-card article:nth-child(3) h2 { color: #1472cf; }
.contact-info-card article:nth-child(4) h2 { color: #ee9b00; }

.contact-info-card p {
  color: #092a50;
  font-size: 14px;
  font-weight: 650;
  line-height: 1.45;
}

.contact-form-card {
  display: grid;
  gap: 22px;
  padding: 34px;
  border: 1px solid rgba(6, 31, 63, 0.07);
  border-radius: 26px;
  background: rgba(255, 255, 255, 0.76);
  box-shadow: 0 20px 56px rgba(22, 49, 72, 0.1);
}

.contact-form-card label {
  display: grid;
  gap: 9px;
  color: #062347;
  font-size: 14px;
  font-weight: 900;
}

.contact-form-card input,
.contact-form-card textarea {
  width: 100%;
  border: 1px solid rgba(6, 31, 63, 0.13);
  border-radius: 14px;
  padding: 15px 18px;
  color: #062347;
  background: rgba(255, 255, 255, 0.85);
  font: inherit;
}

.contact-form-card textarea {
  min-height: 190px;
  resize: vertical;
}

.contact-form-card button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 58px;
  border: 0;
  border-radius: 999px;
  color: #ffffff;
  background: linear-gradient(135deg, #236dd8, #70329a);
  box-shadow: 0 18px 34px rgba(58, 62, 161, 0.24);
  font-size: 17px;
  font-weight: 950;
  cursor: pointer;
}

.registration-page {
  width: min(1180px, calc(100% - 40px));
  margin: 0 auto;
  padding: 72px 0 92px;
}

.registration-intro {
  display: grid;
  gap: 14px;
  max-width: 780px;
  margin-bottom: 30px;
}

.registration-intro span {
  width: fit-content;
  border-radius: 999px;
  padding: 8px 14px;
  color: #062347;
  background: #ffd96a;
  font-size: 13px;
  font-weight: 950;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.registration-intro h1 {
  color: #062347;
  font-size: clamp(46px, 6vw, 76px);
  line-height: 1;
  font-weight: 950;
}

.registration-intro p,
.registration-next p,
.registration-next li {
  color: #183761;
  font-weight: 700;
}

.registration-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 340px;
  gap: 28px;
  align-items: start;
}

.registration-card,
.registration-next,
.registration-modal section {
  border: 1px solid rgba(6, 31, 63, 0.07);
  background: rgba(255, 255, 255, 0.78);
  box-shadow: 0 20px 56px rgba(22, 49, 72, 0.1);
}

.registration-card {
  display: grid;
  gap: 22px;
  padding: 30px;
  border-radius: 28px;
}

.registration-card fieldset {
  display: grid;
  gap: 18px;
  min-width: 0;
  margin: 0;
  padding: 0 0 22px;
  border: 0;
  border-bottom: 1px dashed rgba(6, 31, 63, 0.15);
}

.registration-card fieldset:last-of-type {
  border-bottom: 0;
  padding-bottom: 0;
}

.registration-card legend,
.registration-next strong {
  color: #062347;
  font-size: 1.18rem;
  font-weight: 950;
}

.registration-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.registration-card label {
  display: grid;
  gap: 8px;
  color: #062347;
  font-size: 14px;
  font-weight: 900;
}

.registration-card input,
.registration-card textarea {
  width: 100%;
  border: 1px solid rgba(6, 31, 63, 0.13);
  border-radius: 14px;
  padding: 15px 18px;
  color: #062347;
  background: rgba(255, 255, 255, 0.9);
  font: inherit;
}

.registration-card textarea {
  min-height: 150px;
  resize: vertical;
}

.registration-card button[disabled] {
  opacity: .6;
  cursor: wait;
}

.registration-next {
  position: sticky;
  top: 104px;
  display: grid;
  gap: 14px;
  padding: 26px;
  border-radius: 24px;
}

.registration-next ol {
  display: grid;
  gap: 10px;
  margin: 0;
  padding-left: 20px;
}

.registration-modal {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(7, 31, 61, .42);
  backdrop-filter: blur(8px);
}

.registration-modal[hidden] {
  display: none;
}

.registration-modal section {
  display: grid;
  justify-items: center;
  gap: 14px;
  width: min(460px, 100%);
  padding: 34px;
  border-radius: 28px;
  text-align: center;
}

.registration-modal span {
  width: 64px;
  height: 64px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: #43aa8b;
  font-size: 32px;
  font-weight: 950;
}

.registration-modal h2 {
  color: #062347;
  font-size: 30px;
}

.registration-modal p {
  color: #183761;
  font-weight: 700;
}

.registration-modal button {
  min-height: 48px;
  border: 0;
  border-radius: 999px;
  padding: 0 22px;
  color: #fff;
  background: linear-gradient(135deg, #236dd8, #70329a);
  font-weight: 950;
  cursor: pointer;
}

/* Families portal */
.family-v2 {
  background:
    radial-gradient(circle at 0% 0%, rgba(255, 210, 76, 0.78), transparent 27rem),
    radial-gradient(circle at 91% 6%, rgba(122, 195, 236, 0.74), transparent 29rem),
    radial-gradient(circle at 98% 38%, rgba(247, 145, 176, 0.54), transparent 17rem),
    radial-gradient(circle at 96% 74%, rgba(126, 185, 99, 0.42), transparent 18rem),
    radial-gradient(circle at 0% 93%, rgba(246, 162, 183, 0.44), transparent 20rem),
    linear-gradient(135deg, #fff8e5 0%, #fffdf8 44%, #eaf8ff 100%);
}

.family-nav-shell {
  position: relative;
  z-index: 5;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 24px;
  width: min(1560px, calc(100% - 72px));
  min-height: 98px;
  margin: 28px auto 0;
  padding: 0 36px;
  border: 1px solid rgba(6, 31, 63, 0.06);
  border-radius: 34px;
  background: rgba(255, 255, 255, 0.86);
  box-shadow: 0 20px 58px rgba(19, 46, 68, 0.12);
  backdrop-filter: blur(18px);
}

.family-menu {
  gap: 30px;
}

.family-account {
  display: flex;
  align-items: center;
  gap: 22px;
}

.notification-button {
  position: relative;
  display: grid;
  width: 44px;
  height: 44px;
  place-items: center;
  border: 0;
  border-radius: 50%;
  color: #062347;
  background: transparent;
  font-size: 23px;
}

.notification-button strong {
  position: absolute;
  right: 2px;
  top: 0;
  display: grid;
  width: 20px;
  height: 20px;
  place-items: center;
  border-radius: 50%;
  color: #ffffff;
  background: #f25f91;
  font-size: 12px;
  font-weight: 950;
}

.account-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-height: 56px;
  padding: 0 28px;
  border-radius: 999px;
  color: #062347;
  background: linear-gradient(135deg, #ffe69a, #ffd169);
  box-shadow: inset 0 -2px 0 rgba(151, 97, 0, 0.08), 0 13px 28px rgba(255, 194, 66, 0.22);
  font-size: 16px;
  font-weight: 950;
  text-decoration: none;
}

.family-page {
  width: min(1500px, calc(100% - 72px));
  margin: 0 auto;
}

.family-hero {
  position: relative;
  display: grid;
  grid-template-columns: 520px 1fr;
  gap: 92px;
  align-items: center;
  min-height: 520px;
  padding: 32px 72px 28px;
}

.family-hero-copy {
  position: relative;
}

.family-hero h1 {
  max-width: 440px;
  margin: 0 0 34px;
  color: #062347;
  font-size: 88px;
  line-height: 0.98;
  font-weight: 950;
  letter-spacing: -0.055em;
}

.family-hero p {
  max-width: 560px;
  color: #092a50;
  font-size: 20px;
  font-weight: 650;
  line-height: 1.72;
}

.family-heart {
  position: absolute;
  right: 42px;
  top: -38px;
  color: #f1779d;
  font-size: 64px;
  transform: rotate(-12deg);
}

.family-leaf {
  position: absolute;
  left: -110px;
  top: 190px;
  width: 84px;
  height: 170px;
  border-left: 5px solid #74b96f;
  border-radius: 50%;
}

.family-leaf::before,
.family-leaf::after {
  content: "";
  position: absolute;
  width: 50px;
  height: 28px;
  border: 5px solid #74b96f;
  border-right: 0;
  border-bottom: 0;
  border-radius: 48px 0 0 0;
}

.family-leaf::before {
  left: -46px;
  top: 58px;
  transform: rotate(35deg);
}

.family-leaf::after {
  left: 2px;
  top: 96px;
  transform: rotate(-150deg);
}

.family-hero-photo {
  position: relative;
  margin: 0;
}

.family-hero-photo::before {
  content: "";
  position: absolute;
  right: -72px;
  top: -72px;
  z-index: -1;
  width: 310px;
  height: 240px;
  border-radius: 50% 50% 44% 56% / 42% 48% 52% 58%;
  background: rgba(129, 202, 239, 0.72);
}

.family-hero-photo::after {
  content: "";
  position: absolute;
  right: -50px;
  bottom: -26px;
  z-index: -1;
  width: 265px;
  height: 190px;
  border-radius: 54% 46% 45% 55% / 50% 46% 54% 50%;
  background:
    radial-gradient(circle, rgba(255, 255, 255, 0.86) 0 3px, transparent 4px) 16px 16px / 28px 28px,
    #f6a0b6;
}

.family-hero-photo img {
  display: block;
  width: 760px;
  height: 360px;
  object-fit: cover;
  object-position: center;
  border-radius: 47% 53% 48% 52% / 38% 44% 56% 62%;
  box-shadow: 0 26px 58px rgba(16, 39, 61, 0.12);
}

.family-dashboard-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(440px, 0.95fr);
  grid-template-areas:
    "news quick"
    "news event";
  gap: 30px 38px;
  padding: 0 42px 72px;
}

.news-panel,
.quick-panel,
.event-panel {
  border: 1px solid rgba(6, 31, 63, 0.07);
  background: rgba(255, 255, 255, 0.62);
  box-shadow: 0 20px 56px rgba(22, 49, 72, 0.09);
  backdrop-filter: blur(12px);
}

.news-panel {
  grid-area: news;
  padding: 34px 40px 28px;
  border-radius: 34px;
}

.quick-panel {
  grid-area: quick;
  padding: 34px;
  border-radius: 34px;
}

.event-panel {
  grid-area: event;
  display: grid;
  grid-template-columns: 86px 1fr 62px;
  gap: 24px;
  align-items: center;
  min-height: 158px;
  padding: 30px;
  border-radius: 28px;
  background: linear-gradient(135deg, #ffe7a4, #ffd980);
}

.family-panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 28px;
}

.family-panel-head h2,
.quick-panel h2,
.event-panel h2 {
  position: relative;
  color: #062347;
  font-weight: 950;
  letter-spacing: -0.03em;
}

.family-panel-head h2,
.quick-panel h2 {
  font-size: 34px;
  line-height: 1;
}

.family-panel-head h2::after,
.quick-panel h2::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -12px;
  width: 88px;
  height: 8px;
  background: repeating-linear-gradient(90deg, #ffc928 0 16px, transparent 16px 23px);
  mask: radial-gradient(10px 7px at 9px 50%, #000 98%, transparent) 0 0 / 25px 10px repeat-x;
}

.family-panel-head a {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 46px;
  padding: 0 24px;
  border-radius: 999px;
  color: #062347;
  background: rgba(255, 255, 255, 0.78);
  box-shadow: 0 10px 24px rgba(22, 49, 72, 0.08);
  font-size: 14px;
  font-weight: 900;
  text-decoration: none;
}

.news-item {
  display: grid;
  grid-template-columns: 210px 1fr 58px 28px;
  gap: 32px;
  align-items: center;
  padding: 22px 0;
  border-bottom: 1px dashed rgba(6, 31, 63, 0.14);
}

.news-item:last-of-type {
  border-bottom: 0;
}

.news-item img {
  width: 210px;
  height: 105px;
  object-fit: cover;
  border-radius: 18px;
}

.news-item h3 {
  margin-bottom: 9px;
  color: #062347;
  font-size: 20px;
  line-height: 1.2;
  font-weight: 950;
  letter-spacing: -0.02em;
}

.news-item p {
  color: #092a50;
  font-size: 16px;
  font-weight: 650;
  line-height: 1.6;
}

.news-item time {
  color: #4d4ab2;
  font-size: 25px;
  line-height: 0.95;
  font-weight: 950;
  text-align: center;
}

.news-item:nth-of-type(3) time {
  color: #f25f91;
}

.news-item:nth-of-type(4) time {
  color: #ee9b00;
}

.news-item time span {
  font-size: 16px;
}

.news-item > a {
  color: inherit;
  font-size: 25px;
  font-weight: 950;
  text-decoration: none;
}

.family-dots {
  display: flex;
  justify-content: center;
  gap: 12px;
  margin-top: 12px;
}

.family-dots span {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #cfe3ef;
}

.family-dots span:first-child {
  background: #ffbd21;
}

.quick-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-top: 34px;
}

.quick-grid a {
  display: grid;
  min-height: 138px;
  place-items: center;
  padding: 18px 12px;
  border: 1px solid rgba(6, 31, 63, 0.06);
  border-radius: 22px;
  color: #062347;
  background: rgba(255, 255, 255, 0.58);
  box-shadow: 0 14px 32px rgba(22, 49, 72, 0.07);
  font-size: 15px;
  font-weight: 900;
  line-height: 1.22;
  text-align: center;
  text-decoration: none;
}

.quick-icon {
  display: grid;
  width: 54px;
  height: 54px;
  place-items: center;
  margin-bottom: 8px;
  font-size: 32px;
}

.quick-icon.blue { color: #2b79df; }
.quick-icon.pink { color: #f25f91; }
.quick-icon.yellow { color: #f4ad16; }
.quick-icon.green { color: #4aa34a; }
.quick-icon.purple { color: #8f5bd6; }

.event-icon {
  display: grid;
  width: 76px;
  height: 76px;
  place-items: center;
  border-radius: 50%;
  color: #f25f91;
  background: rgba(255, 255, 255, 0.86);
  font-size: 38px;
}

.event-panel h2 {
  margin-bottom: 8px;
  font-size: 24px;
  line-height: 1.1;
}

.event-panel strong {
  display: block;
  margin-bottom: 8px;
  color: #f25f91;
  font-size: 22px;
  font-weight: 950;
}

.event-panel p {
  color: #092a50;
  font-size: 17px;
  font-weight: 700;
}

.event-panel > a {
  display: grid;
  width: 58px;
  height: 58px;
  place-items: center;
  border-radius: 50%;
  color: #062347;
  background: rgba(255, 255, 255, 0.74);
  font-size: 24px;
  font-weight: 950;
  text-decoration: none;
}

/* Administration dashboard */
.admin-v2 {
  background:
    radial-gradient(circle at 0% 0%, rgba(255, 210, 76, 0.72), transparent 28rem),
    radial-gradient(circle at 97% 12%, rgba(122, 195, 236, 0.78), transparent 30rem),
    radial-gradient(circle at 0% 80%, rgba(208, 231, 188, 0.62), transparent 20rem),
    radial-gradient(circle at 94% 96%, rgba(244, 171, 198, 0.36), transparent 18rem),
    linear-gradient(135deg, #fff8e5 0%, #fffdf8 46%, #eaf8ff 100%);
}

.admin-topbar {
  width: min(1580px, calc(100% - 64px));
}

.admin-page {
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr);
  gap: 40px;
  width: min(1580px, calc(100% - 64px));
  margin: 42px auto 60px;
}

.admin-sidebar {
  position: sticky;
  top: 24px;
  align-self: start;
  display: grid;
  min-height: 920px;
  padding: 34px 26px 26px;
  border: 1px solid rgba(6, 31, 63, 0.06);
  border-radius: 28px;
  background: rgba(255, 255, 255, 0.68);
  box-shadow: 0 20px 56px rgba(22, 49, 72, 0.1);
  backdrop-filter: blur(14px);
}

.admin-sidebar > p {
  margin-bottom: 20px;
  color: #6b4ad3;
  font-size: 13px;
  font-weight: 950;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.admin-sidebar nav {
  display: grid;
  gap: 10px;
  align-content: start;
}

.admin-sidebar nav a {
  display: flex;
  align-items: center;
  gap: 14px;
  min-height: 52px;
  padding: 0 14px;
  border-radius: 16px;
  color: #062347;
  font-size: 15px;
  font-weight: 850;
  text-decoration: none;
}

.admin-sidebar nav a span {
  width: 24px;
  color: #164575;
  font-size: 20px;
  text-align: center;
}

.admin-sidebar nav a.active {
  color: #6b4ad3;
  background: rgba(141, 105, 235, 0.12);
}

.admin-help-card {
  align-self: end;
  display: grid;
  grid-template-columns: 36px 1fr;
  gap: 4px 14px;
  padding: 22px;
  border-radius: 18px;
  color: #062347;
  background: linear-gradient(135deg, #fff0ba, #fff7dc);
  text-decoration: none;
}

.admin-help-card span {
  grid-row: span 3;
  color: #164575;
  font-size: 28px;
}

.admin-help-card strong {
  font-size: 14px;
  font-weight: 950;
}

.admin-help-card small {
  color: #375467;
  font-size: 12px;
  font-weight: 700;
}

.admin-help-card em {
  color: #f25f91;
  font-style: normal;
  font-weight: 950;
}

.admin-content {
  min-width: 0;
}

.admin-welcome {
  position: relative;
  padding: 10px 8px 34px;
}

.admin-welcome h1 {
  margin-bottom: 22px;
  color: #062347;
  font-size: 56px;
  line-height: 1;
  font-weight: 950;
  letter-spacing: -0.055em;
}

.admin-welcome h1::after {
  content: "";
  display: inline-block;
  width: 42px;
  height: 42px;
  margin-left: 16px;
  vertical-align: middle;
  background: repeating-conic-gradient(from 0deg, #ffc43d 0 12deg, transparent 12deg 45deg);
  mask: radial-gradient(circle, transparent 0 14px, #000 15px 20px, transparent 21px);
}

.admin-welcome p {
  color: #092a50;
  font-size: 18px;
  font-weight: 650;
  line-height: 1.55;
}

.admin-stat-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 30px;
  margin-bottom: 46px;
}

.admin-stat-grid article,
.admin-card {
  border: 1px solid rgba(6, 31, 63, 0.06);
  background: rgba(255, 255, 255, 0.68);
  box-shadow: 0 18px 50px rgba(22, 49, 72, 0.08);
  backdrop-filter: blur(14px);
}

.admin-stat-grid article {
  display: grid;
  grid-template-columns: 66px 1fr;
  gap: 18px;
  align-items: center;
  min-height: 140px;
  padding: 26px;
  border-radius: 24px;
}

.admin-stat-icon {
  display: grid;
  width: 58px;
  height: 58px;
  place-items: center;
  border-radius: 50%;
  font-size: 30px;
}

.admin-stat-icon.purple { color: #8f5bd6; background: #efe4ff; }
.admin-stat-icon.green { color: #52a84f; background: #e6f7df; }
.admin-stat-icon.pink { color: #f25f91; background: #ffe5ee; }
.admin-stat-icon.yellow { color: #ee9b00; background: #fff2c7; }

.admin-stat-grid strong {
  color: #062347;
  font-size: 42px;
  line-height: 1;
  font-weight: 950;
}

.admin-stat-grid p {
  grid-column: 2;
  color: #092a50;
  font-size: 14px;
  font-weight: 850;
  line-height: 1.45;
}

.admin-main-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(360px, 0.9fr);
  gap: 38px;
}

.admin-card {
  border-radius: 28px;
  padding: 34px;
}

.admin-card h2,
.admin-card-head h2 {
  position: relative;
  color: #062347;
  font-size: 28px;
  line-height: 1;
  font-weight: 950;
  letter-spacing: -0.03em;
}

.admin-card h2::after,
.admin-card-head h2::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -13px;
  width: 80px;
  height: 8px;
  background: repeating-linear-gradient(90deg, #ffc928 0 16px, transparent 16px 23px);
  mask: radial-gradient(10px 7px at 9px 50%, #000 98%, transparent) 0 0 / 25px 10px repeat-x;
}

.admin-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 34px;
}

.admin-card-head a,
.admin-bottom-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 42px;
  padding: 0 22px;
  border-radius: 999px;
  color: #062347;
  background: rgba(255, 255, 255, 0.72);
  box-shadow: 0 10px 24px rgba(22, 49, 72, 0.07);
  font-size: 13px;
  font-weight: 900;
  text-decoration: none;
}

.admin-timeline {
  display: grid;
}

.admin-timeline article {
  display: grid;
  grid-template-columns: 90px 1fr 66px;
  gap: 28px;
  align-items: center;
  min-height: 80px;
  position: relative;
}

.admin-timeline article + article::before {
  content: "";
  position: absolute;
  left: 43px;
  top: -24px;
  width: 2px;
  height: 48px;
  border-left: 2px dashed rgba(6, 31, 63, 0.18);
}

.admin-timeline time {
  display: grid;
  width: 70px;
  height: 38px;
  place-items: center;
  border-radius: 999px;
  color: #6b4ad3;
  background: #efe4ff;
  font-size: 17px;
  font-weight: 950;
}

.admin-timeline article:nth-child(2) time { color: #52a84f; background: #e6f7df; }
.admin-timeline article:nth-child(3) time { color: #f25f91; background: #ffe5ee; }
.admin-timeline article:nth-child(4) time { color: #1472cf; background: #e0f2ff; }
.admin-timeline article:nth-child(5) time { color: #ee9b00; background: #fff2c7; }

.admin-timeline h3 {
  margin-bottom: 6px;
  color: #062347;
  font-size: 18px;
  font-weight: 950;
}

.admin-timeline p {
  color: #092a50;
  font-size: 14px;
  font-weight: 650;
}

.admin-alert-list {
  display: grid;
  gap: 18px;
  margin: 36px 0 26px;
}

.admin-alert-list a {
  display: grid;
  grid-template-columns: 58px 1fr 22px;
  gap: 18px;
  align-items: center;
  min-height: 96px;
  padding: 20px;
  border-radius: 18px;
  color: #062347;
  text-decoration: none;
}

.admin-alert-list a.danger { background: rgba(255, 229, 238, 0.72); }
.admin-alert-list a.warning { background: rgba(255, 242, 199, 0.76); }
.admin-alert-list a.success { background: rgba(230, 247, 223, 0.74); }

.admin-alert-list span {
  display: grid;
  width: 52px;
  height: 52px;
  place-items: center;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.7);
  font-size: 25px;
}

.admin-alert-list strong {
  display: block;
  margin-bottom: 6px;
  font-size: 15px;
  font-weight: 950;
}

.admin-alert-list p {
  color: #092a50;
  font-size: 14px;
  font-weight: 650;
  line-height: 1.5;
}

.admin-alert-list em {
  color: #f25f91;
  font-style: normal;
  font-weight: 950;
}

.admin-actions-card {
  grid-column: 1;
}

.admin-doc-card {
  grid-column: 2;
}

.admin-actions-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
  margin-top: 36px;
}

.admin-actions-grid a {
  display: grid;
  grid-template-columns: 54px 1fr;
  gap: 14px;
  align-items: center;
  min-height: 112px;
  padding: 20px;
  border: 1px solid rgba(6, 31, 63, 0.06);
  border-radius: 18px;
  color: #062347;
  background: rgba(255, 255, 255, 0.55);
  box-shadow: 0 12px 30px rgba(22, 49, 72, 0.055);
  text-decoration: none;
}

.admin-action-icon {
  display: grid;
  grid-row: span 2;
  width: 52px;
  height: 52px;
  place-items: center;
  border-radius: 50%;
  font-size: 26px;
}

.admin-action-icon.purple { color: #8f5bd6; background: #efe4ff; }
.admin-action-icon.green { color: #52a84f; background: #e6f7df; }
.admin-action-icon.pink { color: #f25f91; background: #ffe5ee; }
.admin-action-icon.yellow { color: #ee9b00; background: #fff2c7; }
.admin-action-icon.blue { color: #1472cf; background: #e0f2ff; }

.admin-actions-grid strong {
  font-size: 14px;
  font-weight: 950;
}

.admin-actions-grid small {
  color: #092a50;
  font-size: 12px;
  font-weight: 650;
  line-height: 1.45;
}

.admin-doc-list {
  display: grid;
  gap: 20px;
  margin: 38px 0 28px;
}

.admin-doc-list a {
  display: grid;
  grid-template-columns: 44px 1fr auto;
  gap: 16px;
  align-items: center;
  color: #062347;
  text-decoration: none;
}

.admin-doc-list span {
  display: grid;
  width: 40px;
  height: 40px;
  place-items: center;
  border-radius: 12px;
  color: #f25f91;
  background: #ffe5ee;
  font-size: 22px;
}

.admin-doc-list strong {
  display: block;
  margin-bottom: 3px;
  font-size: 14px;
  font-weight: 950;
}

.admin-doc-list small,
.admin-doc-list time {
  color: #607888;
  font-size: 12px;
  font-weight: 700;
}

.admin-help-banner {
  display: grid;
  grid-template-columns: 320px 1fr 250px;
  gap: 42px;
  align-items: center;
  margin-top: 38px;
  padding: 32px 38px;
  border-radius: 28px;
  background: linear-gradient(135deg, rgba(255, 248, 224, 0.78), rgba(240, 229, 255, 0.65), rgba(255, 255, 255, 0.7));
  box-shadow: 0 18px 50px rgba(22, 49, 72, 0.08);
}

.admin-help-banner figure {
  margin: 0;
}

.admin-help-banner img {
  display: block;
  width: 300px;
  height: 160px;
  object-fit: cover;
  border-radius: 40% 60% 42% 58% / 45% 48% 52% 55%;
}

.admin-help-banner h2 {
  margin-bottom: 18px;
  color: #062347;
  font-size: 26px;
  font-weight: 950;
  letter-spacing: -0.02em;
}

.admin-help-banner p {
  color: #092a50;
  font-size: 16px;
  font-weight: 650;
  line-height: 1.6;
}

.admin-help-banner > a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 56px;
  border-radius: 999px;
  color: #ffffff;
  background: linear-gradient(135deg, #5a5fd6, #70329a);
  box-shadow: 0 18px 34px rgba(58, 62, 161, 0.24);
  font-size: 16px;
  font-weight: 950;
  text-decoration: none;
}

/* Routed interactive pages */
.route-body {
  min-height: 100vh;
}

.route-page {
  width: min(1440px, calc(100% - 72px));
  margin: 0 auto;
  padding: 54px 0 78px;
}

.route-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(360px, 0.62fr);
  gap: 70px;
  align-items: center;
  min-height: 360px;
  padding: 46px 52px;
  border-radius: 34px;
  background:
    radial-gradient(circle at 86% 18%, rgba(132, 199, 238, 0.34), transparent 18rem),
    radial-gradient(circle at 8% 90%, rgba(255, 212, 71, 0.3), transparent 16rem),
    rgba(255, 255, 255, 0.58);
  box-shadow: 0 20px 56px rgba(22, 49, 72, 0.08);
  backdrop-filter: blur(12px);
}

.route-crumbs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 34px;
}

.route-crumbs a,
.route-crumbs span {
  border-radius: 999px;
  padding: 7px 10px;
  color: #062347;
  font-size: 14px;
  font-weight: 850;
  text-decoration: none;
}

.route-crumbs a {
  background: rgba(255, 212, 71, 0.24);
}

.route-eyebrow {
  display: inline-flex;
  width: fit-content;
  margin-bottom: 18px;
  border-radius: 999px;
  padding: 10px 18px;
  color: #062347;
  background: #ffd96a;
  font-size: 13px;
  font-weight: 950;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.route-hero h1 {
  max-width: 760px;
  margin: 0 0 24px;
  color: #062347;
  font-size: clamp(54px, 6vw, 86px);
  line-height: 0.98;
  font-weight: 950;
  letter-spacing: -0.055em;
}

.route-hero p {
  max-width: 650px;
  color: #092a50;
  font-size: 19px;
  font-weight: 650;
  line-height: 1.72;
}

.route-hero-visual {
  position: relative;
  min-height: 240px;
}

.route-hero-visual::before,
.route-hero-visual::after {
  content: "";
  position: absolute;
  border-radius: 50%;
}

.route-hero-visual::before {
  inset: 18px 20px auto auto;
  width: 220px;
  height: 170px;
  background: rgba(129, 202, 239, 0.5);
}

.route-hero-visual::after {
  right: 10px;
  bottom: 10px;
  width: 190px;
  height: 145px;
  background:
    radial-gradient(circle, rgba(255, 255, 255, 0.84) 0 3px, transparent 4px) 16px 16px / 28px 28px,
    #f6a0b6;
}

.route-hero-visual img {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  max-width: 430px;
  height: 260px;
  margin-left: auto;
  object-fit: cover;
  border-radius: 48% 52% 44% 56% / 42% 48% 52% 58%;
  box-shadow: 0 22px 48px rgba(22, 49, 72, 0.11);
}

.route-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  margin-top: 30px;
}

.route-actions a,
.route-card a,
.route-panel-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  border-radius: 999px;
  padding: 0 22px;
  color: #062347;
  background: #ffd96a;
  font-size: 15px;
  font-weight: 950;
  text-decoration: none;
}

.route-actions a:first-child {
  color: #ffffff;
  background: linear-gradient(135deg, #236dd8, #70329a);
}

.route-section {
  margin-top: 42px;
}

.route-section h2 {
  position: relative;
  width: fit-content;
  margin: 0 0 34px;
  color: #062347;
  font-size: 34px;
  line-height: 1;
  font-weight: 950;
  letter-spacing: -0.03em;
}

.route-section h2::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -12px;
  width: 88px;
  height: 8px;
  background: repeating-linear-gradient(90deg, #ffc928 0 16px, transparent 16px 23px);
  mask: radial-gradient(10px 7px at 9px 50%, #000 98%, transparent) 0 0 / 25px 10px repeat-x;
}

.route-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

.route-grid.two {
  grid-template-columns: repeat(2, 1fr);
}

.route-card {
  display: grid;
  gap: 14px;
  min-height: 220px;
  padding: 26px;
  border: 1px solid rgba(6, 31, 63, 0.07);
  border-radius: 24px;
  background: rgba(255, 255, 255, 0.66);
  box-shadow: 0 18px 46px rgba(22, 49, 72, 0.075);
  backdrop-filter: blur(10px);
}

.route-icon {
  display: grid;
  width: 58px;
  height: 58px;
  place-items: center;
  border-radius: 50%;
  color: #1472cf;
  background: #e0f2ff;
  font-size: 28px;
}

.route-card:nth-child(2n) .route-icon { color: #f25f91; background: #ffe5ee; }
.route-card:nth-child(3n) .route-icon { color: #52a84f; background: #e6f7df; }
.route-card:nth-child(4n) .route-icon { color: #ee9b00; background: #fff2c7; }
.route-card:nth-child(5n) .route-icon { color: #8f5bd6; background: #efe4ff; }

.route-card h3 {
  color: #062347;
  font-size: 22px;
  line-height: 1.18;
  font-weight: 950;
  letter-spacing: -0.02em;
}

.route-card p {
  color: #092a50;
  font-size: 16px;
  font-weight: 650;
  line-height: 1.6;
}

.route-list {
  display: grid;
  gap: 16px;
}

.route-list a,
.route-list article {
  display: grid;
  grid-template-columns: 58px 1fr auto;
  gap: 18px;
  align-items: center;
  padding: 20px;
  border-radius: 20px;
  color: #062347;
  background: rgba(255, 255, 255, 0.66);
  box-shadow: 0 14px 34px rgba(22, 49, 72, 0.06);
  text-decoration: none;
}

.route-list strong {
  display: block;
  margin-bottom: 4px;
  font-size: 17px;
  font-weight: 950;
}

.route-list small {
  color: #526a75;
  font-size: 13px;
  font-weight: 750;
}

@media (max-width: 980px) {
  .route-page {
    width: min(100% - 40px, 1440px);
  }

  .route-hero {
    grid-template-columns: 1fr;
  }

  .route-grid,
  .route-grid.two {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 680px) {
  .route-page {
    width: min(100% - 28px, 1440px);
    padding-top: 34px;
  }

  .route-hero {
    padding: 28px;
    border-radius: 24px;
  }

  .route-grid,
  .route-grid.two {
    grid-template-columns: 1fr;
  }

  .route-list a,
  .route-list article {
    grid-template-columns: 1fr;
  }
}

/* Shared footer bands */
.kid-footer,
.footer,
.site-footer {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  width: min(1440px, calc(100% - 72px));
  margin: 0 auto 34px;
  padding: 28px 36px;
  border: 1px solid rgba(6, 31, 63, 0.07);
  border-radius: 30px;
  color: #062347;
  background: rgba(255, 255, 255, 0.72);
  box-shadow: 0 18px 48px rgba(22, 49, 72, 0.08);
  backdrop-filter: blur(14px);
}

.kid-footer div,
.footer .wrap,
.site-footer {
  min-height: 0;
}

.kid-footer div,
.footer .wrap {
  display: grid;
  gap: 4px;
}

.kid-footer strong,
.footer span:first-child,
.site-footer p {
  color: #062347;
  font-size: 20px;
  font-weight: 950;
  letter-spacing: -0.02em;
}

.kid-footer span,
.footer span:last-child {
  color: #526a75;
  font-size: 14px;
  font-weight: 700;
}

.kid-footer nav,
.site-footer nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px;
}

.kid-footer a,
.site-footer a {
  border-radius: 999px;
  padding: 9px 13px;
  color: #062347;
  font-size: 14px;
  font-weight: 850;
  text-decoration: none;
  background: rgba(255, 212, 71, 0.18);
}

@media (max-width: 980px) {
  .daily-page {
    width: min(100% - 40px, 1440px);
  }

  .daily-hero {
    grid-template-columns: 1fr;
    gap: 42px;
  }

  .daily-photo,
  .daily-photo img {
    width: 100%;
  }

  .daily-schedule::after {
    display: none;
  }

  .spaces-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .team-page,
  .contact-page {
    width: min(100% - 40px, 1440px);
  }

  .team-grid {
    grid-template-columns: repeat(2, 1fr);
    padding-inline: 0;
  }

  .contact-layout {
    grid-template-columns: 1fr;
    gap: 42px;
    padding-inline: 10px;
  }

  .contact-info-card {
    margin-left: 0;
  }

  .family-nav-shell,
  .family-page {
    width: min(100% - 40px, 1560px);
  }

  .family-nav-shell {
    grid-template-columns: 1fr;
    justify-items: center;
    gap: 18px;
    padding: 24px;
  }

  .family-menu,
  .family-account {
    flex-wrap: wrap;
    justify-content: center;
  }

  .family-hero {
    grid-template-columns: 1fr;
    gap: 42px;
    padding-inline: 10px;
  }

  .family-hero-photo img {
    width: 100%;
  }

  .family-dashboard-layout {
    grid-template-columns: 1fr;
    grid-template-areas:
      "news"
      "quick"
      "event";
    padding-inline: 0;
  }

  .news-item {
    grid-template-columns: 170px 1fr 58px 28px;
  }

  .quick-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .admin-topbar,
  .admin-page {
    width: min(100% - 40px, 1580px);
  }

  .admin-page {
    grid-template-columns: 1fr;
  }

  .admin-sidebar {
    position: static;
    min-height: auto;
  }

  .admin-stat-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .admin-main-grid {
    grid-template-columns: 1fr;
  }

  .admin-actions-card,
  .admin-doc-card {
    grid-column: auto;
  }

  .admin-actions-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .admin-help-banner {
    grid-template-columns: 1fr;
  }

  .kid-footer,
  .footer,
  .site-footer {
    align-items: flex-start;
    flex-direction: column;
  }
}

@media (max-width: 680px) {
  .daily-page {
    width: min(100% - 28px, 1440px);
  }

  .daily-hero,
  .spaces-section {
    padding-left: 10px;
    padding-right: 10px;
  }

  .daily-intro h1,
  .spaces-section h1,
  .spaces-section h2 {
    font-size: clamp(50px, 16vw, 64px);
  }

  .daily-schedule article {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .spaces-grid {
    grid-template-columns: 1fr;
  }

  .team-page,
  .contact-page {
    width: min(100% - 28px, 1440px);
  }

  .team-hero {
    padding-inline: 10px;
  }

  .team-hero h1,
  .contact-copy h1 {
    font-size: clamp(48px, 14vw, 64px);
  }

  .team-heart,
  .team-star,
  .paper-plane {
    display: none;
  }

  .team-grid {
    grid-template-columns: 1fr;
    padding-inline: 0;
  }

  .team-grid article {
    grid-template-columns: 1fr;
  }

  .contact-layout {
    padding: 42px 10px 62px;
  }

  .contact-info-card {
    width: 100%;
  }

  .family-nav-shell,
  .family-page {
    width: min(100% - 28px, 1560px);
  }

  .family-hero {
    min-height: auto;
    padding-top: 42px;
  }

  .family-hero h1 {
    font-size: clamp(56px, 17vw, 78px);
  }

  .family-heart,
  .family-leaf {
    display: none;
  }

  .family-hero-photo img {
    height: 280px;
  }

  .news-panel,
  .quick-panel,
  .event-panel {
    padding: 24px;
    border-radius: 24px;
  }

  .family-panel-head {
    align-items: flex-start;
    flex-direction: column;
  }

  .news-item {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .news-item img {
    width: 100%;
    height: 180px;
  }

  .news-item time {
    text-align: left;
  }

  .quick-grid {
    grid-template-columns: 1fr;
  }

  .event-panel {
    grid-template-columns: 1fr;
  }

  .admin-topbar,
  .admin-page {
    width: min(100% - 28px, 1580px);
  }

  .admin-welcome h1 {
    font-size: clamp(42px, 13vw, 56px);
  }

  .admin-stat-grid,
  .admin-actions-grid {
    grid-template-columns: 1fr;
  }

  .admin-card,
  .admin-sidebar {
    padding: 24px;
    border-radius: 24px;
  }

  .admin-card-head {
    align-items: flex-start;
    flex-direction: column;
  }

  .admin-timeline article,
  .admin-alert-list a,
  .admin-doc-list a {
    grid-template-columns: 1fr;
  }

  .admin-help-banner {
    padding: 24px;
  }

  .admin-help-banner img {
    width: 100%;
  }

  .kid-footer,
  .footer,
  .site-footer {
    width: min(100% - 28px, 1440px);
    padding: 24px;
    border-radius: 24px;
  }
}

/* Final fixed navigation/footer override */
body.home-v2,
body.project-v2,
body.route-body,
body.family-app,
body.login-family {
  padding-top: 116px;
  padding-bottom: 122px;
}

.landing-header,
.project-nav-shell,
.family-nav-shell,
.route-topbar,
.fp-topbar {
  position: fixed;
  top: 14px;
  left: 50%;
  z-index: 60;
  margin-top: 0;
  transform: translateX(-50%);
}

.project-nav-shell,
.family-nav-shell,
.route-topbar,
.fp-topbar {
  width: min(1440px, calc(100% - 36px));
}

.kid-footer,
.footer,
.site-footer {
  position: fixed;
  left: 50%;
  bottom: 12px;
  z-index: 55;
  width: min(1440px, calc(100% - 36px));
  margin: 0;
  transform: translateX(-50%);
}

@media (max-width: 760px) {
  body.home-v2,
  body.project-v2,
  body.route-body,
  body.family-app,
  body.login-family {
    padding-top: 142px;
    padding-bottom: 168px;
  }

  .landing-header,
  .project-nav-shell,
  .family-nav-shell,
  .route-topbar,
  .fp-topbar {
    top: 10px;
    width: min(100% - 20px, 1440px);
    max-height: 122px;
    overflow-y: auto;
  }

  .kid-footer,
  .footer,
  .site-footer {
    bottom: 8px;
    width: min(100% - 20px, 1440px);
    max-height: 140px;
    overflow-y: auto;
  }

  .fp-health-grid,
  .fp-profile-list,
  .fp-child-profile-card dl,
  .fp-week-grid {
    grid-template-columns: 1fr;
  }
}

/* Family portal additions */
.fp-sidebar nav hr {
  width: 100%;
  height: 1px;
  margin: 10px 0;
  border: 0;
  background: #dfe4ec;
}

.fp-page-actions {
  display: flex;
  justify-content: flex-end;
  margin: -10px 0 22px;
}

.fp-action-button,
.fp-conversations header button,
.fp-chat-reply button {
  display: inline-flex;
  min-height: 42px;
  align-items: center;
  justify-content: center;
  padding: 9px 16px;
  border: 0;
  border-radius: 7px;
  background: #7437e8;
  color: #fff;
  font: inherit;
  font-weight: 800;
  text-decoration: none;
  cursor: pointer;
}

.fp-conversations header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}

.fp-thread-button {
  width: 100%;
  border: 1px solid #e0e5ed;
  background: #fff;
  color: inherit;
  text-align: left;
  cursor: pointer;
}

.fp-thread-button:hover,
.fp-thread-button:focus-visible {
  border-color: #7437e8;
  box-shadow: 0 0 0 3px rgba(116, 55, 232, .12);
  outline: 0;
}

.fp-chat-body {
  display: flex;
  min-height: 300px;
  flex-direction: column;
  gap: 12px;
  padding: 18px;
  overflow-y: auto;
  background: #f6f8fb;
}

.fp-chat-bubble {
  width: min(78%, 560px);
  padding: 13px 15px;
  border: 1px solid #dfe4ec;
  border-radius: 8px;
  background: #fff;
}

.fp-chat-bubble.sent {
  align-self: flex-end;
  border-color: #d8c8fb;
  background: #f1ebff;
}

.fp-chat-bubble p { margin: 6px 0; line-height: 1.55; }
.fp-chat-bubble small { color: #657085; }
.fp-chat-reply { display: grid; gap: 10px; padding: 16px; border-top: 1px solid #dfe4ec; }
.fp-chat-reply textarea { width: 100%; box-sizing: border-box; resize: vertical; }

.fp-document-hub { min-height: 420px; }
.fp-document-hub .fp-tabs { display: flex; gap: 8px; margin-bottom: 24px; border-bottom: 1px solid #dfe4ec; }
.fp-document-hub .fp-tabs button { padding: 12px 16px; border: 0; border-bottom: 3px solid transparent; background: transparent; color: #657085; font: inherit; font-weight: 800; cursor: pointer; }
.fp-document-hub .fp-tabs button.active { border-bottom-color: #7437e8; color: #7437e8; }

.fp-faq > label { display: grid; gap: 8px; margin-bottom: 22px; color: #344055; font-weight: 800; }
.fp-faq > label input { max-width: 540px; padding: 12px 14px; border: 1px solid #bdc6d3; border-radius: 6px; }
.fp-faq-item { padding: 16px 0; border-top: 1px solid #dfe4ec; }
.fp-faq-item summary { color: #0b2b59; font-weight: 850; cursor: pointer; }
.fp-faq-item p { color: #657085; line-height: 1.65; }
.fp-toggle { display: flex !important; grid-template-columns: none !important; align-items: center; gap: 10px !important; }
.fp-toggle input { width: 18px !important; height: 18px; accent-color: #7437e8; }
.danger-outline { border: 1px solid #c63757 !important; background: #fff !important; color: #a52342 !important; }
.ap-conversion-child { padding: 16px; border: 1px solid #dfe4ec; border-radius: 8px; background: #f6f8fb; }
.ap-conversion-child + .ap-conversion-child { margin-top: 14px; }

@media (max-width: 760px) {
  .fp-page-actions { justify-content: stretch; }
  .fp-action-button { width: 100%; }
  .fp-chat-bubble { width: 88%; }
  .fp-document-hub .fp-tabs { overflow-x: auto; }
  .fp-document-hub .fp-tabs button { flex: 0 0 auto; }
}

/* Family documents - reference layout */
body.family-app[data-family-page="documents"] .fp-content {
  max-width: none;
  padding: 34px 34px 46px;
}

body.family-app .fp-doc-page-head { margin: 0 0 18px; }
body.family-app .fp-doc-page-head h1 { font-size: 2rem; line-height: 1.08; }
body.family-app .fp-doc-page-head p { margin-top: 6px; font-size: .79rem; }

body.family-app .fp-doc-layout {
  display: grid;
  grid-template-columns: minmax(0, 876px) 232px;
  gap: 34px;
  align-items: start;
}

body.family-app .fp-doc-main { min-width: 0; }

body.family-app .fp-doc-tabs {
  display: grid;
  grid-template-columns: 1fr .78fr 1.9fr;
  height: 58px;
  margin: 0 0 18px;
  overflow: hidden;
  border: 1px solid #e0e5ed;
  border-radius: 8px;
  background: #fff;
}

body.family-app .fp-doc-tabs button {
  position: relative;
  display: inline-flex;
  min-width: 0;
  align-items: center;
  justify-content: center;
  gap: 12px;
  border: 0;
  border-right: 1px solid #e6e9ef;
  background: #fff;
  color: #0b2352;
  font: inherit;
  font-size: .83rem;
  font-weight: 850;
  cursor: pointer;
}

body.family-app .fp-doc-tabs button:last-child { border-right: 0; }
body.family-app .fp-doc-tabs button > span { color: #7437e8; font-size: 1.35rem; line-height: 1; }
body.family-app .fp-doc-tabs button::after { content: ""; position: absolute; right: 0; bottom: 0; left: 0; height: 2px; background: transparent; }
body.family-app .fp-doc-tabs button.active { color: #5d25d5; }
body.family-app .fp-doc-tabs button.active::after { background: #7437e8; }
body.family-app .fp-doc-tabs em { display: inline-grid; width: 22px; height: 22px; place-items: center; border-radius: 50%; background: #f23878; color: #fff; font-size: .7rem; font-style: normal; }
body.family-app .fp-doc-tabs em[hidden] { display: none; }

body.family-app .fp-doc-priority {
  margin-bottom: 18px;
  padding: 16px 16px 10px;
  border: 1px solid #f9d7e3;
  border-radius: 8px;
  background: #fff9fb;
}

body.family-app .fp-doc-priority h2 {
  margin: 0 0 12px;
  color: #f23878;
  font-size: .74rem;
  text-transform: uppercase;
}

body.family-app .fp-doc-priority h2::after,
body.family-app .fp-doc-types h2::after,
body.family-app .fp-doc-help h2::after { display: none; }

body.family-app .fp-doc-task-row {
  display: grid;
  grid-template-columns: 42px minmax(180px, 1fr) auto auto 12px;
  min-height: 66px;
  align-items: center;
  gap: 12px;
  padding: 10px 12px;
  border: 1px solid #f5dce6;
  border-bottom: 0;
  background: #fff;
}

body.family-app .fp-doc-task-row:first-child { border-radius: 8px 8px 0 0; }
body.family-app .fp-doc-task-row:last-child { border-bottom: 1px solid #f5dce6; border-radius: 0 0 8px 8px; }
body.family-app .fp-doc-task-row:only-child { border-bottom: 1px solid #f5dce6; border-radius: 8px; }
body.family-app .fp-doc-task-icon { display: grid; width: 38px; height: 38px; place-items: center; border: 1px solid #fac8da; border-radius: 50%; background: #fff0f5; color: #f23878; font-size: 1rem; }
body.family-app .fp-doc-task-row strong { display: block; color: #0b2352; font-size: .8rem; }
body.family-app .fp-doc-task-row small { display: block; margin-top: 5px; color: #465777; font-size: .69rem; }
body.family-app .fp-doc-task-row small b { padding: 0 7px; color: #8c98a9; }
body.family-app .fp-doc-task-row time { color: #f23878; font-size: .7rem; white-space: nowrap; }
body.family-app .fp-doc-task-row > button {
  min-height: 35px;
  padding: 7px 14px;
  border: 1px solid #874cf1;
  border-radius: 6px;
  background: #fff;
  color: #6930db;
  font: inherit;
  font-size: .7rem;
  font-weight: 800;
  cursor: pointer;
}
body.family-app .fp-doc-task-row > span:last-child { color: #0b2b59; font-size: 1.35rem; }

body.family-app .fp-document-hub {
  min-height: 0;
  padding: 14px 16px;
  border: 1px solid #e2e6ed;
  border-radius: 8px;
  box-shadow: none;
}

body.family-app .fp-doc-toolbar { display: grid; grid-template-columns: minmax(240px, 1.7fr) minmax(168px, .8fr) minmax(174px, .8fr); gap: 9px; }
body.family-app .fp-doc-toolbar label { min-width: 0; }
body.family-app .fp-doc-toolbar input,
body.family-app .fp-doc-toolbar select {
  width: 100%;
  height: 38px;
  box-sizing: border-box;
  padding: 8px 12px;
  border: 1px solid #dce2eb;
  border-radius: 7px;
  background: #fff;
  color: #24385f;
  font: inherit;
  font-size: .7rem;
}

body.family-app .fp-doc-search { position: relative; display: block; }
body.family-app .fp-doc-search > span[aria-hidden] { position: absolute; z-index: 1; top: 8px; left: 12px; color: #7487a5; font-size: 1rem; }
body.family-app .fp-doc-search input { padding-left: 36px; }

body.family-app .fp-doc-person-filters { display: flex; flex-wrap: wrap; gap: 7px; margin: 12px 0 13px; }
body.family-app .fp-doc-person-filters button {
  display: inline-flex;
  min-height: 31px;
  align-items: center;
  gap: 7px;
  padding: 5px 11px;
  border: 1px solid #dfe4ec;
  border-radius: 6px;
  background: #fff;
  color: #24385f;
  font: inherit;
  font-size: .69rem;
  cursor: pointer;
}
body.family-app .fp-doc-person-filters button.active { border-color: #8b4cf6; background: #f7f2ff; color: #6329d8; }
body.family-app .fp-doc-person-filters i { display: grid; width: 21px; height: 21px; place-items: center; border-radius: 50%; background: #f0e8ff; color: #6329d8; font-size: .64rem; font-style: normal; font-weight: 850; }

body.family-app .fp-doc-list { overflow: hidden; border: 1px solid #e2e6ed; border-radius: 7px; }
body.family-app .fp-doc-list > .fp-empty { border: 0; border-radius: 0; }
body.family-app .fp-doc-row {
  display: grid;
  grid-template-columns: 42px minmax(190px, 1fr) auto auto;
  min-height: 68px;
  align-items: center;
  gap: 12px;
  padding: 8px 12px;
  border-bottom: 1px solid #e8ebf0;
  background: #fff;
}
body.family-app .fp-doc-row:last-child { border-bottom: 0; }
body.family-app .fp-doc-file-icon { position: relative; display: grid; width: 30px; height: 38px; place-items: end center; padding-bottom: 4px; box-sizing: border-box; border: 1px solid #d9deea; border-radius: 3px; background: #f9f9fc; color: #ef315f; font-size: .52rem; font-weight: 900; }
body.family-app .fp-doc-file-icon::before { content: ""; position: absolute; top: 5px; left: 7px; width: 14px; height: 2px; background: #d9deea; box-shadow: 0 5px #d9deea; }
body.family-app .fp-doc-row-copy { min-width: 0; }
body.family-app .fp-doc-row-copy > div { display: flex; align-items: center; gap: 8px; }
body.family-app .fp-doc-row-copy strong { overflow: hidden; color: #0b2352; font-size: .73rem; text-overflow: ellipsis; white-space: nowrap; }
body.family-app .fp-doc-row-copy em { padding: 3px 8px; border-radius: 10px; background: #f3ebff; color: #7437e8; font-size: .5rem; font-style: normal; font-weight: 850; text-transform: uppercase; }
body.family-app .fp-doc-row-copy small { display: block; margin-top: 4px; overflow: hidden; color: #50617e; font-size: .61rem; text-overflow: ellipsis; white-space: nowrap; }
body.family-app .fp-doc-row-copy small b { padding: 0 5px; color: #a4adba; }
body.family-app .fp-doc-status { padding: 5px 10px; border-radius: 13px; background: #eff4fa; color: #536278; font-size: .58rem; font-weight: 800; white-space: nowrap; }
body.family-app .fp-doc-status.valide,
body.family-app .fp-doc-status.approuve,
body.family-app .fp-doc-status.accepte { background: #eef9ed; color: #24823d; }
body.family-app .fp-doc-status.transmis { background: #eff6ff; color: #1673d2; }
body.family-app .fp-doc-status.refuse { background: #fff0f5; color: #d72c61; }
body.family-app .fp-doc-row-actions { display: flex; gap: 7px; }
body.family-app .fp-doc-row-actions button {
  display: inline-flex;
  min-height: 33px;
  align-items: center;
  gap: 7px;
  padding: 6px 11px;
  border: 1px solid #e0e5ed;
  border-radius: 6px;
  background: #fff;
  color: #18315d;
  font: inherit;
  font-size: .66rem;
  cursor: pointer;
}
body.family-app .fp-doc-row-actions button:disabled { width: 32px; padding: 0; justify-content: center; opacity: 1; cursor: default; }

body.family-app .fp-doc-pagination { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; padding-top: 14px; color: #596b87; font-size: .63rem; }
body.family-app .fp-doc-pagination[hidden] { display: none; }
body.family-app .fp-doc-pagination span:nth-child(2) { display: flex; align-items: center; gap: 14px; }
body.family-app .fp-doc-pagination b { display: grid; width: 26px; height: 26px; place-items: center; border-radius: 50%; background: #7437e8; color: #fff; }
body.family-app .fp-doc-pagination span:last-child { text-align: right; }

body.family-app .fp-doc-aside { display: grid; gap: 18px; }
body.family-app .fp-doc-aside .fp-panel { padding: 22px 20px; }
body.family-app .fp-doc-aside h2 { margin: 0 0 18px; color: #0b2352; font-size: .75rem; }
body.family-app .fp-doc-types [data-family-doc-type-list] { display: grid; gap: 11px; }
body.family-app .fp-doc-types [data-family-doc-type-list] button { display: flex; align-items: center; gap: 9px; padding: 0; border: 0; background: transparent; color: #20345d; font: inherit; font-size: .66rem; text-align: left; cursor: pointer; }
body.family-app .fp-doc-types i { display: grid; width: 23px; height: 23px; flex: 0 0 23px; place-items: center; border-radius: 50%; background: #fff1db; color: #f59e0b; font-size: .62rem; font-style: normal; }
body.family-app .fp-doc-types button:nth-child(2) i { background: #fff0f5; color: #f23878; }
body.family-app .fp-doc-types button:nth-child(3) i { background: #f3ebff; color: #7437e8; }
body.family-app .fp-doc-types button:nth-child(4) i { background: #eff6ff; color: #1673d2; }
body.family-app .fp-doc-types button:nth-child(5) i { background: #f0f9ef; color: #36a853; }
body.family-app .fp-doc-types > button { display: flex; width: 100%; justify-content: space-between; margin-top: 18px; padding: 0; border: 0; background: transparent; color: #682adb; font: inherit; font-size: .65rem; font-weight: 850; cursor: pointer; }

body.family-app .fp-doc-help { position: relative; min-height: 210px; overflow: hidden; padding: 24px 20px 18px; border: 1px solid #eadffa; border-radius: 8px; background: linear-gradient(140deg, #faf5ff 10%, #f0dcff 100%); }
body.family-app .fp-doc-help p { width: 70%; margin: 0; color: #263a64; font-size: .67rem; line-height: 1.45; }
body.family-app .fp-doc-help-figure { position: absolute; right: 12px; bottom: 47px; width: 86px; height: 108px; }
body.family-app .fp-doc-help-figure i { position: absolute; right: 0; bottom: 0; width: 54px; height: 82px; border-radius: 45% 45% 15% 15%; background: #7437e8; }
body.family-app .fp-doc-help-figure i::before { content: ""; position: absolute; top: -21px; left: 12px; width: 34px; height: 34px; border-radius: 50%; background: #efae85; box-shadow: -8px -5px 0 3px #0b2b59; }
body.family-app .fp-doc-help-figure span { position: absolute; top: 8px; left: 0; z-index: 1; padding: 7px 14px; border-radius: 18px; background: #fff; color: #cabce7; letter-spacing: 2px; }
body.family-app .fp-doc-help > button { position: absolute; right: 14px; bottom: 14px; left: 14px; display: flex; min-height: 36px; align-items: center; justify-content: space-between; padding: 7px 13px; border: 0; border-radius: 6px; background: #7437e8; color: #fff; font: inherit; font-size: .64rem; font-weight: 850; cursor: pointer; }
body.family-app .fp-doc-security { display: flex; align-items: center; gap: 13px; padding: 17px 18px; border: 1px solid #e5dcfa; border-radius: 8px; background: #faf7ff; }
body.family-app .fp-doc-security > span { color: #7437e8; font-size: 1.25rem; }
body.family-app .fp-doc-security p { margin: 0; color: #425475; font-size: .65rem; line-height: 1.45; }
body.family-app .fp-doc-task-list > .fp-empty { min-height: 120px; display: grid; place-content: center; text-align: center; }
body.family-app .fp-consent-actions { display: flex; justify-content: flex-end; gap: 10px; }

@media (max-width: 1180px) {
  body.family-app .fp-doc-layout { grid-template-columns: minmax(0, 1fr) 210px; gap: 20px; }
  body.family-app .fp-doc-row { grid-template-columns: 38px minmax(170px, 1fr) auto; }
  body.family-app .fp-doc-row .fp-doc-status { grid-column: 2; justify-self: start; }
  body.family-app .fp-doc-row-actions { grid-column: 3; grid-row: 1 / span 2; }
  body.family-app .fp-doc-row-actions button { font-size: 0; }
  body.family-app .fp-doc-row-actions button span { font-size: .8rem; }
}

@media (max-width: 900px) {
  body.family-app[data-family-page="documents"] .fp-content { padding: 26px 22px 42px; }
  body.family-app .fp-doc-layout { grid-template-columns: 1fr; }
  body.family-app .fp-doc-aside { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  body.family-app .fp-doc-help { min-height: 178px; }
  body.family-app .fp-doc-toolbar { grid-template-columns: 1fr 1fr; }
  body.family-app .fp-doc-search { grid-column: 1 / -1; }
}

@media (max-width: 600px) {
  body.family-app:not([data-family-page="espace-familles"]) .fp-topbar {
    display: grid;
    min-height: 70px;
    padding: 9px 14px;
    grid-template-columns: minmax(0, 1fr) 38px 38px;
    gap: 8px;
  }
  body.family-app:not([data-family-page="espace-familles"]) .fp-header-brand { min-width: 0; overflow: hidden; }
  body.family-app:not([data-family-page="espace-familles"]) .fp-header-brand .fp-logo { width: 38px; height: 38px; flex-basis: 38px; }
  body.family-app:not([data-family-page="espace-familles"]) .fp-header-brand .fp-logo::after { top: 18px; }
  body.family-app:not([data-family-page="espace-familles"]) .fp-header-brand strong { overflow: hidden; font-size: .88rem; text-overflow: ellipsis; }
  body.family-app:not([data-family-page="espace-familles"]) .fp-top-title { display: none; }
  body.family-app:not([data-family-page="espace-familles"]) .fp-account { width: 38px; }
  body.family-app:not([data-family-page="espace-familles"]) .fp-avatar-mini { width: 38px; height: 38px; flex-basis: 38px; }
  body.family-app:not([data-family-page="espace-familles"]) .fp-bell { width: 38px; height: 38px; }
  body.family-app[data-family-page="documents"] .fp-content { padding: 22px 14px 36px; }
  body.family-app .fp-doc-tabs { display: flex; height: 54px; overflow-x: auto; }
  body.family-app .fp-doc-tabs button { flex: 0 0 auto; padding: 0 16px; font-size: .72rem; }
  body.family-app .fp-doc-toolbar { grid-template-columns: 1fr; }
  body.family-app .fp-doc-search { grid-column: auto; }
  body.family-app .fp-doc-task-row { grid-template-columns: 36px 1fr 12px; padding: 12px 9px; }
  body.family-app .fp-doc-task-row time { grid-column: 2; }
  body.family-app .fp-doc-task-row > button { grid-column: 2; justify-self: start; }
  body.family-app .fp-doc-task-row > span:last-child { grid-column: 3; grid-row: 1 / span 3; }
  body.family-app .fp-document-hub { padding: 11px; }
  body.family-app .fp-doc-row { grid-template-columns: 34px 1fr; padding: 10px 8px; }
  body.family-app .fp-doc-row .fp-doc-status { grid-column: 2; }
  body.family-app .fp-doc-row-actions { grid-column: 2; grid-row: auto; }
  body.family-app .fp-doc-row-actions button { font-size: .62rem; }
  body.family-app .fp-doc-row-actions button span { font-size: .72rem; }
  body.family-app .fp-doc-pagination { grid-template-columns: 1fr auto; }
  body.family-app .fp-doc-pagination span:last-child { display: none; }
  body.family-app .fp-doc-aside { grid-template-columns: 1fr; }
}

/* Family account - reference layout */
body.family-app[data-family-page="mon-compte"] .fp-content { padding: 27px 40px 32px; }
body.family-app .fp-account-page-head { margin-bottom: 18px; }
body.family-app .fp-account-page-head h1 { font-size: 2rem; }
body.family-app .fp-account-page-head p { margin-top: 6px; font-size: .76rem; }
body.family-app .fp-account-layout { display: grid; gap: 16px; }
body.family-app .fp-account-layout > .fp-panel,
body.family-app .fp-account-upper > .fp-panel,
body.family-app .fp-account-lower > .fp-panel { border-radius: 9px; box-shadow: 0 6px 20px rgba(20, 45, 80, .045); }

body.family-app .fp-account-identity {
  display: grid;
  min-height: 128px;
  padding: 22px 30px;
  box-sizing: border-box;
  grid-template-columns: 76px minmax(220px, 1fr) minmax(280px, 1fr);
  align-items: center;
  gap: 24px;
}
body.family-app .fp-account-identity > span { display: grid; width: 72px; height: 72px; place-items: center; border-radius: 50%; background: #eee3ff; color: #6530d4; font-size: 1.55rem; font-weight: 900; }
body.family-app .fp-account-identity h2 { margin: 0; color: var(--fp-navy); font-size: 1.05rem; }
body.family-app .fp-account-identity h2::after { display: none; }
body.family-app .fp-account-identity p { margin: 5px 0; color: #456080; font-size: .69rem; }
body.family-app .fp-account-identity em { display: inline-flex; min-height: 25px; padding: 4px 9px; box-sizing: border-box; align-items: center; border-radius: 6px; background: #eff9ed; color: #26863d; font-size: .65rem; font-style: normal; font-weight: 850; }
body.family-app .fp-account-identity em[hidden] { display: none; }
body.family-app .fp-account-children { display: flex; min-height: 72px; padding-left: 34px; align-items: center; gap: 18px; border-left: 1px solid #dfe4ec; }
body.family-app .fp-account-children > span { display: grid; width: 44px; height: 44px; flex: 0 0 44px; place-items: center; border-radius: 50%; background: #f0e8ff; color: #7437e8; font-size: 1.15rem; }
body.family-app .fp-account-children strong { color: var(--fp-navy); font-size: .72rem; }
body.family-app .fp-account-children p { margin: 6px 0; color: var(--fp-navy); font-size: .72rem; font-weight: 850; }
body.family-app .fp-account-children a { color: #7437e8; font-size: .68rem; font-weight: 850; text-decoration: none; }

body.family-app .fp-account-upper { display: grid; grid-template-columns: 1.03fr 1fr; gap: 16px; }
body.family-app .fp-account-info,
body.family-app .fp-account-security,
body.family-app .fp-account-notifications,
body.family-app .fp-account-management { padding: 20px 24px; }
body.family-app .fp-account-upper > .fp-panel { padding-top: 16px; padding-bottom: 16px; }
body.family-app .fp-account-info > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 15px; }
body.family-app .fp-account-info header h2,
body.family-app .fp-account-security header h2,
body.family-app .fp-account-notifications header h2,
body.family-app .fp-account-management header h2 { display: flex; margin: 0; align-items: center; gap: 10px; color: var(--fp-navy); font-size: .92rem; }
body.family-app .fp-account-info header h2::after,
body.family-app .fp-account-security header h2::after,
body.family-app .fp-account-notifications header h2::after,
body.family-app .fp-account-management header h2::after { display: none; }
body.family-app .fp-account-info header h2 span,
body.family-app .fp-account-security header h2 span,
body.family-app .fp-account-notifications header h2 span,
body.family-app .fp-account-management header h2 span { display: grid; width: 35px; height: 35px; place-items: center; border-radius: 50%; background: #eee4ff; color: #7437e8; }
body.family-app .fp-account-notifications header h2 span { background: #fff3d9; color: #f2a000; }
body.family-app .fp-account-management header h2 span { background: #fff0f5; color: #f23878; }
body.family-app .fp-account-info header p,
body.family-app .fp-account-security header p,
body.family-app .fp-account-notifications header p { margin: 3px 0 0 45px; color: #49607f; font-size: .62rem; }
body.family-app .fp-account-info > header > button { min-height: 32px; padding: 6px 12px; border: 1px solid #8b4cf6; border-radius: 6px; background: #fff; color: #6731d5; font: inherit; font-size: .63rem; font-weight: 850; cursor: pointer; }
body.family-app .fp-account-info > header > button[hidden] { display: none; }

body.family-app .fp-account-info dl { margin: 14px 0 12px; border-top: 1px solid #e8ebf0; }
body.family-app .fp-account-info dl[hidden] { display: none; }
body.family-app .fp-account-info dl > div { display: grid; min-height: 35px; grid-template-columns: 42% 58%; align-items: center; border-bottom: 1px solid #e8ebf0; font-size: .65rem; }
body.family-app .fp-account-info dt { color: var(--fp-navy); font-weight: 850; }
body.family-app .fp-account-info dd { display: flex; margin: 0; align-items: center; justify-content: space-between; gap: 8px; color: #294163; }
body.family-app .fp-account-info dd em { padding: 4px 8px; border-radius: 12px; background: #eff9ed; color: #27853e; font-size: .55rem; font-style: normal; font-weight: 850; }
body.family-app .fp-account-note { margin: 0; padding: 10px 12px; border: 1px solid #d5e3f7; border-radius: 7px; background: #f5f9ff; color: #395477; font-size: .58rem; }
body.family-app .fp-account-note[hidden] { display: none; }

body.family-app .fp-account-info form[hidden] { display: none; }
body.family-app .fp-account-info form { margin-top: 14px; }
body.family-app .fp-account-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
body.family-app .fp-account-form-grid label,
body.family-app .fp-email-change label { display: grid; gap: 4px; color: var(--fp-navy); font-size: .61rem; font-weight: 850; }
body.family-app .fp-account-form-grid input,
body.family-app .fp-email-change input { width: 100%; height: 36px; padding: 7px 9px; box-sizing: border-box; border: 1px solid #d3dce8; border-radius: 6px; font: inherit; font-size: .66rem; }
body.family-app .fp-account-info .fp-email-change { margin: 10px 0; padding: 10px; }
body.family-app .fp-account-info [data-family-account-status] { min-height: 14px; margin: 6px 0; color: #27763b; font-size: .62rem; }
body.family-app .fp-account-edit-actions { display: flex; justify-content: flex-end; gap: 8px; }
body.family-app .fp-account-edit-actions button { min-height: 34px; padding: 7px 12px; border: 1px solid #d5dce6; border-radius: 6px; background: #fff; color: #304565; font: inherit; font-size: .64rem; font-weight: 850; cursor: pointer; }
body.family-app .fp-account-edit-actions button[type="submit"] { border-color: #7437e8; background: #7437e8; color: #fff; }

body.family-app .fp-account-password { display: flex; margin-top: 12px; padding: 12px 13px; align-items: center; justify-content: space-between; gap: 15px; border: 1px solid #e4e7ed; border-radius: 7px; }
body.family-app .fp-account-password strong,
body.family-app .fp-account-password span { display: block; color: var(--fp-navy); font-size: .68rem; }
body.family-app .fp-account-password span { margin-top: 8px; letter-spacing: 2px; }
body.family-app .fp-account-password button { min-height: 33px; padding: 6px 12px; border: 1px solid #8b4cf6; border-radius: 6px; background: #fff; color: #6731d5; font: inherit; font-size: .61rem; font-weight: 850; cursor: pointer; }
body.family-app .fp-account-password-mail { margin-top: 10px; padding: 12px 15px; border-radius: 7px; background: #f5efff; }
body.family-app .fp-account-password-mail strong { color: var(--fp-navy); font-size: .67rem; }
body.family-app .fp-account-password-mail p { margin: 6px 0 10px; color: #425879; font-size: .61rem; }
body.family-app .fp-account-password-mail button { min-height: 34px; padding: 7px 12px; border: 0; border-radius: 6px; background: #7437e8; color: #fff; font: inherit; font-size: .62rem; font-weight: 850; cursor: pointer; }
body.family-app .fp-account-password-mail [data-family-password-status] { margin-bottom: 0; color: #28763c; }

body.family-app .fp-account-lower { display: grid; grid-template-columns: minmax(0, 2.2fr) minmax(260px, 1fr); gap: 16px; }
body.family-app .fp-notification-head,
body.family-app .fp-notification-row { display: grid; grid-template-columns: minmax(250px, 1fr) 150px 120px; align-items: center; }
body.family-app .fp-notification-head { margin-top: 12px; padding: 7px 8px; border-bottom: 1px solid #dfe4eb; font-size: .57rem; }
body.family-app .fp-notification-head strong:nth-child(n+2) { text-align: center; }
body.family-app .fp-notification-row { min-height: 42px; border-bottom: 1px solid #e7eaf0; }
body.family-app .fp-notification-row > span { display: grid; width: 30px; height: 30px; grid-column: 1; grid-row: 1; place-items: center; border-radius: 7px; background: #fff5de; color: #efa000; font-size: .83rem; }
body.family-app .fp-notification-row > div { min-width: 0; padding-left: 42px; grid-column: 1; grid-row: 1; }
body.family-app .fp-notification-row strong { display: block; color: var(--fp-navy); font-size: .62rem; }
body.family-app .fp-notification-row small { display: block; margin-top: 2px; overflow: hidden; color: #718096; font-size: .55rem; text-overflow: ellipsis; white-space: nowrap; }
body.family-app .fp-notification-row label { display: grid; place-items: center; }
body.family-app .fp-notification-row input { position: relative; width: 31px; height: 18px; margin: 0; appearance: none; border: 0; border-radius: 12px; background: #b7c2d0; cursor: pointer; }
body.family-app .fp-notification-row input::after { position: absolute; top: 2px; left: 2px; width: 14px; height: 14px; border-radius: 50%; background: #fff; content: ""; transition: transform .16s; }
body.family-app .fp-notification-row input:checked { background: #7437e8; }
body.family-app .fp-notification-row input:checked::after { transform: translateX(13px); }
body.family-app .fp-notification-row input:disabled { opacity: 1; cursor: default; }
body.family-app .fp-account-notifications footer { display: flex; margin-top: 12px; padding: 9px 12px; align-items: center; justify-content: space-between; gap: 14px; border-radius: 7px; background: #fff7e3; }
body.family-app .fp-account-notifications footer p { margin: 0; color: #52647f; font-size: .55rem; }
body.family-app .fp-account-notifications footer button { min-height: 34px; flex: 0 0 auto; padding: 7px 13px; border: 0; border-radius: 6px; background: #7437e8; color: #fff; font: inherit; font-size: .6rem; font-weight: 850; cursor: pointer; }
body.family-app .fp-account-notifications > [data-family-notification-status] { min-height: 14px; margin: 6px 0 0; color: #28763c; font-size: .6rem; text-align: right; }

body.family-app .fp-account-management header { padding-bottom: 13px; border-bottom: 1px solid #e6e9ee; }
body.family-app .fp-account-management > div { margin-top: 13px; padding: 20px 17px; border: 1px solid #f5d4df; border-radius: 8px; background: #fff7f9; }
body.family-app .fp-account-management > div > strong { color: var(--fp-navy); font-size: .68rem; line-height: 1.45; }
body.family-app .fp-account-management > div > p { color: #425978; font-size: .59rem; line-height: 1.6; }
body.family-app .fp-account-management button { width: 100%; min-height: 38px; margin-top: 8px; padding: 7px 10px; border-color: #f23878 !important; border-radius: 6px; color: #e72f68 !important; font: inherit; font-size: .61rem; font-weight: 850; cursor: pointer; }
body.family-app .fp-account-management [data-family-deletion-status] { margin-bottom: 0; color: #a12c51; }

@media (max-width: 1080px) {
  body.family-app[data-family-page="mon-compte"] .fp-content { padding-right: 24px; padding-left: 24px; }
  body.family-app .fp-account-upper { grid-template-columns: 1fr; }
  body.family-app .fp-account-lower { grid-template-columns: 1.7fr 1fr; }
}

@media (max-width: 820px) {
  body.family-app .fp-account-identity { grid-template-columns: 66px 1fr; }
  body.family-app .fp-account-identity > span { width: 62px; height: 62px; }
  body.family-app .fp-account-children { grid-column: 1 / -1; min-height: 58px; padding: 15px 0 0; border-top: 1px solid #e2e6ed; border-left: 0; }
  body.family-app .fp-account-lower { grid-template-columns: 1fr; }
}

@media (max-width: 600px) {
  body.family-app[data-family-page="mon-compte"] .fp-content { padding: 22px 14px 38px; }
  body.family-app .fp-account-page-head h1 { font-size: 1.7rem; }
  body.family-app .fp-account-identity { padding: 18px; gap: 14px; }
  body.family-app .fp-account-info,
  body.family-app .fp-account-security,
  body.family-app .fp-account-notifications,
  body.family-app .fp-account-management { padding: 17px 14px; }
  body.family-app .fp-account-info > header { align-items: stretch; flex-direction: column; }
  body.family-app .fp-account-info > header > button { align-self: flex-start; }
  body.family-app .fp-account-form-grid { grid-template-columns: 1fr; }
  body.family-app .fp-account-password { align-items: stretch; flex-direction: column; }
  body.family-app .fp-notification-head { display: none; }
  body.family-app .fp-notification-row { grid-template-columns: minmax(0, 1fr) 54px 54px; padding: 7px 0; }
  body.family-app .fp-notification-row::before { grid-column: 2; grid-row: 1; color: #718096; content: "Espace"; font-size: .48rem; text-align: center; transform: translateY(-20px); }
  body.family-app .fp-notification-row label { grid-row: 1; }
  body.family-app .fp-notification-row small { white-space: normal; }
  body.family-app .fp-account-notifications footer { align-items: stretch; flex-direction: column; }
  body.family-app .fp-account-notifications footer button { width: 100%; }
}

/* Family help center - reference layout */
body.family-app[data-family-page="aide"] .fp-content { padding: 36px 46px 30px; }
body.family-app .fp-help-page-head { margin-bottom: 24px; }
body.family-app .fp-help-page-head h1 { font-size: 2.25rem; }
body.family-app .fp-help-page-head p { margin-top: 8px; color: #183766; font-size: .78rem; }
body.family-app .fp-help-search label { position: relative; display: block; }
body.family-app .fp-help-search label > span[aria-hidden] { position: absolute; top: 14px; left: 24px; z-index: 1; color: #8392aa; font-size: 1.25rem; }
body.family-app .fp-help-search input { width: 100%; height: 58px; padding: 12px 22px 12px 62px; box-sizing: border-box; border: 1px solid #cdbaf8; border-radius: 24px; background: #fff; box-shadow: 0 4px 11px rgba(116, 55, 232, .07); color: var(--fp-navy); font: inherit; font-size: .78rem; }
body.family-app .fp-help-search input:focus { border-color: #7437e8; outline: 3px solid rgba(116, 55, 232, .1); }

body.family-app .fp-help-categories { display: flex; margin: 24px 0 18px; gap: 8px; overflow-x: auto; scrollbar-width: thin; }
body.family-app .fp-help-categories button { display: inline-flex; min-height: 42px; flex: 0 0 auto; align-items: center; gap: 8px; padding: 8px 14px; border: 1px solid #dfe4ec; border-radius: 20px; background: #fff; color: #20365d; font: inherit; font-size: .62rem; font-weight: 850; cursor: pointer; }
body.family-app .fp-help-categories button > span { display: grid; width: 22px; height: 22px; place-items: center; color: #7437e8; font-size: .9rem; }
body.family-app .fp-help-categories button:nth-child(2) > span { color: #2eaa4a; }
body.family-app .fp-help-categories button:nth-child(3) > span { color: #1673d2; }
body.family-app .fp-help-categories button:nth-child(5) > span { color: #f23878; }
body.family-app .fp-help-categories button:nth-child(6) > span,
body.family-app .fp-help-categories button:nth-child(7) > span { color: #f59e0b; }
body.family-app .fp-help-categories button:nth-child(8) > span { color: #21a9a1; }
body.family-app .fp-help-categories button.active { border-color: #8b4cf6; background: #faf7ff; color: #6229d5; }

body.family-app .fp-help-layout { display: grid; grid-template-columns: minmax(0, 2.9fr) minmax(250px, 1fr); gap: 16px; align-items: stretch; }
body.family-app .fp-help-layout > * { min-width: 0; }
body.family-app .fp-faq { min-height: 532px; padding: 12px; }
body.family-app .fp-faq > header { display: flex; min-height: 48px; padding: 0 10px; align-items: center; gap: 12px; }
body.family-app .fp-faq > header > span { display: grid; width: 30px; height: 30px; place-items: center; border: 2px solid #7437e8; border-radius: 50%; color: #7437e8; font-size: 1rem; font-weight: 850; }
body.family-app .fp-faq > header h2 { margin: 0; color: var(--fp-navy); font-size: .88rem; }
body.family-app .fp-faq > header h2::after { display: none; }
body.family-app .fp-faq-list { display: grid; gap: 7px; }
body.family-app .fp-faq-item { padding: 0; overflow: hidden; border: 1px solid #e3e7ed; border-radius: 12px; background: #fff; }
body.family-app .fp-faq-item summary { display: grid; min-height: 62px; padding: 9px 14px; box-sizing: border-box; grid-template-columns: 43px minmax(0, 1fr) auto 20px; align-items: center; gap: 10px; list-style: none; color: var(--fp-navy); cursor: pointer; }
body.family-app .fp-faq-item summary::-webkit-details-marker { display: none; }
body.family-app .fp-faq-item summary > span:first-child { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 10px; background: #f0f7ff; color: #1673d2; font-size: 1rem; }
body.family-app .fp-faq-item[data-category="mon-enfant"] summary > span:first-child { background: #eff9ed; color: #36a853; }
body.family-app .fp-faq-item[data-category="messages"] summary > span:first-child { background: #f3ebff; color: #7437e8; }
body.family-app .fp-faq-item[data-category="photos"] summary > span:first-child { background: #fff0f5; color: #f23878; }
body.family-app .fp-faq-item[data-category="menus"] summary > span:first-child,
body.family-app .fp-faq-item[data-category="documents"] summary > span:first-child { background: #fff7e8; color: #f59e0b; }
body.family-app .fp-faq-item[data-category="sante"] summary > span:first-child { background: #eaf9f8; color: #21a9a1; }
body.family-app .fp-faq-item summary strong { display: block; font-size: .7rem; line-height: 1.35; }
body.family-app .fp-faq-item summary small { display: block; margin-top: 3px; color: #60718c; font-size: .57rem; font-weight: 500; }
body.family-app .fp-faq-item summary a { color: #7437e8; font-size: .6rem; font-weight: 850; text-decoration: none; white-space: nowrap; }
body.family-app .fp-faq-item summary i { color: #0b2b59; font-size: .9rem; font-style: normal; transition: transform .15s; }
body.family-app .fp-faq-item[open] summary i { transform: rotate(180deg); }
body.family-app .fp-faq-answer { padding: 0 68px 16px; border-top: 1px solid #eef0f4; }
body.family-app .fp-faq-answer p { margin: 13px 0 0; color: #50627f; font-size: .66rem; line-height: 1.65; }
body.family-app .fp-faq-answer > a { display: inline-flex; margin-top: 10px; color: #7437e8; font-size: .63rem; font-weight: 850; text-decoration: none; }
body.family-app .fp-faq > [data-family-faq-list] > .fp-empty { min-height: 360px; display: grid; place-content: center; text-align: center; }

body.family-app .fp-help-card { min-height: 532px; padding: 28px 24px; box-sizing: border-box; border: 1px solid #ded0fa; border-radius: 14px; background: #fbf8ff; box-shadow: 0 6px 20px rgba(60, 33, 110, .055); }
body.family-app .fp-help-illustration { position: relative; width: 100px; height: 72px; margin: 0 auto 16px; }
body.family-app .fp-help-illustration i { position: absolute; top: 0; left: 4px; display: grid; width: 62px; height: 48px; place-items: center; border: 2px solid #b693ef; border-radius: 50%; background: #fff; color: #b693ef; font-style: normal; letter-spacing: 2px; }
body.family-app .fp-help-illustration i::after { position: absolute; bottom: -7px; left: 12px; width: 13px; height: 13px; border-bottom: 2px solid #b693ef; border-left: 2px solid #b693ef; background: #fff; content: ""; transform: rotate(-27deg); }
body.family-app .fp-help-illustration > span { position: absolute; right: 2px; bottom: 0; display: grid; width: 48px; height: 45px; place-items: center; border-radius: 22px 22px 5px 5px; background: #ffd465; color: #f18c5f; font-size: 1.7rem; }
body.family-app .fp-help-card h2 { margin: 0; color: var(--fp-navy); font-size: 1.08rem; line-height: 1.2; }
body.family-app .fp-help-card p { margin: 12px 0; color: #31496d; font-size: .68rem; line-height: 1.6; }
body.family-app .fp-help-card > button { display: flex; width: 100%; min-height: 44px; margin: 15px 0 24px; padding: 9px 14px; box-sizing: border-box; align-items: center; justify-content: space-between; border: 0; border-radius: 8px; background: #7437e8; color: #fff; font: inherit; font-size: .67rem; font-weight: 850; cursor: pointer; }
body.family-app .fp-help-card ul { display: grid; margin: 0; padding: 0; gap: 20px; list-style: none; }
body.family-app .fp-help-card li { display: grid; padding-left: 40px; grid-template-columns: 1fr; position: relative; }
body.family-app .fp-help-card li i { position: absolute; top: 1px; left: 3px; color: #7437e8; font-size: 1.2rem; font-style: normal; }
body.family-app .fp-help-card li:first-child i { color: #31a84c; }
body.family-app .fp-help-card li:last-child i { color: #f23878; }
body.family-app .fp-help-card li strong { color: var(--fp-navy); font-size: .68rem; }
body.family-app .fp-help-card li span { margin-top: 4px; color: #425978; font-size: .61rem; line-height: 1.5; }
body.family-app .fp-help-bottom { margin: 14px 0 0; padding: 13px 15px; border: 1px solid #cce0f7; border-radius: 10px; background: #f2f8ff; color: #1673d2; font-size: .62rem; }

@media (max-width: 1040px) {
  body.family-app[data-family-page="aide"] .fp-content { padding-right: 24px; padding-left: 24px; }
  body.family-app .fp-help-layout { grid-template-columns: 1fr; }
  body.family-app .fp-help-card { min-height: 0; }
  body.family-app .fp-help-card ul { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 600px) {
  body.family-app[data-family-page="aide"] .fp-content { padding: 22px 14px 38px; }
  body.family-app .fp-help-page-head h1 { font-size: 1.85rem; }
  body.family-app .fp-help-search input { height: 50px; padding-left: 48px; border-radius: 18px; }
  body.family-app .fp-help-search label > span[aria-hidden] { top: 11px; left: 18px; }
  body.family-app .fp-help-categories { margin: 17px 0 14px; }
  body.family-app .fp-faq { min-height: 380px; padding: 8px; }
  body.family-app .fp-faq-item summary { grid-template-columns: 38px minmax(0, 1fr) 18px; padding: 10px 8px; }
  body.family-app .fp-faq-item summary > span:first-child { width: 34px; height: 34px; }
  body.family-app .fp-faq-item summary a { display: none; }
  body.family-app .fp-faq-answer { padding: 0 15px 15px 56px; }
  body.family-app .fp-help-card { padding: 24px 20px; }
  body.family-app .fp-help-card ul { grid-template-columns: 1fr; }
}

/* Family portal: child context and operational views */
.fp-topbar { grid-template-columns: auto 1fr auto auto auto; border-radius: 8px; }
.fp-child-context { display: flex; align-items: center; gap: 8px; color: #536178; font-size: .78rem; font-weight: 800; }
.fp-child-context select { min-width: 150px; padding: 9px 32px 9px 11px; border: 1px solid #ccd5e2; border-radius: 6px; background: #fff; color: #0b2b59; font: inherit; font-weight: 750; }
.fp-dashboard-focus { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.fp-filter-row { display: flex; flex-flow: row wrap; gap: 14px; margin-bottom: 22px; padding: 15px; border: 1px solid #e1e6ee; border-radius: 8px; background: #f7f9fc; }
.fp-filter-row label { display: grid; flex: 1 1 220px; gap: 6px; color: #536178; font-size: .8rem; font-weight: 800; }
.fp-filter-row input, .fp-filter-row select { min-height: 42px; padding: 9px 11px; border: 1px solid #bdc7d5; border-radius: 6px; background: #fff; color: #172033; font: inherit; }
.fp-menu-toolbar { display: flex; align-items: center; justify-content: center; gap: 10px; margin-bottom: 18px; }
.fp-menu-toolbar strong { min-width: 250px; color: #0b2b59; text-align: center; }
.fp-menu-toolbar button, .fp-event-actions button, .fp-event-actions a, .fp-faq-contact button, .fp-profile-actions a { display: inline-flex; min-height: 40px; align-items: center; justify-content: center; padding: 8px 13px; border: 1px solid #c9d2df; border-radius: 6px; background: #fff; color: #4f2eb7; font: inherit; font-size: .84rem; font-weight: 800; text-decoration: none; cursor: pointer; }
.fp-menu-toolbar button:hover, .fp-event-actions button:hover, .fp-event-actions a:hover { border-color: #7437e8; background: #f4efff; }
.fp-menu-days { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; min-width: 820px; }
.fp-menu-day { min-height: 210px; padding: 18px; border: 1px solid #dfe5ed; border-top: 4px solid #1673d2; border-radius: 8px; background: #fff; }
.fp-menu-day:nth-child(2) { border-top-color: #36a853; }
.fp-menu-day:nth-child(3) { border-top-color: #f59e0b; }
.fp-menu-day:nth-child(4) { border-top-color: #f23878; }
.fp-menu-day:nth-child(5) { border-top-color: #7437e8; }
.fp-menu-day header { display: flex; flex-direction: column; gap: 4px; padding-bottom: 12px; border-bottom: 1px solid #e4e8ef; }
.fp-menu-day header strong { color: #0b2b59; }
.fp-menu-day header small, .muted { color: #6c778a; }
.fp-menu-day p { color: #344055; line-height: 1.65; white-space: pre-line; }
.fp-allergen-note { display: flex; flex-flow: row wrap; align-items: center; gap: 10px 18px; margin-top: 16px; padding: 15px 18px; border-left: 4px solid #f59e0b; border-radius: 6px; background: #fff8e8; }
.fp-allergen-note b { flex-basis: 100%; color: #9a3e2f; }
.fp-photo-hub { min-height: 0; }
.fp-photo-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.fp-photo-card { overflow: hidden; border: 1px solid #dfe5ed; border-radius: 8px; background: #fff; }
.fp-photo-card > button { display: block; width: 100%; padding: 0; border: 0; background: #eef2f7; cursor: zoom-in; }
.fp-photo-card img, .fp-photo-placeholder { width: 100%; aspect-ratio: 4 / 3; display: block; object-fit: cover; }
.fp-photo-placeholder { background: #e9eef5; }
.fp-photo-card > div { display: grid; gap: 5px; padding: 15px; }
.fp-photo-card strong { color: #0b2b59; }
.fp-photo-card small { color: #6b7587; }
.fp-photo-card p { margin: 2px 0 0; color: #536178; }

body.family-app .fp-photo-controls { display: grid; margin-bottom: 20px; grid-template-columns: 220px auto 1fr; align-items: center; gap: 18px; }
body.family-app .fp-photo-controls > label:first-child { display: flex; min-width: 0; align-items: center; gap: 9px; }
body.family-app .fp-photo-controls select { min-height: 42px; padding: 8px 32px 8px 10px; border: 1px solid #dce2ea; border-radius: 8px; color: var(--fp-navy); background: #fff; font: inherit; font-size: .72rem; font-weight: 800; }
body.family-app .fp-photo-controls > label:first-child select { min-width: 0; width: 160px; border: 0; background: transparent; }
body.family-app .fp-photo-controls .fp-tabs { margin: 0; flex-wrap: nowrap; }
body.family-app .fp-photo-controls .fp-tabs button { min-width: 150px; min-height: 44px; padding: 8px 16px; border: 1px solid #dfe4ec; color: var(--fp-navy); background: #fff; }
body.family-app .fp-photo-controls .fp-tabs button.active { color: var(--fp-violet); border-color: #d7c4fa; background: #f5efff; }
body.family-app .fp-photo-period { justify-self: end; }
body.family-app .fp-photo-hub { padding: 0; border: 0; box-shadow: none; background: transparent; }
body.family-app .fp-photo-hub > h2 { margin: 0 0 16px; color: var(--fp-navy); font-size: 1rem; }
body.family-app .fp-photo-hub > [data-family-photo-grid] > .fp-empty { min-height: 120px; display: grid; place-content: center; text-align: center; }

body.family-app .fp-menu-health { display: grid; min-height: 96px; margin-bottom: 18px; padding: 16px 20px; box-sizing: border-box; grid-template-columns: minmax(0, 1.4fr) minmax(280px, .8fr); align-items: center; gap: 24px; border-radius: 9px; background: #f8f3ff; }
body.family-app .fp-menu-health h2 { margin: 0 0 10px; color: var(--fp-violet); font-size: .82rem; }
body.family-app .fp-menu-health [data-family-menu-health] { display: flex; flex-wrap: wrap; gap: 10px; color: #65748a; font-size: .7rem; }
body.family-app .fp-menu-health [data-family-menu-health] > span { display: inline-flex; align-items: center; gap: 7px; }
body.family-app .fp-menu-health [data-family-menu-health] strong { color: var(--fp-navy); }
body.family-app .fp-menu-health [data-family-menu-health] em { padding: 4px 8px; border: 1px solid #d8cced; border-radius: 13px; color: #6846a5; background: #fff; font-style: normal; }
body.family-app .fp-menu-health > p { margin: 0; color: #536178; font-size: .7rem; line-height: 1.5; }
body.family-app .fp-menu-health a { color: var(--fp-violet); font-weight: 850; }
body.family-app .fp-menu-toolbar { min-height: 64px; margin-bottom: 18px; padding: 10px 14px; box-sizing: border-box; justify-content: space-between; border: 1px solid var(--fp-border); border-radius: 9px; background: #fff; }
body.family-app .fp-menu-toolbar strong { color: var(--fp-navy); font-size: 1rem; }
body.family-app .fp-menu-toolbar button { min-height: 40px; border-radius: 7px; }
body.family-app .fp-menu-toolbar button:disabled { opacity: .4; cursor: not-allowed; }
body.family-app .fp-menu-board > .fp-empty { min-height: 100px; display: grid; place-content: center; text-align: center; }
body.family-app .fp-menu-days { min-width: 0; }
body.family-app .fp-menu-day { min-width: 0; min-height: 330px; padding: 18px 16px; }
body.family-app .fp-menu-day.is-today { border-color: #d39aff; box-shadow: 0 0 0 1px rgba(116, 55, 232, .12); }
body.family-app .fp-menu-day header { position: relative; }
body.family-app .fp-menu-day header em { position: absolute; top: -26px; right: -11px; padding: 5px 9px; border-radius: 12px; color: #fff; background: var(--fp-pink); font-size: .6rem; font-style: normal; font-weight: 900; }
body.family-app .fp-menu-note { margin-top: 20px; padding: 15px 18px; border-radius: 8px; color: #55617a; background: #eff6ff; font-weight: 700; }
body.family-app .fp-menu-note p { margin: 3px 0; font-size: .72rem; }

@media (max-width: 900px) {
  body.family-app .fp-photo-controls { grid-template-columns: 1fr; align-items: stretch; }
  body.family-app .fp-photo-period { justify-self: stretch; }
  body.family-app .fp-photo-period select { width: 100%; }
}

@media (max-width: 1080px) {
  body.family-app .fp-menu-days { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  body.family-app .fp-menu-health { grid-template-columns: 1fr; }
  body.family-app .fp-menu-toolbar { flex-wrap: wrap; }
  body.family-app .fp-menu-toolbar button span { display: none; }
  body.family-app .fp-menu-toolbar strong { order: 0; flex: 1; min-width: 150px; text-align: center; }
  body.family-app .fp-menu-days { grid-template-columns: 1fr; }
  body.family-app .fp-menu-day { min-height: 220px; }
}

@media (max-width: 540px) {
  body.family-app .fp-photo-controls .fp-tabs { overflow-x: auto; }
  body.family-app .fp-photo-controls .fp-tabs button { min-width: 140px; }
}
.fp-lightbox { position: fixed; z-index: 3000; inset: 0; display: grid; padding: 30px; place-items: center; background: rgba(7, 24, 50, .88); }
.fp-lightbox > button { position: absolute; top: 20px; right: 26px; border: 0; color: #fff; background: transparent; font-size: 2.2rem; cursor: pointer; }
.fp-lightbox figure { max-width: min(1100px, 94vw); max-height: 90vh; margin: 0; color: #fff; text-align: center; }
.fp-lightbox img { max-width: 100%; max-height: 82vh; object-fit: contain; }
.fp-lightbox figcaption { margin-top: 10px; }
.fp-event-actions { display: flex; flex-flow: row wrap; gap: 8px; margin-top: 12px; }
.fp-inline-status { display: block; min-height: 20px; margin-top: 7px; color: #28743d; font-size: .82rem; font-weight: 750; }
.fp-profile-actions { display: flex; flex-flow: row wrap; gap: 10px; margin-top: 18px; }
.fp-child-profile-card section { margin-top: 20px; padding-top: 16px; border-top: 1px solid #e2e7ee; }
.fp-child-profile-card h3 { margin: 0 0 9px; color: #0b2b59; font-size: 1rem; }
.fp-child-profile-card ul { margin: 0; padding-left: 20px; color: #536178; }
.fp-faq-contact { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-top: 24px; padding: 18px; border-radius: 8px; background: #f2edff; }
.fp-faq-contact p { margin: 0; color: #45258f; font-weight: 800; }
.fp-email-change { display: grid; gap: 10px; margin: -8px 0 18px; padding: 14px; border: 1px solid #e0e5ed; border-radius: 8px; background: #f7f9fc; }
.fp-email-change > button, .fp-email-change [data-family-email-confirm] button { width: fit-content; min-height: 39px; padding: 8px 13px; border: 1px solid #7437e8; border-radius: 6px; color: #7437e8; background: #fff; font: inherit; font-weight: 800; cursor: pointer; }
.fp-email-change [data-family-email-confirm] { display: flex; flex-flow: row wrap; align-items: end; gap: 10px; }
.fp-email-change [data-family-email-confirm][hidden] { display: none; }
.fp-email-change p { min-height: 20px; margin: 0; color: #536178; font-size: .84rem; font-weight: 700; }
.ap-content-actions { display: flex; flex-flow: row wrap; gap: 10px; margin: 0 0 22px; }
.ap-content-actions button { min-height: 42px; padding: 9px 15px; border: 1px solid #c8d2df; border-radius: 6px; color: #fff; background: #5f35c7; font: inherit; font-weight: 800; cursor: pointer; }

@media (max-width: 1060px) {
  .fp-topbar { grid-template-columns: auto 1fr auto auto; }
  .fp-top-title { display: none; }
  .fp-dashboard-focus, .fp-photo-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  .fp-topbar { grid-template-columns: 1fr auto; gap: 10px; }
  .fp-child-context { grid-column: 1 / -1; }
  .fp-child-context select { flex: 1; }
  .fp-account { display: none; }
  .fp-dashboard-focus, .fp-photo-grid { grid-template-columns: 1fr; }
  .fp-menu-toolbar { flex-wrap: wrap; justify-content: flex-start; }
  .fp-menu-toolbar strong { order: -1; flex-basis: 100%; min-width: 0; text-align: left; }
  .fp-faq-contact { align-items: flex-start; flex-direction: column; }
  .fp-lightbox { padding: 12px; }
}

/* Keep the public hero legible over every photograph despite legacy theme rules. */
body.public-site .public-hero-copy h1,
body.public-site .public-hero-copy strong,
body.public-site .public-hero-copy > p:not(.public-eyebrow) { color: #fff; }
body.public-site .public-hero-copy > p:not(.public-eyebrow) { max-width: 660px; text-shadow: 0 1px 3px rgba(0, 0, 0, .28); }

/* Public reference layout: Prompt Accueil + shared public chrome */
body.public-site {
  --public-navy: #102f5d;
  --public-pink: #ef6d9a;
  --public-blue: #58a8de;
  --public-green: #65b88a;
  --public-orange: #f1a24d;
  --public-violet: #8d72ce;
  --public-ink: #24334b;
  --public-muted: #65738a;
  --public-line: #e7e9ee;
  --public-surface: #fffefd;
  margin: 0;
  padding: 0 !important;
  background:
    radial-gradient(circle at 7% 7%, #ef6d9a 0 2px, transparent 3px),
    radial-gradient(circle at 92% 18%, #58a8de 0 2px, transparent 3px),
    radial-gradient(circle at 4% 48%, #65b88a 0 2px, transparent 3px),
    radial-gradient(circle at 96% 72%, #f1a24d 0 2px, transparent 3px),
    #fbfaf8;
  color: var(--public-ink);
  font-family: Inter, "Segoe UI", Arial, sans-serif;
  letter-spacing: 0;
}

body.public-site .public-header {
  position: sticky;
  z-index: 1000;
  top: 12px;
  display: grid;
  width: min(calc(100% - 32px), 1360px);
  min-height: 76px;
  margin: 12px auto 0;
  padding: 10px 14px 10px 20px;
  box-sizing: border-box;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 22px;
  border: 1px solid rgba(223, 226, 232, .9);
  border-radius: 22px;
  background: rgba(255, 255, 255, .96);
  box-shadow: 0 12px 35px rgba(20, 42, 75, .07);
  backdrop-filter: blur(14px);
}

body.public-site .public-brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--public-navy);
  text-decoration: none;
  white-space: nowrap;
}

body.public-site .public-brand strong {
  color: inherit;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.14rem;
  font-weight: 700;
  letter-spacing: 0;
}

body.public-site .project-logo {
  position: relative;
  display: inline-grid;
  width: 46px;
  height: 46px;
  flex: 0 0 46px;
  place-items: center;
  border: 2px solid #fff;
  border-radius: 50%;
  background: conic-gradient(from 18deg, #f7bf57, #ed7a9c 28%, #9a7bd3 49%, #65b88a 72%, #f7bf57);
  box-shadow: 0 3px 10px rgba(24, 47, 82, .14);
}

body.public-site .project-logo::before {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: #fff7dc;
  content: "";
}

body.public-site .project-logo::after {
  position: absolute;
  width: 13px;
  height: 6px;
  top: 22px;
  border-bottom: 2px solid var(--public-navy);
  border-radius: 0 0 50% 50%;
  content: "";
}

body.public-site .public-menu {
  display: flex;
  min-width: 0;
  align-items: center;
  justify-content: center;
  gap: clamp(12px, 1.6vw, 26px);
}

body.public-site .public-menu a {
  position: relative;
  padding: 10px 0;
  color: #3a4960;
  font-size: .83rem;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
}

body.public-site .public-menu a::after {
  position: absolute;
  right: 50%;
  bottom: 3px;
  left: 50%;
  height: 2px;
  border-radius: 2px;
  background: var(--public-pink);
  content: "";
  transition: left .18s ease, right .18s ease;
}

body.public-site .public-menu a:hover::after,
body.public-site .public-menu a[aria-current="page"]::after {
  right: 0;
  left: 0;
}

body.public-site .public-header-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

body.public-site .family-pill,
body.public-site .public-place-link {
  display: inline-flex;
  min-height: 42px;
  align-items: center;
  justify-content: center;
  padding: 8px 14px;
  border: 1px solid #ddd5ef;
  border-radius: 9px;
  color: #5e4598;
  background: #f8f5ff;
  font-size: .78rem;
  font-weight: 800;
  text-decoration: none;
  white-space: nowrap;
}

body.public-site .public-place-link {
  border-color: #e66892;
  color: #fff;
  background: #e66892;
}

body.public-site .public-menu-toggle { display: none; }

body.public-site .public-reference-main {
  width: min(calc(100% - 32px), 1360px);
  margin: 0 auto;
  overflow: hidden;
  border-radius: 0 0 24px 24px;
  background: var(--public-surface);
  box-shadow: 0 18px 55px rgba(29, 48, 77, .06);
}

body.public-site .public-reference-section {
  padding: clamp(60px, 6vw, 92px) clamp(30px, 6vw, 90px);
}

body.public-site .reference-kicker {
  margin: 0 0 12px;
  color: #d95c89;
  font-size: .76rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}

body.public-site .reference-section-title { max-width: 680px; }
body.public-site .reference-section-title-centered { margin: 0 auto 38px; text-align: center; }

body.public-site .reference-section-title h2,
body.public-site .home-life-copy h2,
body.public-site .home-practical h2,
body.public-site .home-final-cta h2 {
  margin: 0;
  color: var(--public-navy);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2rem, 3.1vw, 3rem);
  line-height: 1.08;
  letter-spacing: 0;
}

body.public-site .reference-section-title > p:last-child {
  max-width: 620px;
  margin: 14px auto 0;
  color: var(--public-muted);
  line-height: 1.65;
}

body.public-site .reference-heading-mark {
  display: block;
  margin-top: 7px;
  color: #efc251;
  font-size: 1rem;
  line-height: 1;
}

body.public-site .reference-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 26px;
}

body.public-site .reference-button {
  display: inline-flex;
  min-height: 46px;
  align-items: center;
  justify-content: center;
  padding: 10px 18px;
  border: 1px solid transparent;
  border-radius: 8px;
  font-size: .84rem;
  font-weight: 850;
  text-decoration: none;
}

body.public-site .reference-button-primary { border-color: #e66892; color: #fff; background: #e66892; }
body.public-site .reference-button-secondary { border-color: #d9dfe8; color: var(--public-navy); background: #fff; }
body.public-site .reference-button:hover { transform: translateY(-1px); box-shadow: 0 8px 18px rgba(22, 47, 82, .12); }

body.public-site .reference-text-link,
body.public-site .home-stage-grid a {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: #6950ad;
  font-size: .86rem;
  font-weight: 850;
  text-decoration: none;
}

body.public-site .reference-icon {
  display: inline-grid;
  width: 46px;
  height: 46px;
  flex: 0 0 46px;
  place-items: center;
  border-radius: 50%;
  font-size: 1.25rem;
  font-weight: 900;
}

body.public-site .icon-pink { color: #c74174; background: #fde8ef; }
body.public-site .icon-blue { color: #2277b5; background: #e5f3fc; }
body.public-site .icon-green { color: #31835a; background: #e5f5eb; }
body.public-site .icon-orange { color: #bb6c1f; background: #fff0dd; }

body.public-site .home-hero {
  display: grid;
  min-height: 570px;
  padding-top: 54px;
  grid-template-columns: minmax(0, .92fr) minmax(460px, 1.08fr);
  align-items: center;
  gap: clamp(42px, 6vw, 88px);
}

body.public-site .home-hero-copy { max-width: 560px; }

body.public-site .home-hero-copy h1 {
  margin: 0;
  color: var(--public-navy);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(3.4rem, 5.4vw, 5.7rem);
  font-weight: 700;
  line-height: .98;
  letter-spacing: 0;
}

body.public-site .home-hero-copy > p:not(.reference-kicker) {
  max-width: 500px;
  margin: 22px 0 0;
  color: var(--public-muted);
  font-size: 1rem;
  line-height: 1.75;
}

body.public-site .home-hero-media {
  position: relative;
  width: 100%;
  aspect-ratio: 1.08;
  margin: 0;
}

body.public-site .home-hero-media::before,
body.public-site .home-hero-media::after {
  position: absolute;
  z-index: 0;
  border-radius: 50%;
  content: "";
}

body.public-site .home-hero-media::before { width: 22%; aspect-ratio: 1; top: -4%; right: 6%; background: #f8d9e4; }
body.public-site .home-hero-media::after { width: 16%; aspect-ratio: 1; bottom: 0; left: -4%; background: #dcefe4; }

body.public-site .home-hero-media img {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 45%;
  border-radius: 47% 53% 45% 55% / 53% 43% 57% 47%;
}

body.public-site .home-pillars { padding-top: 44px; background: #fff; }
body.public-site .home-pillar-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 26px; }
body.public-site .home-pillar-grid article { display: flex; align-items: flex-start; gap: 13px; }
body.public-site .home-pillar-grid h3 { margin: 2px 0 6px; color: var(--public-navy); font-family: Georgia, "Times New Roman", serif; font-size: 1.15rem; }
body.public-site .home-pillar-grid p { margin: 0; color: var(--public-muted); font-size: .82rem; line-height: 1.55; }

body.public-site .home-life {
  display: grid;
  padding-top: 58px;
  padding-bottom: 58px;
  grid-template-columns: .8fr 1.6fr;
  align-items: center;
  gap: 48px;
  background: #f7f4fb;
}

body.public-site .home-life-copy > p:not(.reference-kicker) { color: var(--public-muted); line-height: 1.7; }
body.public-site .home-life-gallery { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
body.public-site .home-life-gallery img { width: 100%; height: 188px; object-fit: cover; border-radius: 8px; }
body.public-site .home-life-gallery img:nth-child(2),
body.public-site .home-life-gallery img:nth-child(4) { margin-top: 22px; }

body.public-site .home-stages { background: #fff; }
body.public-site .home-stage-grid { display: grid; gap: 18px; }
body.public-site .home-stage-grid article { display: grid; min-height: 235px; grid-template-columns: 1.12fr .88fr; overflow: hidden; border-radius: 12px; }
body.public-site .home-stage-grid article > div { padding: 34px 38px; }
body.public-site .home-stage-grid article > div > span { font-size: .72rem; font-weight: 900; text-transform: uppercase; }
body.public-site .home-stage-grid h3 { margin: 8px 0 10px; color: var(--public-navy); font-family: Georgia, "Times New Roman", serif; font-size: 1.8rem; }
body.public-site .home-stage-grid p { max-width: 520px; margin: 0 0 18px; color: #56657a; line-height: 1.65; }
body.public-site .home-stage-grid img { width: 100%; height: 100%; min-height: 235px; object-fit: cover; }
body.public-site .home-stage-grid .stage-pink { background: #fff0f4; }
body.public-site .home-stage-grid .stage-green { background: #edf8f0; }
body.public-site .home-stage-grid .stage-blue { background: #edf6fc; }
body.public-site .stage-pink > div > span { color: #c74772; }
body.public-site .stage-green > div > span { color: #38845c; }
body.public-site .stage-blue > div > span { color: #347aab; }

body.public-site .home-team { text-align: center; background: #fbf9fd; }
body.public-site .home-team-grid { margin: 0 auto 28px; }
body.public-site .home-team-link { margin: 0 auto; }
body.public-site .home-team .public-empty { max-width: 620px; margin: 0 auto 24px; padding: 28px; border: 1px dashed #d8d0e7; border-radius: 8px; background: #fff; }

body.public-site .home-practical {
  display: grid;
  grid-template-columns: .75fr 1.8fr;
  align-items: center;
  gap: 44px;
  background: #fff;
}

body.public-site .home-practical dl { display: grid; margin: 0; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
body.public-site .home-practical dl > div { display: grid; grid-template-columns: 46px 1fr; grid-template-rows: auto auto; column-gap: 12px; }
body.public-site .home-practical dl .reference-icon { grid-row: 1 / 3; }
body.public-site .home-practical dt { color: var(--public-navy); font-size: .82rem; font-weight: 900; }
body.public-site .home-practical dd { margin: 5px 0 0; color: var(--public-muted); font-size: .8rem; line-height: 1.4; }

body.public-site .home-final-cta {
  display: grid;
  margin: 0 clamp(30px, 6vw, 90px) clamp(60px, 6vw, 90px);
  padding: 0;
  grid-template-columns: .82fr 1.18fr;
  align-items: stretch;
  overflow: hidden;
  border-radius: 14px;
  background: #f1eafb;
}

body.public-site .home-final-cta img { width: 100%; height: 100%; min-height: 330px; object-fit: cover; }
body.public-site .home-final-cta > div { display: flex; padding: 52px clamp(35px, 5vw, 70px); flex-direction: column; justify-content: center; }
body.public-site .home-final-cta > div > p:not(.reference-kicker) { color: #5f6980; line-height: 1.7; }

body.public-site .public-footer {
  position: static !important;
  width: min(calc(100% - 32px), 1360px) !important;
  max-height: none !important;
  margin: 0 auto 18px;
  overflow: hidden !important;
  border-radius: 18px;
  color: #e9eef7;
  background: var(--public-navy);
}

body.public-site .public-footer-inner { padding: 52px clamp(30px, 6vw, 78px) 22px; }
body.public-site .public-footer-grid { display: grid; grid-template-columns: 1.45fr .8fr .85fr 1.1fr; gap: 46px; }
body.public-site .public-footer section,
body.public-site .public-footer nav { display: flex; flex-direction: column; align-items: flex-start; gap: 9px; }
body.public-site .public-footer a,
body.public-site .public-footer span,
body.public-site .public-footer p { color: #d6dfed; font-size: .8rem; line-height: 1.55; text-decoration: none; }
body.public-site .public-footer strong { color: #fff; font-size: .86rem; }
body.public-site .public-footer .public-brand strong { font-family: Georgia, "Times New Roman", serif; font-size: 1.05rem; }
body.public-site .public-footer .project-logo { width: 38px; height: 38px; flex-basis: 38px; }
body.public-site .public-footer .project-logo::before { width: 20px; height: 20px; }
body.public-site .public-footer .project-logo::after { top: 18px; }
body.public-site .public-footer-legal { display: flex; margin-top: 34px; padding-top: 18px; align-items: center; justify-content: space-between; gap: 20px; border-top: 1px solid rgba(255, 255, 255, .16); }
body.public-site .public-footer-legal nav { flex-direction: row; }

@media (max-width: 1180px) {
  body.public-site .public-header { grid-template-columns: auto auto 1fr; }
  body.public-site .public-menu-toggle { display: inline-flex; min-height: 40px; align-items: center; gap: 8px; padding: 8px 11px; border: 1px solid #dce1e9; border-radius: 7px; background: #fff; color: var(--public-navy); font: inherit; font-size: .8rem; font-weight: 800; }
  body.public-site .public-menu-toggle span,
  body.public-site .public-menu-toggle span::before,
  body.public-site .public-menu-toggle span::after { display: block; width: 16px; height: 2px; border-radius: 2px; background: currentColor; content: ""; }
  body.public-site .public-menu-toggle span { position: relative; }
  body.public-site .public-menu-toggle span::before { position: absolute; top: -5px; }
  body.public-site .public-menu-toggle span::after { position: absolute; top: 5px; }
  body.public-site .public-menu { position: absolute; top: calc(100% + 8px); right: 0; left: 0; display: none; padding: 16px; flex-wrap: wrap; border: 1px solid #e1e4ea; border-radius: 12px; background: #fff; box-shadow: 0 16px 30px rgba(20, 43, 75, .12); }
  body.public-site .public-menu.open { display: flex; }
  body.public-site .public-header-actions { justify-self: end; }
  body.public-site .home-pillar-grid { grid-template-columns: repeat(2, 1fr); }
  body.public-site .home-practical { grid-template-columns: 1fr; }
}

@media (max-width: 900px) {
  body.public-site .public-reference-section { padding: 58px 26px; }
  body.public-site .home-hero { min-height: 0; grid-template-columns: 1fr; }
  body.public-site .home-hero-copy { max-width: 680px; }
  body.public-site .home-hero-media { max-height: 560px; }
  body.public-site .home-life { grid-template-columns: 1fr; }
  body.public-site .home-life-gallery { grid-template-columns: repeat(2, 1fr); }
  body.public-site .home-life-gallery img:nth-child(n) { margin: 0; }
  body.public-site .home-practical dl { grid-template-columns: repeat(2, 1fr); }
  body.public-site .home-final-cta { margin-right: 26px; margin-left: 26px; grid-template-columns: 1fr; }
  body.public-site .home-final-cta img { min-height: 240px; max-height: 320px; }
  body.public-site .public-footer-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 640px) {
  body.public-site .public-header { top: 6px; width: calc(100% - 12px); min-height: 66px; margin-top: 6px; padding: 8px 10px; grid-template-columns: 1fr auto; border-radius: 14px; }
  body.public-site .public-brand strong { font-size: .96rem; }
  body.public-site .project-logo { width: 40px; height: 40px; flex-basis: 40px; }
  body.public-site .public-menu-toggle { justify-self: end; }
  body.public-site .public-header-actions { grid-column: 1 / -1; display: none; }
  body.public-site .public-menu { justify-content: flex-start; }
  body.public-site .public-menu a { width: calc(50% - 12px); padding: 10px; box-sizing: border-box; border-radius: 6px; background: #f8f9fb; }
  body.public-site .public-menu a::after { display: none; }
  body.public-site .public-reference-main,
  body.public-site .public-footer { width: calc(100% - 12px) !important; }
  body.public-site .home-hero-copy h1 { font-size: clamp(2.75rem, 14vw, 4.2rem); }
  body.public-site .reference-section-title h2,
  body.public-site .home-life-copy h2,
  body.public-site .home-practical h2,
  body.public-site .home-final-cta h2 { font-size: 2rem; }
  body.public-site .reference-actions { align-items: stretch; flex-direction: column; }
  body.public-site .reference-button { width: 100%; box-sizing: border-box; }
  body.public-site .home-pillar-grid,
  body.public-site .home-practical dl { grid-template-columns: 1fr; }
  body.public-site .home-life-gallery img { height: 150px; }
  body.public-site .home-stage-grid article { grid-template-columns: 1fr; }
  body.public-site .home-stage-grid article > div { padding: 28px 24px; }
  body.public-site .home-stage-grid img { min-height: 190px; max-height: 220px; }
  body.public-site .home-final-cta { margin-right: 18px; margin-bottom: 58px; margin-left: 18px; }
  body.public-site .home-final-cta > div { padding: 35px 24px; }
  body.public-site .public-footer-grid { grid-template-columns: 1fr; }
  body.public-site .public-footer-legal { align-items: flex-start; flex-direction: column; }
  body.public-site .public-footer-legal nav { flex-wrap: wrap; }
}

/* Inner public pages: official reference compositions */
body.public-reference .reference-inner {
  width: min(calc(100% - 32px), 1360px);
  margin: 0 auto;
  padding: 0;
  overflow: hidden;
  border-radius: 0 0 24px 24px;
  background: #fffefd;
  box-shadow: 0 18px 55px rgba(29, 48, 77, .06);
}

body.public-reference .reference-page-hero {
  display: grid;
  min-height: 500px;
  margin: 0;
  padding: clamp(55px, 6vw, 90px) clamp(30px, 6vw, 90px);
  grid-template-columns: minmax(0, .9fr) minmax(420px, 1.1fr);
  align-items: center;
  gap: clamp(45px, 7vw, 100px);
  border: 0;
  background: transparent;
}

body.public-reference .reference-page-hero > div { max-width: 560px; }

body.public-reference .reference-page-hero h1,
body.public-reference .public-split-hero:not(.reference-page-hero) h1,
body.public-reference .public-page-intro h1 {
  margin: 0;
  color: var(--public-navy);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(3.1rem, 5vw, 5rem);
  line-height: 1.02;
  letter-spacing: 0;
}

body.public-reference .reference-page-hero p:not(.reference-kicker) {
  margin: 22px 0 28px;
  color: var(--public-muted);
  line-height: 1.75;
}

body.public-reference .reference-page-hero > img {
  width: 100%;
  height: 430px;
  object-fit: cover;
  border-radius: 48% 52% 46% 54% / 55% 45% 55% 45%;
  box-shadow: none;
}

body.public-reference .reference-page-section,
body.public-reference .public-daily-page .public-page-section {
  margin: 0;
  padding: clamp(60px, 6vw, 90px) clamp(30px, 6vw, 90px);
  border: 0;
}

body.public-reference .reference-value-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
}

body.public-reference .reference-value-grid article {
  display: flex;
  min-height: 185px;
  padding: 27px 24px;
  box-sizing: border-box;
  align-items: flex-start;
  flex-direction: column;
  border: 1px solid var(--public-line);
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 9px 24px rgba(35, 52, 79, .06);
}

body.public-reference .reference-value-grid strong {
  margin-top: 16px;
  color: var(--public-navy);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.15rem;
}

body.public-reference .reference-value-grid p { margin: 8px 0 0; color: var(--public-muted); font-size: .84rem; line-height: 1.6; }
body.public-reference .reference-approach { background: #f8f5fb; }

body.public-reference .reference-approach-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 14px;
}

body.public-reference .reference-approach-grid article { display: flex; min-width: 0; flex-direction: column; }
body.public-reference .reference-approach-grid article > span { color: #d85f89; font-size: .72rem; font-weight: 900; }
body.public-reference .reference-approach-grid h3 { margin: 8px 0; color: var(--public-navy); font-family: Georgia, "Times New Roman", serif; font-size: 1.22rem; }
body.public-reference .reference-approach-grid p { min-height: 68px; margin: 0 0 16px; color: var(--public-muted); font-size: .78rem; line-height: 1.55; }
body.public-reference .reference-approach-grid img { width: 100%; height: 180px; margin-top: auto; object-fit: cover; border-radius: 8px; }

body.public-reference .reference-journey { background: #fff; }
body.public-reference .reference-stage-strip { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); overflow: visible; gap: 16px; background: transparent; }
body.public-reference .reference-stage-strip article { position: relative; display: flex; min-height: 150px; padding: 26px; align-items: flex-start; flex-direction: column; border: 1px solid #e5e8ed; border-radius: 9px; background: #fff; }
body.public-reference .reference-stage-strip article:nth-child(1) { border-top: 4px solid var(--public-pink); }
body.public-reference .reference-stage-strip article:nth-child(2) { border-top: 4px solid var(--public-green); }
body.public-reference .reference-stage-strip article:nth-child(3) { border-top: 4px solid var(--public-blue); }
body.public-reference .reference-stage-strip span { color: #d65e88; font-size: .72rem; font-weight: 900; }
body.public-reference .reference-stage-strip strong { margin-top: 7px; color: var(--public-navy); font-family: Georgia, "Times New Roman", serif; font-size: 1.35rem; }
body.public-reference .reference-stage-strip p { margin: 9px 0 0; color: var(--public-muted); font-size: .82rem; line-height: 1.55; }

body.public-reference .reference-wide-panel {
  display: grid;
  margin: 0 clamp(30px, 6vw, 90px) clamp(55px, 6vw, 85px);
  padding: 0;
  grid-template-columns: .8fr 1.2fr;
  align-items: stretch;
  overflow: hidden;
  border-radius: 12px;
  background: #edf7f1;
}

body.public-reference .reference-wide-panel img { width: 100%; height: 100%; min-height: 330px; object-fit: cover; }
body.public-reference .reference-wide-panel > div { display: flex; padding: 48px clamp(32px, 5vw, 68px); flex-direction: column; justify-content: center; }
body.public-reference .reference-wide-panel h2 { margin: 0; color: var(--public-navy); font-family: Georgia, "Times New Roman", serif; font-size: clamp(2rem, 3vw, 2.8rem); line-height: 1.1; }
body.public-reference .reference-wide-panel p:not(.reference-kicker) { color: var(--public-muted); line-height: 1.7; }

body.public-reference .reference-next-cta {
  display: flex;
  min-height: 180px;
  margin: 0 clamp(30px, 6vw, 90px) clamp(60px, 6vw, 90px);
  padding: 36px clamp(28px, 4vw, 55px);
  box-sizing: border-box;
  align-items: center;
  justify-content: space-between;
  gap: 35px;
  border: 0;
  border-radius: 11px;
  background: #f2ebfb;
}

body.public-reference .reference-next-cta > div { max-width: 720px; }
body.public-reference .reference-next-cta h2 { margin: 0; color: var(--public-navy); font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.7rem, 2.5vw, 2.45rem); }
body.public-reference .reference-next-cta p:not(.reference-kicker) { margin: 10px 0 0; color: var(--public-muted); line-height: 1.6; }
body.public-reference .reference-yellow-cta { background: #fff4ce; }

body.public-reference .reference-space-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

body.public-reference .reference-space-grid .public-content-card {
  display: flex;
  min-height: 320px;
  overflow: hidden;
  flex-direction: column;
  border: 1px solid #e4e7eb;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 8px 22px rgba(30, 49, 76, .06);
}

body.public-reference .reference-space-grid .public-content-card img { width: 100%; height: 210px; object-fit: cover; }
body.public-reference .reference-space-grid .public-content-card > div { padding: 20px 22px; }
body.public-reference .reference-space-grid h2 { margin: 0 0 7px; color: var(--public-navy); font-family: Georgia, "Times New Roman", serif; font-size: 1.25rem; }
body.public-reference .reference-space-grid p { margin: 0; color: var(--public-muted); font-size: .83rem; line-height: 1.6; }

/* Daily page preserves its functional tabs while matching the supplied mockup. */
body.public-daily-page .public-split-hero {
  display: grid;
  min-height: 500px;
  margin: 0;
  padding: clamp(55px, 6vw, 90px) clamp(30px, 6vw, 90px);
  grid-template-columns: minmax(0, .9fr) minmax(420px, 1.1fr);
  align-items: center;
  gap: clamp(45px, 7vw, 100px);
  background: #fffefd;
}

body.public-daily-page .public-split-hero > img { width: 100%; height: 430px; object-fit: cover; border-radius: 48% 52% 46% 54% / 55% 45% 55% 45%; }
body.public-daily-page .public-split-hero > div { max-width: 560px; }
body.public-daily-page .public-split-hero strong { display: block; margin: 18px 0 8px; color: var(--public-navy); font-size: 1.08rem; line-height: 1.5; }
body.public-daily-page .public-split-hero p { color: var(--public-muted); line-height: 1.7; }
body.public-daily-page .public-hours { display: inline-flex; margin-top: 16px; padding: 12px 16px; align-items: center; gap: 12px; border-radius: 8px; background: #f4effa; }
body.public-daily-page .public-hours span { color: #66577d; font-size: .8rem; }
body.public-daily-page .public-hours strong { margin: 0; color: #60469b; font-size: .84rem; }
body.public-daily-page .public-page-section:nth-of-type(even) { background: #fbf8fd; }
body.public-daily-page .public-page-section > header { margin: 0 auto 34px; text-align: center; }
body.public-daily-page .public-page-section > header h2 { margin: 0; color: var(--public-navy); font-family: Georgia, "Times New Roman", serif; font-size: clamp(2rem, 3vw, 2.9rem); }
body.public-daily-page .public-moment-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
body.public-daily-page .public-moment-grid article { min-height: 170px; padding: 24px; border: 1px solid #e5e8ed; border-radius: 9px; background: #fff; }
body.public-daily-page .public-moment-grid span { color: #df648e; font-size: .73rem; font-weight: 900; }
body.public-daily-page .public-moment-grid h3 { margin: 9px 0; color: var(--public-navy); font-family: Georgia, "Times New Roman", serif; font-size: 1.18rem; }
body.public-daily-page .public-moment-grid p { margin: 0; color: var(--public-muted); font-size: .82rem; line-height: 1.6; }
body.public-daily-page .public-tabs { display: flex; max-width: 760px; margin: 0 auto; justify-content: center; border-bottom: 1px solid #e2e5ea; }
body.public-daily-page .public-tabs button { min-width: 180px; padding: 14px 20px; border: 0; border-bottom: 3px solid transparent; color: #647085; background: transparent; font: inherit; font-weight: 850; cursor: pointer; }
body.public-daily-page .public-tabs button.active { border-bottom-color: #e56591; color: var(--public-navy); }
body.public-daily-page .public-tabs small { display: block; margin-top: 4px; font-size: .7rem; }
body.public-daily-page .public-tab-panel { max-width: 920px; min-height: 190px; margin: 26px auto 0; padding: 38px; border-radius: 10px; background: #eef6fc; }
body.public-daily-page .public-tab-panel h3 { margin: 0; color: var(--public-navy); font-family: Georgia, "Times New Roman", serif; font-size: 1.7rem; }
body.public-daily-page .public-tab-panel p { color: var(--public-muted); line-height: 1.7; }
body.public-daily-page .public-highlight-grid { display: grid; margin: 0; padding: 0 clamp(30px, 6vw, 90px) clamp(60px, 6vw, 90px); grid-template-columns: repeat(2, 1fr); gap: 18px; }
body.public-daily-page .public-highlight-grid article { min-height: 220px; padding: 36px; border-radius: 10px; }
body.public-daily-page .public-highlight-grid .orange { background: #fff1dc; }
body.public-daily-page .public-highlight-grid .green { background: #eaf6ee; }
body.public-daily-page .public-highlight-grid h2 { margin-top: 0; color: var(--public-navy); font-family: Georgia, "Times New Roman", serif; }
body.public-daily-page .public-highlight-grid p { color: var(--public-muted); line-height: 1.7; }
body.public-daily-page .public-cta { margin: 0 clamp(30px, 6vw, 90px) clamp(60px, 6vw, 90px); }

@media (max-width: 980px) {
  body.public-reference .reference-page-hero,
  body.public-daily-page .public-split-hero { grid-template-columns: 1fr; }
  body.public-reference .reference-page-hero > img,
  body.public-daily-page .public-split-hero > img { height: min(52vw, 480px); }
  body.public-reference .reference-value-grid { grid-template-columns: repeat(2, 1fr); }
  body.public-reference .reference-approach-grid { grid-template-columns: repeat(3, 1fr); }
  body.public-reference .reference-space-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 680px) {
  body.public-reference .reference-inner { width: calc(100% - 12px); }
  body.public-reference .reference-page-hero,
  body.public-daily-page .public-split-hero,
  body.public-reference .reference-page-section,
  body.public-daily-page .public-page-section { padding: 52px 26px; }
  body.public-reference .reference-page-hero h1,
  body.public-daily-page .public-split-hero h1 { font-size: 2.8rem; }
  body.public-reference .reference-page-hero > img,
  body.public-daily-page .public-split-hero > img { height: 300px; }
  body.public-reference .reference-value-grid,
  body.public-reference .reference-approach-grid,
  body.public-reference .reference-stage-strip,
  body.public-reference .reference-space-grid,
  body.public-daily-page .public-moment-grid,
  body.public-daily-page .public-highlight-grid { grid-template-columns: 1fr; }
  body.public-reference .reference-approach-grid p { min-height: 0; }
  body.public-reference .reference-approach-grid img { height: 220px; }
  body.public-reference .reference-wide-panel { margin-right: 20px; margin-left: 20px; grid-template-columns: 1fr; }
  body.public-reference .reference-wide-panel img { min-height: 220px; }
  body.public-reference .reference-next-cta { margin-right: 20px; margin-left: 20px; align-items: flex-start; flex-direction: column; }
  body.public-daily-page .public-tabs { justify-content: flex-start; overflow-x: auto; }
  body.public-daily-page .public-tabs button { min-width: 145px; }
  body.public-daily-page .public-highlight-grid { padding-right: 26px; padding-left: 26px; }
}

/* Team, contact and registration reference pages */
body.public-team-page .reference-team-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
}

body.public-team-page .reference-team-grid .public-team-card {
  display: flex;
  min-height: 275px;
  padding: 24px;
  align-items: center;
  flex-direction: column;
  border: 1px solid #e3e7ed;
  border-radius: 10px;
  color: inherit;
  background: #fff;
  text-align: center;
  cursor: pointer;
}

body.public-team-page .reference-team-grid .public-team-card:hover { border-color: #d7c6ec; box-shadow: 0 10px 24px rgba(32, 49, 75, .08); }
body.public-team-page .reference-team-grid img,
body.public-team-page .reference-team-grid .public-team-avatar { width: 120px; height: 120px; margin-bottom: 18px; flex: 0 0 120px; border-radius: 50%; object-fit: cover; }
body.public-team-page .reference-team-grid .public-team-avatar { display: grid; place-items: center; color: #65499f; background: #f0e9fb; font-family: Georgia, "Times New Roman", serif; font-size: 2.5rem; }
body.public-team-page .reference-team-grid h2 { margin: 0 0 7px; color: var(--public-navy); font-family: Georgia, "Times New Roman", serif; font-size: 1.2rem; }
body.public-team-page .reference-team-grid strong { color: #d05c84; font-size: .78rem; }
body.public-team-page .reference-team-grid .public-role-tags { display: flex; margin-top: 10px; flex-wrap: wrap; justify-content: center; gap: 5px; }
body.public-team-page .reference-team-grid .public-role-tags em { padding: 4px 7px; border-radius: 5px; color: #667085; background: #f4f5f7; font-size: .66rem; font-style: normal; }
body.public-team-page .reference-team-principles { background: #f8f5fb; }
body.public-team-page .public-principle-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
body.public-team-page .public-principle-grid article { min-height: 190px; padding: 28px; border-radius: 9px; background: #fff; }
body.public-team-page .public-principle-grid .violet .reference-icon { color: #6d4ca9; background: #eee8f8; }
body.public-team-page .public-principle-grid h3 { margin: 18px 0 8px; color: var(--public-navy); font-family: Georgia, "Times New Roman", serif; font-size: 1.25rem; }
body.public-team-page .public-principle-grid p { margin: 0; color: var(--public-muted); line-height: 1.6; }

body.public-contact-page .reference-contact-hero {
  display: grid;
  min-height: 360px;
  padding: clamp(55px, 6vw, 88px) clamp(30px, 6vw, 90px);
  grid-template-columns: 1fr .75fr;
  align-items: center;
  gap: 60px;
  background: #fffefd;
}

body.public-contact-page .reference-contact-hero h1 {
  margin: 0;
  color: var(--public-navy);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(3.1rem, 5vw, 5rem);
  line-height: 1;
}

body.public-contact-page .reference-contact-hero p:not(.reference-kicker) { max-width: 580px; color: var(--public-muted); line-height: 1.7; }
body.public-contact-page .reference-contact-visual { position: relative; display: grid; width: min(330px, 100%); aspect-ratio: 1; margin: auto; place-items: center; border-radius: 46% 54% 56% 44% / 51% 45% 55% 49%; background: #f1eafb; }
body.public-contact-page .reference-contact-visual span { z-index: 1; color: #7c61bc; font-size: 5.2rem; font-weight: 400; }
body.public-contact-page .reference-contact-visual i,
body.public-contact-page .reference-contact-visual b { position: absolute; width: 72px; aspect-ratio: 1; border-radius: 50%; content: ""; }
body.public-contact-page .reference-contact-visual i { top: -18px; right: 20px; background: #f9d6e3; }
body.public-contact-page .reference-contact-visual b { bottom: -12px; left: -8px; background: #dcefe4; }

body.public-contact-page .reference-contact-layout {
  display: grid;
  margin: 0;
  padding: 0 clamp(30px, 6vw, 90px) clamp(65px, 6vw, 90px);
  grid-template-columns: .72fr 1.28fr;
  align-items: start;
  gap: 22px;
}

body.public-contact-page .public-contact-details,
body.public-contact-page .public-form,
body.public-registration-page .public-form,
body.public-registration-page .registration-aside article {
  box-sizing: border-box;
  border: 1px solid #e3e7ed;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(32, 49, 75, .05);
}

body.public-contact-page .public-contact-details { padding: 32px; }
body.public-contact-page .public-contact-details h2,
body.public-contact-page .public-form h2 { margin: 0 0 22px; color: var(--public-navy); font-family: Georgia, "Times New Roman", serif; font-size: 1.7rem; }
body.public-contact-page .public-contact-details dl { display: grid; margin: 0; gap: 0; }
body.public-contact-page .public-contact-details dl > div { padding: 15px 0; border-bottom: 1px solid #edf0f3; }
body.public-contact-page .public-contact-details dl > div:last-child { border-bottom: 0; }
body.public-contact-page .public-contact-details dt { margin-bottom: 4px; color: var(--public-navy); font-size: .75rem; font-weight: 900; }
body.public-contact-page .public-contact-details dd { margin: 0; color: var(--public-muted); font-size: .84rem; line-height: 1.55; }
body.public-contact-page .public-contact-details a { color: #6c4ba7; text-decoration: none; }
body.public-contact-page .public-form { padding: 34px; }

body.public-reference .public-form { display: grid; gap: 19px; }
body.public-reference .public-form .form-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
body.public-reference .public-form label { display: grid; gap: 7px; color: #35445a; font-size: .78rem; font-weight: 800; }
body.public-reference .public-form input,
body.public-reference .public-form select,
body.public-reference .public-form textarea { width: 100%; min-height: 44px; padding: 10px 12px; box-sizing: border-box; border: 1px solid #cfd6e0; border-radius: 7px; color: #202d40; background: #fff; font: inherit; font-weight: 500; }
body.public-reference .public-form textarea { min-height: 125px; resize: vertical; }
body.public-reference .public-form input:focus,
body.public-reference .public-form select:focus,
body.public-reference .public-form textarea:focus { border-color: #9a78d0; outline: 3px solid rgba(141, 114, 206, .14); }
body.public-reference .form-consent { display: flex !important; align-items: flex-start; gap: 10px !important; color: var(--public-muted) !important; font-weight: 500 !important; line-height: 1.55; }
body.public-reference .form-consent input { width: 18px; min-height: 18px; flex: 0 0 18px; accent-color: #8d72ce; }
body.public-reference .form-consent a { color: #684ca3; }
body.public-reference .hp-field { position: absolute !important; left: -10000px; }
body.public-reference .form-status { min-height: 20px; margin: 0; color: #a63254; font-size: .82rem; font-weight: 800; }
body.public-contact-page .public-place-banner { display: flex; }

body.public-registration-page .public-page-intro {
  max-width: none;
  margin: 0;
  padding: clamp(58px, 6vw, 88px) clamp(30px, 6vw, 90px) 45px;
  text-align: center;
}
body.public-registration-page .public-page-intro h1 { font-size: clamp(3.2rem, 5vw, 4.8rem); }
body.public-registration-page .public-page-intro strong { display: block; margin: 16px 0 8px; color: var(--public-navy); font-size: 1.04rem; }
body.public-registration-page .public-page-intro p { max-width: 720px; margin: 0 auto; color: var(--public-muted); line-height: 1.7; }
body.public-registration-page .public-steps { display: grid; margin: 0; padding: 0 clamp(30px, 6vw, 90px) 55px; grid-template-columns: repeat(3, 1fr); gap: 20px; list-style: none; }
body.public-registration-page .public-steps li { display: flex; align-items: center; gap: 14px; }
body.public-registration-page .public-steps li > strong { display: grid; width: 42px; height: 42px; flex: 0 0 42px; place-items: center; border-radius: 50%; color: #fff; background: #8d72ce; }
body.public-registration-page .public-steps li:nth-child(2) > strong { background: #65b88a; }
body.public-registration-page .public-steps li:nth-child(3) > strong { background: #ef6d9a; }
body.public-registration-page .public-steps span { display: flex; color: var(--public-muted); font-size: .75rem; line-height: 1.5; flex-direction: column; }
body.public-registration-page .public-steps b { color: var(--public-navy); font-size: .85rem; }
body.public-registration-page .registration-layout-v3 { display: grid; padding: 0 clamp(30px, 6vw, 90px) 55px; grid-template-columns: 1.35fr .65fr; align-items: start; gap: 22px; }
body.public-registration-page .registration-form { padding: 34px; }
body.public-registration-page .registration-form fieldset { display: grid; min-width: 0; margin: 0; padding: 0; gap: 17px; border: 0; }
body.public-registration-page .registration-form > fieldset + fieldset { padding-top: 24px; border-top: 1px solid #e8ebef; }
body.public-registration-page .registration-form legend { margin-bottom: 16px; color: var(--public-navy); font-family: Georgia, "Times New Roman", serif; font-size: 1.25rem; font-weight: 700; }
body.public-registration-page .registration-child { padding: 20px !important; border: 1px solid #e4e8ed !important; border-radius: 8px; background: #f9fafb; }
body.public-registration-page .registration-child + .registration-child { margin-top: 12px; }
body.public-registration-page .registration-child legend { margin: 0; padding: 0 7px; font-family: inherit; font-size: .78rem; font-weight: 900; }
body.public-registration-page .registration-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 14px; }
body.public-registration-page .secondary-button { display: inline-flex; width: fit-content; min-height: 42px; align-items: center; padding: 8px 14px; border: 1px solid #cfc3e5; border-radius: 7px; color: #684ba3; background: #fff; font: inherit; font-size: .8rem; font-weight: 850; text-decoration: none; cursor: pointer; }
body.public-registration-page .registration-aside { display: grid; gap: 16px; }
body.public-registration-page .registration-aside article { padding: 28px; }
body.public-registration-page .registration-aside article:first-child { background: #f2ebfb; }
body.public-registration-page .registration-aside article:last-child { background: #edf7f1; }
body.public-registration-page .registration-aside h2 { margin: 0; color: var(--public-navy); font-family: Georgia, "Times New Roman", serif; font-size: 1.35rem; }
body.public-registration-page .registration-aside p { color: var(--public-muted); font-size: .84rem; line-height: 1.65; }
body.public-registration-page .public-reassurance { display: flex; margin: 0 clamp(30px, 6vw, 90px) clamp(60px, 6vw, 90px); padding: 22px; justify-content: space-around; gap: 20px; border-radius: 9px; color: #536178; background: #fff4ce; font-size: .8rem; font-weight: 800; }
body.public-registration-page .registration-modal { position: fixed; z-index: 4000; inset: 0; display: grid; padding: 20px; place-items: center; background: rgba(13, 38, 74, .76); }
body.public-registration-page .registration-modal[hidden] { display: none; }
body.public-registration-page .registration-modal > section { max-width: 520px; padding: 40px; border-radius: 10px; background: #fff; text-align: center; }
body.public-registration-page .registration-modal h2 { color: var(--public-navy); font-family: Georgia, "Times New Roman", serif; }
body.public-registration-page .registration-modal p { color: var(--public-muted); line-height: 1.65; }
body.public-registration-page .modal-actions { display: flex; margin-top: 25px; justify-content: center; gap: 10px; }
body.public-registration-page .modal-actions button,
body.public-registration-page .modal-actions a { display: inline-flex; min-height: 43px; padding: 9px 15px; align-items: center; border: 1px solid #e56591; border-radius: 7px; color: #fff; background: #e56591; font: inherit; font-weight: 800; text-decoration: none; cursor: pointer; }
body.public-registration-page .modal-actions a { border-color: #d6dce5; color: var(--public-navy); background: #fff; }

@media (max-width: 980px) {
  body.public-team-page .reference-team-grid { grid-template-columns: repeat(2, 1fr); }
  body.public-contact-page .reference-contact-layout,
  body.public-registration-page .registration-layout-v3 { grid-template-columns: 1fr; }
  body.public-registration-page .registration-aside { grid-template-columns: repeat(2, 1fr); }
  body.public-registration-page .registration-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 680px) {
  body.public-team-page .reference-team-grid,
  body.public-team-page .public-principle-grid,
  body.public-contact-page .reference-contact-hero,
  body.public-reference .public-form .form-grid,
  body.public-registration-page .public-steps,
  body.public-registration-page .registration-aside,
  body.public-registration-page .registration-grid { grid-template-columns: 1fr; }
  body.public-contact-page .reference-contact-hero { padding: 52px 26px; }
  body.public-contact-page .reference-contact-hero h1 { font-size: 2.8rem; }
  body.public-contact-page .reference-contact-visual { width: 230px; }
  body.public-contact-page .reference-contact-layout { padding-right: 20px; padding-left: 20px; }
  body.public-contact-page .public-contact-details,
  body.public-contact-page .public-form,
  body.public-registration-page .registration-form { padding: 24px; }
  body.public-registration-page .public-page-intro { padding-right: 26px; padding-left: 26px; }
  body.public-registration-page .public-page-intro h1 { font-size: 2.85rem; }
  body.public-registration-page .public-steps,
  body.public-registration-page .registration-layout-v3 { padding-right: 20px; padding-left: 20px; }
  body.public-registration-page .public-reassurance { margin-right: 20px; margin-left: 20px; align-items: flex-start; flex-direction: column; }
  body.public-registration-page .modal-actions { flex-direction: column; }
}

/* Family portal reference shell and dashboard */
body.family-app {
  --fp-navy: #0b2b59;
  --fp-violet: #7437e8;
  --fp-pink: #f23878;
  --fp-blue: #1673d2;
  --fp-green: #36a853;
  --fp-orange: #f5a000;
  --fp-border: #e6eaf0;
  --fp-muted: #718096;
  min-height: 100vh;
  margin: 0;
  padding: 0 !important;
  overflow-x: hidden;
  color: #24334b;
  background: #fcfcfd;
  font-family: Inter, "Segoe UI", Arial, sans-serif;
  letter-spacing: 0;
}

body.family-app .fp-topbar {
  position: sticky;
  z-index: 1200;
  top: 0;
  right: auto;
  left: auto;
  display: grid;
  width: calc(100% - 292px);
  min-height: 116px;
  margin: 0 0 0 292px;
  padding: 18px 32px;
  box-sizing: border-box;
  grid-template-columns: minmax(250px, 1fr) auto auto auto;
  align-items: center;
  gap: 20px;
  border: 0;
  border-bottom: 1px solid var(--fp-border);
  border-radius: 0;
  background: rgba(255, 255, 255, .98);
  box-shadow: none;
  transform: none;
}

body.family-app::before {
  opacity: .16;
  background-position: 38px 64px, 210px 185px, 94px 248px, 320px 108px;
  background-size: 420px 360px;
}

body.family-app .fp-brand { display: inline-flex; align-items: center; gap: 9px; color: var(--fp-navy); text-decoration: none; white-space: nowrap; }
body.family-app .fp-brand strong { font-family: Georgia, "Times New Roman", serif; font-size: 1.03rem; }
body.family-app .fp-logo { position: relative; display: inline-grid; width: 42px; height: 42px; flex: 0 0 42px; place-items: center; border-radius: 50%; background: conic-gradient(from 18deg, #f7bf57, #ed7a9c 28%, #9a7bd3 49%, #65b88a 72%, #f7bf57); box-shadow: 0 3px 9px rgba(24, 47, 82, .14); }
body.family-app .fp-logo::before { width: 22px; height: 22px; border-radius: 50%; background: #fff7dc; content: ""; }
body.family-app .fp-logo::after { position: absolute; width: 12px; height: 6px; top: 20px; border-bottom: 2px solid var(--fp-navy); border-radius: 0 0 50% 50%; content: ""; }
body.family-app .fp-top-title { padding: 9px 13px; border-radius: 7px; color: #60449f; background: #f5efff; font-size: .76rem; font-weight: 850; white-space: nowrap; }
body.family-app .fp-child-context { display: flex; min-width: 0; align-items: center; justify-self: start; gap: 12px; color: var(--fp-muted); font-size: .74rem; font-weight: 800; }
body.family-app .fp-child-context select { min-width: 210px; max-width: 320px; min-height: 44px; padding: 8px 34px 8px 0; border: 0; color: var(--fp-navy); background: transparent; font: inherit; font-size: .9rem; font-weight: 900; }
body.family-app .fp-child-avatar { display: grid; width: 58px; height: 58px; flex: 0 0 58px; place-items: center; border: 3px solid #fff; border-radius: 50%; color: #5e409d; background: #eee6fb; box-shadow: 0 2px 10px rgba(28, 45, 76, .12); font-size: 1.15rem; font-style: normal; font-weight: 900; }
body.family-app .fp-visually-hidden { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); border: 0; white-space: nowrap; }
body.family-app .fp-bell { position: relative; display: grid; width: 42px; height: 42px; place-items: center; border: 1px solid var(--fp-border); border-radius: 50%; color: var(--fp-blue); background: #fff; text-decoration: none; }
body.family-app .fp-bell span { font-size: 1.05rem; }
body.family-app .fp-bell em { position: absolute; top: -3px; right: -3px; display: grid; min-width: 18px; height: 18px; padding: 0 4px; box-sizing: border-box; place-items: center; border: 2px solid #fff; border-radius: 10px; color: #fff; background: var(--fp-pink); font-size: .62rem; font-style: normal; font-weight: 900; }
body.family-app .fp-account { display: flex; min-width: 0; align-items: center; gap: 9px; color: var(--fp-navy); text-decoration: none; }
body.family-app .fp-avatar-mini { display: grid; width: 38px; height: 38px; flex: 0 0 38px; place-items: center; border-radius: 50%; color: #6848a6; background: #eee7fb; }
body.family-app .fp-account strong { display: block; max-width: 190px; overflow: hidden; font-size: .78rem; text-overflow: ellipsis; white-space: nowrap; }

body.family-app .fp-shell {
  display: grid;
  width: 100%;
  min-height: calc(100vh - 116px);
  margin: 0;
  padding: 0;
  grid-template-columns: 292px minmax(0, 1fr);
  gap: 0;
}

body.family-app .fp-sidebar {
  position: sticky;
  top: 0;
  width: auto;
  height: 100vh;
  margin: -116px 0 0;
  padding: 18px 20px 20px;
  box-sizing: border-box;
  overflow-y: auto;
  border: 0;
  border-right: 1px solid var(--fp-border);
  border-radius: 0;
  background: #fff;
  box-shadow: none;
}

body.family-app .fp-sidebar nav { display: flex; min-height: calc(100% - 128px); flex-direction: column; gap: 4px; }
body.family-app .fp-sidebar .fp-sidebar-brand { display: flex; min-height: 116px; margin: 0 0 12px; padding: 0 14px; align-items: center; gap: 13px; color: var(--fp-navy); background: transparent; }
body.family-app .fp-sidebar .fp-sidebar-brand strong { font-family: Georgia, "Times New Roman", serif; font-size: 1.22rem; line-height: 1.08; }
body.family-app .fp-sidebar nav hr { width: calc(100% - 16px); height: 1px; margin: 10px 8px; border: 0; background: #edf0f4; }
body.family-app .fp-sidebar a {
  display: grid;
  width: 100%;
  min-height: 43px;
  padding: 7px 10px;
  box-sizing: border-box;
  grid-template-columns: 31px minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  border-radius: 7px;
  color: #526176;
  font-size: .79rem;
  font-weight: 800;
  text-decoration: none;
}

body.family-app .fp-sidebar a > span { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 7px; color: currentColor; background: color-mix(in srgb, currentColor 10%, white); font-size: 1rem; }
body.family-app .fp-sidebar a b { min-width: 0; overflow: hidden; font: inherit; text-overflow: ellipsis; white-space: nowrap; }
body.family-app .fp-sidebar a em { display: grid; min-width: 20px; height: 20px; padding: 0 5px; box-sizing: border-box; place-items: center; border-radius: 10px; color: #fff; background: var(--fp-pink); font-size: .64rem; font-style: normal; }
body.family-app .fp-sidebar .nav-espace-familles,
body.family-app .fp-sidebar .nav-planning,
body.family-app .fp-sidebar .nav-mon-compte { color: var(--fp-violet); }
body.family-app .fp-sidebar .nav-mon-enfant,
body.family-app .fp-sidebar .nav-sante,
body.family-app .fp-sidebar .nav-inscription { color: var(--fp-green); }
body.family-app .fp-sidebar .nav-messages { color: var(--fp-blue); }
body.family-app .fp-sidebar .nav-photos { color: var(--fp-pink); }
body.family-app .fp-sidebar .nav-menus,
body.family-app .fp-sidebar .nav-aide { color: var(--fp-orange); }
body.family-app .fp-sidebar .nav-documents { color: #52718f; }
body.family-app .fp-sidebar .nav-logout { margin-top: auto; color: #9b4059; }
body.family-app .fp-sidebar a:hover { background: #f8f9fb; }
body.family-app .fp-sidebar a.active { color: var(--fp-violet); background: #f3ebff; box-shadow: none; }
body.family-app .fp-sidebar a:focus-visible { outline: 3px solid rgba(116, 55, 232, .2); outline-offset: 1px; }

body.family-app .fp-content {
  width: 100%;
  min-width: 0;
  max-width: none;
  margin: 0 auto;
  padding: 28px 32px 17px;
  box-sizing: border-box;
}

body.family-app .fp-panel,
body.family-app .fp-side-card,
body.family-app .fp-side-event,
body.family-app .fp-calendar,
body.family-app .fp-account-form {
  border: 1px solid var(--fp-border);
  border-radius: 9px;
  background: #fff;
  box-shadow: 0 7px 22px rgba(25, 46, 75, .045);
}

body.family-app .fp-dashboard-welcome { display: flex; min-height: 63px; margin-bottom: 28px; align-items: flex-start; justify-content: space-between; gap: 25px; }
body.family-app .fp-dashboard-welcome h1 { margin: 0; color: var(--fp-violet); font-size: clamp(1.65rem, 2.4vw, 2.2rem); line-height: 1.15; }
body.family-app .fp-dashboard-welcome p { margin: 7px 0 0; color: var(--fp-muted); font-size: .86rem; }
body.family-app .fp-dashboard-welcome time { color: #8b96a8; font-size: .75rem; font-weight: 750; text-transform: capitalize; }

body.family-app .fp-summary-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
body.family-app .fp-summary-card { display: grid; height: 162px; min-height: 162px; padding: 18px; box-sizing: border-box; overflow: hidden; grid-template-columns: 42px minmax(0, 1fr); align-items: start; gap: 13px; border: 1px solid transparent; border-radius: 9px; }
body.family-app .fp-summary-card > span { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 8px; color: currentColor; background: rgba(255, 255, 255, .75); font-size: 1.15rem; font-weight: 900; }
body.family-app .fp-summary-card h2 { margin: 2px 0 9px; color: currentColor; font-size: .91rem; }
body.family-app .fp-summary-card > div > a { display: inline-flex; margin-top: 9px; align-items: center; gap: 6px; color: currentColor; font-size: .75rem; font-weight: 850; text-decoration: none; }
body.family-app .fp-summary-menu { border-color: #f9e2ad; color: #a86600; background: #fff8e9; }
body.family-app .fp-summary-event { border-color: #cfe8d4; color: #267a3a; background: #f0f9ef; }
body.family-app .fp-summary-message { border-color: #d5e5f8; color: #1264b4; background: #eff6ff; }
body.family-app .fp-summary-photo { border-color: #f8d9e4; color: #c72862; background: #fff0f5; }
body.family-app .fp-summary-card .fp-empty,
body.family-app .fp-summary-card .fp-record-list { min-height: 70px; padding: 0; border: 0; background: transparent; }
body.family-app .fp-summary-card .fp-empty strong,
body.family-app .fp-summary-card .fp-record-item strong { display: block; color: var(--fp-navy); font-size: .79rem; }
body.family-app .fp-summary-card .fp-empty p,
body.family-app .fp-summary-card .fp-record-item p { display: -webkit-box; margin: 5px 0 0; overflow: hidden; color: #65748a; font-size: .71rem; line-height: 1.45; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
body.family-app .fp-summary-card .fp-record-item { padding: 0; border: 0; background: transparent; }
body.family-app .fp-summary-card .fp-record-item:nth-child(n+2),
body.family-app .fp-summary-menu .fp-record-item p,
body.family-app .fp-summary-card .fp-event-actions,
body.family-app .fp-summary-card .fp-inline-status { display: none; }
body.family-app .fp-summary-card .fp-record-item small { display: block; margin-top: 5px; color: #728095; font-size: .67rem; }

body.family-app .fp-attention-card { display: flex; min-height: 135px; margin-top: 17px; padding: 15px 18px; box-sizing: border-box; align-items: center; justify-content: space-between; gap: 20px; border: 1px solid #f7d8e3; border-radius: 9px; background: #fff3f7; }
body.family-app .fp-attention-card > div { display: flex; min-width: 0; align-items: center; gap: 13px; }
body.family-app .fp-attention-card > div > span { display: grid; width: 38px; height: 38px; flex: 0 0 38px; place-items: center; border-radius: 50%; color: #fff; background: var(--fp-pink); font-weight: 900; }
body.family-app .fp-attention-card h2 { margin: 0; color: var(--fp-navy); font-size: .88rem; }
body.family-app .fp-attention-card .fp-empty,
body.family-app .fp-attention-card .fp-record-list { min-height: 0; padding: 0; border: 0; background: transparent; }
body.family-app .fp-attention-card .fp-empty strong { display: none; }
body.family-app .fp-attention-card .fp-empty p { margin: 4px 0 0; color: #7c6570; font-size: .73rem; }
body.family-app .fp-attention-card .fp-record-item { padding: 5px 0; border: 0; background: transparent; }
body.family-app .fp-attention-card .fp-record-item:nth-child(n+2) { display: none; }
body.family-app .fp-attention-card > a { flex: 0 0 auto; color: #be285c; font-size: .75rem; font-weight: 850; text-decoration: none; }

body.family-app .fp-dashboard-lower { display: grid; margin-top: 22px; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 15px; }
body.family-app .fp-dashboard-column { height: 301px; min-height: 301px; padding: 20px; box-sizing: border-box; overflow: hidden; border: 1px solid var(--fp-border); border-radius: 9px; background: #fff; }
body.family-app .fp-dashboard-column > header { display: flex; margin-bottom: 13px; align-items: center; justify-content: space-between; gap: 12px; }
body.family-app .fp-dashboard-column > header h2 { margin: 0; color: var(--fp-navy); font-size: .94rem; }
body.family-app .fp-dashboard-column > header a { color: var(--fp-violet); font-size: .69rem; font-weight: 850; text-decoration: none; }
body.family-app .fp-dashboard-column .fp-record-list { display: grid; gap: 8px; }
body.family-app .fp-dashboard-column .fp-record-item { padding: 12px; border: 1px solid #edf0f4; border-radius: 7px; background: #fff; }
body.family-app .fp-dashboard-column .fp-record-item:nth-child(n+4) { display: none; }
body.family-app .fp-dashboard-column .fp-record-item strong { color: var(--fp-navy); font-size: .77rem; }
body.family-app .fp-dashboard-column .fp-record-item small { display: block; margin-top: 4px; color: #8993a3; font-size: .66rem; }
body.family-app .fp-dashboard-column .fp-record-item p { display: -webkit-box; margin: 6px 0 0; overflow: hidden; color: var(--fp-muted); font-size: .7rem; line-height: 1.4; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
body.family-app .fp-dashboard-column .fp-event-actions,
body.family-app .fp-dashboard-column .fp-inline-status { display: none; }
body.family-app .fp-upcoming { border-top: 3px solid var(--fp-violet); }
body.family-app .fp-recent-messages { border-top: 3px solid var(--fp-blue); }
body.family-app .fp-latest-moments { border-top: 3px solid var(--fp-pink); }
body.family-app .fp-empty { min-height: 0; padding: 17px; border: 1px dashed #dfe4eb; border-radius: 7px; background: #fafbfc; }
body.family-app .fp-empty strong { color: var(--fp-navy); font-size: .78rem; }
body.family-app .fp-empty p { margin: 5px 0 0; color: var(--fp-muted); font-size: .72rem; line-height: 1.45; }

body.family-app .fp-dashboard-help { display: grid; min-height: 78px; margin-top: 18px; padding: 12px 20px; box-sizing: border-box; grid-template-columns: 42px 1fr auto; align-items: center; gap: 14px; border: 1px solid #f3e3b9; border-radius: 9px; background: #fff8e9; }
body.family-app .fp-dashboard-help > span { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 50%; color: #fff; background: var(--fp-orange); font-weight: 900; }
body.family-app .fp-dashboard-help h2 { margin: 0; color: var(--fp-navy); font-size: .88rem; }
body.family-app .fp-dashboard-help p { margin: 4px 0 0; color: #796f5c; font-size: .72rem; }
body.family-app .fp-dashboard-help a { color: #a86600; font-size: .75rem; font-weight: 850; text-decoration: none; }

body.family-app .fp-page-head,
body.family-app .fp-hero { margin: 0 0 24px; padding: 0; border: 0; background: transparent; }
body.family-app .fp-page-head h1,
body.family-app .fp-hero h1 { margin: 0; color: var(--fp-navy); font-size: clamp(1.55rem, 2.2vw, 2.05rem); letter-spacing: 0; }
body.family-app .fp-page-head p,
body.family-app .fp-hero p { max-width: 720px; margin: 7px 0 0; color: var(--fp-muted); font-size: .83rem; line-height: 1.55; }
body.family-app .fp-side-card button { display: inline-flex; min-height: 40px; padding: 8px 13px; border: 1px solid #d9ccea; border-radius: 7px; color: #65439c; background: #fff; font: inherit; font-size: .78rem; font-weight: 850; cursor: pointer; }

@media (max-width: 1180px) {
  body.family-app .fp-topbar { width: calc(100% - 225px); margin-left: 225px; grid-template-columns: 1fr auto auto; }
  body.family-app .fp-top-title { display: none; }
  body.family-app .fp-shell { grid-template-columns: 225px minmax(0, 1fr); }
  body.family-app .fp-summary-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 820px) {
  body.family-app .fp-topbar { width: 100%; min-height: 116px; margin-left: 0; grid-template-columns: 1fr auto auto; gap: 9px; padding: 9px 14px; }
  body.family-app .fp-sidebar .fp-sidebar-brand { display: none; }
  body.family-app .fp-child-context { grid-row: 2; grid-column: 1 / -1; width: 100%; }
  body.family-app .fp-child-context select { max-width: none; flex: 1; }
  body.family-app .fp-account strong { display: none; }
  body.family-app .fp-shell { display: block; }
  body.family-app .fp-sidebar { position: sticky; z-index: 1100; top: 116px; width: 100%; height: auto; margin: 0; padding: 8px; overflow-x: auto; overflow-y: hidden; border-right: 0; border-bottom: 1px solid var(--fp-border); }
  body.family-app .fp-sidebar nav { min-height: 0; flex-direction: row; }
  body.family-app .fp-sidebar nav hr { display: none; }
  body.family-app .fp-sidebar a { width: auto; min-width: 48px; flex: 0 0 auto; grid-template-columns: 30px; }
  body.family-app .fp-sidebar a b { display: none; }
  body.family-app .fp-sidebar .nav-logout { margin-top: 0; }
  body.family-app .fp-content { padding: 25px 18px 45px; }
  body.family-app .fp-dashboard-lower { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
  body.family-app .fp-summary-grid { grid-template-columns: 1fr; }
  body.family-app .fp-dashboard-welcome { align-items: flex-start; flex-direction: column; gap: 8px; }
  body.family-app .fp-summary-card { height: auto; min-height: 165px; }
  body.family-app .fp-attention-card { align-items: flex-start; flex-direction: column; }
  body.family-app .fp-dashboard-help { grid-template-columns: 42px 1fr; }
  body.family-app .fp-dashboard-help > a { grid-column: 2; }
}

/* Family child medical record */
body.family-app .fp-medical-record { display: grid; gap: 16px; }
body.family-app .fp-medical-summary { padding: 20px 22px; }
body.family-app .fp-medical-summary > header { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; align-items: center; gap: 12px; }
body.family-app .fp-medical-summary > header > span,
body.family-app .fp-medical-card > header > span { display: grid; width: 42px; height: 42px; padding: 10px; box-sizing: border-box; place-items: center; border-radius: 11px; color: var(--fp-pink); background: #ffeaf1; }
body.family-app .fp-medical-summary h3,
body.family-app .fp-medical-card h3 { margin: 0; color: var(--fp-navy); font-size: .88rem; }
body.family-app .fp-medical-summary header p,
body.family-app .fp-medical-card header p { margin: 3px 0 0; color: #78869a; font-size: .63rem; line-height: 1.45; }
body.family-app .fp-medical-summary > header > strong { padding: 7px 10px; border-radius: 999px; color: var(--fp-violet); background: #f2ecff; font-size: .62rem; white-space: nowrap; }
body.family-app .fp-medical-indicators { display: grid; margin-top: 16px; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; }
body.family-app .fp-medical-indicators > div { display: grid; min-height: 55px; padding: 9px; box-sizing: border-box; grid-template-columns: 28px minmax(0, 1fr); align-items: center; gap: 8px; border: 1px solid #e7ebf0; border-radius: 8px; background: #fbfcfd; transition: border-color 250ms ease, background 250ms ease; }
body.family-app .fp-medical-indicators > div > span { display: grid; width: 28px; height: 28px; padding: 6px; box-sizing: border-box; place-items: center; border-radius: 8px; color: #8b96a7; background: #eef1f5; }
body.family-app .fp-medical-indicators strong,
body.family-app .fp-medical-indicators small { display: block; }
body.family-app .fp-medical-indicators strong { overflow: hidden; color: var(--fp-navy); font-size: .59rem; text-overflow: ellipsis; white-space: nowrap; }
body.family-app .fp-medical-indicators small { margin-top: 2px; color: #8994a4; font-size: .53rem; font-weight: 800; }
body.family-app .fp-medical-indicators .is-complete { border-color: #cce9d2; background: #f3fbf5; }
body.family-app .fp-medical-indicators .is-complete > span { color: var(--fp-green); background: #e6f6e9; }
body.family-app .fp-medical-indicators .is-incomplete { border-color: #f2dfae; background: #fffaf0; }
body.family-app .fp-medical-indicators .is-incomplete > span { color: var(--fp-orange); background: #fff0ce; }
body.family-app .fp-medical-summary > footer { display: flex; margin-top: 12px; align-items: center; gap: 6px; color: #8a95a5; font-size: .56rem; }
body.family-app .fp-medical-summary > footer .lpm-icon { width: 13px; height: 13px; }

body.family-app .fp-medical-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 14px; }
body.family-app .fp-medical-card { min-width: 0; padding: 20px; transition: transform 250ms ease, box-shadow 250ms ease, border-color 250ms ease; }
body.family-app .fp-medical-card:hover { transform: translateY(-2px); box-shadow: 0 14px 28px rgba(18, 43, 77, .08); }
body.family-app .fp-medical-card:has([data-allergy-trigger][aria-expanded="true"]) { position: relative; z-index: 30; }
body.family-app .fp-medical-card.has-validation-error { border-color: #e76b86; box-shadow: 0 0 0 3px rgba(231, 107, 134, .1); }
body.family-app .fp-medical-card > header { display: grid; grid-template-columns: 42px minmax(0, 1fr); align-items: center; gap: 11px; }
body.family-app .fp-medical-card.violet > header > span { color: var(--fp-violet); background: #f1eaff; }
body.family-app .fp-medical-card.blue > header > span { color: var(--fp-blue); background: #eaf4ff; }
body.family-app .fp-medical-card.orange > header > span { color: var(--fp-orange); background: #fff3da; }
body.family-app .fp-medical-card fieldset { display: flex; min-width: 0; margin: 15px 0 0; padding: 0; align-items: center; justify-content: space-between; gap: 12px; border: 0; }
body.family-app .fp-medical-card legend { min-width: 0; padding: 0; color: #32445c; font-size: .65rem; font-weight: 850; line-height: 1.4; }
body.family-app .fp-segmented-control { display: grid; min-width: 132px; padding: 3px; grid-template-columns: 1fr 1fr; gap: 3px; border: 1px solid #e0e5ec; border-radius: 8px; background: #f4f6f8; }
body.family-app .fp-segmented-control label { position: relative; cursor: pointer; }
body.family-app .fp-segmented-control input { position: absolute; width: 1px !important; height: 1px !important; opacity: 0; pointer-events: none; }
body.family-app .fp-segmented-control span { display: grid; min-height: 31px; padding: 5px 13px; box-sizing: border-box; place-items: center; border-radius: 6px; color: #718096; font-size: .63rem; font-weight: 900; transition: color 200ms ease, background 200ms ease, box-shadow 200ms ease; }
body.family-app .fp-segmented-control input:checked + span { color: #fff; background: var(--fp-violet); box-shadow: 0 3px 9px rgba(116, 55, 232, .2); }
body.family-app .fp-medical-card.pink .fp-segmented-control input:checked + span { background: var(--fp-pink); }
body.family-app .fp-medical-card.blue .fp-segmented-control input:checked + span { background: var(--fp-blue); }
body.family-app .fp-medical-card.orange .fp-segmented-control input:checked + span { background: var(--fp-orange); }
body.family-app .fp-segmented-control input:focus-visible + span { outline: 3px solid rgba(116, 55, 232, .22); outline-offset: 2px; }
body.family-app .fp-health-detail { display: grid; grid-template-rows: 0fr; margin-top: 0; overflow: hidden; opacity: 0; transform: translateY(-5px); transition: grid-template-rows 250ms ease, margin-top 250ms ease, opacity 200ms ease, transform 250ms ease; }
body.family-app .fp-health-detail.is-visible { grid-template-rows: 1fr; margin-top: 14px; opacity: 1; transform: translateY(0); }
body.family-app .fp-health-detail-inner { display: grid; min-height: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; }
body.family-app .fp-health-detail label { position: relative; display: grid; gap: 6px; color: var(--fp-navy); font-size: .59rem; font-weight: 850; }
body.family-app .fp-health-detail :is(input, textarea) { width: 100%; min-height: 39px; padding: 9px 11px; box-sizing: border-box; border: 1px solid #d8dfe8; border-radius: 8px; color: var(--fp-navy); background: #fff; font: inherit; font-size: .67rem; outline: 0; transition: border-color 200ms ease, box-shadow 200ms ease, background 200ms ease; }
body.family-app .fp-health-detail textarea { min-height: 74px; resize: vertical; }
body.family-app .fp-health-detail :is(input, textarea):hover { border-color: #bdc7d4; }
body.family-app .fp-health-detail :is(input, textarea):focus { border-color: var(--fp-violet); box-shadow: 0 0 0 3px rgba(116, 55, 232, .1); }
body.family-app .fp-health-detail :is(input, textarea).is-valid { border-color: #9dd1a9; background: #fbfffc; }
body.family-app .fp-health-detail :is(input, textarea).is-invalid { border-color: #e76b86; box-shadow: 0 0 0 3px rgba(231, 107, 134, .1); }
body.family-app .fp-medical-field-wide { grid-column: 1 / -1; }
body.family-app .fp-health-detail label > small { position: absolute; right: 8px; bottom: 7px; color: #8a95a5; font-size: .51rem; font-weight: 700; }
body.family-app .fp-medical-empty-note { display: flex; margin: 13px 0 0; align-items: center; gap: 6px; color: #5d7b64; font-size: .61rem; }
body.family-app .fp-medical-empty-note .lpm-icon { width: 14px; height: 14px; }

body.family-app .fp-medical-documents { grid-column: 1 / -1; }
body.family-app .fp-medical-documents > header > span { color: var(--fp-green); background: #eaf7eb; }
body.family-app .fp-medical-dropzone { display: grid; min-height: 118px; margin-top: 15px; padding: 16px; box-sizing: border-box; place-items: center; align-content: center; border: 1px dashed #bba6e8; border-radius: 9px; color: #718096; background: #fbf9ff; text-align: center; cursor: pointer; transition: border-color 200ms ease, background 200ms ease, transform 200ms ease; }
body.family-app .fp-medical-dropzone:hover,
body.family-app .fp-medical-dropzone:focus-visible,
body.family-app .fp-medical-dropzone.is-dragging { border-color: var(--fp-violet); outline: 0; background: #f5f0ff; transform: translateY(-1px); }
body.family-app .fp-medical-dropzone.is-uploading { opacity: .65; pointer-events: none; }
body.family-app .fp-medical-dropzone > span { display: grid; width: 34px; height: 34px; margin-bottom: 7px; padding: 8px; box-sizing: border-box; place-items: center; border-radius: 9px; color: var(--fp-violet); background: #eee6ff; }
body.family-app .fp-medical-dropzone strong { color: var(--fp-navy); font-size: .65rem; }
body.family-app .fp-medical-dropzone p { margin: 3px 0; font-size: .58rem; }
body.family-app .fp-medical-dropzone u { color: var(--fp-violet); font-weight: 850; }
body.family-app .fp-medical-dropzone small { font-size: .52rem; }
body.family-app .fp-medical-documents progress { width: 100%; height: 5px; margin-top: 8px; accent-color: var(--fp-violet); }
body.family-app .fp-medical-upload-status,
body.family-app .fp-medical-save-status { min-height: 16px; margin: 7px 0 0; color: #536178; font-size: .58rem; }
body.family-app :is(.fp-medical-upload-status, .fp-medical-save-status).success { color: #24733b; }
body.family-app :is(.fp-medical-upload-status, .fp-medical-save-status).error { color: #b72e4e; }
body.family-app .fp-medical-document-list { display: grid; margin-top: 9px; gap: 6px; }
body.family-app .fp-medical-document-list article { display: grid; min-height: 48px; padding: 7px 8px; box-sizing: border-box; grid-template-columns: 30px minmax(0, 1fr) 30px 30px; align-items: center; gap: 7px; border-radius: 8px; background: #f8fafc; }
body.family-app .fp-medical-document-list article > span { color: var(--fp-blue); }
body.family-app .fp-medical-document-list strong,
body.family-app .fp-medical-document-list small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
body.family-app .fp-medical-document-list strong { color: var(--fp-navy); font-size: .62rem; }
body.family-app .fp-medical-document-list small { margin-top: 2px; color: #8894a4; font-size: .52rem; }
body.family-app .fp-medical-document-list button { display: grid; width: 30px; height: 30px; padding: 7px; place-items: center; border: 0; border-radius: 7px; color: var(--fp-blue); background: #eaf4ff; cursor: pointer; }
body.family-app .fp-medical-document-list button:last-child { color: var(--fp-pink); background: #ffeaf1; }
body.family-app .fp-medical-documents-empty { display: flex; min-height: 42px; margin: 0; align-items: center; gap: 8px; color: #8490a1; font-size: .59rem; }
body.family-app .fp-medical-documents-empty .lpm-icon { width: 17px; height: 17px; }
body.family-app .fp-medical-all-documents { display: inline-flex; margin-top: 7px; align-items: center; gap: 5px; color: var(--fp-violet); font-size: .59rem; font-weight: 900; text-decoration: none; }
body.family-app .fp-medical-all-documents .lpm-icon { width: 13px; height: 13px; transition: transform 200ms ease; }
body.family-app .fp-medical-all-documents:hover .lpm-icon { transform: translateX(3px); }
body.family-app .fp-medical-actions { display: flex; justify-content: flex-end; gap: 9px; }
body.family-app .fp-medical-actions button { min-height: 40px; padding: 8px 15px; border: 1px solid #dbe1e9; border-radius: 8px; color: #5d6b7e; background: #fff; font: inherit; font-size: .64rem; font-weight: 900; cursor: pointer; transition: transform 200ms ease, box-shadow 200ms ease, opacity 200ms ease; }
body.family-app .fp-medical-actions button[type="submit"] { display: inline-flex; min-width: 205px; align-items: center; justify-content: center; gap: 7px; border: 0; color: #fff; background: linear-gradient(120deg, #347ee8, #7b35dc); box-shadow: 0 8px 18px rgba(85, 64, 202, .18); }
body.family-app .fp-medical-actions button:hover { transform: translateY(-1px); }
body.family-app .fp-medical-actions button:focus-visible { outline: 3px solid rgba(116, 55, 232, .2); outline-offset: 2px; }
body.family-app .fp-medical-actions button.is-loading { opacity: .7; cursor: wait; }

@media (max-width: 1100px) {
  body.family-app .fp-medical-indicators { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  body.family-app .fp-medical-grid { grid-template-columns: 1fr; }
  body.family-app .fp-medical-documents { grid-column: auto; }
  body.family-app .fp-medical-summary > header { grid-template-columns: 42px minmax(0, 1fr); }
  body.family-app .fp-medical-summary > header > strong { grid-column: 1 / -1; justify-self: start; }
  body.family-app .fp-medical-indicators { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 520px) {
  body.family-app .fp-medical-summary,
  body.family-app .fp-medical-card { padding: 16px; }
  body.family-app .fp-medical-indicators { grid-template-columns: 1fr; }
  body.family-app .fp-medical-card fieldset { align-items: stretch; flex-direction: column; }
  body.family-app .fp-segmented-control { width: 100%; }
  body.family-app .fp-health-detail-inner { grid-template-columns: 1fr; }
  body.family-app .fp-medical-field-wide { grid-column: auto; }
  body.family-app .fp-medical-actions { flex-direction: column-reverse; }
  body.family-app .fp-medical-actions button { width: 100%; }
}

/* Final inbox specificity: override the legacy message skin declared earlier. */
body.family-app .fp-conversations > .fp-record-list { display: flex; min-height: 0; padding: 0 10px; overflow-y: auto; flex: 1; flex-direction: column; gap: 4px; }
body.family-app .fp-conversations .fp-thread-button { display: grid; width: 100%; min-height: 84px; padding: 11px 10px; grid-template-columns: 42px minmax(0, 1fr); align-content: center; gap: 10px; border: 1px solid transparent; border-radius: 8px; }
body.family-app .fp-conversations .fp-thread-button.active { border-color: #ddcdfa; background: #f2ebff; box-shadow: inset 3px 0 #7750dc; }
body.family-app .fp-conversations .fp-thread-button .fp-thread-content > b { color: #36445a; font-size: .68rem; }
body.family-app .fp-conversations .fp-thread-button p { margin: 2px 0 0; -webkit-line-clamp: 1; }
body.family-app .fp-chat-bubble.sent { border: 0; background: linear-gradient(135deg, #7250dc, #6237cf); box-shadow: 0 5px 14px rgba(92, 54, 190, .15); }
body.family-app .fp-chat-bubble.sent p { color: #fff; }
body.family-app .fp-chat-bubble.sent small { color: rgba(255, 255, 255, .75); }
body.family-app .fp-chat-reply { grid-template-columns: minmax(0, 1fr) 40px; }
body.family-app .fp-chat-reply .fp-composer { grid-column: 1; }
body.family-app .fp-chat-reply .fp-composer-send { grid-column: 2; grid-row: 1; }
body.family-app .fp-chat-reply > p,
body.family-app .fp-chat-reply > progress,
body.family-app .fp-chat-reply > .fp-composer-file { grid-column: 1 / -1; }

/* Shared search field: one continuous control across administration and family spaces. */
body.admin-app .lpm-search-field,
body.family-app .lpm-search-field {
  --lpm-search-height: 38px;
  --lpm-search-radius: 8px;
  --lpm-search-icon-track: 36px;
  display: grid;
  width: 100%;
  min-width: 0;
  height: var(--lpm-search-height);
  padding: 0;
  grid-template-columns: var(--lpm-search-icon-track) minmax(0, 1fr);
  align-items: center;
  overflow: hidden;
  box-sizing: border-box;
  border: 1px solid #d8e0ea;
  border-radius: var(--lpm-search-radius);
  background: rgba(255, 255, 255, .96);
  box-shadow: 0 5px 16px rgba(28, 49, 79, .04);
  color: #71839a;
  transition: border-color 200ms ease, box-shadow 200ms ease, background-color 200ms ease;
}

body.admin-app .lpm-search-field:hover,
body.family-app .lpm-search-field:hover {
  border-color: #c8d2df;
  background: #fff;
}

body.admin-app .lpm-search-field:focus-within,
body.family-app .lpm-search-field:focus-within {
  border-color: #9879df;
  background: #fff;
  box-shadow: 0 0 0 3px rgba(116, 55, 232, .1), 0 7px 18px rgba(30, 51, 78, .055);
}

body.admin-app .lpm-search-field > .lpm-search-icon,
body.family-app .lpm-search-field > .lpm-search-icon {
  position: static;
  inset: auto;
  z-index: auto;
  display: grid;
  width: var(--lpm-search-icon-track);
  height: 100%;
  place-items: center;
  color: #75879e;
  font-size: inherit;
  transform: none;
  pointer-events: none;
}

body.family-app label.lpm-search-field > span.lpm-search-icon[aria-hidden="true"] {
  position: static;
  inset: auto;
  z-index: auto;
  transform: none;
}

body.admin-app .lpm-search-field > .lpm-search-icon > .lpm-icon,
body.family-app .lpm-search-field > .lpm-search-icon > .lpm-icon {
  width: 15px;
  height: 15px;
  margin: 0;
  color: currentColor;
  stroke-width: 1.9;
}

body.admin-app .lpm-search-field > input[type="search"],
body.family-app .lpm-search-field > input[type="search"] {
  appearance: none;
  width: 100%;
  min-width: 0;
  height: 100%;
  min-height: 0;
  margin: 0;
  padding: 0 12px 0 0;
  box-sizing: border-box;
  border: 0;
  border-radius: 0;
  outline: 0;
  color: #263d5e;
  background: transparent;
  box-shadow: none;
  font: inherit;
  font-size: .68rem;
  font-weight: 600;
  line-height: 1.25;
}

body.admin-app .lpm-search-field > input[type="search"]::placeholder,
body.family-app .lpm-search-field > input[type="search"]::placeholder {
  color: #8795a8;
  opacity: 1;
  font-weight: 500;
}

body.admin-app .lpm-search-field > input[type="search"]:focus,
body.admin-app .lpm-search-field > input[type="search"]:focus-visible,
body.family-app .lpm-search-field > input[type="search"]:focus,
body.family-app .lpm-search-field > input[type="search"]:focus-visible {
  border: 0;
  outline: 0;
  box-shadow: none;
}

body.admin-app .lpm-search-field > input[type="search"]::-webkit-search-decoration,
body.family-app .lpm-search-field > input[type="search"]::-webkit-search-decoration { appearance: none; }

body.admin-app .ap-inline-search .lpm-search-field { width: min(460px, 100%); }
body.admin-app .ap-top-search { width: min(320px, 100%); }
body.admin-app .ap-child-search,
body.admin-app .ap-family-search,
body.admin-app .ap-registration-search { max-width: 440px; }
body.admin-app .ap-inbox-search { --lpm-search-height: 42px; margin: 16px 16px 11px; width: auto; background: #f8f9fc; }
body.admin-app .ap-audit-search { --lpm-search-height: 37px; }

body.family-app .fp-message-search { --lpm-search-height: 42px; margin: 16px 16px 12px; width: auto; background: #f8f9fc; }
body.family-app .fp-doc-search { --lpm-search-height: 38px; }
body.family-app .fp-allergy-search { --lpm-search-height: 36px; --lpm-search-icon-track: 32px; background: #f8fafc; }
body.family-app .fp-help-search .fp-help-search-field {
  --lpm-search-height: 58px;
  --lpm-search-radius: 24px;
  --lpm-search-icon-track: 60px;
  position: relative;
  display: grid;
  border-color: #cdbaf8;
  box-shadow: 0 4px 11px rgba(116, 55, 232, .07);
}
body.family-app .fp-help-search > label.lpm-search-field.fp-help-search-field { display: grid; width: 100%; }
body.family-app .fp-help-search .fp-help-search-field > .lpm-search-icon > .lpm-icon { width: 19px; height: 19px; }
body.family-app .fp-help-search .fp-help-search-field > input[type="search"] { padding-right: 22px; font-size: .78rem; }

@media (max-width: 760px) {
  body.admin-app .ap-top-search,
  body.admin-app .ap-child-search,
  body.admin-app .ap-family-search,
  body.admin-app .ap-registration-search { width: 100%; max-width: none; }
  body.family-app .fp-help-search .fp-help-search-field {
    --lpm-search-height: 50px;
    --lpm-search-radius: 18px;
    --lpm-search-icon-track: 48px;
  }
  body.family-app .fp-help-search .fp-help-search-field > .lpm-search-icon > .lpm-icon { width: 17px; height: 17px; }
}

@media (prefers-reduced-motion: reduce) {
  body.admin-app .lpm-search-field,
  body.family-app .lpm-search-field { transition: none; }
}

/* Admin child center - Prompt Admin Enfants. */
[hidden] { display: none !important; }
body.admin-app .ap-child-page { min-height: calc(100vh - 76px); padding: 24px 28px 34px; color: #092b5c; }
body.admin-app .ap-child-head { display: grid; grid-template-columns: minmax(250px, 1fr) auto; align-items: start; gap: 8px 22px; margin-bottom: 20px; }
body.admin-app .ap-child-head h1 { margin: 0; color: #092b5c; font-size: clamp(1.7rem, 2vw, 2.15rem); line-height: 1.1; letter-spacing: 0; }
body.admin-app .ap-child-head p { margin: 7px 0 0; color: #526681; font-size: .76rem; font-weight: 650; }
body.admin-app .ap-child-head-actions { display: flex; align-items: stretch; justify-content: flex-end; gap: 8px; }
body.admin-app .ap-child-head-actions > button,
body.admin-app .ap-child-head-actions > a { display: inline-flex; min-height: 38px; padding: 0 14px; align-items: center; justify-content: center; gap: 7px; border: 1px solid #dce3ed; border-radius: 7px; background: rgba(255,255,255,.92); box-shadow: 0 3px 10px rgba(25, 50, 89, .04); color: #243d61; font: inherit; font-size: .68rem; font-weight: 750; text-decoration: none; cursor: pointer; transition: transform 200ms ease, border-color 200ms ease, box-shadow 200ms ease; }
body.admin-app .ap-child-head-actions > button:hover,
body.admin-app .ap-child-head-actions > a:hover { transform: translateY(-2px); border-color: #c7b5f7; box-shadow: 0 8px 18px rgba(67, 45, 135, .09); }
body.admin-app .ap-child-head-actions > .ap-primary { position: relative; min-width: 154px; padding: 0 16px 9px; border-color: transparent; background: linear-gradient(135deg, #7348df, #5f32ca); color: #fff; box-shadow: 0 8px 18px rgba(99, 57, 202, .22); }
body.admin-app .ap-child-head-actions > .ap-primary small { position: absolute; right: 0; bottom: -16px; left: 0; color: #786b98; font-size: .54rem; font-weight: 600; text-align: center; }
body.admin-app .ap-child-head-actions svg { width: 14px; height: 14px; stroke-width: 1.9; }
body.admin-app .ap-child-sync { grid-column: 1 / -1; display: inline-flex; width: max-content; margin-top: 2px !important; align-items: center; gap: 5px; color: #728096 !important; font-size: .61rem !important; font-weight: 600 !important; }
body.admin-app .ap-child-sync svg { width: 12px; height: 12px; color: #27a861; }

body.admin-app .ap-child-stats { display: grid; margin-bottom: 20px; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; }
body.admin-app .ap-child-stat { position: relative; display: grid; min-height: 112px; padding: 15px 13px 12px; grid-template-columns: 42px 1fr; grid-template-rows: auto auto 1fr; gap: 0 10px; border: 1px solid #e1e7ef; border-radius: 8px; background: rgba(255,255,255,.94); box-shadow: 0 5px 18px rgba(24, 51, 88, .045); color: #102f59; text-align: left; cursor: pointer; transition: transform 200ms ease, border-color 200ms ease, box-shadow 200ms ease; }
body.admin-app .ap-child-stat:hover,
body.admin-app .ap-child-stat.active { transform: translateY(-2px); border-color: var(--stat-color, #7b4ce1); box-shadow: 0 10px 22px rgba(34, 57, 91, .08); }
body.admin-app .ap-child-stat > span { display: grid; width: 42px; height: 42px; grid-row: 1 / span 2; place-items: center; border-radius: 50%; background: var(--stat-bg, #f1ebff); color: var(--stat-color, #7545de); }
body.admin-app .ap-child-stat > span svg { width: 21px; height: 21px; stroke-width: 1.8; }
body.admin-app .ap-child-stat strong { align-self: end; color: #102f59; font-size: 1.45rem; line-height: 1; }
body.admin-app .ap-child-stat b { align-self: start; margin-top: 5px; color: #263f63; font-size: .65rem; line-height: 1.25; }
body.admin-app .ap-child-stat small { grid-column: 2; align-self: end; margin-top: 8px; color: var(--stat-color, #7545de); font-size: .56rem; font-weight: 700; }
body.admin-app .ap-child-stat.green { --stat-color:#25a663; --stat-bg:#eaf8f0; }
body.admin-app .ap-child-stat.blue { --stat-color:#2384dd; --stat-bg:#eaf5ff; }
body.admin-app .ap-child-stat.yellow { --stat-color:#e79b18; --stat-bg:#fff6e5; }
body.admin-app .ap-child-stat.cyan { --stat-color:#1595b2; --stat-bg:#e8f8fb; }
body.admin-app .ap-child-stat.pink { --stat-color:#ee4c82; --stat-bg:#fff0f5; }

body.admin-app .ap-child-directory { overflow: hidden; border: 1px solid #e0e6ee; border-radius: 8px; background: rgba(255,255,255,.95); box-shadow: 0 8px 26px rgba(24, 48, 83, .05); }
body.admin-app .ap-child-controls { display: grid; padding: 15px 14px; grid-template-columns: minmax(260px, 1fr) auto; align-items: end; gap: 11px 16px; border-bottom: 1px solid #e4e9f0; }
body.admin-app .ap-child-search { display: grid; width: min(100%, 440px); height: 38px; grid-template-columns: 36px 1fr; align-items: center; overflow: hidden; border: 1px solid #d8e0eb; border-radius: 7px; background: #fff; color: #7890aa; transition: border-color 180ms ease, box-shadow 180ms ease; }
body.admin-app .ap-child-search:focus-within { border-color: #8665e5; box-shadow: 0 0 0 3px rgba(119, 76, 224, .1); }
body.admin-app .ap-child-search svg { width: 15px; height: 15px; justify-self: center; }
body.admin-app .ap-child-search input { width: 100%; min-width: 0; height: 100%; padding: 0 10px 0 0; border: 0; outline: 0; background: transparent; color: #16365e; font: inherit; font-size: .68rem; }
body.admin-app .ap-child-filters { display: flex; grid-column: 1; flex-wrap: wrap; gap: 6px; }
body.admin-app .ap-child-filters button { min-height: 31px; padding: 0 13px; border: 1px solid #dfe5ed; border-radius: 7px; background: #fff; color: #445a77; font: inherit; font-size: .6rem; font-weight: 700; cursor: pointer; transition: background 180ms ease, border-color 180ms ease, color 180ms ease, transform 180ms ease; }
body.admin-app .ap-child-filters button:hover { transform: translateY(-1px); border-color: #cbbcf2; }
body.admin-app .ap-child-filters button.active { border-color: #d4c4fa; background: #f2ecff; color: #6132cd; box-shadow: inset 0 0 0 1px rgba(106, 57, 213, .05); }
body.admin-app .ap-child-sort { display: grid; grid-row: 1 / span 2; grid-column: 2; align-self: end; gap: 4px; color: #8a97aa; font-size: .54rem; }
body.admin-app .ap-child-sort select { min-width: 132px; min-height: 34px; padding: 0 28px 0 11px; border: 1px solid #dce3ec; border-radius: 7px; background: #fff; color: #243c5e; font: inherit; font-size: .62rem; font-weight: 700; }

body.admin-app .ap-child-list { min-height: 370px; }
body.admin-app .ap-child-list-head,
body.admin-app .ap-child-row { display: grid; grid-template-columns: minmax(180px, 1.45fr) 70px minmax(105px, .9fr) minmax(110px, .9fr) minmax(90px, .72fr) minmax(92px, .75fr) 30px; align-items: center; gap: 10px; }
body.admin-app .ap-child-list-head { min-height: 38px; padding: 0 14px; border-bottom: 1px solid #e5eaf1; background: #fbfcfe; color: #203d62; font-size: .61rem; font-weight: 800; }
body.admin-app .ap-child-row { width: 100%; min-height: 69px; padding: 8px 14px; border: 0; border-bottom: 1px solid #e9edf3; background: #fff; color: #243d5f; font: inherit; text-align: left; cursor: pointer; transition: background 180ms ease, box-shadow 180ms ease; }
body.admin-app .ap-child-row:hover,
body.admin-app .ap-child-row.active { position: relative; z-index: 1; background: #fbf9ff; box-shadow: inset 3px 0 #7650dc; }
body.admin-app .ap-child-identity { display: grid; min-width: 0; grid-template-columns: 40px minmax(0, 1fr); align-items: center; gap: 9px; }
body.admin-app .ap-child-identity strong { display: block; overflow: hidden; color: #102f59; font-size: .69rem; text-overflow: ellipsis; white-space: nowrap; }
body.admin-app .ap-child-identity small,
body.admin-app .ap-child-age small,
body.admin-app .ap-child-file small { display: block; margin-top: 3px; color: #73839a; font-size: .55rem; font-weight: 550; }
body.admin-app .ap-child-avatar { display: grid; width: 40px; height: 40px; flex: 0 0 auto; place-items: center; overflow: hidden; border: 2px solid #fff; border-radius: 50%; background: linear-gradient(145deg, #f4e9ff, #e6f6ff); box-shadow: 0 2px 8px rgba(20, 52, 91, .12); color: #6737cc; font-size: .65rem; font-weight: 850; }
body.admin-app .ap-child-avatar.large { width: 67px; height: 67px; font-size: 1rem; }
body.admin-app .ap-child-avatar img { width: 100%; height: 100%; object-fit: cover; }
body.admin-app .ap-child-age strong { color: #334b69; font-size: .63rem; }
body.admin-app .ap-child-class { display: inline-flex; width: max-content; max-width: 100%; padding: 5px 7px; align-items: center; gap: 4px; border-radius: 5px; background: #f1ebff; color: #6c3ad6; font-size: .55rem; font-style: normal; font-weight: 750; }
body.admin-app .ap-child-class svg { width: 11px; height: 11px; }
body.admin-app .ap-child-class.preschool { background: #fff6e5; color: #d58c0e; }
body.admin-app .ap-child-class.primary { background: #e9f4ff; color: #1677d2; }
body.admin-app .ap-child-class.missing { background: #fff1f4; color: #d84b70; }
body.admin-app .ap-child-family { overflow: hidden; font-size: .61rem; text-overflow: ellipsis; white-space: nowrap; }
body.admin-app .ap-child-presence { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; color: #2b9e61; font-size: .59rem; font-weight: 750; }
body.admin-app .ap-child-presence > i { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
body.admin-app .ap-child-presence.absent { color: #e98429; }
body.admin-app .ap-child-presence.upcoming { color: #2588b4; }
body.admin-app .ap-child-presence small { flex-basis: 100%; padding-left: 11px; color: #7f8ba0; font-size: .52rem; font-weight: 550; }
body.admin-app .ap-child-file { display: grid; grid-template-columns: 14px 1fr; align-items: center; column-gap: 4px; color: #21a25f; }
body.admin-app .ap-child-file svg { width: 13px; height: 13px; }
body.admin-app .ap-child-file strong { font-size: .59rem; }
body.admin-app .ap-child-file small { grid-column: 2; }
body.admin-app .ap-child-file.incomplete { color: #e6951d; }
body.admin-app .ap-child-open-icon { display: grid; place-items: center; color: #34557d; }
body.admin-app .ap-child-open-icon svg { width: 15px; height: 15px; }
body.admin-app .ap-child-pagination { display: flex; min-height: 54px; padding: 9px 14px; align-items: center; justify-content: space-between; gap: 14px; background: #fcfdff; }
body.admin-app .ap-child-pagination p { margin: 0; color: #425875; font-size: .58rem; font-weight: 650; }
body.admin-app .ap-child-pagination > div { display: flex; align-items: center; gap: 5px; }
body.admin-app .ap-child-pagination button { display: grid; min-width: 30px; height: 30px; padding: 0 8px; place-items: center; border: 1px solid #dce4ed; border-radius: 6px; background: #fff; color: #315071; font: inherit; font-size: .61rem; cursor: pointer; }
body.admin-app .ap-child-pagination button.active { border-color: #d5c4fb; background: #f0eaff; color: #6535d0; }
body.admin-app .ap-child-pagination button:disabled { opacity: .42; cursor: default; }
body.admin-app .ap-child-pagination svg { width: 13px; height: 13px; }
body.admin-app .ap-child-pagination select { min-height: 31px; border: 1px solid #dce4ed; border-radius: 6px; background: #fff; color: #315071; font-size: .58rem; }
body.admin-app .ap-child-empty { display: grid; min-height: 300px; padding: 30px; place-content: center; justify-items: center; color: #718198; text-align: center; }
body.admin-app .ap-child-empty > svg { width: 34px; height: 34px; margin-bottom: 10px; color: #8c6be1; }
body.admin-app .ap-child-empty strong { color: #18385f; font-size: .85rem; }
body.admin-app .ap-child-empty p { margin: 6px 0 14px; font-size: .65rem; }
body.admin-app .ap-child-empty button { min-height: 34px; padding: 0 13px; border: 1px solid #d6c7f7; border-radius: 6px; background: #f2ecff; color: #6335ca; font: inherit; font-size: .61rem; font-weight: 750; }

body.admin-app .ap-child-drawer-overlay { position: fixed; z-index: 79; inset: 0; border: 0; background: rgba(16, 35, 62, 0); opacity: 0; pointer-events: none; transition: opacity 200ms ease, background 200ms ease; }
body.admin-app .ap-child-drawer { position: fixed; z-index: 80; top: 0; right: 0; bottom: 0; display: flex; width: min(545px, 42vw); min-width: 470px; flex-direction: column; overflow: hidden; border-left: 1px solid #dce3ec; background: #fff; box-shadow: -18px 0 45px rgba(16, 37, 68, .12); opacity: 0; transform: translateX(42px); pointer-events: none; transition: transform 210ms cubic-bezier(.22,1,.36,1), opacity 190ms ease; }
body.admin-app.ap-child-drawer-open .ap-child-drawer-overlay { background: rgba(16, 35, 62, .08); opacity: 1; pointer-events: auto; }
body.admin-app.ap-child-drawer-open .ap-child-drawer { opacity: 1; transform: translateX(0); pointer-events: auto; }
body.admin-app .ap-child-drawer-head { padding: 18px 18px 10px; border-bottom: 1px solid #e3e8ef; }
body.admin-app .ap-child-drawer-head > button { position: absolute; top: 13px; right: 14px; display: grid; width: 32px; height: 32px; place-items: center; border: 0; border-radius: 6px; background: transparent; color: #49617e; cursor: pointer; }
body.admin-app .ap-child-drawer-head > button:hover { background: #f2f4f8; }
body.admin-app .ap-child-drawer-head > button svg { width: 17px; height: 17px; }
body.admin-app .ap-child-drawer-head > div { display: flex; padding-right: 35px; align-items: center; gap: 12px; }
body.admin-app .ap-child-drawer-head h2 { margin: 0 0 5px; color: #092b5c; font-size: 1.2rem; letter-spacing: 0; }
body.admin-app .ap-child-drawer-head p { display: flex; margin: 0; align-items: center; gap: 4px; color: #60718a; font-size: .61rem; }
body.admin-app .ap-child-drawer-head p svg { width: 12px; height: 12px; }
body.admin-app .ap-child-drawer-head em { display: inline-flex; margin-left: auto; padding: 6px 9px; align-items: center; gap: 5px; border-radius: 999px; background: #eaf8ef; color: #289a5d; font-size: .55rem; font-style: normal; font-weight: 750; white-space: nowrap; }
body.admin-app .ap-child-drawer-head em.absent { background: #fff2e8; color: #df7e25; }
body.admin-app .ap-child-drawer-head em.upcoming { background: #eaf7fc; color: #247fa6; }
body.admin-app .ap-child-drawer-head em i { width: 5px; height: 5px; border-radius: 50%; background: currentColor; }
body.admin-app .ap-child-drawer-head > strong { display: inline-flex; margin: 12px 0 0 79px; align-items: center; gap: 5px; color: #4f3cb8; font-size: .59rem; }
body.admin-app .ap-child-drawer-head > strong svg { width: 13px; height: 13px; }
body.admin-app .ap-child-drawer-tabs { display: flex; min-height: 50px; padding: 0 13px; overflow-x: auto; border-bottom: 1px solid #e2e7ee; background: #fff; scrollbar-width: none; }
body.admin-app .ap-child-drawer-tabs button { position: relative; min-width: max-content; padding: 0 11px; border: 0; background: transparent; color: #65758c; font: inherit; font-size: .56rem; font-weight: 750; cursor: pointer; }
body.admin-app .ap-child-drawer-tabs button::after { position: absolute; right: 8px; bottom: 0; left: 8px; height: 2px; border-radius: 2px; background: #7445dc; content: ""; opacity: 0; transform: scaleX(.5); transition: opacity 180ms ease, transform 180ms ease; }
body.admin-app .ap-child-drawer-tabs button.active { color: #6637cf; }
body.admin-app .ap-child-drawer-tabs button.active::after { opacity: 1; transform: scaleX(1); }
body.admin-app .ap-child-drawer-tabs em { display: inline-grid; min-width: 16px; height: 16px; margin-left: 4px; padding: 0 4px; place-items: center; border-radius: 999px; background: #ef3b70; color: #fff; font-size: .48rem; font-style: normal; }
body.admin-app .ap-child-drawer-content { display: flex; min-height: 0; padding: 13px; overflow-y: auto; flex: 1; flex-direction: column; gap: 10px; background: #fbfcfe; animation: ap-child-content-in 190ms ease both; }
@keyframes ap-child-content-in { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: translateY(0); } }
body.admin-app .ap-child-drawer-card { padding: 13px; border: 1px solid #e0e6ed; border-radius: 7px; background: #fff; box-shadow: 0 3px 11px rgba(22, 50, 86, .035); }
body.admin-app .ap-child-drawer-card > h3,
body.admin-app .ap-child-drawer-card header h3 { margin: 0; color: #17375e; font-size: .68rem; }
body.admin-app .ap-child-drawer-card header { display: flex; margin-bottom: 12px; align-items: flex-start; justify-content: space-between; gap: 10px; }
body.admin-app .ap-child-drawer-card header p { margin: 4px 0 0; color: #78869a; font-size: .55rem; }
body.admin-app .ap-child-drawer-card header a,
body.admin-app .ap-child-drawer-card header button { display: inline-flex; padding: 0; align-items: center; gap: 4px; border: 0; background: none; color: #6336cf; font: inherit; font-size: .55rem; font-weight: 750; text-decoration: none; cursor: pointer; }
body.admin-app .ap-child-drawer-card header svg { width: 12px; height: 12px; }
body.admin-app .ap-child-info-grid { display: grid; margin-top: 13px; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 18px; }
body.admin-app .ap-child-info-grid > div { display: grid; min-width: 0; grid-template-columns: 17px minmax(0, 1fr); align-items: start; gap: 7px; }
body.admin-app .ap-child-info-grid > div > svg { width: 14px; height: 14px; margin-top: 2px; color: #6d83a0; }
body.admin-app .ap-child-info-grid small { display: block; margin-bottom: 3px; color: #8793a5; font-size: .52rem; }
body.admin-app .ap-child-info-grid strong,
body.admin-app .ap-child-info-grid a { display: block; overflow-wrap: anywhere; color: #283f60; font-size: .59rem; font-weight: 650; text-decoration: none; }
body.admin-app .ap-child-info-grid a { color: #6240c7; }
body.admin-app .ap-child-health-summary { display: grid; margin-top: 12px; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
body.admin-app .ap-child-health-summary article { display: grid; min-height: 64px; padding: 10px; grid-template-columns: 19px 1fr; align-items: start; gap: 7px; border: 1px solid #f1dfd8; border-radius: 6px; background: #fffaf8; }
body.admin-app .ap-child-health-summary article.ok { border-color: #d4ecdf; background: #f2fbf6; }
body.admin-app .ap-child-health-summary article.warning { border-color: #f2d9e1; background: #fff5f8; }
body.admin-app .ap-child-health-summary svg { width: 15px; height: 15px; color: #ee754e; }
body.admin-app .ap-child-health-summary article.ok svg { color: #2aa163; }
body.admin-app .ap-child-health-summary strong { display: block; color: #26415f; font-size: .57rem; }
body.admin-app .ap-child-health-summary small,
body.admin-app .ap-child-health-summary p { display: block; margin: 4px 0 0; color: #6e7d91; font-size: .5rem; }
body.admin-app .ap-child-detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
body.admin-app .ap-child-detail-tile { display: grid; min-height: 92px; padding: 11px; grid-template-columns: 25px 1fr; align-items: start; gap: 8px; border: 1px solid #e4e8ef; border-radius: 7px; background: #fbfcfe; }
body.admin-app .ap-child-detail-tile > svg { width: 20px; height: 20px; color: #7350d5; }
body.admin-app .ap-child-detail-tile.pink > svg { color: #e84b7b; }
body.admin-app .ap-child-detail-tile.green > svg { color: #279a5c; }
body.admin-app .ap-child-detail-tile.blue > svg { color: #2680d4; }
body.admin-app .ap-child-detail-tile.orange > svg { color: #e79420; }
body.admin-app .ap-child-detail-tile small { display: block; color: #7d8a9d; font-size: .51rem; }
body.admin-app .ap-child-detail-tile strong { display: block; margin-top: 4px; color: #213d5f; font-size: .6rem; }
body.admin-app .ap-child-detail-tile p { margin: 5px 0 0; color: #687990; font-size: .52rem; line-height: 1.45; }
body.admin-app .ap-child-observations { margin-top: 10px; padding: 10px; border-radius: 6px; background: #f6f3ff; }
body.admin-app .ap-child-observations strong { color: #4e3b9b; font-size: .58rem; }
body.admin-app .ap-child-observations p { margin: 4px 0 0; color: #5f6f84; font-size: .55rem; }
body.admin-app .ap-child-planning-layout { display: grid; grid-template-columns: minmax(135px, .75fr) minmax(0, 1.25fr); gap: 12px; }
body.admin-app .ap-child-planning-layout > article { padding: 10px; border-radius: 6px; background: #f7f5ff; }
body.admin-app .ap-child-planning-layout > article small { display: block; color: #78869a; font-size: .5rem; }
body.admin-app .ap-child-planning-layout > article strong { display: block; margin: 4px 0 10px; color: #6239c5; font-size: .63rem; }
body.admin-app .ap-child-planning-layout > article p,
body.admin-app .ap-child-planning-layout > article span { display: block; margin: 4px 0 0; color: #526681; font-size: .51rem; line-height: 1.45; }
body.admin-app .ap-child-planning-layout h4 { margin: 0 0 6px; color: #243f60; font-size: .58rem; }
body.admin-app .ap-child-planning-layout > div > a { display: grid; padding: 7px 0; grid-template-columns: 38px 15px 1fr; align-items: start; gap: 5px; border-bottom: 1px solid #edf0f4; color: #314b69; text-decoration: none; }
body.admin-app .ap-child-planning-layout > div > a time { color: #546a85; font-size: .5rem; font-weight: 700; }
body.admin-app .ap-child-planning-layout > div > a svg { width: 12px; height: 12px; color: #7250d7; }
body.admin-app .ap-child-planning-layout > div > a strong { display: block; font-size: .54rem; }
body.admin-app .ap-child-planning-layout > div > a small { display: block; margin-top: 2px; color: #7b8798; font-size: .48rem; }
body.admin-app .ap-child-document-progress { display: flex; align-items: center; gap: 12px; }
body.admin-app .ap-child-document-progress > span { position: relative; display: grid; width: 50px; height: 50px; flex: 0 0 auto; place-items: center; border-radius: 50%; background: conic-gradient(#28a566 var(--progress), #e7edf0 0); }
body.admin-app .ap-child-document-progress > span::before { position: absolute; width: 39px; height: 39px; border-radius: 50%; background: #fff; content: ""; }
body.admin-app .ap-child-document-progress > span strong { position: relative; z-index: 1; color: #238952; font-size: .62rem; }
body.admin-app .ap-child-document-progress > div strong { display: block; color: #218e55; font-size: .61rem; }
body.admin-app .ap-child-document-progress > div small { display: block; margin-top: 4px; color: #718096; font-size: .51rem; }
body.admin-app .ap-child-document-list,
body.admin-app .ap-child-message-list { display: flex; margin-top: 12px; flex-direction: column; gap: 6px; }
body.admin-app .ap-child-document-list article,
body.admin-app .ap-child-message-list a { display: grid; padding: 9px; grid-template-columns: 28px 1fr auto; align-items: center; gap: 8px; border: 1px solid #e6eaf0; border-radius: 6px; background: #fcfdff; color: #2f4968; text-decoration: none; }
body.admin-app .ap-child-document-list svg { width: 17px; height: 17px; color: #7350d5; }
body.admin-app .ap-child-document-list strong,
body.admin-app .ap-child-message-list strong { display: block; font-size: .57rem; }
body.admin-app .ap-child-document-list small,
body.admin-app .ap-child-message-list small { display: block; margin-top: 3px; color: #7b899a; font-size: .49rem; }
body.admin-app .ap-child-document-list em { color: #25945a; font-size: .5rem; font-style: normal; font-weight: 750; }
body.admin-app .ap-child-message-list > a > span { display: grid; width: 28px; height: 28px; place-items: center; border-radius: 50%; background: #efe9ff; color: #6d42d3; }
body.admin-app .ap-child-message-list > a > span.family { background: #eaf6ff; color: #287fcf; }
body.admin-app .ap-child-message-list > a > span svg { width: 13px; height: 13px; }
body.admin-app .ap-child-message-list p { max-width: 300px; margin: 3px 0 0; overflow: hidden; color: #53677e; font-size: .51rem; text-overflow: ellipsis; white-space: nowrap; }
body.admin-app .ap-child-message-list em { padding: 3px 6px; border-radius: 999px; background: #ffedf3; color: #e83c72; font-size: .47rem; font-style: normal; font-weight: 750; }
body.admin-app .ap-child-inline-empty { margin: 8px 0; color: #75849a; font-size: .55rem; line-height: 1.5; }
body.admin-app .ap-child-timeline { position: relative; display: flex; margin-top: 6px; padding-left: 14px; flex-direction: column; gap: 0; }
body.admin-app .ap-child-timeline::before { position: absolute; top: 5px; bottom: 5px; left: 4px; width: 1px; background: #ddd6f2; content: ""; }
body.admin-app .ap-child-timeline article { position: relative; padding: 0 0 14px 12px; }
body.admin-app .ap-child-timeline article > i { position: absolute; top: 4px; left: -14px; width: 7px; height: 7px; border: 2px solid #fff; border-radius: 50%; background: #7650d7; box-shadow: 0 0 0 1px #bdaee2; }
body.admin-app .ap-child-timeline time { display: block; color: #8995a6; font-size: .47rem; }
body.admin-app .ap-child-timeline strong { display: block; margin-top: 3px; color: #284261; font-size: .56rem; }
body.admin-app .ap-child-timeline p { margin: 2px 0 0; color: #718096; font-size: .49rem; }
body.admin-app .ap-child-quick-actions { padding: 12px 13px 14px; border-top: 1px solid #e0e6ed; background: #fff; }
body.admin-app .ap-child-quick-actions h3 { margin: 0 0 8px; color: #1d3b60; font-size: .62rem; }
body.admin-app .ap-child-quick-actions > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
body.admin-app .ap-child-quick-actions button { display: flex; min-height: 38px; padding: 0 10px; align-items: center; gap: 7px; border: 1px solid #dce3ec; border-radius: 6px; background: #fff; color: #304b6d; font: inherit; font-size: .56rem; font-weight: 750; cursor: pointer; transition: transform 180ms ease, border-color 180ms ease, background 180ms ease; }
body.admin-app .ap-child-quick-actions button:hover { transform: translateY(-1px); border-color: #c7b4f5; background: #fbf9ff; }
body.admin-app .ap-child-quick-actions button.danger { color: #e7446e; }
body.admin-app .ap-child-quick-actions svg { width: 14px; height: 14px; color: #7041d8; }
body.admin-app .ap-child-quick-actions .danger svg { color: #e7446e; }

@media (max-width: 1320px) {
  body.admin-app .ap-child-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  body.admin-app .ap-child-stat { min-height: 92px; }
  body.admin-app .ap-child-list-head,
  body.admin-app .ap-child-row { grid-template-columns: minmax(175px, 1.4fr) 62px minmax(100px, .8fr) minmax(100px, .8fr) 85px 90px 24px; gap: 7px; }
}
@media (max-width: 1080px) {
  body.admin-app .ap-child-head { grid-template-columns: 1fr; }
  body.admin-app .ap-child-head-actions { justify-content: flex-start; flex-wrap: wrap; }
  body.admin-app .ap-child-sync { grid-column: 1; }
  body.admin-app .ap-child-list-head span:nth-child(2), body.admin-app .ap-child-row > :nth-child(2),
  body.admin-app .ap-child-list-head span:nth-child(4), body.admin-app .ap-child-row > :nth-child(4) { display: none; }
  body.admin-app .ap-child-list-head,
  body.admin-app .ap-child-row { grid-template-columns: minmax(180px, 1.5fr) minmax(105px, .9fr) 90px 92px 24px; }
  body.admin-app .ap-child-drawer { width: min(560px, 58vw); min-width: 450px; }
}
@media (max-width: 760px) {
  body.admin-app .ap-child-page { padding: 18px 12px 28px; }
  body.admin-app .ap-child-head-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.admin-app .ap-child-head-actions > .ap-primary { min-width: 0; grid-column: 1 / -1; }
  body.admin-app .ap-child-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
  body.admin-app .ap-child-stat { min-height: 94px; padding: 12px 10px; grid-template-columns: 36px 1fr; }
  body.admin-app .ap-child-stat > span { width: 36px; height: 36px; }
  body.admin-app .ap-child-controls { grid-template-columns: 1fr; }
  body.admin-app .ap-child-search { width: 100%; }
  body.admin-app .ap-child-filters { overflow-x: auto; flex-wrap: nowrap; scrollbar-width: none; }
  body.admin-app .ap-child-filters button { min-width: max-content; }
  body.admin-app .ap-child-sort { grid-row: auto; grid-column: 1; }
  body.admin-app .ap-child-sort select { width: 100%; }
  body.admin-app .ap-child-list { min-width: 0; }
  body.admin-app .ap-child-list-head { display: none; }
  body.admin-app .ap-child-row { grid-template-columns: 44px minmax(0, 1fr) 24px; grid-template-rows: auto auto; min-height: 96px; padding: 11px; gap: 5px 9px; }
  body.admin-app .ap-child-row > * { display: none !important; }
  body.admin-app .ap-child-row .ap-child-identity { display: grid !important; grid-column: 1 / 3; grid-row: 1; }
  body.admin-app .ap-child-row .ap-child-class { display: inline-flex !important; grid-column: 2; grid-row: 2; }
  body.admin-app .ap-child-row .ap-child-open-icon { display: grid !important; grid-column: 3; grid-row: 1 / 3; }
  body.admin-app .ap-child-row .ap-child-avatar { grid-column: 1; }
  body.admin-app .ap-child-pagination { align-items: flex-start; flex-direction: column; }
  body.admin-app .ap-child-pagination label { display: none; }
  body.admin-app .ap-child-drawer { width: 100vw; min-width: 0; }
  body.admin-app .ap-child-drawer-head em { position: absolute; top: 80px; left: 96px; margin: 0; }
  body.admin-app .ap-child-drawer-head > strong { margin-top: 27px; }
  body.admin-app .ap-child-info-grid,
  body.admin-app .ap-child-health-summary,
  body.admin-app .ap-child-detail-grid,
  body.admin-app .ap-child-planning-layout { grid-template-columns: 1fr; }
  body.admin-app .ap-child-quick-actions > div { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  body.admin-app .ap-child-drawer,
  body.admin-app .ap-child-drawer-overlay,
  body.admin-app .ap-child-drawer-content,
  body.admin-app .ap-child-row,
  body.admin-app .ap-child-stat { animation: none !important; transition: none !important; }
}

/* Admin workflow polish - Prompt Admin Inscriptions */
body.admin-app .ap-sidebar {
  background: rgba(248, 249, 251, .96);
  border-right-color: #e4e8ee;
  backdrop-filter: blur(20px);
}
body.admin-app .ap-sidebar-account { border-color: #e1e4ea; background: #f1f2f5; box-shadow: none; }
body.admin-app .ap-sidebar-account > span:first-child { color: #68758c; background: #e7e9ee; }
body.admin-app .ap-nav-domain { border-top-color: #e2e6ec; }
body.admin-app .ap-sidebar nav a,
body.admin-app .ap-sidebar .ap-dashboard-nav a,
body.admin-app .ap-nav-domain nav a { --ap-nav-color: #677489 !important; color: #344762; background: transparent; }
body.admin-app .ap-sidebar nav a:hover,
body.admin-app .ap-sidebar nav a:focus-visible { color: #102d59; background: #eef0f4; }
body.admin-app .ap-sidebar nav a.active { color: #6534c8; border-color: #e4dbf4; background: #f0ebf8; box-shadow: 0 4px 12px rgba(42, 50, 70, .05); }
body.admin-app .ap-sidebar nav a.active .ap-nav-icon { color: #7437e8; }
body.admin-app .ap-sidebar nav a.active::before { background: #7437e8; }

body.admin-app :is(.ap-head, .ap-dashboard-head, .ap-family-head, .ap-registration-head, .ap-audit-head) h1 {
  color: #102d59 !important;
  background: none !important;
  -webkit-background-clip: initial !important;
  background-clip: initial !important;
  -webkit-text-fill-color: currentColor !important;
  font-style: normal !important;
}
body.admin-app .ap-head h1::after,
body.admin-app .ap-head h1 > span { display: none !important; }
body.admin-app .ap-family-head h1 { font-size: clamp(1.65rem, 2.4vw, 2.25rem); }

body.admin-app .ap-registration-page { --registration-navy:#102d59; --registration-purple:#7437e8; position:relative; min-width:0; color:var(--registration-navy); }
body.admin-app .ap-registration-head { display:grid; margin-bottom:22px; grid-template-columns:minmax(250px,1fr) auto; align-items:center; gap:8px 22px; }
body.admin-app .ap-registration-head h1,
body.admin-app .ap-audit-head h1 { margin:0; font-size:clamp(1.65rem,2.35vw,2.2rem); line-height:1.05; }
body.admin-app .ap-registration-head > div:first-child p,
body.admin-app .ap-audit-head > div:first-child p { margin:8px 0 0; color:#52627a; font-size:.74rem; font-weight:720; }
body.admin-app .ap-registration-head-actions { display:flex; grid-row:1 / span 2; grid-column:2; align-items:center; gap:8px; }
body.admin-app .ap-registration-head-actions button,
body.admin-app .ap-audit-head button { min-height:38px; padding:8px 13px; display:inline-flex; align-items:center; gap:7px; border:1px solid #dbe2eb; border-radius:8px; color:#18335e; background:#fff; box-shadow:0 4px 12px rgba(24,48,83,.04); font:inherit; font-size:.67rem; font-weight:850; cursor:pointer; transition:border-color 200ms ease,color 200ms ease,box-shadow 200ms ease,transform 200ms ease; }
body.admin-app .ap-registration-head-actions button:hover,
body.admin-app .ap-audit-head button:hover { border-color:#cbb9ef; color:#6632ca; box-shadow:0 8px 18px rgba(54,39,105,.08); transform:translateY(-1px); }
body.admin-app .ap-registration-head-actions button.ap-primary { color:#fff; border-color:transparent; background:linear-gradient(135deg,#7b4ce1,#6232ca); }
body.admin-app .ap-registration-head-actions svg,
body.admin-app .ap-audit-head button svg { width:15px; height:15px; }
body.admin-app .ap-registration-sync { display:inline-flex; margin:0; align-items:center; gap:5px; color:#74839a; font-size:.58rem; justify-self:end; }
body.admin-app .ap-registration-sync svg { width:13px; height:13px; color:#2da557; }

body.admin-app .ap-registration-stats { display:grid; margin-bottom:22px; grid-template-columns:repeat(4,minmax(0,1fr)); gap:11px; }
body.admin-app .ap-registration-stat { --registration-tone:#7437e8; --registration-soft:#eee6ff; min-height:102px; padding:16px; display:grid; grid-template-columns:45px auto minmax(0,1fr); align-items:center; gap:12px; border:1px solid #e0e5ed; border-radius:9px; color:var(--registration-navy); background:rgba(255,255,255,.94); box-shadow:0 7px 18px rgba(28,49,77,.045); text-align:left; cursor:pointer; transition:220ms ease; }
body.admin-app .ap-registration-stat:hover,
body.admin-app .ap-registration-stat.active { border-color:#d4c4f2; box-shadow:0 11px 25px rgba(54,39,105,.09); transform:translateY(-2px); }
body.admin-app .ap-registration-stat.active { box-shadow:inset 0 -3px var(--registration-tone),0 11px 25px rgba(54,39,105,.07); }
body.admin-app .ap-registration-stat > span:first-child { display:grid; width:45px; height:45px; place-items:center; border-radius:50%; color:var(--registration-tone); background:var(--registration-soft); }
body.admin-app .ap-registration-stat svg { width:21px; height:21px; }
body.admin-app .ap-registration-stat > strong { font-size:1.5rem; line-height:1; }
body.admin-app .ap-registration-stat > span:last-child { display:grid; gap:4px; }
body.admin-app .ap-registration-stat b { font-size:.72rem; }
body.admin-app .ap-registration-stat small { color:var(--registration-tone); font-size:.58rem; font-weight:850; }
body.admin-app .ap-registration-stat.green { --registration-tone:#2da75a; --registration-soft:#e3f7e9; }
body.admin-app .ap-registration-stat.yellow { --registration-tone:#d48a00; --registration-soft:#fff1d2; }
body.admin-app .ap-registration-stat.blue { --registration-tone:#2879d9; --registration-soft:#e5f1ff; }

body.admin-app .ap-registration-directory { min-width:0; padding-top:13px; border-top:1px solid #e5e9ef; }
body.admin-app .ap-registration-controls { display:grid; grid-template-columns:minmax(270px,1fr) auto auto; align-items:center; gap:10px; }
body.admin-app .ap-registration-search { min-height:38px; display:grid; grid-template-columns:35px 1fr; align-items:center; border:1px solid #d6dee8; border-radius:8px; background:#fff; transition:200ms ease; }
body.admin-app .ap-registration-search:focus-within { border-color:#9575dc; box-shadow:0 0 0 3px rgba(116,55,232,.1); }
body.admin-app .ap-registration-search svg { width:15px; height:15px; margin:auto; color:#74839a; }
body.admin-app .ap-registration-search input { min-width:0; min-height:36px; padding:7px 10px 7px 0; border:0; outline:0; color:#263b5e; background:transparent; font:inherit; font-size:.64rem; }
body.admin-app .ap-registration-filters,
body.admin-app .ap-registration-view { display:flex; min-width:0; align-items:center; }
body.admin-app .ap-registration-filters button,
body.admin-app .ap-registration-view button { min-height:35px; padding:7px 10px; border:1px solid #dce2ea; border-right-width:0; color:#526178; background:#fff; font:inherit; font-size:.57rem; font-weight:820; cursor:pointer; }
body.admin-app .ap-registration-filters button:first-child,
body.admin-app .ap-registration-view button:first-child { border-radius:7px 0 0 7px; }
body.admin-app .ap-registration-filters button:last-child,
body.admin-app .ap-registration-view button:last-child { border-right-width:1px; border-radius:0 7px 7px 0; }
body.admin-app .ap-registration-filters button.active,
body.admin-app .ap-registration-view button.active { color:#6b37ce; background:#f2ecff; }
body.admin-app .ap-registration-view button { display:inline-flex; align-items:center; gap:5px; }
body.admin-app .ap-registration-view svg { width:13px; height:13px; }
body.admin-app .ap-registration-sort { grid-column:1 / -1; display:flex; width:max-content; margin-top:1px; align-items:center; gap:7px; color:#738199; font-size:.58rem; font-weight:750; }
body.admin-app .ap-registration-sort select { min-height:30px; padding:5px 27px 5px 8px; border:0; border-radius:6px; color:#314866; background:#f5f6f8; font:inherit; font-size:.58rem; font-weight:800; }
body.admin-app .ap-registration-results { min-width:0; margin-top:10px; opacity:1; transition:opacity 200ms ease,transform 200ms ease; }
body.admin-app .ap-registration-results.is-updating { opacity:.55; transform:translateY(2px); }

body.admin-app .ap-registration-kanban { display:grid; min-width:980px; grid-template-columns:repeat(5,minmax(180px,1fr)); gap:9px; }
body.admin-app .ap-registration-column { --column-tone:#7437e8; --column-soft:#f7f2ff; min-height:430px; display:flex; overflow:hidden; flex-direction:column; border:1px solid #e1e5ec; border-radius:9px; background:linear-gradient(180deg,var(--column-soft),rgba(255,255,255,.78)); transition:border-color 200ms ease,box-shadow 200ms ease; }
body.admin-app .ap-registration-column.orange { --column-tone:#d56d18; --column-soft:#fff6ed; }
body.admin-app .ap-registration-column.blue { --column-tone:#2776d5; --column-soft:#f0f6ff; }
body.admin-app .ap-registration-column.yellow { --column-tone:#d78900; --column-soft:#fff9ea; }
body.admin-app .ap-registration-column.green { --column-tone:#299b50; --column-soft:#effbf3; }
body.admin-app .ap-registration-column.is-drag-over { border-color:var(--column-tone); box-shadow:0 0 0 3px color-mix(in srgb,var(--column-tone) 13%,transparent); }
body.admin-app .ap-registration-column > header { min-height:45px; padding:11px 12px; display:flex; align-items:center; justify-content:space-between; color:var(--column-tone); border-bottom:1px solid color-mix(in srgb,var(--column-tone) 13%,#e4e8ee); }
body.admin-app .ap-registration-column > header h2 { margin:0; font-size:.64rem; }
body.admin-app .ap-registration-column > header span { min-width:20px; height:20px; display:grid; place-items:center; border-radius:50%; background:color-mix(in srgb,var(--column-tone) 10%,white); font-size:.58rem; font-weight:900; }
body.admin-app .ap-registration-column > div { min-height:0; padding:8px; display:grid; align-content:start; flex:1; gap:8px; }
body.admin-app .ap-registration-column > button { min-height:34px; padding:8px 10px; display:flex; align-items:center; justify-content:center; gap:5px; border:0; border-top:1px solid #e5e9ef; color:#5f7088; background:rgba(255,255,255,.55); font:inherit; font-size:.55rem; font-weight:780; cursor:pointer; }
body.admin-app .ap-registration-column > button:hover { color:var(--column-tone); background:#fff; }
body.admin-app .ap-registration-column > button svg { width:12px; height:12px; }
body.admin-app .ap-registration-column-empty { margin:30px 0; color:#9aa5b4; font-size:.58rem; text-align:center; }
body.admin-app .ap-registration-kanban-card { padding:12px; display:grid; gap:8px; border:1px solid #e1e5ec; border-radius:8px; background:#fff; box-shadow:0 5px 14px rgba(31,49,76,.045); cursor:pointer; transition:opacity 200ms ease,border-color 200ms ease,box-shadow 200ms ease,transform 200ms ease; }
body.admin-app .ap-registration-kanban-card:hover,
body.admin-app .ap-registration-kanban-card:focus-visible { border-color:color-mix(in srgb,var(--column-tone) 35%,#dfe4ec); outline:0; box-shadow:0 9px 20px rgba(31,49,76,.09); transform:translateY(-2px); }
body.admin-app .ap-registration-kanban-card.is-dragging { opacity:.38; }
body.admin-app .ap-registration-kanban-card > header { display:grid; grid-template-columns:30px minmax(0,1fr); align-items:center; gap:8px; }
body.admin-app .ap-registration-avatar { display:grid; width:30px; height:30px; flex:0 0 30px; place-items:center; border-radius:50%; color:var(--column-tone,#7437e8); background:color-mix(in srgb,var(--column-tone,#7437e8) 11%,white); font-size:.57rem; font-weight:900; }
body.admin-app .ap-registration-kanban-card header div { min-width:0; display:grid; gap:2px; }
body.admin-app .ap-registration-kanban-card strong { overflow:hidden; font-size:.61rem; text-overflow:ellipsis; white-space:nowrap; }
body.admin-app .ap-registration-kanban-card header span,
body.admin-app .ap-registration-kanban-card > p { margin:0; color:#60708a; font-size:.54rem; }
body.admin-app .ap-registration-kanban-card > small { display:flex; align-items:center; gap:4px; color:var(--column-tone); font-size:.52rem; font-weight:750; }
body.admin-app .ap-registration-kanban-card > small svg { width:11px; height:11px; }
body.admin-app .ap-registration-kanban-card > em { width:max-content; padding:4px 6px; display:inline-flex; align-items:center; gap:4px; border:1px solid #f1b292; border-radius:5px; color:#d65f28; background:#fff8f3; font-size:.48rem; font-style:normal; font-weight:800; }
body.admin-app .ap-registration-kanban-card > em svg { width:10px; height:10px; }
body.admin-app .ap-registration-kanban-card footer { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:7px; }
body.admin-app .ap-registration-kanban-card footer > span { height:3px; overflow:hidden; border-radius:999px; background:#e5e9ef; }
body.admin-app .ap-registration-kanban-card footer i { display:block; height:100%; border-radius:inherit; background:var(--column-tone); }
body.admin-app .ap-registration-kanban-card footer b { color:#63728a; font-size:.47rem; }

body.admin-app .ap-registration-list { overflow:hidden; border:1px solid #e0e5ed; border-radius:9px; background:#fff; }
body.admin-app .ap-registration-list-head,
body.admin-app .ap-registration-list > button { display:grid; grid-template-columns:1.3fr 1fr 1fr .9fr .8fr .8fr 18px; align-items:center; gap:10px; }
body.admin-app .ap-registration-list-head { min-height:37px; padding:8px 13px; color:#75839a; background:#f7f8fa; font-size:.54rem; font-weight:850; }
body.admin-app .ap-registration-list > button { width:100%; min-height:62px; padding:9px 13px; border:0; border-top:1px solid #edf0f4; color:#2c4261; background:#fff; font:inherit; font-size:.58rem; text-align:left; cursor:pointer; transition:background 180ms ease; }
body.admin-app .ap-registration-list > button:hover { background:#faf8ff; }
body.admin-app .ap-registration-list > button > span:first-child { display:grid; gap:2px; }
body.admin-app .ap-registration-list small { color:#8490a2; font-size:.5rem; }
body.admin-app .ap-registration-list-progress { display:grid; grid-template-columns:minmax(50px,1fr) auto; align-items:center; gap:5px; font-size:.5rem; }
body.admin-app .ap-registration-list-progress i { height:4px; overflow:hidden; border-radius:999px; background:#e5e9ef; }
body.admin-app .ap-registration-list-progress b { display:block; height:100%; background:#7437e8; }
body.admin-app .ap-registration-badge { width:max-content; padding:4px 7px; border-radius:999px; color:#6b39c8; background:#f0e8ff; font-size:.5rem; font-weight:850; font-style:normal; }
body.admin-app .ap-registration-badge.green { color:#208b48; background:#e3f7e9; }
body.admin-app .ap-registration-badge.yellow { color:#b87400; background:#fff1ce; }
body.admin-app .ap-registration-badge.blue { color:#226fc6; background:#e5f1ff; }
body.admin-app .ap-registration-badge.pink { color:#d53e70; background:#ffe8ef; }

body.admin-app .ap-registration-completed { margin-top:22px; }
body.admin-app .ap-registration-completed > header { margin-bottom:10px; }
body.admin-app .ap-registration-completed h2 { margin:0 0 4px; color:#102d59; font-size:.9rem; }
body.admin-app .ap-registration-completed p { margin:0; color:#768399; font-size:.58rem; }
body.admin-app .ap-registration-completed-table { overflow:hidden; border:1px solid #dfe5ed; border-radius:8px; background:#fff; }
body.admin-app .ap-registration-completed-table > div,
body.admin-app .ap-registration-completed-table > button { display:grid; grid-template-columns:1.3fr 1fr .9fr .8fr .9fr .9fr; align-items:center; gap:10px; }
body.admin-app .ap-registration-completed-table > div { min-height:34px; padding:7px 12px; color:#6f7d93; background:#f7f8fa; font-size:.52rem; font-weight:850; }
body.admin-app .ap-registration-completed-table > button { width:100%; min-height:55px; padding:8px 12px; border:0; border-top:1px solid #edf0f4; color:#314762; background:#fff; font:inherit; font-size:.56rem; text-align:left; cursor:pointer; }
body.admin-app .ap-registration-completed-table > button:hover { background:#fafbfc; }
body.admin-app .ap-registration-completed-table > button > span:first-child { display:flex; align-items:center; gap:7px; }
body.admin-app .ap-registration-completed-table em { display:inline-flex; align-items:center; gap:4px; color:#31527c; font-size:.51rem; font-style:normal; font-weight:800; }
body.admin-app .ap-registration-completed-table svg { width:11px; height:11px; }
body.admin-app .ap-registration-empty { min-height:150px; padding:26px; display:grid; place-items:center; align-content:center; gap:7px; color:#718096; text-align:center; }
body.admin-app .ap-registration-empty > span { display:grid; width:38px; height:38px; place-items:center; border-radius:50%; color:#7437e8; background:#f0e8ff; }
body.admin-app .ap-registration-empty svg { width:18px; height:18px; }
body.admin-app .ap-registration-empty strong { color:#18355e; font-size:.72rem; }
body.admin-app .ap-registration-empty p { margin:0; font-size:.58rem; }
body.admin-app .ap-registration-empty button { min-height:31px; padding:6px 10px; border:1px solid #d9cff0; border-radius:7px; color:#6836c9; background:#fff; font:inherit; font-size:.56rem; font-weight:820; cursor:pointer; }

body.admin-app .ap-registration-drawer-overlay { position:fixed; inset:0; z-index:79; display:block; width:100%; height:100%; border:0; background:rgba(14,34,61,.18); backdrop-filter:blur(2px); opacity:0; pointer-events:none; transition:opacity 200ms ease; }
body.admin-app .ap-registration-drawer { position:fixed; z-index:80; top:0; right:0; width:min(430px,100vw); height:100dvh; display:grid; grid-template-rows:auto auto minmax(0,1fr) auto; border-left:1px solid #dfe5ed; background:#fff; box-shadow:-20px 0 50px rgba(24,43,70,.13); opacity:0; pointer-events:none; transform:translateX(36px); transition:opacity 200ms ease,transform 220ms cubic-bezier(.22,1,.36,1); }
body.admin-app.ap-registration-drawer-open { overflow:hidden; }
body.admin-app.ap-registration-drawer-open .ap-registration-drawer-overlay { opacity:1; pointer-events:auto; }
body.admin-app.ap-registration-drawer-open .ap-registration-drawer { opacity:1; pointer-events:auto; transform:translateX(0); }
body.admin-app .ap-registration-drawer-head { min-height:72px; padding:18px 18px 12px; display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
body.admin-app .ap-registration-drawer-head > div { display:flex; align-items:center; gap:9px; }
body.admin-app .ap-registration-drawer-head h2 { margin:0; color:#102d59; font-size:1rem; }
body.admin-app .ap-registration-drawer-head > button { width:32px; height:32px; display:grid; place-items:center; border:1px solid #dfe5ed; border-radius:7px; color:#607088; background:#fff; cursor:pointer; }
body.admin-app .ap-registration-drawer-head svg { width:16px; height:16px; }
body.admin-app .ap-registration-drawer-tabs { padding:0 16px; display:flex; border-bottom:1px solid #e5e9ef; }
body.admin-app .ap-registration-drawer-tabs button { min-height:39px; padding:8px 10px; border:0; border-bottom:2px solid transparent; color:#52627a; background:transparent; font:inherit; font-size:.55rem; font-weight:820; cursor:pointer; }
body.admin-app .ap-registration-drawer-tabs button.active { color:#6a35d0; border-bottom-color:#7437e8; }
body.admin-app .ap-registration-drawer-body { min-height:0; padding:14px 16px 20px; overflow-y:auto; background:#fbfcfd; }
body.admin-app .ap-registration-profile { padding:11px 0 15px; display:grid; grid-template-columns:42px minmax(0,1fr) 128px; align-items:center; gap:10px; }
body.admin-app .ap-registration-profile > .ap-registration-avatar { width:42px; height:42px; }
body.admin-app .ap-registration-profile > div { display:grid; gap:3px; }
body.admin-app .ap-registration-profile > div strong { font-size:.7rem; }
body.admin-app .ap-registration-profile > div small { color:#65748c; font-size:.52rem; }
body.admin-app .ap-registration-profile a { color:#6936cf; font-size:.5rem; font-weight:800; }
body.admin-app .ap-registration-profile aside { padding:9px; display:grid; grid-template-columns:1fr auto; gap:4px 7px; border:1px solid #e0e5ed; border-radius:7px; background:#fff; }
body.admin-app .ap-registration-profile aside span { grid-column:1 / -1; color:#6e7b91; font-size:.48rem; }
body.admin-app .ap-registration-profile aside b { color:#4c5d76; font-size:.5rem; }
body.admin-app .ap-registration-profile aside > i { height:4px; align-self:center; overflow:hidden; border-radius:999px; background:#e5e9ef; }
body.admin-app .ap-registration-profile aside em { display:block; height:100%; background:#7437e8; }
body.admin-app .ap-registration-profile aside strong { color:#6533c9; font-size:.52rem; }
body.admin-app .ap-registration-drawer-card { margin-bottom:10px; padding:13px; border:1px solid #e2e6ed; border-radius:8px; background:#fff; box-shadow:0 4px 12px rgba(31,49,76,.025); }
body.admin-app .ap-registration-drawer-card > header { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
body.admin-app .ap-registration-drawer-card h3 { margin:0 0 10px; color:#18345d; font-size:.63rem; }
body.admin-app .ap-registration-drawer-card header p { margin:-5px 0 10px; color:#7b8799; font-size:.51rem; }
body.admin-app .ap-registration-drawer-card header > strong,
body.admin-app .ap-registration-drawer-card header > small { color:#4f6078; font-size:.49rem; text-align:right; }
body.admin-app .ap-registration-drawer-card dl { margin:0; display:grid; gap:8px; }
body.admin-app .ap-registration-drawer-card dl > div { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
body.admin-app .ap-registration-drawer-card dt { display:flex; align-items:center; gap:5px; color:#65748b; font-size:.5rem; }
body.admin-app .ap-registration-drawer-card dt svg { width:12px; height:12px; color:#56739a; }
body.admin-app .ap-registration-drawer-card dd { margin:0; color:#18345d; font-size:.51rem; font-weight:720; }
body.admin-app .ap-registration-contact-card > p { display:grid; margin:0 0 11px; gap:3px; color:#5b6b82; font-size:.53rem; }
body.admin-app .ap-registration-contact-card > p strong { color:#102d59; }
body.admin-app .ap-registration-contact-card > p a { color:#315f98; }
body.admin-app .ap-registration-contact-card > div { display:flex; gap:6px; }
body.admin-app .ap-registration-contact-card button,
body.admin-app .ap-registration-full-section header button,
body.admin-app .ap-registration-text-action { min-height:29px; padding:6px 8px; display:inline-flex; align-items:center; gap:4px; border:1px solid #dce3ec; border-radius:6px; color:#31527d; background:#fff; font:inherit; font-size:.49rem; font-weight:800; cursor:pointer; }
body.admin-app .ap-registration-contact-card button svg,
body.admin-app .ap-registration-full-section header button svg,
body.admin-app .ap-registration-text-action svg { width:11px; height:11px; }
body.admin-app .ap-registration-document-list { margin:0; padding:0; display:grid; gap:7px; list-style:none; }
body.admin-app .ap-registration-document-list li { min-height:24px; display:grid; grid-template-columns:minmax(0,1fr) auto auto; align-items:center; gap:7px; color:#455873; font-size:.51rem; }
body.admin-app .ap-registration-document-list li > span { display:flex; align-items:center; gap:6px; }
body.admin-app .ap-registration-document-list svg { width:12px; height:12px; }
body.admin-app .ap-registration-document-list em { font-size:.48rem; font-style:normal; font-weight:800; }
body.admin-app .ap-registration-document-list em.received { color:#2a9b51; }
body.admin-app .ap-registration-document-list em.review { color:#bd7a00; }
body.admin-app .ap-registration-document-list em.missing { color:#df6340; }
body.admin-app .ap-registration-document-list li > button { width:24px; height:24px; display:grid; place-items:center; border:0; color:#346aa8; background:#eef5ff; cursor:pointer; }
body.admin-app .ap-registration-text-action { margin-top:8px; color:#6d37d1; border:0; }
body.admin-app .ap-registration-next-steps { margin:0; padding:0; display:grid; gap:8px; list-style:none; counter-reset:steps; }
body.admin-app .ap-registration-next-steps li { display:flex; align-items:center; gap:7px; color:#52637c; font-size:.51rem; }
body.admin-app .ap-registration-next-steps li::before { content:""; width:9px; height:9px; border:1px solid #7790b3; border-radius:50%; }
body.admin-app .ap-registration-message-list { display:grid; gap:8px; }
body.admin-app .ap-registration-message-list article { padding:9px; display:grid; grid-template-columns:28px minmax(0,1fr); gap:8px; border:1px solid #e6e9ef; border-radius:7px; }
body.admin-app .ap-registration-message-list article > span { display:grid; width:28px; height:28px; place-items:center; border-radius:50%; color:#7437e8; background:#f0e8ff; }
body.admin-app .ap-registration-message-list article svg { width:13px; height:13px; }
body.admin-app .ap-registration-message-list article div { display:grid; gap:3px; }
body.admin-app .ap-registration-message-list article strong { font-size:.55rem; }
body.admin-app .ap-registration-message-list article p { margin:0; overflow:hidden; color:#637188; font-size:.5rem; text-overflow:ellipsis; white-space:nowrap; }
body.admin-app .ap-registration-message-list article time { color:#929cab; font-size:.46rem; }
body.admin-app .ap-registration-timeline { margin:0; padding:0; display:grid; gap:0; list-style:none; }
body.admin-app .ap-registration-timeline li { position:relative; min-height:54px; padding:0 0 12px 32px; }
body.admin-app .ap-registration-timeline li::before { content:""; position:absolute; top:25px; bottom:-2px; left:12px; width:1px; background:#e0e5ec; }
body.admin-app .ap-registration-timeline li:last-child::before { display:none; }
body.admin-app .ap-registration-timeline li > span { position:absolute; top:0; left:0; width:25px; height:25px; display:grid; place-items:center; border-radius:50%; color:#7437e8; background:#eee6ff; }
body.admin-app .ap-registration-timeline svg { width:12px; height:12px; }
body.admin-app .ap-registration-timeline strong { font-size:.55rem; }
body.admin-app .ap-registration-timeline p { margin:3px 0; color:#64738a; font-size:.49rem; }
body.admin-app .ap-registration-timeline small { color:#8b96a7; font-size:.46rem; }
body.admin-app .ap-registration-quick-actions { padding:12px 16px 16px; border-top:1px solid #e2e6ed; background:#fff; }
body.admin-app .ap-registration-quick-actions h3 { margin:0 0 9px; color:#18345d; font-size:.61rem; }
body.admin-app .ap-registration-quick-actions > div { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }
body.admin-app .ap-registration-quick-actions button { min-height:34px; padding:7px 9px; display:flex; align-items:center; justify-content:flex-start; gap:6px; border:1px solid #dfd6f3; border-radius:7px; color:#6b35ce; background:#fff; font:inherit; font-size:.52rem; font-weight:850; cursor:pointer; }
body.admin-app .ap-registration-quick-actions button.green { color:#25934b; border-color:#cee9d7; }
body.admin-app .ap-registration-quick-actions button.pink { color:#dc3d70; border-color:#f2ced9; }
body.admin-app .ap-registration-quick-actions button.blue { color:#2473ce; border-color:#cfe0f3; }
body.admin-app .ap-registration-quick-actions button:disabled { opacity:.45; cursor:not-allowed; }
body.admin-app .ap-registration-quick-actions svg { width:14px; height:14px; }

body.admin-app .ap-audit-page { color:#102d59; }
body.admin-app .ap-audit-head { display:flex; margin-bottom:20px; align-items:center; justify-content:space-between; gap:20px; }
body.admin-app .ap-audit-head > div:last-child { display:flex; gap:8px; }
body.admin-app .ap-audit-controls { padding:12px; display:grid; grid-template-columns:minmax(280px,1fr) repeat(3,minmax(150px,auto)); gap:8px; border:1px solid #e0e5ed; border-radius:8px 8px 0 0; background:#f7f8fa; }
body.admin-app .ap-audit-controls label { display:grid; grid-template-columns:30px minmax(0,1fr); align-items:center; border:1px solid #d9e0e9; border-radius:7px; background:#fff; }
body.admin-app .ap-audit-controls label svg { width:14px; height:14px; margin:auto; color:#77859a; }
body.admin-app .ap-audit-controls input,
body.admin-app .ap-audit-controls select { min-width:0; min-height:35px; padding:7px 9px; border:1px solid #d9e0e9; border-radius:7px; color:#334966; background:#fff; font:inherit; font-size:.58rem; }
body.admin-app .ap-audit-controls label input { border:0; outline:0; }
body.admin-app .ap-audit-list { overflow:hidden; border:1px solid #e0e5ed; border-top:0; border-radius:0 0 8px 8px; background:#fff; }
body.admin-app .ap-audit-list-head,
body.admin-app .ap-audit-row > summary { display:grid; grid-template-columns:130px 1.2fr .7fr 1fr 110px 45px; align-items:center; gap:10px; }
body.admin-app .ap-audit-list-head { min-height:36px; padding:7px 12px; color:#758399; background:#fafbfc; font-size:.52rem; font-weight:850; }
body.admin-app .ap-audit-row { border-top:1px solid #edf0f4; }
body.admin-app .ap-audit-row > summary { min-height:58px; padding:9px 12px; color:#435570; cursor:pointer; font-size:.56rem; list-style:none; }
body.admin-app .ap-audit-row > summary::-webkit-details-marker { display:none; }
body.admin-app .ap-audit-row > summary > span { display:grid; gap:2px; }
body.admin-app .ap-audit-row > summary strong { color:#18345d; }
body.admin-app .ap-audit-row > summary small { color:#8490a2; font-size:.49rem; }
body.admin-app .ap-audit-row > summary b { color:#6535c8; font-size:.54rem; }
body.admin-app .ap-audit-row code { overflow:hidden; color:#65738a; font-size:.5rem; text-overflow:ellipsis; }
body.admin-app .ap-audit-row > summary em { color:#7437e8; font-style:normal; }
body.admin-app .ap-audit-row > summary svg { width:13px; height:13px; transition:transform 180ms ease; }
body.admin-app .ap-audit-row[open] > summary svg { transform:rotate(180deg); }
body.admin-app .ap-audit-row > div { padding:12px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; background:#f8f9fb; }
body.admin-app .ap-audit-row section { min-width:0; }
body.admin-app .ap-audit-row h3 { margin:0 0 5px; font-size:.56rem; }
body.admin-app .ap-audit-row pre { max-height:220px; margin:0; padding:9px; overflow:auto; border:1px solid #e0e5ed; border-radius:6px; color:#43536a; background:#fff; font-size:.5rem; white-space:pre-wrap; }

@media (max-width:1320px) {
  body.admin-app .ap-registration-head { grid-template-columns:1fr; }
  body.admin-app .ap-registration-head-actions { grid-row:auto; grid-column:auto; flex-wrap:wrap; }
  body.admin-app .ap-registration-sync { justify-self:start; }
  body.admin-app .ap-registration-controls { grid-template-columns:minmax(250px,1fr) auto; }
  body.admin-app .ap-registration-filters { grid-column:1 / -1; overflow-x:auto; }
  body.admin-app .ap-registration-view { grid-row:1; grid-column:2; }
  body.admin-app .ap-registration-sort { grid-row:3; }
  body.admin-app .ap-registration-directory { overflow-x:auto; }
}

@media (max-width:1024px) {
  body.admin-app .ap-registration-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
  body.admin-app .ap-registration-list-head,
  body.admin-app .ap-registration-list > button { min-width:860px; }
  body.admin-app .ap-registration-completed-table > div,
  body.admin-app .ap-registration-completed-table > button { min-width:760px; }
  body.admin-app .ap-registration-completed > div { overflow-x:auto; }
  body.admin-app .ap-audit-controls { grid-template-columns:1fr 1fr; }
  body.admin-app .ap-audit-list { overflow-x:auto; }
  body.admin-app .ap-audit-list-head,
  body.admin-app .ap-audit-row > summary { min-width:840px; }
}

@media (max-width:760px) {
  body.admin-app .ap-registration-head-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  body.admin-app .ap-registration-head-actions button { justify-content:center; }
  body.admin-app .ap-registration-stats { grid-template-columns:1fr; }
  body.admin-app .ap-registration-stat { min-height:82px; }
  body.admin-app .ap-registration-controls { grid-template-columns:1fr auto; }
  body.admin-app .ap-registration-search { grid-column:1 / -1; }
  body.admin-app .ap-registration-filters { grid-column:1 / -1; }
  body.admin-app .ap-registration-sort { grid-row:auto; grid-column:1 / -1; }
  body.admin-app .ap-registration-kanban { grid-template-columns:repeat(5,minmax(245px,1fr)); }
  body.admin-app .ap-registration-column { min-height:390px; }
  body.admin-app .ap-registration-drawer { width:100vw; }
  body.admin-app .ap-registration-drawer-tabs { overflow-x:auto; }
  body.admin-app .ap-registration-drawer-tabs button { flex:0 0 auto; }
  body.admin-app .ap-registration-profile { grid-template-columns:42px minmax(0,1fr); }
  body.admin-app .ap-registration-profile aside { grid-column:1 / -1; }
  body.admin-app .ap-registration-contact-card > div { flex-wrap:wrap; }
  body.admin-app .ap-audit-head { align-items:flex-start; flex-direction:column; }
  body.admin-app .ap-audit-controls { grid-template-columns:1fr; }
  body.admin-app .ap-audit-row > div { grid-template-columns:1fr; }
}

@media (prefers-reduced-motion:reduce) {
  body.admin-app :is(.ap-registration-results,.ap-registration-drawer,.ap-registration-drawer-overlay,.ap-registration-kanban-card,.ap-registration-column,.ap-registration-stat) { transition-duration:1ms !important; }
}

/* Administration families CRM - Prompt Admin Famille */
body.admin-app .ap-family-page { position: relative; color: #102d59; }
body.admin-app .ap-family-head { display: grid; margin-bottom: 24px; grid-template-columns: minmax(230px, 1fr) auto; align-items: center; gap: 8px 24px; }
body.admin-app .ap-family-head h1 { display: flex; margin: 0; align-items: center; gap: 10px; color: #f05d8c; font-size: clamp(1.65rem, 2.4vw, 2.25rem); line-height: 1; }
body.admin-app .ap-family-head h1 .lpm-icon { width: 31px; height: 31px; stroke-width: 2; }
body.admin-app .ap-family-head > div:first-child p { margin: 9px 0 0; color: #52627b; font-size: .75rem; font-weight: 750; }
body.admin-app .ap-family-head-actions { display: flex; grid-row: 1 / span 2; grid-column: 2; align-items: center; gap: 8px; }
body.admin-app .ap-family-head-actions button { min-height: 38px; padding: 8px 13px; display: inline-flex; align-items: center; gap: 7px; border: 1px solid #dce3ed; border-radius: 8px; color: #18335e; background: rgba(255,255,255,.94); box-shadow: 0 4px 12px rgba(24,48,83,.04); font: inherit; font-size: .68rem; font-weight: 850; cursor: pointer; transition: 200ms ease; }
body.admin-app .ap-family-head-actions button:hover { border-color: #cdbcf1; color: #6d3bd0; transform: translateY(-1px); }
body.admin-app .ap-family-head-actions button.ap-primary { color: #fff; border-color: transparent; background: linear-gradient(135deg,#7d50e1,#6234c8); }
body.admin-app .ap-family-head-actions svg { width: 15px; height: 15px; }
body.admin-app .ap-family-sync { display: inline-flex; margin: 0; align-items: center; gap: 5px; color: #75849a; font-size: .58rem; justify-self: end; }
body.admin-app .ap-family-sync svg { width: 13px; height: 13px; color: #37a75a; }

body.admin-app .ap-family-stats { display: grid; margin-bottom: 22px; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; }
body.admin-app .ap-family-stat { min-height: 103px; padding: 16px; display: grid; grid-template-columns: 44px auto minmax(0,1fr); align-items: center; gap: 12px; border: 1px solid #e0e6ee; border-radius: 9px; color: #102d59; background: rgba(255,255,255,.9); box-shadow: 0 7px 18px rgba(28,49,77,.045); text-align: left; cursor: pointer; transition: 220ms ease; }
body.admin-app .ap-family-stat:hover, body.admin-app .ap-family-stat.active { border-color: #d7c7f5; box-shadow: 0 11px 25px rgba(54,39,105,.09); transform: translateY(-2px); }
body.admin-app .ap-family-stat.active { box-shadow: inset 0 -3px var(--family-tone),0 11px 25px rgba(54,39,105,.07); }
body.admin-app .ap-family-stat > span:first-child { display: grid; width: 44px; height: 44px; place-items: center; border-radius: 50%; color: var(--family-tone); background: var(--family-soft); }
body.admin-app .ap-family-stat svg { width: 21px; height: 21px; }
body.admin-app .ap-family-stat > strong { color: #102d59; font-size: 1.55rem; line-height: 1; }
body.admin-app .ap-family-stat > span:last-child { display: grid; gap: 4px; }
body.admin-app .ap-family-stat b { font-size: .72rem; }
body.admin-app .ap-family-stat small { display: inline-flex; align-items: center; gap: 2px; color: var(--family-tone); font-size: .57rem; font-weight: 850; }
body.admin-app .ap-family-stat small svg { width: 11px; height: 11px; }
body.admin-app .ap-family-stat.purple { --family-tone:#7542da; --family-soft:#eee5ff; }
body.admin-app .ap-family-stat.yellow { --family-tone:#d89400; --family-soft:#fff1cf; }
body.admin-app .ap-family-stat.green { --family-tone:#2ba65b; --family-soft:#e3f8e9; }
body.admin-app .ap-family-stat.blue { --family-tone:#2479db; --family-soft:#e5f1ff; }

body.admin-app .ap-family-directory { overflow: hidden; border: 1px solid #e0e6ee; border-radius: 9px; background: rgba(255,255,255,.92); box-shadow: 0 9px 24px rgba(29,49,78,.045); }
body.admin-app .ap-family-controls { min-height: 65px; padding: 13px 16px; display: grid; grid-template-columns: minmax(260px,1fr) auto 125px; align-items: center; gap: 10px; border-bottom: 1px solid #edf0f4; }
body.admin-app .ap-family-search { min-height: 38px; display: grid; grid-template-columns: 34px 1fr; align-items: center; border: 1px solid #d9e0ea; border-radius: 8px; background:#fff; transition:200ms ease; }
body.admin-app .ap-family-search:focus-within { border-color:#9474dc; box-shadow:0 0 0 3px rgba(116,55,232,.1); }
body.admin-app .ap-family-search svg { width:15px; height:15px; margin:auto; color:#718096; }
body.admin-app .ap-family-search input { min-width:0; min-height:36px; padding:7px 10px 7px 0; border:0; outline:0; color:#263b5e; background:transparent; font:inherit; font-size:.64rem; }
body.admin-app .ap-family-filters { display:flex; min-width:0; align-items:center; }
body.admin-app .ap-family-filters button { min-height:34px; padding:7px 10px; border:1px solid #dfe5ed; border-right-width:0; color:#53627a; background:#fff; font:inherit; font-size:.58rem; font-weight:800; cursor:pointer; }
body.admin-app .ap-family-filters button:first-child { border-radius:7px 0 0 7px; }
body.admin-app .ap-family-filters button:last-child { border-right-width:1px; border-radius:0 7px 7px 0; }
body.admin-app .ap-family-filters button.active { color:#6f3bd1; background:#f3edff; }
body.admin-app .ap-family-sort { display:grid; gap:2px; color:#8a96a7; font-size:.52rem; }
body.admin-app .ap-family-sort select { min-height:34px; padding:6px 8px; border:1px solid #dce3ec; border-radius:7px; color:#31435f; background:#fff; font:inherit; font-size:.59rem; font-weight:800; }

body.admin-app .ap-family-list { padding:0 16px; transition:opacity 200ms ease,transform 200ms ease; }
body.admin-app .ap-family-list.is-updating { opacity:.4; transform:translateY(3px); }
body.admin-app .ap-family-list-head, body.admin-app .ap-family-row { display:grid; grid-template-columns:minmax(190px,1.25fr) minmax(120px,.72fr) minmax(150px,1fr) 125px 105px 28px; align-items:center; gap:12px; }
body.admin-app .ap-family-list-head { min-height:43px; padding:0 10px; color:#65748a; font-size:.56rem; font-weight:900; }
body.admin-app .ap-family-row { width:100%; min-height:67px; padding:8px 10px; border:0; border-top:1px solid #edf0f4; color:#19345d; background:transparent; font:inherit; font-size:.63rem; text-align:left; cursor:pointer; transition:200ms ease; }
body.admin-app .ap-family-row:hover, body.admin-app .ap-family-row:focus-visible { outline:0; background:linear-gradient(90deg,#f5efff,#fbf9ff); box-shadow:inset 3px 0 #8457df; }
body.admin-app .ap-family-identity { display:grid; min-width:0; grid-template-columns:42px minmax(0,1fr); align-items:center; gap:10px; }
body.admin-app .ap-family-avatar { display:grid; width:42px; height:42px; flex:0 0 42px; place-items:center; border:3px solid #f5e7d9; border-radius:50%; color:#7544be; background:linear-gradient(145deg,#ffe4ba,#f7d5ee); font-size:.69rem; font-weight:950; }
body.admin-app .ap-family-avatar.is-small { width:36px; height:36px; flex-basis:36px; border-width:2px; }
body.admin-app .ap-family-identity > span:last-child { display:grid; min-width:0; gap:3px; }
body.admin-app .ap-family-identity strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.68rem; }
body.admin-app .ap-family-identity small { overflow:hidden; color:#536681; font-size:.57rem; text-overflow:ellipsis; white-space:nowrap; }
body.admin-app .ap-family-children { display:grid; gap:4px; }
body.admin-app .ap-family-children b { font-size:.58rem; }
body.admin-app .ap-family-children > span { display:flex; }
body.admin-app .ap-family-children i { display:grid; width:21px; height:21px; margin-right:-4px; place-items:center; border:2px solid #fff; border-radius:50%; color:#7045b9; background:#efe4ff; font-size:.5rem; font-style:normal; font-weight:900; }
body.admin-app .ap-family-email { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
body.admin-app .ap-family-status { display:inline-flex; width:max-content; padding:4px 8px; border-radius:5px; font-size:.55rem; font-style:normal; font-weight:900; }
body.admin-app .ap-family-status.active { color:#188947; background:#e3f7ea; }
body.admin-app .ap-family-status.first, body.admin-app .ap-family-status.incomplete { color:#b87800; background:#fff0ca; }
body.admin-app .ap-family-status.invited { color:#1670c7; background:#e4f1ff; }
body.admin-app .ap-family-status.archived { color:#6f7887; background:#edf0f4; }
body.admin-app .ap-family-row time { display:grid; gap:2px; font-size:.59rem; font-style:normal; }
body.admin-app .ap-family-row time small { color:#64748a; font-size:.55rem; }
body.admin-app .ap-family-open-icon { color:#7043d1; }
body.admin-app .ap-family-open-icon svg { width:16px; height:16px; }
body.admin-app .ap-family-pagination { min-height:58px; padding:10px 18px; display:grid; grid-template-columns:1fr auto 105px; align-items:center; gap:14px; border-top:1px solid #e8edf3; }
body.admin-app .ap-family-pagination p { margin:0; color:#596a83; font-size:.58rem; }
body.admin-app .ap-family-pagination nav { display:flex; align-items:center; gap:5px; }
body.admin-app .ap-family-pagination button { display:grid; min-width:29px; height:29px; padding:0 6px; place-items:center; border:1px solid #dbe2eb; border-radius:6px; color:#53647c; background:#fff; font:inherit; font-size:.58rem; font-weight:850; cursor:pointer; }
body.admin-app .ap-family-pagination button.active { color:#7441d4; border-color:#9e7ce4; background:#f5efff; }
body.admin-app .ap-family-pagination button:disabled { opacity:.35; cursor:not-allowed; }
body.admin-app .ap-family-pagination svg { width:13px; height:13px; }
body.admin-app .ap-family-pagination select { width:100%; min-height:32px; padding:6px 7px; border:1px solid #dbe2eb; border-radius:6px; color:#394b66; background:#fff; font:inherit; font-size:.58rem; font-weight:800; }
body.admin-app .ap-family-empty { min-height:260px; display:grid; place-items:center; align-content:center; gap:10px; color:#66758a; }
body.admin-app .ap-family-empty > span { display:grid; width:52px; height:52px; place-items:center; border-radius:50%; color:#7545d3; background:#eee6ff; }
body.admin-app .ap-family-empty > span svg { width:24px; height:24px; }
body.admin-app .ap-family-empty strong { color:#18345c; font-size:.78rem; }
body.admin-app .ap-family-empty button { padding:7px 11px; border:1px solid #d8c8f3; border-radius:7px; color:#7042ce; background:#fff; font:inherit; font-size:.61rem; font-weight:850; }

body.admin-app .ap-family-drawer-overlay { position:fixed; inset:0; z-index:70; display:block; width:100%; height:100%; border:0; background:rgba(14,35,66,.16); backdrop-filter:blur(2px); opacity:0; pointer-events:none; transition:opacity 200ms ease; }
body.admin-app .ap-family-drawer { position:fixed; top:0; right:0; z-index:75; width:min(430px,92vw); height:100dvh; display:grid; grid-template-rows:auto auto minmax(0,1fr) auto; overflow:hidden; border-left:1px solid #e1e6ed; background:#fff; box-shadow:-24px 0 60px rgba(23,42,70,.16); opacity:0; transform:translateX(40px); pointer-events:none; transition:opacity 210ms ease,transform 210ms cubic-bezier(.22,1,.36,1); }
body.admin-app.ap-family-drawer-open .ap-family-drawer-overlay { opacity:1; pointer-events:auto; }
body.admin-app.ap-family-drawer-open .ap-family-drawer { opacity:1; transform:translateX(0); pointer-events:auto; }
body.admin-app .ap-family-drawer-head { position:relative; padding:30px 24px 18px; border-bottom:1px solid #e6eaf0; }
body.admin-app .ap-family-drawer-head > button { position:absolute; top:15px; right:15px; display:grid; width:32px; height:32px; padding:0; place-items:center; border:0; border-radius:7px; color:#68758b; background:transparent; cursor:pointer; }
body.admin-app .ap-family-drawer-head > button:hover { color:#7043d1; background:#f2ecff; }
body.admin-app .ap-family-drawer-head > button svg { width:17px; height:17px; }
body.admin-app .ap-family-drawer-head > div { display:grid; grid-template-columns:68px minmax(0,1fr); align-items:center; gap:15px; }
body.admin-app .ap-family-drawer-head .ap-family-avatar { width:68px; height:68px; font-size:1rem; }
body.admin-app .ap-family-drawer-head h2 { margin:0 0 8px; color:#102d59; font-size:1.08rem; }
body.admin-app .ap-family-drawer-head :is(a,p) { display:flex; margin:3px 0; align-items:center; gap:7px; color:#465a78; font-size:.62rem; text-decoration:none; }
body.admin-app .ap-family-drawer-head :is(a,p) svg { width:13px; height:13px; }
body.admin-app .ap-family-drawer-tabs { display:grid; padding:0 20px; grid-template-columns:repeat(3,1fr); border-bottom:1px solid #e4e9ef; }
body.admin-app .ap-family-drawer-tabs button { min-height:49px; padding:8px 5px; border:0; border-bottom:2px solid transparent; color:#62718a; background:#fff; font:inherit; font-size:.61rem; font-weight:850; cursor:pointer; }
body.admin-app .ap-family-drawer-tabs button.active { color:#7041d1; border-bottom-color:#7041d1; }
body.admin-app .ap-family-drawer-body { min-height:0; padding:18px 20px; overflow-y:auto; }
body.admin-app .ap-family-drawer-section { padding-bottom:19px; border-bottom:1px solid #e8ecf1; }
body.admin-app .ap-family-drawer-section + .ap-family-drawer-section { padding-top:18px; }
body.admin-app .ap-family-drawer-section > header { display:flex; min-height:27px; align-items:center; gap:8px; }
body.admin-app .ap-family-drawer-section h3, body.admin-app .ap-family-quick-actions h3 { margin:0; color:#15325a; font-size:.7rem; }
body.admin-app .ap-family-drawer-section > header > span { margin-left:auto; color:#566781; font-size:.57rem; }
body.admin-app .ap-family-drawer-section > header > em { margin-left:4px; padding:3px 7px; border-radius:5px; color:#db3b6e; background:#ffe7ef; font-size:.52rem; font-style:normal; font-weight:850; }
body.admin-app .ap-family-drawer-section > header :is(button,a) { padding:6px 9px; display:inline-flex; align-items:center; gap:4px; border:1px solid #d9cdf0; border-radius:6px; color:#7041cf; background:#f7f2ff; font:inherit; font-size:.56rem; font-weight:850; text-decoration:none; }
body.admin-app .ap-family-drawer-section > header :is(button,a):disabled { opacity:.45; cursor:not-allowed; }
body.admin-app .ap-family-drawer-section > header svg { width:12px; height:12px; }
body.admin-app .ap-family-child-grid { display:grid; margin-top:10px; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
body.admin-app .ap-family-child-grid article { min-height:72px; padding:10px; display:grid; grid-template-columns:36px minmax(0,1fr); align-items:center; gap:9px; border:1px solid #dfe5ed; border-radius:8px; }
body.admin-app .ap-family-child-grid article > span:last-child { display:grid; gap:2px; }
body.admin-app .ap-family-child-grid strong { font-size:.64rem; }
body.admin-app .ap-family-child-grid small, body.admin-app .ap-family-child-grid p { margin:0; color:#61718a; font-size:.54rem; }
body.admin-app .ap-family-last-message { margin-top:10px; padding:9px 0; display:grid; grid-template-columns:32px minmax(0,1fr) auto; align-items:center; gap:9px; }
body.admin-app .ap-family-last-message > span { display:grid; width:32px; height:32px; place-items:center; border-radius:50%; color:#7040cf; background:#f0e8ff; }
body.admin-app .ap-family-last-message svg { width:15px; height:15px; }
body.admin-app .ap-family-last-message div { min-width:0; }
body.admin-app .ap-family-last-message strong, body.admin-app .ap-family-last-message p { display:block; overflow:hidden; margin:0; font-size:.58rem; text-overflow:ellipsis; white-space:nowrap; }
body.admin-app .ap-family-last-message p { margin-top:3px; color:#65758d; font-size:.54rem; }
body.admin-app .ap-family-last-message time { color:#60718a; font-size:.52rem; }
body.admin-app .ap-family-drawer-section > a { display:inline-flex; margin-top:8px; align-items:center; gap:4px; color:#7040ce; font-size:.57rem; font-weight:850; text-decoration:none; }
body.admin-app .ap-family-drawer-section > a svg { width:11px; height:11px; }
body.admin-app .ap-family-inline-empty { margin:12px 0 0; padding:12px; border-radius:7px; color:#728097; background:#f8fafc; font-size:.58rem; text-align:center; }
body.admin-app .ap-family-summary-grid { display:grid; margin-top:18px; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
body.admin-app .ap-family-summary-grid article { min-height:92px; padding:12px; display:grid; grid-template-columns:31px minmax(0,1fr); gap:9px; border:1px solid #e0e6ee; border-radius:8px; }
body.admin-app .ap-family-summary-grid article > span { display:grid; width:31px; height:31px; place-items:center; border-radius:7px; color:var(--summary-tone); background:var(--summary-soft); }
body.admin-app .ap-family-summary-grid article.green { --summary-tone:#28a258; --summary-soft:#e7f8eb; } body.admin-app .ap-family-summary-grid article.purple { --summary-tone:#7542d3; --summary-soft:#eee7ff; } body.admin-app .ap-family-summary-grid article.blue { --summary-tone:#2478d7; --summary-soft:#e7f2ff; } body.admin-app .ap-family-summary-grid article.pink { --summary-tone:#dd4f7d; --summary-soft:#ffe8ef; }
body.admin-app .ap-family-summary-grid svg { width:15px; height:15px; }
body.admin-app .ap-family-summary-grid div { display:grid; align-content:start; gap:3px; }
body.admin-app .ap-family-summary-grid h3 { margin:0; font-size:.62rem; }
body.admin-app .ap-family-summary-grid strong { color:var(--summary-tone); font-size:.56rem; }
body.admin-app .ap-family-summary-grid small { color:#5f6f87; font-size:.51rem; }
body.admin-app .ap-family-summary-grid a { display:flex; margin-top:3px; align-items:center; gap:3px; color:#7041cf; font-size:.52rem; font-weight:850; text-decoration:none; }
body.admin-app .ap-family-document-list { display:grid; margin-top:10px; gap:7px; }
body.admin-app .ap-family-document-list article { padding:10px; display:grid; grid-template-columns:32px minmax(0,1fr) auto; align-items:center; gap:9px; border:1px solid #e1e6ed; border-radius:7px; }
body.admin-app .ap-family-document-list article > span { display:grid; width:32px; height:32px; place-items:center; border-radius:7px; color:#2879d5; background:#e7f2ff; }
body.admin-app .ap-family-document-list svg { width:15px; height:15px; }
body.admin-app .ap-family-document-list div { display:grid; min-width:0; gap:2px; }
body.admin-app .ap-family-document-list strong { overflow:hidden; font-size:.59rem; text-overflow:ellipsis; white-space:nowrap; }
body.admin-app .ap-family-document-list small, body.admin-app .ap-family-document-list time { color:#718096; font-size:.51rem; }
body.admin-app .ap-family-timeline { position:relative; margin:12px 0 0; padding:0; display:grid; gap:12px; list-style:none; }
body.admin-app .ap-family-timeline::before { position:absolute; top:12px; bottom:12px; left:15px; width:1px; background:#ded5ef; content:""; }
body.admin-app .ap-family-timeline li { position:relative; z-index:1; display:grid; grid-template-columns:31px minmax(0,1fr); align-items:center; gap:10px; }
body.admin-app .ap-family-timeline li > span { display:grid; width:31px; height:31px; place-items:center; border-radius:50%; color:#7042cf; background:#f0e9ff; }
body.admin-app .ap-family-timeline svg { width:14px; height:14px; }
body.admin-app .ap-family-timeline div { display:grid; gap:2px; }
body.admin-app .ap-family-timeline strong { font-size:.59rem; }
body.admin-app .ap-family-timeline small { color:#718096; font-size:.51rem; }
body.admin-app .ap-family-quick-actions { padding:15px 20px 18px; border-top:1px solid #e5eaf0; background:#fff; }
body.admin-app .ap-family-quick-actions > div { display:grid; margin-top:10px; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
body.admin-app .ap-family-quick-actions button { min-height:38px; padding:8px 10px; display:flex; align-items:center; gap:7px; border:1px solid #dfe5ed; border-radius:7px; color:#29415f; background:#fff; font:inherit; font-size:.56rem; font-weight:850; text-align:left; cursor:pointer; }
body.admin-app .ap-family-quick-actions button:hover { color:#7041cf; border-color:#d2c2f0; background:#faf7ff; }
body.admin-app .ap-family-quick-actions button.danger { color:#d63b69; border-color:#f1ccd7; }
body.admin-app .ap-family-quick-actions button:disabled { opacity:.45; cursor:not-allowed; }
body.admin-app .ap-family-quick-actions svg { width:15px; height:15px; }
body.admin-app .ap-family-history-modal .ap-modal-card { max-height:min(760px,90vh); overflow-y:auto; }

@media (max-width:1200px) {
  body.admin-app .ap-family-head { grid-template-columns:1fr; }
  body.admin-app .ap-family-head-actions { grid-row:auto; grid-column:auto; flex-wrap:wrap; }
  body.admin-app .ap-family-sync { justify-self:start; }
  body.admin-app .ap-family-controls { grid-template-columns:1fr; }
  body.admin-app .ap-family-filters { overflow-x:auto; }
  body.admin-app .ap-family-sort { width:160px; }
  body.admin-app .ap-family-list-head, body.admin-app .ap-family-row { grid-template-columns:minmax(180px,1.2fr) 105px minmax(135px,1fr) 115px 92px 24px; gap:8px; }
}
@media (max-width:900px) {
  body.admin-app .ap-family-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
  body.admin-app .ap-family-list { overflow-x:auto; }
  body.admin-app .ap-family-list-head, body.admin-app .ap-family-row { min-width:820px; }
}
@media (max-width:760px) {
  body.admin-app .ap-family-head-actions button { flex:1 1 auto; justify-content:center; }
  body.admin-app .ap-family-stat { grid-template-columns:38px auto minmax(0,1fr); padding:12px; }
  body.admin-app .ap-family-stat > span:first-child { width:38px; height:38px; }
  body.admin-app .ap-family-pagination { grid-template-columns:1fr; justify-items:center; text-align:center; }
  body.admin-app .ap-family-drawer { width:100%; max-width:none; }
}
@media (max-width:520px) {
  body.admin-app .ap-family-stats { grid-template-columns:1fr; }
  body.admin-app .ap-family-child-grid, body.admin-app .ap-family-summary-grid, body.admin-app .ap-family-quick-actions > div { grid-template-columns:1fr; }
}
@media (prefers-reduced-motion:reduce) {
  body.admin-app .ap-family-drawer, body.admin-app .ap-family-drawer-overlay, body.admin-app .ap-family-list, body.admin-app .ap-family-row, body.admin-app .ap-family-stat { transition:none; }
}

/* Messages: render the search control as one continuous field. */
body.family-app .fp-conversations > label.fp-message-search {
  display: grid;
  min-width: 0;
  min-height: 42px;
  padding: 0;
  grid-template-columns: 38px minmax(0, 1fr);
  align-items: center;
  overflow: hidden;
  border: 1px solid #dbe3ed;
  border-radius: 8px;
  background: #f8f9fc;
  box-shadow: 0 7px 18px rgba(30, 51, 78, .05);
  transition: border-color 200ms ease, box-shadow 200ms ease, background-color 200ms ease;
}

body.family-app .fp-conversations > label.fp-message-search > .lpm-icon {
  width: 15px;
  height: 15px;
  margin: 0 auto;
  color: #7f8ba0;
  pointer-events: none;
}

body.family-app .fp-conversations > label.fp-message-search > input[type="search"] {
  appearance: none;
  width: 100%;
  min-width: 0;
  min-height: 40px;
  margin: 0;
  padding: 8px 12px 8px 0;
  border: 0;
  border-radius: 0;
  outline: 0;
  color: #29384e;
  background: transparent;
  box-shadow: none;
  font: inherit;
  font-size: .72rem;
}

body.family-app .fp-conversations > label.fp-message-search > input[type="search"]:focus,
body.family-app .fp-conversations > label.fp-message-search > input[type="search"]:focus-visible {
  border: 0;
  outline: 0;
  box-shadow: none;
}

body.family-app .fp-conversations > label.fp-message-search:focus-within {
  border-color: #9a7bd3;
  background: #fff;
  box-shadow: 0 0 0 3px rgba(116, 55, 232, .1), 0 8px 20px rgba(30, 51, 78, .06);
}

body.family-app .fp-conversations > label.fp-message-search > input[type="search"]::-webkit-search-decoration,
body.family-app .fp-conversations > label.fp-message-search > input[type="search"]::-webkit-search-cancel-button {
  appearance: none;
}

body.family-app .fp-message-filters button {
  transition: color 200ms ease, border-color 200ms ease, background-color 200ms ease, transform 200ms ease;
}

body.family-app .fp-message-filters button:hover { transform: translateY(-1px); }
body.family-app .fp-message-filters button > em {
  display: inline-grid;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  place-items: center;
  box-sizing: border-box;
  border-radius: 9px;
  color: #65748a;
  background: #eef1f5;
  font-size: .56rem;
  font-style: normal;
  font-weight: 900;
}
body.family-app .fp-message-filters button.active > em { color: #7045cf; background: #e7dbfb; }

body.family-app .fp-message-thread-list {
  transition: opacity 200ms ease, transform 200ms cubic-bezier(.22, 1, .36, 1);
}
body.family-app .fp-message-thread-list.is-updating { opacity: 0; transform: translateY(5px); }

body.family-app .fp-message-empty {
  display: grid;
  min-height: 260px;
  padding: 28px 18px;
  place-items: center;
  align-content: center;
  box-sizing: border-box;
  border: 1px dashed #ddd5ec;
  border-radius: 9px;
  color: #718096;
  background: linear-gradient(145deg, #fdfcff, #faf8ff);
  text-align: center;
}
body.family-app .fp-message-empty > span {
  display: grid;
  width: 52px;
  height: 52px;
  margin-bottom: 13px;
  place-items: center;
  border-radius: 50%;
  color: var(--fp-violet);
  background: #eee7fb;
}
body.family-app .fp-message-empty > span .lpm-icon { width: 24px; height: 24px; }
body.family-app .fp-message-empty strong { color: var(--fp-navy); font-size: .76rem; }
body.family-app .fp-message-empty p { max-width: 240px; margin: 6px 0 15px; font-size: .65rem; line-height: 1.5; }
body.family-app .fp-message-empty button {
  min-height: 34px;
  padding: 7px 12px;
  border: 1px solid #d9c8f5;
  border-radius: 7px;
  color: var(--fp-violet);
  background: #fff;
  font: inherit;
  font-size: .62rem;
  font-weight: 850;
  cursor: pointer;
  transition: transform 200ms ease, box-shadow 200ms ease;
}
body.family-app .fp-message-empty button:hover { transform: translateY(-1px); box-shadow: 0 6px 14px rgba(62, 38, 108, .1); }

@media (prefers-reduced-motion: reduce) {
  body.family-app .fp-message-thread-list,
  body.family-app .fp-message-filters button,
  body.family-app .fp-message-empty button { transition-duration: 1ms !important; }
}

body.admin-app .ap-inbox-filters button { display: inline-flex; align-items: center; gap: 5px; transition: color 200ms ease, background-color 200ms ease, transform 200ms ease; }
body.admin-app .ap-inbox-filters button:hover { transform: translateY(-1px); }
body.admin-app .ap-inbox-filters button > em { display: inline-grid; min-width: 17px; height: 17px; padding: 0 4px; place-items: center; border-radius: 9px; color: #65748a; background: #edf0f4; font-size: .54rem; font-style: normal; font-weight: 900; }
body.admin-app .ap-inbox-filters button.active > em { color: #6a3bd2; background: #e5d8fb; }
body.admin-app .ap-inbox-threads { transition: opacity 200ms ease, transform 200ms cubic-bezier(.22, 1, .36, 1); }
body.admin-app .ap-inbox-threads.is-updating { opacity: 0; transform: translateY(5px); }
body.admin-app .ap-message-empty { display: grid; min-height: 250px; padding: 28px 18px; place-items: center; align-content: center; border: 1px dashed #ddd5ec; border-radius: 9px; background: #fcfaff; text-align: center; }
body.admin-app .ap-message-empty > span { display: grid; width: 50px; height: 50px; margin-bottom: 12px; place-items: center; border-radius: 50%; color: #7045cf; background: #eee7fb; }
body.admin-app .ap-message-empty > span .lpm-icon { width: 23px; height: 23px; }
body.admin-app .ap-message-empty strong { color: #172f55; font-size: .76rem; }
body.admin-app .ap-message-empty p { max-width: 230px; margin: 6px 0 14px; color: #718096; font-size: .64rem; line-height: 1.5; }
body.admin-app .ap-message-empty button { min-height: 33px; padding: 7px 11px; border: 1px solid #d9c8f5; border-radius: 7px; color: #7045cf; background: #fff; font: inherit; font-size: .61rem; font-weight: 850; cursor: pointer; }

@media (max-width: 700px) {
  body.family-app .fp-chat-reply { grid-template-columns: minmax(0, 1fr) 40px; }
  body.family-app .fp-chat-reply .fp-composer-send { width: 40px; grid-column: 2; grid-row: 1; }
}

@media (prefers-reduced-motion: reduce) {
  body.family-app .fp-medical-card,
  body.family-app .fp-health-detail,
  body.family-app .fp-medical-dropzone,
  body.family-app .fp-medical-actions button { transition-duration: .01ms !important; }
}

/* Family child workspace, matched to the validated reference. */
body.family-app .fp-child-subnav {
  display: grid;
  margin: -1px 0 8px 42px;
  padding: 4px 0 4px 14px;
  gap: 2px;
  border-left: 1px solid #d9dee8;
}

body.family-app .fp-sidebar .fp-child-subnav a {
  min-height: 28px;
  padding: 4px 8px;
  grid-template-columns: 1fr;
  color: #526176;
  background: transparent;
  font-size: .69rem;
  font-weight: 700;
}

body.family-app .fp-child-page-head {
  display: flex;
  margin-bottom: 25px;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
}

body.family-app .fp-child-page-head time {
  padding-top: 12px;
  color: var(--fp-navy);
  font-size: .75rem;
  font-weight: 850;
  text-transform: capitalize;
}

body.family-app .fp-child-workspace,
body.family-app .fp-child-profile-card {
  display: grid;
  width: 100%;
  grid-template-columns: 1fr;
  gap: 18px;
}

body.family-app .fp-header-brand { display: inline-flex; min-width: 0; align-items: center; gap: 10px; color: var(--fp-navy); text-decoration: none; }
body.family-app .fp-header-brand strong { font-family: Georgia, "Times New Roman", serif; font-size: 1.04rem; white-space: nowrap; }

body.family-app .fp-child-identity {
  display: grid;
  min-height: 166px;
  padding: 24px 30px;
  box-sizing: border-box;
  grid-template-columns: 128px minmax(220px, 1fr) minmax(440px, 1.3fr);
  align-items: center;
  gap: 22px;
}

body.family-app .fp-child-photo {
  display: grid;
  width: 104px;
  height: 104px;
  place-items: center;
  border-radius: 50%;
  color: #6846ab;
  background: #eee7fb;
  box-shadow: inset 0 0 0 7px #f8f4ff;
  font-size: 2rem;
  font-weight: 950;
}

body.family-app .fp-child-name select { max-width: 100%; min-height: 40px; padding: 4px 34px 4px 0; border: 0; color: var(--fp-navy); background: transparent; font: inherit; font-size: 1.45rem; font-weight: 950; }
body.family-app .fp-child-name p { margin: 8px 0 12px; color: #536178; font-size: .76rem; font-weight: 800; }
body.family-app .fp-child-name p span { margin: 0 5px; color: #aeb6c2; }
body.family-app .fp-child-name em { display: inline-flex; padding: 6px 10px; border-radius: 16px; color: var(--fp-violet); background: #f0e8ff; font-size: .67rem; font-style: normal; font-weight: 900; }

body.family-app .fp-child-quick-actions {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

body.family-app .fp-child-quick-actions button,
body.family-app .fp-child-quick-actions a {
  display: inline-flex;
  min-height: 58px;
  padding: 10px 12px;
  box-sizing: border-box;
  align-items: center;
  justify-content: center;
  border: 1px solid #e8ddfb;
  border-radius: 8px;
  color: var(--fp-violet);
  background: #f7f2ff;
  font: inherit;
  font-size: .72rem;
  font-weight: 900;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
}

body.family-app .fp-child-quick-actions button.green { border-color: #d8ebda; color: #23813b; background: #f0f9ef; }
body.family-app .fp-child-quick-actions button.pink { border-color: #f5dbe5; color: #c52f64; background: #fff0f5; }
body.family-app .fp-child-quick-actions button:disabled { opacity: .72; cursor: not-allowed; }
body.family-app .fp-child-quick-actions a { min-height: 40px; grid-column: 2 / 4; color: #4d5d73; background: #fff; border-color: #d8dee7; }

body.family-app .fp-child-primary-grid { display: grid; grid-template-columns: .95fr 1.05fr; gap: 18px; }
body.family-app .fp-child-primary-grid > section { min-height: 292px; padding: 24px 26px; box-sizing: border-box; }
body.family-app .fp-child-primary-grid h2,
body.family-app .fp-child-secondary-grid h2 { display: flex; margin: 0 0 20px; align-items: center; gap: 10px; color: var(--fp-navy); font-size: .98rem; }
body.family-app .fp-child-primary-grid h2 > span,
body.family-app .fp-child-secondary-grid h2 > span { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 50%; color: var(--fp-violet); background: #f1e9ff; }

body.family-app .fp-child-info dl,
body.family-app .fp-child-health-summary dl { display: grid; margin: 0; gap: 0; }
body.family-app .fp-child-info dl > div,
body.family-app .fp-child-health-summary dl > div { display: grid; min-height: 27px; padding: 5px 7px; box-sizing: border-box; grid-template-columns: 1fr 1fr; border-bottom: 1px solid #edf0f4; background: transparent; }
body.family-app .fp-child-info dt,
body.family-app .fp-child-health-summary dt { color: #65748a; font-size: .72rem; font-weight: 700; }
body.family-app .fp-child-info dd,
body.family-app .fp-child-health-summary dd { margin: 0; color: var(--fp-navy); font-size: .72rem; font-weight: 850; }
body.family-app .fp-managed-note { max-width: 300px; margin: 18px 0 0; padding: 12px 14px; border-radius: 8px; color: #5f35b5; background: #f5efff; font-size: .68rem; font-weight: 750; line-height: 1.45; }
body.family-app .fp-child-health-summary h2 > span { color: var(--fp-pink); background: #ffe7ef; }
body.family-app .fp-child-health-summary > a { display: flex; min-height: 40px; margin-top: 17px; padding: 8px 12px; box-sizing: border-box; align-items: center; justify-content: center; border: 1px solid #f4cad9; border-radius: 8px; color: var(--fp-pink); background: #fff2f6; font-size: .72rem; font-weight: 900; text-decoration: none; }

body.family-app .fp-child-secondary-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
body.family-app .fp-child-secondary-grid > section { display: flex; min-height: 338px; padding: 18px 14px; box-sizing: border-box; flex-direction: column; }
body.family-app .fp-child-secondary-grid h2 { margin-bottom: 16px; font-size: .78rem; }
body.family-app .fp-child-secondary-grid h2 > span { width: 34px; height: 34px; font-size: .82rem; }
body.family-app .fp-child-secondary-grid h3 { margin: 8px 0 9px; color: var(--fp-navy); font-size: .66rem; }
body.family-app .fp-child-secondary-grid ul { display: grid; margin: 0; padding: 0; gap: 7px; list-style: none; }
body.family-app .fp-child-secondary-grid li { padding: 9px 10px; border-radius: 7px; color: var(--fp-navy); background: #f6f8fb; font-size: .66rem; }
body.family-app .fp-child-secondary-grid li strong,
body.family-app .fp-child-secondary-grid li small { display: block; }
body.family-app .fp-child-secondary-grid li small { margin-top: 3px; color: #65748a; }
body.family-app .fp-child-empty { margin: 0; padding: 13px; border-radius: 8px; color: #65748a; background: #f8fafc; font-size: .68rem; line-height: 1.45; }
body.family-app .fp-child-empty strong { color: var(--fp-navy); }
body.family-app .fp-child-empty p { margin: 4px 0 0; }
body.family-app .fp-child-secondary-grid button,
body.family-app .fp-child-secondary-grid a { display: flex; min-height: 39px; margin-top: auto; padding: 8px 10px; box-sizing: border-box; align-items: center; justify-content: center; border: 1px solid currentColor; border-radius: 7px; color: var(--fp-violet); background: #fff; font: inherit; font-size: .68rem; font-weight: 900; text-decoration: none; cursor: pointer; }
body.family-app .fp-child-contacts h2 > span { color: var(--fp-blue); background: #e9f3ff; }
body.family-app .fp-child-contacts button { color: var(--fp-blue); background: #eff6ff; }
body.family-app .fp-child-absences h2 > span { color: var(--fp-green); background: #e8f5e8; }
body.family-app .fp-child-status { margin-bottom: 10px; padding: 17px 14px; border-radius: 8px; color: #287a3a; background: #f0f9ef; font-size: .68rem; }
body.family-app .fp-child-status p { margin: 7px 0 0; color: var(--fp-navy); font-weight: 800; }
body.family-app .fp-child-absences button { margin-top: auto; color: #fff; background: var(--fp-green); }
body.family-app .fp-child-absences a { margin-top: 8px; color: var(--fp-green); }
body.family-app .fp-child-documents h2 > span { color: var(--fp-orange); background: #fff5d9; }
body.family-app .fp-child-documents a { color: #aa6b00; background: #fff8e9; }
body.family-app .fp-child-registration h2 > span { color: var(--fp-violet); background: #f1e9ff; }
body.family-app .fp-child-registration a { color: var(--fp-violet); }
body.family-app .fp-child-help { margin-top: 16px; }

@media (min-width: 821px) {
  body.family-app:not([data-family-page="espace-familles"]) .fp-topbar {
    width: 100%;
    min-height: 70px;
    margin-left: 0;
    padding: 10px 28px 10px 292px;
    grid-template-columns: minmax(220px, 1fr) auto auto auto;
  }

  body.family-app:not([data-family-page="espace-familles"]) .fp-child-context { display: none; }
  body.family-app:not([data-family-page="espace-familles"]) .fp-bell { justify-self: end; }
  body.family-app:not([data-family-page="espace-familles"]) .fp-account { justify-self: end; }
  body.family-app:not([data-family-page="espace-familles"]) .fp-shell { min-height: calc(100vh - 70px); }
  body.family-app:not([data-family-page="espace-familles"]) .fp-sidebar { top: 70px; height: calc(100vh - 70px); margin-top: 0; }
  body.family-app:not([data-family-page="espace-familles"]) .fp-sidebar .fp-sidebar-brand { display: none; }
  body.family-app:not([data-family-page="espace-familles"]) .fp-sidebar nav { min-height: 100%; }
  body.family-app:not([data-family-page="espace-familles"]) .fp-content { padding-top: 32px; }
}

@media (max-width: 1180px) {
  body.family-app .fp-child-identity { grid-template-columns: 104px 1fr; }
  body.family-app .fp-child-quick-actions { grid-column: 1 / -1; }
  body.family-app .fp-child-secondary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 820px) {
  body.family-app .fp-topbar { min-height: 82px; }
  body.family-app .fp-child-context { grid-row: auto; grid-column: auto; gap: 7px; }
  body.family-app .fp-child-context select { min-width: 0; width: 148px; padding-right: 22px; }
  body.family-app .fp-child-avatar { width: 44px; height: 44px; flex-basis: 44px; }
  body.family-app .fp-sidebar { top: 82px; }
  body.family-app .fp-child-subnav { display: none; }
  body.family-app .fp-child-primary-grid { grid-template-columns: 1fr; }
}

@media (max-width: 620px) {
  body.family-app .fp-child-page-head { align-items: flex-start; flex-direction: column; gap: 8px; }
  body.family-app .fp-child-page-head time { padding-top: 0; }
  body.family-app .fp-child-identity { padding: 22px 18px; grid-template-columns: 76px 1fr; gap: 15px; }
  body.family-app .fp-child-photo { width: 72px; height: 72px; font-size: 1.35rem; }
  body.family-app .fp-child-quick-actions { grid-template-columns: 1fr; }
  body.family-app .fp-child-quick-actions a { grid-column: auto; }
  body.family-app .fp-child-secondary-grid { grid-template-columns: 1fr; }
  body.family-app .fp-child-secondary-grid > section { min-height: 260px; }
}

/* Family planning, matched to Prompt - Planning 2. */
@media (min-width: 1361px) {
  body.family-app[data-family-page="planning"] .fp-topbar { min-height: 82px; padding: 10px 22px; grid-template-columns: 243px minmax(0, 1fr) auto auto; }
  body.family-app[data-family-page="planning"] .fp-shell { grid-template-columns: 265px minmax(0, 1fr); }
  body.family-app[data-family-page="planning"] .fp-sidebar { width: 265px; padding-right: 10px; padding-left: 10px; }
  body.family-app[data-family-page="planning"] .fp-sidebar nav { padding-top: 19px; }
  body.family-app[data-family-page="planning"] .fp-sidebar nav > :is(a, .fp-child-nav-group) { min-height: 54px; }
}

body.family-app[data-family-page="planning"] .fp-content { max-width: none; padding: 18px 6px 42px 30px; }
body.family-app .fp-planning-page-head { margin-bottom: 22px; }
body.family-app .fp-planning-page-head h1 { color: var(--fp-pink); font-style: italic; }
body.family-app .fp-planning-page-head time { margin-top: 16px; align-self: start; }
body.family-app .fp-planning-context {
  display: grid;
  position: relative;
  z-index: 12;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  min-height: 136px;
  margin: 0;
  padding: 16px 20px;
  box-sizing: border-box;
  grid-template-columns: minmax(430px, 1fr) 138px 172px;
  align-items: center;
  gap: 16px;
  overflow: visible;
}

body.family-app .fp-planning-context button { min-height: 42px; padding: 8px 18px; border: 1px solid #d8dee8; border-radius: 8px; color: #536178; background: #fff; font: inherit; font-size: .73rem; font-weight: 850; cursor: pointer; }
body.family-app .fp-planning-child-switcher { min-width: 0; }
body.family-app .fp-planning-child-picker { position: relative; width: min(100%, 470px); }
body.family-app .fp-planning-child-picker .fp-child-switcher-trigger {
  display: grid;
  width: 100%;
  min-height: 96px;
  padding: 0 12px 0 0;
  box-sizing: border-box;
  grid-template-columns: 96px minmax(0, 1fr) 20px;
  align-items: center;
  gap: 12px;
  border: 1px solid transparent;
  border-radius: 10px;
  color: var(--fp-navy);
  background: transparent;
  text-align: left;
  font: inherit;
  cursor: pointer;
  transition: border-color 200ms ease, background-color 200ms ease, box-shadow 200ms ease;
}
body.family-app .fp-planning-child-picker .fp-child-switcher-trigger:hover,
body.family-app .fp-planning-child-picker.is-open .fp-child-switcher-trigger { border-color: #e3d8f7; background: #fbf9ff; box-shadow: 0 6px 18px rgba(86, 55, 147, .07); }
body.family-app .fp-planning-child-picker .fp-child-switcher-trigger:focus-visible,
body.family-app .fp-planning-child-picker .fp-child-switcher-option:focus-visible { outline: 3px solid rgba(126, 67, 231, .22); outline-offset: 2px; }
body.family-app .fp-planning-child-avatar { display: grid; width: 88px; height: 88px; overflow: hidden; place-items: center; border: 4px solid #f0e7ff; border-radius: 50%; color: var(--fp-violet); background: #f5f0fd; font-size: 1.2rem; font-weight: 950; }
body.family-app .fp-planning-child-avatar img { width: 100%; height: 100%; object-fit: cover; }
body.family-app .fp-planning-child-avatar .lpm-icon { width: 22px; height: 22px; }
body.family-app .fp-planning-child-picker .fp-child-switcher-current { display: grid; min-width: 0; justify-items: start; gap: 2px; }
body.family-app .fp-planning-child-picker .fp-child-switcher-current > span { color: var(--fp-violet); font-size: .58rem; font-weight: 900; }
body.family-app .fp-planning-child-picker .fp-child-switcher-current strong { overflow: hidden; max-width: 100%; color: var(--fp-navy); font-size: 1.05rem; font-weight: 950; text-overflow: ellipsis; white-space: nowrap; }
body.family-app .fp-planning-child-picker .fp-child-switcher-current small { overflow: hidden; max-width: 100%; color: #67758a; font-size: .66rem; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
body.family-app .fp-planning-child-picker .fp-child-switcher-current em { display: inline-flex; margin-top: 1px; align-items: center; gap: 6px; color: #607086; font-size: .58rem; font-style: normal; font-weight: 900; }
body.family-app .fp-planning-child-picker .fp-child-switcher-current em > i { width: 7px; height: 7px; border-radius: 50%; background: #9ba7b8; }
body.family-app .fp-planning-child-picker .fp-child-switcher-current em.is-present { color: #25853f; }
body.family-app .fp-planning-child-picker .fp-child-switcher-current em.is-present > i { background: #38ad58; }
body.family-app .fp-planning-child-picker .fp-child-switcher-current em.is-absent { color: #aa601d; }
body.family-app .fp-planning-child-picker .fp-child-switcher-current em.is-absent > i { background: #eb8c27; }
body.family-app .fp-planning-child-picker .fp-child-switcher-current em.is-holiday { color: #176fae; }
body.family-app .fp-planning-child-picker .fp-child-switcher-current em.is-holiday > i { background: #318fd2; }
body.family-app .fp-planning-child-picker .fp-child-switcher-current small i,
body.family-app .fp-planning-child-picker .fp-child-switcher-option-copy small i { margin: 0 3px; color: #b1bac7; font-style: normal; }
body.family-app .fp-planning-child-picker .fp-child-switcher-chevron { width: 17px; height: 17px; color: var(--fp-violet); transition: transform 200ms ease; }
body.family-app .fp-planning-child-picker.is-open .fp-child-switcher-chevron { transform: rotate(180deg); }
body.family-app .fp-planning-child-picker .fp-child-switcher-menu {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  z-index: 30;
  width: min(410px, 100%);
  padding: 8px;
  box-sizing: border-box;
  visibility: hidden;
  border: 1px solid #e4e0eb;
  border-radius: 11px;
  opacity: 0;
  background: rgba(255, 255, 255, .985);
  box-shadow: 0 18px 45px rgba(25, 42, 76, .16);
  transform: translateY(-7px);
  pointer-events: none;
  transition: opacity 200ms ease, transform 200ms cubic-bezier(.22, 1, .36, 1), visibility 200ms;
  -webkit-backdrop-filter: blur(18px);
  backdrop-filter: blur(18px);
}
body.family-app .fp-planning-child-picker.is-open .fp-child-switcher-menu { visibility: visible; opacity: 1; transform: translateY(0); pointer-events: auto; }
body.family-app .fp-planning-child-picker .fp-child-switcher-list { display: grid; gap: 5px; }
body.family-app .fp-planning-child-picker .fp-child-switcher-option {
  display: grid;
  width: 100%;
  min-height: 74px;
  padding: 8px 10px;
  box-sizing: border-box;
  grid-template-columns: 52px minmax(0, 1fr) 24px;
  align-items: center;
  gap: 11px;
  border: 1px solid transparent;
  border-radius: 9px;
  color: var(--fp-navy);
  background: transparent;
  text-align: left;
  font: inherit;
  cursor: pointer;
  transition: border-color 180ms ease, background-color 180ms ease, transform 180ms ease;
}
body.family-app .fp-planning-child-picker .fp-child-switcher-option:hover { border-color: #ece5f7; background: #faf8fd; transform: translateY(-1px); }
body.family-app .fp-planning-child-picker .fp-child-switcher-option.is-selected { border-color: #d8c6f5; background: #f6f0ff; }
body.family-app .fp-planning-child-picker .fp-child-switcher-avatar { display: grid; width: 48px; height: 48px; overflow: hidden; place-items: center; border: 3px solid #eee5fb; border-radius: 50%; color: var(--fp-violet); background: #f5f0fc; font-size: 1rem; font-weight: 950; }
body.family-app .fp-planning-child-picker .fp-child-switcher-avatar img { width: 100%; height: 100%; object-fit: cover; }
body.family-app .fp-planning-child-picker .fp-child-switcher-option-copy { display: grid; min-width: 0; justify-items: start; gap: 3px; }
body.family-app .fp-planning-child-picker .fp-child-switcher-option-copy strong { font-size: .78rem; font-weight: 950; }
body.family-app .fp-planning-child-picker .fp-child-switcher-option-copy small { overflow: hidden; max-width: 100%; color: #6e7c91; font-size: .59rem; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }
body.family-app .fp-planning-child-picker .fp-child-switcher-option-copy em { display: inline-flex; min-height: 19px; padding: 2px 7px; box-sizing: border-box; align-items: center; gap: 6px; border-radius: 11px; color: #5d6b80; background: #f3f5f8; font-size: .53rem; font-style: normal; font-weight: 900; }
body.family-app .fp-planning-child-picker .fp-child-switcher-option-copy em > i { width: 7px; height: 7px; border-radius: 50%; background: #9ba7b8; }
body.family-app .fp-planning-child-picker .fp-child-switcher-option-copy em.is-present { color: #237a3a; background: #edf8ef; }
body.family-app .fp-planning-child-picker .fp-child-switcher-option-copy em.is-present > i { background: #39a852; }
body.family-app .fp-planning-child-picker .fp-child-switcher-option-copy em.is-absent { color: #a85b17; background: #fff5e8; }
body.family-app .fp-planning-child-picker .fp-child-switcher-option-copy em.is-absent > i { background: #e98a27; }
body.family-app .fp-planning-child-picker .fp-child-switcher-option-copy em.is-holiday { color: #176aa7; background: #ecf6ff; }
body.family-app .fp-planning-child-picker .fp-child-switcher-option-copy em.is-holiday > i { background: #328ed0; }
body.family-app .fp-planning-child-picker .fp-child-switcher-check { display: grid; width: 22px; height: 22px; place-items: center; border-radius: 50%; opacity: 0; color: #fff; background: var(--fp-violet); transform: scale(.8); transition: opacity 180ms ease, transform 180ms ease; }
body.family-app .fp-planning-child-picker .fp-child-switcher-check .lpm-icon { width: 13px; height: 13px; }
body.family-app .fp-planning-child-picker .fp-child-switcher-option.is-selected .fp-child-switcher-check { opacity: 1; transform: scale(1); }
body.family-app .fp-planning-context > [data-family-all-children] { display: inline-flex; align-items: center; justify-content: center; gap: 8px; }
body.family-app .fp-planning-context > [data-family-all-children] .lpm-icon { width: 17px; height: 17px; }
body.family-app .fp-planning-context > [data-family-all-children].active { color: var(--fp-violet); border-color: #d8c6fa; background: #f5efff; }
body.family-app .fp-planning-context .fp-planning-absence { min-width: 190px; color: #fff; border-color: var(--fp-green); background: var(--fp-green); box-shadow: 0 7px 17px rgba(54, 168, 83, .18); }
body.family-app .fp-planning-context .fp-planning-absence { display: inline-flex; align-items: center; justify-content: center; gap: 8px; }
body.family-app .fp-planning-context .fp-planning-absence .lpm-icon { width: 17px; height: 17px; }
body.family-app .fp-planning-context.is-child-changing { opacity: .32; transform: translateY(3px); pointer-events: none; }
body.family-app .fp-planning-context.is-child-entering { opacity: 0; transform: translateY(3px); }
body.family-app .fp-planning-context { opacity: 1; transform: translateY(0); transition: opacity 180ms ease, transform 180ms ease; }

body.family-app .fp-planning-layout { display: grid; grid-template-columns: minmax(0, 1fr) 244px; align-items: start; gap: 20px; }
body.family-app .fp-planning-main { display: grid; min-width: 0; gap: 0; }
body.family-app .fp-planning-main > * { min-width: 0; }
body.family-app .fp-planning-banner { margin-top: 10px; }
body.family-app .fp-calendar { padding: 0; overflow: hidden; border: 0; box-shadow: none; background: transparent; }
body.family-app .fp-planning-tabs { display: flex; min-height: 54px; gap: 8px; border-bottom: 1px solid var(--fp-border); }
body.family-app .fp-planning-tabs button { min-width: 132px; padding: 11px 16px; border: 0; border-bottom: 3px solid transparent; color: #536178; background: transparent; font: inherit; font-size: .75rem; font-weight: 850; cursor: pointer; }
body.family-app .fp-planning-tabs button.active { color: var(--fp-violet); border-bottom-color: var(--fp-violet); }

body.family-app .fp-calendar .fp-toolbar { display: flex; min-height: 66px; padding: 12px 12px 10px; box-sizing: border-box; flex-wrap: nowrap; align-items: center; gap: 7px; }
body.family-app .fp-calendar .fp-toolbar button { min-width: 42px; min-height: 42px; padding: 8px 13px; border: 1px solid #dce2ea; border-radius: 8px; color: #536178; background: #fff; font: inherit; font-size: .66rem; font-weight: 850; cursor: pointer; }
body.family-app .fp-calendar .fp-toolbar .fp-period-arrow { width: 42px; padding: 0; }
body.family-app .fp-calendar .fp-toolbar .lpm-icon { width: 17px; height: 17px; }
body.family-app .fp-calendar .fp-toolbar .fp-period-picker { display: inline-flex; min-width: 208px; padding-inline: 10px; align-items: center; justify-content: center; gap: 9px; color: var(--fp-navy); border-color: transparent; background: transparent; font-size: .75rem; text-align: center; }
body.family-app .fp-calendar .fp-toolbar .fp-period-picker:hover { border-color: #e3d8f7; background: #faf7ff; }
body.family-app .fp-calendar .fp-toolbar .fp-period-picker .lpm-icon:last-child { width: 13px; height: 13px; }
body.family-app .fp-toolbar-spacer { flex: 1; }
body.family-app .fp-calendar .fp-toolbar button.active { color: var(--fp-violet); border-color: #d8c6fa; background: #f5efff; }
body.family-app .fp-planning-view-switch { display: inline-flex; }
body.family-app .fp-planning-view-switch button { border-radius: 8px 0 0 8px; }
body.family-app .fp-planning-view-switch button + button { margin-left: -1px; border-radius: 0 8px 8px 0; }
body.family-app .fp-calendar .fp-toolbar .fp-filter-toggle { display: inline-flex; min-width: 96px; align-items: center; justify-content: center; gap: 7px; }
body.family-app .fp-planning-date { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }

body.family-app .fp-planning-filters { display: flex; max-height: 56px; padding: 3px 12px 12px; gap: 8px; overflow-x: auto; opacity: 1; scrollbar-width: thin; transition: max-height 200ms ease, padding 200ms ease, opacity 180ms ease; }
body.family-app .fp-planning-filters.is-collapsed { max-height: 0; padding-top: 0; padding-bottom: 0; overflow: hidden; opacity: 0; }
body.family-app .fp-planning-filters button { min-height: 34px; padding: 7px 13px; flex: 0 0 auto; border: 1px solid #dfe4ec; border-radius: 8px; color: var(--fp-navy); background: #fff; font: inherit; font-size: .64rem; font-weight: 800; cursor: pointer; }
body.family-app .fp-planning-filters button::before { display: inline-block; width: 7px; height: 7px; margin-right: 7px; border-radius: 50%; background: var(--fp-violet); content: ""; }
body.family-app .fp-planning-filters button:nth-child(3)::before { background: var(--fp-green); }
body.family-app .fp-planning-filters button:nth-child(4)::before { background: var(--fp-pink); }
body.family-app .fp-planning-filters button:nth-child(5)::before { background: var(--fp-blue); }
body.family-app .fp-planning-filters button:nth-child(6)::before { background: var(--fp-orange); }
body.family-app .fp-planning-filters button:nth-child(7)::before { background: #0e9f9a; }
body.family-app .fp-planning-filters button.active { color: var(--fp-violet); border-color: var(--fp-violet); background: #faf7ff; }
body.family-app .fp-calendar .fp-week-summary { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); }
body.family-app .fp-planning-stage { max-height: 350px; overflow: auto; border: 1px solid #e3e7ee; border-radius: 10px; background: #fff; opacity: 1; scrollbar-width: none; transition: opacity 200ms ease, transform 200ms ease; }
body.family-app .fp-planning-stage::-webkit-scrollbar { width: 0; height: 0; }
body.family-app .fp-planning-stage.is-updating { opacity: .28; transform: translateY(3px); }
body.family-app .fp-week-schedule { display: grid; min-width: 850px; grid-template-columns: 56px repeat(7, minmax(100px, 1fr)); grid-template-rows: 62px auto; }
body.family-app .fp-schedule-corner { border-right: 1px solid #e6eaf0; border-bottom: 1px solid #e6eaf0; }
body.family-app .fp-schedule-day-head { display: grid; min-width: 0; place-items: center; align-content: center; gap: 3px; border-right: 1px solid #e6eaf0; border-bottom: 1px solid #e6eaf0; color: var(--fp-navy); }
body.family-app .fp-schedule-day-head strong { font-size: .64rem; }
body.family-app .fp-schedule-day-head span { font-size: .62rem; font-weight: 800; }
body.family-app .fp-schedule-day-head.is-selected { color: var(--fp-violet); background: #faf7ff; }
body.family-app .fp-schedule-times { display: grid; position: relative; height: 580px; grid-template-rows: repeat(10, 58px); border-right: 1px solid #e6eaf0; color: #6b7890; }
body.family-app .fp-schedule-times time { padding: 0 7px; font-size: .56rem; font-weight: 800; transform: translateY(-5px); }
body.family-app .fp-schedule-times time:last-child { position: absolute; bottom: -5px; }
body.family-app .fp-schedule-day-column { position: relative; height: var(--schedule-height); border-right: 1px solid #e6eaf0; background: repeating-linear-gradient(to bottom, transparent 0, transparent 57px, #edf0f4 57px, #edf0f4 58px); }
body.family-app .fp-schedule-day-column:last-child { border-right: 0; }
body.family-app .fp-schedule-event { display: grid; position: absolute; top: var(--event-top); right: 5px; left: 5px; z-index: 2; height: var(--event-height); min-height: 54px; padding: 8px; box-sizing: border-box; align-content: start; gap: 3px; overflow: hidden; border: 0; border-radius: 8px; color: var(--fp-navy); text-align: left; font: inherit; cursor: pointer; transition: transform 200ms ease, box-shadow 200ms ease; }
body.family-app .fp-schedule-event:hover { z-index: 4; transform: translateY(-2px); box-shadow: 0 9px 20px rgba(25, 45, 78, .14); }
body.family-app .fp-schedule-event > span { position: absolute; top: 8px; left: 8px; }
body.family-app .fp-schedule-event .lpm-icon { width: 14px; height: 14px; }
body.family-app .fp-schedule-event strong { padding-left: 20px; overflow: hidden; font-size: .58rem; font-weight: 900; text-overflow: ellipsis; white-space: nowrap; }
body.family-app .fp-schedule-event time,
body.family-app .fp-schedule-event small { overflow: hidden; font-size: .52rem; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }
body.family-app .fp-schedule-event.purple { color: #7437e8; background: #f3ebff; }
body.family-app .fp-schedule-event.green { color: #278d42; background: #edf8ef; }
body.family-app .fp-schedule-event.pink { color: #db2e67; background: #fff0f5; }
body.family-app .fp-schedule-event.blue { color: #176fca; background: #eef6ff; }
body.family-app .fp-schedule-event.orange { color: #c87800; background: #fff6e6; }
body.family-app .fp-schedule-event.turquoise { color: #087b77; background: #edf9f8; }

body.family-app .fp-planning-banner { display: grid; min-height: 88px; padding: 15px 20px; box-sizing: border-box; grid-template-columns: 44px minmax(0, 1fr) auto; align-items: center; gap: 14px; border-radius: 9px; color: var(--fp-navy); background: #f5efff; }
body.family-app .fp-planning-banner > span { display: grid; width: 40px; height: 40px; place-items: center; border-radius: 10px; color: var(--fp-violet); background: #fff; }
body.family-app .fp-planning-banner > span .lpm-icon { width: 22px; height: 22px; }
body.family-app .fp-planning-banner strong { font-size: .82rem; }
body.family-app .fp-planning-banner p { margin: 5px 0 0; color: #6d6591; font-size: .69rem; }
body.family-app .fp-planning-banner button { min-height: 38px; padding: 8px 13px; border: 1px solid #cbb4f7; border-radius: 7px; color: var(--fp-violet); background: #fff; font: inherit; font-size: .68rem; font-weight: 850; }

body.family-app .fp-planning-side { display: grid; gap: 20px; }
body.family-app .fp-mini-calendar,
body.family-app .fp-planning-side .fp-side-event { padding: 16px; }
body.family-app .fp-mini-calendar { min-height: 270px; }
body.family-app .fp-mini-calendar header { display: grid; grid-template-columns: 34px 1fr 34px; align-items: center; gap: 7px; }
body.family-app .fp-mini-calendar header strong { color: var(--fp-navy); font-size: .82rem; text-align: center; text-transform: capitalize; }
body.family-app .fp-mini-calendar header button { width: 34px; height: 34px; border: 0; color: var(--fp-navy); background: transparent; cursor: pointer; }
body.family-app .fp-mini-grid { display: grid; margin-top: 14px; grid-template-columns: repeat(7, 1fr); gap: 3px; }
body.family-app .fp-mini-grid strong,
body.family-app .fp-mini-grid span,
body.family-app .fp-mini-grid button { display: grid; min-width: 0; height: 27px; padding: 0; place-items: center; border: 0; border-radius: 50%; color: #64728a; background: transparent; font: inherit; font-size: .62rem; }
body.family-app .fp-mini-grid strong { height: 22px; color: #8792a3; font-weight: 850; }
body.family-app .fp-mini-grid button { cursor: pointer; }
body.family-app .fp-mini-grid button.active { color: #fff; background: var(--fp-violet); font-weight: 900; }
body.family-app .fp-mini-grid button.has-event:not(.active) { color: #237a3b; background: #eef8ef; font-weight: 850; }
body.family-app .fp-planning-side .fp-side-event { padding: 0; overflow: hidden; }
body.family-app .fp-planning-side .fp-side-event h2 { margin: 0; padding: 18px; border-bottom: 1px solid #e7eaf0; color: var(--fp-navy); font-size: .9rem; }
body.family-app .fp-upcoming-card { display: grid; position: relative; width: 100%; min-height: 86px; padding: 12px 12px 12px 18px; grid-template-columns: 34px minmax(0, 1fr); align-items: start; gap: 10px; border: 0; border-bottom: 1px solid #e7eaf0; color: var(--fp-navy); background: #fff; text-align: left; font: inherit; cursor: pointer; transition: background-color 190ms ease; }
body.family-app .fp-upcoming-card:hover { background: #fafbfc; }
body.family-app .fp-upcoming-card > i { position: absolute; top: 17px; left: 8px; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
body.family-app .fp-upcoming-card > span { display: grid; width: 32px; height: 32px; place-items: center; border-radius: 8px; }
body.family-app .fp-upcoming-card > span .lpm-icon { width: 17px; height: 17px; }
body.family-app .fp-upcoming-card > div { display: grid; min-width: 0; gap: 4px; }
body.family-app .fp-upcoming-card strong { overflow: hidden; font-size: .66rem; font-weight: 900; text-overflow: ellipsis; white-space: nowrap; }
body.family-app .fp-upcoming-card time,
body.family-app .fp-upcoming-card small { overflow: hidden; color: #617089; font-size: .57rem; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }
body.family-app .fp-upcoming-card.purple > span { color: #7437e8; background: #f3ebff; }
body.family-app .fp-upcoming-card.green > span { color: #278d42; background: #edf8ef; }
body.family-app .fp-upcoming-card.pink > span { color: #db2e67; background: #fff0f5; }
body.family-app .fp-upcoming-card.blue > span { color: #176fca; background: #eef6ff; }
body.family-app .fp-upcoming-card.orange > span { color: #c87800; background: #fff6e6; }
body.family-app .fp-upcoming-card.turquoise > span { color: #087b77; background: #edf9f8; }
body.family-app .fp-upcoming-card.purple > i { background: #7437e8; }
body.family-app .fp-upcoming-card.green > i { background: #278d42; }
body.family-app .fp-upcoming-card.pink > i { background: #db2e67; }
body.family-app .fp-upcoming-card.blue > i { background: #176fca; }
body.family-app .fp-upcoming-card.orange > i { background: #c87800; }
body.family-app .fp-upcoming-card.turquoise > i { background: #087b77; }
body.family-app .fp-upcoming-all { display: flex; width: 100%; min-height: 52px; padding: 12px 16px; align-items: center; justify-content: space-between; border: 0; color: var(--fp-violet); background: #fff; font: inherit; font-size: .62rem; font-weight: 900; cursor: pointer; }
body.family-app .fp-upcoming-all .lpm-icon { width: 16px; height: 16px; }
body.family-app .fp-upcoming-empty { display: grid; min-height: 180px; padding: 22px; place-items: center; align-content: center; text-align: center; color: #768399; }
body.family-app .fp-upcoming-empty .lpm-icon { width: 24px; height: 24px; margin-bottom: 8px; color: var(--fp-violet); }
body.family-app .fp-upcoming-empty strong { color: var(--fp-navy); font-size: .7rem; }
body.family-app .fp-upcoming-empty p { margin: 5px 0 0; font-size: .58rem; }

body.family-app .fp-planning-detail-overlay { opacity: 0; transition: opacity 200ms ease; }
body.family-app .fp-planning-detail-overlay.is-open { opacity: 1; }
body.family-app .fp-planning-detail { width: min(500px, calc(100vw - 32px)); padding: 24px; }
body.family-app .fp-planning-detail header { display: grid; grid-template-columns: 42px minmax(0, 1fr) 36px; align-items: center; gap: 12px; }
body.family-app .fp-planning-detail header > span { display: grid; width: 40px; height: 40px; place-items: center; border-radius: 10px; color: var(--fp-violet); background: #f3ebff; }
body.family-app .fp-planning-detail header small { color: var(--fp-violet); font-size: .6rem; font-weight: 900; text-transform: capitalize; }
body.family-app .fp-planning-detail h2 { margin: 2px 0 0; color: var(--fp-navy); font-size: 1.1rem; }
body.family-app .fp-planning-detail dl { display: grid; margin: 22px 0; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
body.family-app .fp-planning-detail dl > div { padding: 12px; border-radius: 8px; background: #f7f8fa; }
body.family-app .fp-planning-detail dt { color: #7b8799; font-size: .56rem; font-weight: 850; }
body.family-app .fp-planning-detail dd { margin: 4px 0 0; color: var(--fp-navy); font-size: .7rem; font-weight: 900; }
body.family-app .fp-planning-detail > p { color: #627087; font-size: .7rem; line-height: 1.6; }
body.family-app .fp-planning-detail > a { display: inline-flex; min-height: 40px; padding: 8px 14px; align-items: center; gap: 7px; border: 1px solid #d1bcf7; border-radius: 8px; color: var(--fp-violet); text-decoration: none; font-size: .65rem; font-weight: 900; }

body.fp-planning-detail-open { overflow: hidden; }
body.family-app .fp-planning-detail-drawer-overlay { display: flex; padding: 0; align-items: stretch; justify-content: flex-end; background: rgba(8, 31, 58, 0); opacity: 1; transition: background-color 140ms ease-out, backdrop-filter 140ms ease-out; }
body.family-app .fp-planning-detail-drawer-overlay.is-overlay-visible { background: rgba(8, 31, 58, .38); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); }
body.family-app .fp-action-modal .fp-planning-detail-drawer { width: min(520px, 100%); height: 100dvh; max-height: none; margin: 0; padding: 28px; box-sizing: border-box; overflow-y: auto; border: 0; border-left: 1px solid #e4e9f0; border-radius: 0; visibility: hidden; opacity: 0; transform: translateX(40px); transition: transform 360ms cubic-bezier(.22, 1, .36, 1), opacity 360ms ease-out, visibility 0s linear 360ms; }
body.family-app .fp-planning-detail-drawer-overlay.is-open .fp-planning-detail-drawer { visibility: visible; opacity: 1; transform: translateX(0); transition-delay: 0s; }

@media (max-width: 1360px) {
  body.family-app .fp-planning-layout { grid-template-columns: 1fr; }
  body.family-app .fp-planning-side { grid-template-columns: minmax(260px, .7fr) minmax(340px, 1.3fr); }
  body.family-app .fp-calendar { overflow: visible; }
}

@media (max-width: 900px) {
  body.family-app .fp-planning-context { grid-template-columns: minmax(0, 1fr) 154px 202px; }
}

@media (max-width: 680px) {
  body.family-app[data-family-page="planning"] .fp-content { padding: 22px 16px 34px; }
  body.family-app .fp-planning-page-head { align-items: flex-start; }
  body.family-app .fp-planning-page-head time { align-self: flex-start; }
  body.family-app .fp-planning-context { grid-template-columns: 1fr; }
  body.family-app .fp-planning-child-picker { width: 100%; }
  body.family-app .fp-planning-child-picker .fp-child-switcher-trigger { min-height: 72px; }
  body.family-app .fp-planning-child-picker .fp-child-switcher-menu { right: 0; width: auto; max-height: min(58vh, 500px); overflow-y: auto; }
  body.family-app .fp-planning-context > [data-family-all-children] { width: 100%; }
  body.family-app .fp-planning-context .fp-planning-absence { width: 100%; }
  body.family-app .fp-calendar .fp-toolbar { flex-wrap: wrap; }
  body.family-app .fp-toolbar-spacer { display: none; }
  body.family-app .fp-calendar .fp-toolbar .fp-period-picker { min-width: 150px; flex: 1; }
  body.family-app .fp-planning-view-switch { flex: 1; }
  body.family-app .fp-planning-view-switch button { flex: 1; }
  body.family-app .fp-calendar .fp-toolbar .fp-filter-toggle { flex: 1; }
  body.family-app .fp-planning-side { grid-template-columns: 1fr; }
  body.family-app .fp-planning-banner { align-items: flex-start; flex-direction: column; }
  body.family-app .fp-planning-banner { grid-template-columns: 40px minmax(0, 1fr); }
  body.family-app .fp-planning-banner button { width: 100%; grid-column: 1 / -1; }
  body.family-app .fp-week-schedule { min-width: 800px; }
  body.family-app .fp-planning-detail-drawer-overlay { align-items: flex-end; }
  body.family-app .fp-action-modal .fp-planning-detail-drawer { width: 100%; height: auto; max-height: 92dvh; border-top: 1px solid #e4e9f0; border-left: 0; border-radius: 14px 14px 0 0; transform: translateY(40px); }
  body.family-app .fp-planning-detail-drawer-overlay.is-open .fp-planning-detail-drawer { transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
  body.family-app .fp-planning-child-picker :is(.fp-child-switcher-menu, .fp-child-switcher-chevron, .fp-child-switcher-option, .fp-child-switcher-check),
  body.family-app .fp-planning-context { transition-duration: 1ms !important; }
}

/* Family messages: two-pane conversation layout from the official mockup */
body.family-app .fp-messages-layout {
  display: grid;
  min-height: 705px;
  grid-template-columns: minmax(330px, .68fr) minmax(0, 1.5fr);
  align-items: stretch;
  gap: 16px;
}

body.family-app .fp-messages-page-head { display: flex; margin-bottom: 24px; align-items: flex-start; justify-content: space-between; gap: 24px; }
body.family-app .fp-messages-page-head button { min-height: 46px; padding: 9px 22px; border: 0; border-radius: 8px; color: #fff; background: var(--fp-violet); font: inherit; font-size: .76rem; font-weight: 900; cursor: pointer; }

body.family-app .fp-conversations {
  display: flex;
  min-width: 0;
  padding: 24px;
  flex-direction: column;
}

body.family-app .fp-conversations > header { display: flex; margin-bottom: 18px; align-items: center; justify-content: space-between; gap: 14px; }
body.family-app .fp-conversations > header h2 { margin: 0; color: var(--fp-navy); font-size: 1.12rem; }
body.family-app .fp-conversations > header button { min-height: 40px; padding: 8px 13px; border: 0; border-radius: 7px; color: #fff; background: var(--fp-violet); font: inherit; font-size: .75rem; font-weight: 850; cursor: pointer; }
body.family-app .fp-conversations > label { display: grid; margin-bottom: 18px; grid-template-columns: 30px 1fr; align-items: center; border: 1px solid #d7dee8; border-radius: 7px; background: #fff; }
body.family-app .fp-conversations > label span { color: #7c899b; text-align: center; }
body.family-app .fp-conversations > label input { width: 100%; min-height: 42px; padding: 8px 10px 8px 0; border: 0; outline: 0; color: #29384e; background: transparent; font: inherit; font-size: .78rem; }
body.family-app .fp-message-filters { display: flex; margin: 0 0 18px; gap: 8px; }
body.family-app .fp-message-filters button { min-height: 34px; padding: 7px 12px; border: 1px solid #dfe4ec; border-radius: 7px; color: #536178; background: #fff; font: inherit; font-size: .68rem; font-weight: 800; cursor: pointer; }
body.family-app .fp-message-filters button.active { color: var(--fp-violet); border-color: #d7c4fa; background: #f5efff; }
body.family-app .fp-conversations > .fp-record-list { display: grid; gap: 8px; }
body.family-app .fp-conversations .fp-thread-button { display: grid; width: 100%; padding: 14px; gap: 5px; border: 1px solid #e3e8ef; border-radius: 9px; color: inherit; background: #fff; text-align: left; cursor: pointer; }
body.family-app .fp-conversations .fp-thread-button:hover,
body.family-app .fp-conversations .fp-thread-button:focus-visible { border-color: #a78be0; outline: 3px solid rgba(116, 55, 232, .1); }
body.family-app .fp-conversations .fp-thread-button strong { color: var(--fp-navy); font-size: .8rem; }
body.family-app .fp-conversations .fp-thread-button > b { color: var(--fp-navy); font-size: .72rem; }
body.family-app .fp-conversations .fp-thread-button small { display: block; margin-top: 2px; color: #8b95a5; font-size: .64rem; }
body.family-app .fp-conversations .fp-thread-button p { display: -webkit-box; margin: 7px 0 0; overflow: hidden; color: var(--fp-muted); font-size: .72rem; line-height: 1.45; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }

body.family-app .fp-chat {
  display: grid;
  min-width: 0;
  min-height: 650px;
  padding: 0;
  grid-template-rows: auto 1fr auto;
  overflow: hidden;
}

body.family-app .fp-chat-head { display: flex; min-height: 76px; padding: 16px 20px; box-sizing: border-box; align-items: center; gap: 12px; border-bottom: 1px solid var(--fp-border); }
body.family-app .fp-chat-head .fp-avatar { display: grid; width: 42px; height: 42px; flex: 0 0 42px; place-items: center; border-radius: 50%; background: #e8f2fc; }
body.family-app .fp-chat-head h2 { margin: 0; color: var(--fp-navy); font-size: .96rem; }
body.family-app .fp-chat-head small { color: var(--fp-muted); font-size: .7rem; }
body.family-app .fp-chat-body { display: flex; min-height: 500px; max-height: 500px; padding: 22px; box-sizing: border-box; overflow-y: auto; flex-direction: column; gap: 11px; background: #fbfcfd; }
body.family-app .fp-chat-body .fp-record-detail,
body.family-app .fp-chat-bubble { width: min(72%, 580px); padding: 14px 16px; box-sizing: border-box; border: 1px solid #dfe5ed; border-radius: 8px; background: #fff; }
body.family-app .fp-chat-body .fp-record-detail strong,
body.family-app .fp-chat-bubble strong { color: var(--fp-navy); font-size: .8rem; }
body.family-app .fp-chat-body .fp-record-detail p,
body.family-app .fp-chat-bubble p { margin: 7px 0; color: #4f5f75; font-size: .78rem; line-height: 1.55; }
body.family-app .fp-chat-body .fp-record-detail small,
body.family-app .fp-chat-bubble small { color: #8893a3; font-size: .66rem; }
body.family-app .fp-chat-bubble.sent { align-self: flex-end; border-color: #dccff3; background: #f3edff; }
body.family-app .fp-chat-reply { display: grid; padding: 15px 18px; grid-template-columns: 1fr auto; align-items: end; gap: 10px; border-top: 1px solid var(--fp-border); background: #fff; }
body.family-app .fp-chat-reply label { display: grid; gap: 6px; color: #56657a; font-size: .7rem; font-weight: 800; }
body.family-app .fp-chat-reply textarea { width: 100%; min-height: 64px; padding: 10px; box-sizing: border-box; resize: vertical; border: 1px solid #d2dae5; border-radius: 7px; font: inherit; }
body.family-app .fp-chat-reply p { grid-column: 1 / -1; min-height: 16px; margin: 0; color: #27743b; font-size: .7rem; }
body.family-app .fp-chat-reply button { min-height: 42px; padding: 8px 17px; border: 0; border-radius: 7px; color: #fff; background: var(--fp-violet); font: inherit; font-weight: 850; cursor: pointer; }

@media (max-width: 1050px) {
  body.family-app .fp-messages-layout { grid-template-columns: minmax(290px, .7fr) minmax(0, 1.3fr); }
}

@media (max-width: 760px) {
  body.family-app .fp-messages-layout { grid-template-columns: 1fr; }
  body.family-app .fp-conversations,
  body.family-app .fp-chat { min-height: 420px; }
  body.family-app .fp-chat-body { min-height: 300px; }
  body.family-app .fp-messages-page-head { align-items: stretch; flex-direction: column; }
  body.family-app .fp-messages-page-head button { width: 100%; }
}

/* Health questionnaire and account controls */
body.family-app .fp-health-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
body.family-app .fp-health-form { padding: 30px; }
body.family-app .fp-health-form > h2 { margin: 0 0 18px; color: var(--fp-navy); font-size: 1.2rem; }
body.family-app .fp-health-question { padding: 17px 14px; border: 1px solid #dbe3ed; border-radius: 8px; background: #f8fafc; }
body.family-app .fp-health-question + .fp-health-question { margin-top: 12px; }
body.family-app .fp-health-question > strong { display: block; color: #203047; font-size: .8rem; line-height: 1.45; }
body.family-app .fp-choice-row { display: flex; margin-top: 12px; align-items: center; gap: 8px; }
body.family-app .fp-choice-row label { display: inline-flex; min-height: 38px; padding: 7px 11px; box-sizing: border-box; align-items: center; gap: 7px; border: 1px solid #e3e7ed; border-radius: 7px; color: var(--fp-navy); background: #fff; font-size: .76rem; font-weight: 850; cursor: pointer; }
body.family-app .fp-choice-row input[type="radio"] { width: 16px !important; height: 16px; min-height: 16px; margin: 0; padding: 0; flex: 0 0 16px; border: 0; accent-color: var(--fp-violet); box-shadow: none; }
body.family-app .fp-health-detail { margin-top: 12px; }
body.family-app .fp-health-detail[hidden] { display: none; }
body.family-app .fp-health-detail input,
body.family-app .fp-health-detail textarea { width: 100%; min-height: 42px; padding: 10px; box-sizing: border-box; border: 1px solid #ccd6e3; border-radius: 7px; background: #fff; font: inherit; }
body.family-app .fp-health-detail textarea { min-height: 80px; resize: vertical; }
body.family-app .fp-health-form > button { width: 100%; min-height: 44px; margin-top: 20px; border: 0; border-radius: 7px; color: #fff; background: var(--fp-violet); font: inherit; font-weight: 850; cursor: pointer; }
body.family-app .fp-health-form > p { min-height: 18px; color: #28743d; font-size: .72rem; }
body.family-app .fp-account-form fieldset { padding: 16px; border: 1px solid #dfe5ed; border-radius: 8px; }
body.family-app .fp-account-form fieldset legend { padding: 0 6px; color: var(--fp-navy); font-size: .8rem; font-weight: 850; }
body.family-app .fp-account-form input[type="checkbox"] { width: 18px !important; height: 18px; min-height: 18px; margin: 0; padding: 0; flex: 0 0 18px; accent-color: var(--fp-violet); box-shadow: none; }

@media (max-width: 980px) {
  body.family-app .fp-health-grid { grid-template-columns: 1fr; }
}

/* UX review 2026-08: shared public shell, resilient heroes and refined controls */
body.public-site {
  --public-shell-width: min(calc(100% - 24px), 1520px);
  --control-radius: 8px;
  --control-height: 40px;
}

body.public-site .public-header {
  width: var(--public-shell-width);
  margin-top: 10px;
  background: rgba(255, 255, 255, .82);
  border-color: rgba(255, 255, 255, .72);
  box-shadow: 0 12px 32px rgba(20, 42, 75, .09), inset 0 0 0 1px rgba(210, 218, 229, .56);
  -webkit-backdrop-filter: saturate(145%) blur(18px);
  backdrop-filter: saturate(145%) blur(18px);
}

body.public-site .public-reference-main,
body.public-reference .reference-inner,
body.public-site .public-footer {
  width: var(--public-shell-width) !important;
}

body.public-site .public-footer-inner { width: auto; box-sizing: border-box; }

body.public-site .home-hero,
body.public-reference .reference-page-hero,
body.public-daily-page .public-split-hero,
body.public-contact-page .reference-contact-hero {
  isolation: isolate;
}

body.public-site .home-hero > *,
body.public-reference .reference-page-hero > *,
body.public-daily-page .public-split-hero > *,
body.public-contact-page .reference-contact-hero > * {
  min-width: 0;
}

body.public-site .home-hero-copy,
body.public-reference .reference-page-hero > div,
body.public-daily-page .public-split-hero > div,
body.public-contact-page .reference-contact-hero > div {
  position: relative;
  z-index: 2;
  overflow-wrap: normal;
  word-break: normal;
}

body.public-reference .reference-page-hero > div,
body.public-daily-page .public-split-hero > div {
  width: auto;
  margin: 0;
  padding: 0;
}

body.public-site .home-hero-media,
body.public-reference .reference-page-hero > img,
body.public-daily-page .public-split-hero > img,
body.public-contact-page .reference-contact-visual {
  position: relative;
  z-index: 1;
  max-width: 100%;
  align-self: center;
}

body.public-reference .reference-value-grid article {
  align-items: center;
  justify-content: flex-start;
  text-align: center;
}

body.public-reference .reference-value-grid article:last-child {
  border-color: var(--public-line);
}

body.public-site .reference-button,
body.public-site .primary-cta,
body.public-site .secondary-button,
body.family-app .fp-action-button,
body.family-app .fp-toolbar button,
body.family-app .fp-conversations > header button,
body.family-app .fp-chat-reply button,
body.family-app .fp-profile-actions a,
body.family-app .fp-event-actions a,
body.family-app .fp-event-actions button,
body.family-app .fp-account-form button,
body.family-app .fp-health-form > button,
body.admin-app .ap-primary,
body.admin-app .ap-row-actions button,
body.admin-app .ap-content-actions button,
body.admin-app .ap-modal-card button[type="submit"] {
  min-height: var(--control-height, 40px);
  padding: 8px 15px;
  border-radius: var(--control-radius, 8px);
  font-size: .8rem;
  line-height: 1.2;
  box-shadow: none;
  transition: border-color .18s ease, background-color .18s ease, color .18s ease, box-shadow .18s ease, transform .18s ease;
}

body.public-site .reference-button:hover,
body.family-app .fp-action-button:hover,
body.family-app .fp-toolbar button:hover,
body.family-app .fp-conversations > header button:hover,
body.family-app .fp-chat-reply button:hover,
body.admin-app .ap-primary:hover,
body.admin-app .ap-row-actions button:hover {
  transform: translateY(-1px);
  box-shadow: 0 7px 16px rgba(27, 48, 78, .11);
}

body.family-app .fp-conversations > label,
body.family-app .fp-filter-row label:has(input[type="search"]),
body.admin-app .ap-inline-search label {
  border: 1px solid #dbe3ed;
  background: rgba(255, 255, 255, .88);
  box-shadow: 0 7px 18px rgba(30, 51, 78, .05);
}

body.family-app .fp-conversations > label:focus-within,
body.family-app .fp-filter-row label:has(input[type="search"]):focus-within,
body.admin-app .ap-inline-search label:focus-within {
  border-color: #9a7bd3;
  box-shadow: 0 0 0 3px rgba(116, 55, 232, .1), 0 8px 20px rgba(30, 51, 78, .06);
}

/* Authentication pages now use the current public design system. */
body.public-auth-page { min-height: 100vh; }

body.public-auth-page .auth-reference-shell {
  display: grid;
  width: var(--public-shell-width);
  min-height: calc(100vh - 112px);
  margin: 0 auto 20px;
  padding: clamp(42px, 6vw, 88px);
  box-sizing: border-box;
  grid-template-columns: minmax(0, 1.02fr) minmax(380px, .78fr);
  align-items: center;
  gap: clamp(44px, 7vw, 100px);
  overflow: hidden;
  border-radius: 0 0 24px 24px;
  background: rgba(255, 254, 253, .94);
  box-shadow: 0 18px 55px rgba(29, 48, 77, .06);
}

body.public-auth-page .auth-reference-intro { min-width: 0; }
body.public-auth-page .auth-reference-intro h1 { max-width: 650px; margin: 0; color: var(--public-navy); font-family: Georgia, "Times New Roman", serif; font-size: clamp(3rem, 5.2vw, 5.4rem); line-height: 1; }
body.public-auth-page .auth-reference-intro > p:not(.reference-kicker) { max-width: 600px; margin: 20px 0 30px; color: var(--public-muted); line-height: 1.75; }
body.public-auth-page .auth-reference-intro img { display: block; width: min(620px, 100%); height: 270px; object-fit: cover; border-radius: 48% 52% 46% 54% / 55% 45% 55% 45%; }

body.public-auth-page .auth-reference-card {
  width: 100%;
  max-width: 520px;
  padding: clamp(28px, 4vw, 46px);
  box-sizing: border-box;
  border: 1px solid #e2e6ec;
  border-radius: 12px;
  background: rgba(255, 255, 255, .92);
  box-shadow: 0 18px 42px rgba(25, 47, 79, .09);
}

body.public-auth-page .auth-reference-card h2 { margin: 0; color: var(--public-navy); font-family: Georgia, "Times New Roman", serif; font-size: 2.2rem; }
body.public-auth-page .auth-reference-card > p:not(.reference-kicker, .auth-security-note) { margin: 9px 0 24px; color: var(--public-muted); }
body.public-auth-page .auth-reference-card form { display: grid; gap: 16px; }
body.public-auth-page .auth-reference-card label { display: grid; gap: 7px; color: #35445a; font-size: .78rem; font-weight: 800; }
body.public-auth-page .auth-reference-card input { width: 100%; min-height: 46px; padding: 10px 12px; box-sizing: border-box; border: 1px solid #cfd7e2; border-radius: 8px; color: #202d40; background: #fff; font: inherit; }
body.public-auth-page .auth-reference-card input:focus { border-color: #8d72ce; outline: 3px solid rgba(141, 114, 206, .14); }
body.public-auth-page .auth-reference-card .reference-button { width: 100%; }
body.public-auth-page .auth-reference-links { display: flex; margin-top: 20px; justify-content: space-between; gap: 14px; }
body.public-auth-page .auth-reference-links a { color: #684ca3; font-size: .78rem; font-weight: 800; text-decoration: none; }
body.public-auth-page .auth-security-note { margin: 24px 0 0; padding: 13px 15px; border-radius: 8px; color: #5f6e82; background: #f5f7fa; font-size: .75rem; line-height: 1.5; }

@media (max-width: 1120px) {
  body.public-site .home-hero,
  body.public-reference .reference-page-hero,
  body.public-daily-page .public-split-hero { grid-template-columns: minmax(0, .9fr) minmax(360px, 1.1fr); gap: 42px; }
  body.public-reference .reference-page-hero h1,
  body.public-daily-page .public-split-hero h1 { font-size: clamp(2.75rem, 5.7vw, 4.3rem); }
}

@media (min-width: 921px) and (max-width: 1280px) {
  body.public-reference .reference-page-hero,
  body.public-daily-page .public-split-hero { grid-template-columns: minmax(0, 1fr) minmax(390px, .95fr); gap: 48px; }
  body.public-reference .reference-page-hero h1,
  body.public-daily-page .public-split-hero h1 { font-size: clamp(2.75rem, 4vw, 3.45rem); }
}

@media (max-width: 920px) {
  body.public-site .home-hero,
  body.public-reference .reference-page-hero,
  body.public-daily-page .public-split-hero,
  body.public-contact-page .reference-contact-hero,
  body.public-auth-page .auth-reference-shell { grid-template-columns: 1fr; }
  body.public-site .home-hero-media,
  body.public-reference .reference-page-hero > img,
  body.public-daily-page .public-split-hero > img { width: 100%; max-height: 460px; }
  body.public-auth-page .auth-reference-card { max-width: none; }
}

@media (max-width: 640px) {
  body.public-site { --public-shell-width: calc(100% - 12px); }
  body.public-auth-page .auth-reference-shell { min-height: 0; padding: 46px 22px; gap: 32px; }
  body.public-auth-page .auth-reference-intro h1 { font-size: 2.75rem; }
  body.public-auth-page .auth-reference-intro img { height: 210px; }
  body.public-auth-page .auth-reference-card { padding: 25px 20px; }
  body.public-auth-page .auth-reference-links { align-items: flex-start; flex-direction: column; }
}

/* Secure family actions and message states */
body.family-app .fp-thread-button.is-unread {
  border-color: #cbb8ee;
  background: #f6f1ff;
  box-shadow: inset 3px 0 0 var(--fp-violet);
}

body.family-app .fp-thread-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
body.family-app .fp-thread-heading em { padding: 3px 6px; border-radius: 5px; color: #fff; background: var(--fp-pink); font-size: .6rem; font-style: normal; font-weight: 900; }
body.family-app .fp-thread-button.is-unread strong { font-weight: 950; }

body.family-app .fp-profile-actions button {
  display: inline-flex;
  min-height: 40px;
  padding: 8px 13px;
  align-items: center;
  justify-content: center;
  border: 1px solid #c9d2df;
  border-radius: 8px;
  color: #4f2eb7;
  background: #fff;
  font: inherit;
  font-size: .8rem;
  font-weight: 850;
  cursor: pointer;
}

body.family-app .fp-chat-reply > label:first-child { grid-column: 1 / -1; }
body.family-app .fp-chat-reply .fp-file-picker { grid-column: 1; align-self: center; }
body.family-app .fp-chat-reply > button { grid-column: 2; grid-row: 2; }
body.family-app .fp-chat-reply progress,
body.family-app .fp-chat-reply > p { grid-column: 1 / -1; }

.fp-file-picker { display: grid; gap: 7px; color: #4f5e72; font-size: .74rem; font-weight: 850; }
.fp-file-picker input[type="file"] { width: 100%; min-height: 42px; padding: 7px; box-sizing: border-box; border: 1px dashed #b9c5d4; border-radius: 8px; color: #5e6b7d; background: #fafbfc; font: inherit; font-size: .72rem; }
.fp-file-picker input[type="file"]::file-selector-button { margin-right: 10px; padding: 7px 10px; border: 1px solid #d5c8eb; border-radius: 6px; color: #6043a0; background: #f2edfb; font: inherit; font-weight: 850; cursor: pointer; }
.fp-file-picker small { color: #7d8898; font-size: .67rem; font-weight: 600; line-height: 1.45; }

.fp-action-modal { padding: 22px; background: rgba(12, 31, 58, .62); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.fp-action-modal .ap-modal-card { width: min(620px, 100%); max-height: calc(100vh - 44px); padding: 30px; overflow-y: auto; border: 1px solid rgba(255, 255, 255, .68); border-radius: 12px; box-shadow: 0 28px 70px rgba(8, 28, 55, .24); }
.fp-action-modal .fp-modal-kicker { margin: 0 0 7px; color: #d55c88; font-size: .7rem; font-weight: 950; text-transform: uppercase; }
.fp-action-modal .fp-modal-intro { margin: -9px 0 8px; color: #6c788a; font-size: .76rem; line-height: 1.5; }
.fp-action-modal .ap-modal-card > label { display: grid; gap: 7px; color: #344258; font-size: .76rem; font-weight: 850; }
.fp-action-modal .ap-modal-card input:not([type="file"]),
.fp-action-modal .ap-modal-card select,
.fp-action-modal .ap-modal-card textarea { width: 100%; min-height: 44px; padding: 10px 11px; box-sizing: border-box; border: 1px solid #cfd8e4; border-radius: 8px; color: #213047; background: #fff; font: inherit; }
.fp-action-modal .ap-modal-card textarea { resize: vertical; }
.fp-action-modal .ap-modal-card input:focus,
.fp-action-modal .ap-modal-card select:focus,
.fp-action-modal .ap-modal-card textarea:focus { border-color: #8d72ce; outline: 3px solid rgba(116, 55, 232, .11); }
.fp-action-modal progress,
body.family-app .fp-chat-reply progress { width: 100%; height: 7px; border: 0; border-radius: 8px; overflow: hidden; accent-color: var(--fp-violet); }
.fp-action-modal [data-modal-status],
.fp-action-modal [data-family-message-status] { min-height: 18px; margin: 0; color: #aa3158; font-size: .72rem; font-weight: 800; }
.fp-action-modal .success { color: #26733a; }

/* Family absence declaration drawer */
.fp-absence-drawer-overlay {
  --fp-absence-overlay-duration: 140ms;
  --fp-absence-drawer-duration: 360ms;
  --fp-absence-content-duration: 220ms;
  z-index: 1500;
  display: flex;
  padding: 0;
  align-items: stretch;
  justify-content: flex-end;
  overflow: hidden;
  background: rgba(8, 31, 58, 0);
  -webkit-backdrop-filter: blur(0);
  backdrop-filter: blur(0);
  transition: background-color var(--fp-absence-overlay-duration) ease-out, backdrop-filter var(--fp-absence-overlay-duration) ease-out;
  will-change: background-color, backdrop-filter;
}

body.fp-absence-drawer-open { overflow: hidden; }

.fp-absence-drawer-overlay.is-overlay-visible {
  background: rgba(8, 31, 58, .42);
  -webkit-backdrop-filter: blur(3px);
  backdrop-filter: blur(3px);
}

.fp-action-modal .fp-absence-drawer {
  width: min(560px, 100%);
  height: 100dvh;
  max-height: none;
  padding: 0;
  gap: 0;
  grid-template-rows: auto minmax(0, 1fr) auto;
  overflow: hidden;
  border: 0;
  border-left: 1px solid rgba(220, 226, 237, .92);
  border-radius: 0;
  background: #fff;
  box-shadow: -18px 0 55px rgba(8, 31, 58, .18);
  visibility: hidden;
  opacity: 0;
  transform: translateX(40px);
  transition: transform var(--fp-absence-drawer-duration) cubic-bezier(.22, 1, .36, 1), opacity var(--fp-absence-drawer-duration) ease-out, visibility 0s linear var(--fp-absence-drawer-duration);
  will-change: transform, opacity;
}

.fp-absence-drawer-overlay.is-open .fp-absence-drawer { visibility: visible; opacity: 1; transform: translateX(0); transition-delay: 0s; }

.fp-absence-drawer-head > *,
.fp-absence-drawer-body > .fp-absence-form-section,
.fp-absence-drawer-body > progress,
.fp-absence-drawer-body > [data-modal-status],
.fp-absence-drawer-footer > * {
  opacity: 0;
  transform: translateY(7px);
  transition: opacity var(--fp-absence-content-duration) ease-out, transform var(--fp-absence-content-duration) cubic-bezier(.22, 1, .36, 1);
}

.fp-absence-drawer-overlay.is-content-visible .fp-absence-drawer-head > *,
.fp-absence-drawer-overlay.is-content-visible .fp-absence-drawer-body > .fp-absence-form-section,
.fp-absence-drawer-overlay.is-content-visible .fp-absence-drawer-body > progress,
.fp-absence-drawer-overlay.is-content-visible .fp-absence-drawer-body > [data-modal-status],
.fp-absence-drawer-overlay.is-content-visible .fp-absence-drawer-footer > * { opacity: 1; transform: translateY(0); }

.fp-absence-drawer-overlay.is-content-visible .fp-absence-drawer-head > :nth-child(1) { transition-delay: 0ms; }
.fp-absence-drawer-overlay.is-content-visible .fp-absence-drawer-head > :nth-child(2) { transition-delay: 35ms; }
.fp-absence-drawer-overlay.is-content-visible .fp-absence-drawer-head > :nth-child(3) { transition-delay: 70ms; }
.fp-absence-drawer-overlay.is-content-visible .fp-absence-drawer-body > .fp-absence-form-section:nth-child(1) { transition-delay: 55ms; }
.fp-absence-drawer-overlay.is-content-visible .fp-absence-drawer-body > .fp-absence-form-section:nth-child(2) { transition-delay: 90ms; }
.fp-absence-drawer-overlay.is-content-visible .fp-absence-drawer-body > .fp-absence-form-section:nth-child(3) { transition-delay: 125ms; }
.fp-absence-drawer-overlay.is-content-visible .fp-absence-drawer-body > .fp-absence-form-section:nth-child(4) { transition-delay: 160ms; }
.fp-absence-drawer-overlay.is-content-visible .fp-absence-drawer-body > .fp-absence-form-section:nth-child(5) { transition-delay: 195ms; }
.fp-absence-drawer-overlay.is-content-visible .fp-absence-drawer-footer > :nth-child(1) { transition-delay: 205ms; }
.fp-absence-drawer-overlay.is-content-visible .fp-absence-drawer-footer > :nth-child(2) { transition-delay: 240ms; }

.fp-absence-drawer-overlay.is-closing .fp-absence-drawer-footer > :nth-child(2) { transition-delay: 0ms; }
.fp-absence-drawer-overlay.is-closing .fp-absence-drawer-footer > :nth-child(1) { transition-delay: 15ms; }
.fp-absence-drawer-overlay.is-closing .fp-absence-drawer-body > .fp-absence-form-section:nth-child(5) { transition-delay: 25ms; }
.fp-absence-drawer-overlay.is-closing .fp-absence-drawer-body > .fp-absence-form-section:nth-child(4) { transition-delay: 40ms; }
.fp-absence-drawer-overlay.is-closing .fp-absence-drawer-body > .fp-absence-form-section:nth-child(3) { transition-delay: 55ms; }
.fp-absence-drawer-overlay.is-closing .fp-absence-drawer-body > .fp-absence-form-section:nth-child(2) { transition-delay: 70ms; }
.fp-absence-drawer-overlay.is-closing .fp-absence-drawer-body > .fp-absence-form-section:nth-child(1) { transition-delay: 85ms; }
.fp-absence-drawer-overlay.is-closing .fp-absence-drawer-head > :nth-child(3) { transition-delay: 95ms; }
.fp-absence-drawer-overlay.is-closing .fp-absence-drawer-head > :nth-child(2) { transition-delay: 105ms; }
.fp-absence-drawer-overlay.is-closing .fp-absence-drawer-head > :nth-child(1) { transition-delay: 115ms; }
.fp-absence-drawer-overlay.is-closing .fp-absence-drawer-head > *,
.fp-absence-drawer-overlay.is-closing .fp-absence-drawer-body > .fp-absence-form-section,
.fp-absence-drawer-overlay.is-closing .fp-absence-drawer-footer > * { transition-duration: 100ms; }

.fp-absence-drawer-head {
  position: relative;
  display: grid;
  min-height: 118px;
  padding: 25px 72px 22px 28px;
  grid-template-columns: 48px minmax(0, 1fr);
  align-items: center;
  gap: 15px;
  border-bottom: 1px solid #e5eaf2;
  background: linear-gradient(135deg, #fbf8ff 0%, #fff 66%);
}

.fp-absence-head-icon {
  display: grid;
  width: 48px;
  height: 48px;
  place-items: center;
  border-radius: 14px;
  color: var(--fp-violet);
  background: #eee6fb;
}

.fp-absence-head-icon svg { width: 24px; height: 24px; }
.fp-absence-drawer-head h2 { margin: 0 0 4px; color: var(--fp-navy); font-size: 1.28rem; line-height: 1.2; }
.fp-absence-drawer-head p { margin: 0; color: #68768a; font-size: .75rem; line-height: 1.45; }
.fp-action-modal .fp-absence-drawer-head .ap-modal-close { top: 24px; right: 25px; display: grid; width: 36px; height: 36px; padding: 0; place-items: center; border: 1px solid #e1e6ef; border-radius: 10px; color: #53627a; background: #fff; box-shadow: none; cursor: pointer; transition: 200ms ease; }
.fp-action-modal .fp-absence-drawer-head .ap-modal-close:hover { border-color: #cdbfeb; color: var(--fp-violet); background: #f7f3ff; }
.fp-action-modal .fp-absence-drawer-head .ap-modal-close svg { width: 18px; height: 18px; }

.fp-absence-drawer-body {
  display: grid;
  min-height: 0;
  padding: 25px 28px 32px;
  align-content: start;
  gap: 24px;
  overflow-y: auto;
  overscroll-behavior: contain;
}

.fp-absence-form-section { display: grid; margin: 0; padding: 0; gap: 10px; border: 0; }
.fp-absence-form-section h3,
.fp-absence-form-section legend { display: flex; margin: 0; padding: 0; align-items: center; gap: 8px; color: #263a58; font-size: .78rem; font-weight: 900; }
.fp-absence-form-section h3 > span,
.fp-absence-form-section legend > span { display: grid; width: 21px; height: 21px; place-items: center; border-radius: 7px; color: #6543a7; background: #f0eafb; font-size: .65rem; }
.fp-absence-form-section h3 small { color: #8a95a5; font-size: .66rem; font-weight: 700; }

.fp-absence-child-picker { position: relative; }
.fp-absence-child-trigger,
.fp-absence-child-menu > button {
  display: grid;
  width: 100%;
  min-height: 66px;
  padding: 10px 13px;
  grid-template-columns: 44px minmax(0, 1fr) 20px;
  align-items: center;
  gap: 12px;
  border: 1px solid #dce3ed;
  border-radius: 10px;
  color: var(--fp-navy);
  background: #fff;
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: 200ms ease;
}
.fp-absence-child-trigger:hover,
.fp-absence-child-trigger:focus-visible { border-color: #aa91dd; background: #fcfaff; box-shadow: 0 8px 22px rgba(70, 45, 125, .08); outline: 3px solid rgba(116, 55, 232, .1); }
.fp-absence-child-trigger > span:nth-child(2),
.fp-absence-child-menu > button > span:nth-child(2) { display: grid; gap: 2px; }
.fp-absence-child-trigger strong,
.fp-absence-child-menu strong { font-size: .8rem; }
.fp-absence-child-trigger small,
.fp-absence-child-menu small { color: #718096; font-size: .68rem; }
.fp-absence-child-trigger > svg { width: 17px; color: #7052ae; transition: transform 200ms ease; }
.fp-absence-child-trigger[aria-expanded="true"] > svg { transform: rotate(180deg); }
.fp-absence-child-avatar { display: grid; width: 44px; height: 44px; overflow: hidden; place-items: center; border-radius: 50%; color: #6241a1; background: #eee7fb; font-size: .85rem; font-weight: 900; }
.fp-absence-child-avatar img { width: 100%; height: 100%; object-fit: cover; }
.fp-absence-child-menu { position: absolute; z-index: 4; top: calc(100% + 7px); right: 0; left: 0; display: grid; padding: 7px; gap: 5px; border: 1px solid #dde3ec; border-radius: 10px; background: #fff; box-shadow: 0 17px 38px rgba(17, 38, 69, .16); }
.fp-absence-child-menu[hidden] { display: none; }
.fp-absence-child-menu > button { min-height: 58px; border: 0; }
.fp-absence-child-menu > button:hover,
.fp-absence-child-menu > button:focus-visible { background: #f7f3ff; outline: none; }
.fp-absence-child-menu > button svg { width: 17px; color: var(--fp-violet); opacity: 0; }
.fp-absence-child-menu > button[aria-selected="true"] { background: #f7f3ff; }
.fp-absence-child-menu > button[aria-selected="true"] svg { opacity: 1; }

.fp-absence-date-field { position: relative; display: block; }
.fp-action-modal .fp-absence-date-field input { min-height: 47px; padding: 10px 13px; border-color: #dce3ed; border-radius: 10px; color: #263a58; background: #fff; color-scheme: light; font-weight: 800; }

.fp-absence-reason-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.fp-absence-reason-grid label { display: block; }
.fp-absence-reason-grid input { position: absolute; opacity: 0; pointer-events: none; }
.fp-absence-reason-grid label > span { display: flex; min-height: 52px; padding: 10px 12px; align-items: center; gap: 9px; border: 1px solid #dde3ec; border-radius: 10px; color: #3a4960; background: #fff; cursor: pointer; transition: transform 200ms ease, border-color 200ms ease, background-color 200ms ease, box-shadow 200ms ease; }
.fp-absence-reason-grid label > span:hover { transform: translateY(-2px); box-shadow: 0 8px 19px rgba(29, 48, 78, .08); }
.fp-absence-reason-grid label svg { width: 20px; height: 20px; flex: 0 0 20px; }
.fp-absence-reason-grid label strong { font-size: .72rem; line-height: 1.2; }
.fp-absence-reason-grid label.pink svg { color: var(--fp-pink); }
.fp-absence-reason-grid label.orange svg { color: var(--fp-orange); }
.fp-absence-reason-grid label.green svg { color: var(--fp-green); }
.fp-absence-reason-grid label.violet svg { color: var(--fp-violet); }
.fp-absence-reason-grid input:focus-visible + span { outline: 3px solid rgba(116, 55, 232, .14); outline-offset: 2px; }
.fp-absence-reason-grid input:checked + span { border-color: #a98edc; color: #583899; background: #f6f1ff; box-shadow: inset 3px 0 0 var(--fp-violet); }

.fp-absence-section-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.fp-absence-section-heading output { color: #8490a1; font-size: .65rem; font-weight: 750; }
.fp-action-modal .fp-absence-form-section textarea { min-height: 92px; padding: 12px 13px; border-color: #dce3ed; border-radius: 10px; font-size: .76rem; line-height: 1.5; resize: vertical; }

.fp-absence-dropzone { display: grid; min-height: 132px; padding: 17px; place-items: center; align-content: center; gap: 4px; border: 1.5px dashed #b9a7dc; border-radius: 11px; color: #58677d; background: #fbf9ff; font: inherit; cursor: pointer; transition: 200ms ease; }
.fp-absence-dropzone:hover,
.fp-absence-dropzone:focus-visible,
.fp-absence-dropzone.is-dragging { border-color: var(--fp-violet); background: #f6f1ff; box-shadow: 0 8px 22px rgba(88, 55, 147, .08); outline: none; }
.fp-absence-dropzone > span { display: grid; width: 37px; height: 37px; margin-bottom: 3px; place-items: center; border-radius: 10px; color: var(--fp-violet); background: #ede5fb; }
.fp-absence-dropzone svg { width: 20px; height: 20px; }
.fp-absence-dropzone strong { color: #34435a; font-size: .75rem; }
.fp-absence-dropzone small { font-size: .67rem; }
.fp-absence-dropzone u { color: #6543a7; font-weight: 850; text-underline-offset: 2px; }
.fp-absence-dropzone em { margin-top: 3px; color: #8994a4; font-size: .62rem; font-style: normal; }
.fp-absence-file-preview { display: grid; min-height: 58px; padding: 8px 10px; grid-template-columns: 42px minmax(0, 1fr) 32px; align-items: center; gap: 10px; border: 1px solid #dce3ed; border-radius: 10px; background: #fff; }
.fp-absence-file-preview[hidden] { display: none; }
.fp-absence-file-preview > img,
.fp-absence-file-preview > span:first-child { display: grid; width: 42px; height: 42px; object-fit: cover; place-items: center; border-radius: 8px; color: var(--fp-violet); background: #f0eafb; }
.fp-absence-file-preview > span:nth-child(2) { display: grid; min-width: 0; gap: 2px; }
.fp-absence-file-preview strong { overflow: hidden; color: #34435a; font-size: .7rem; text-overflow: ellipsis; white-space: nowrap; }
.fp-absence-file-preview small { color: #8490a1; font-size: .62rem; }
.fp-absence-file-preview button { display: grid; width: 30px; height: 30px; padding: 0; place-items: center; border: 0; border-radius: 8px; color: #6f7c8e; background: #f4f6f9; cursor: pointer; }
.fp-absence-file-preview button svg { width: 15px; height: 15px; }

.fp-absence-drawer-footer { display: flex; min-height: 78px; padding: 15px 28px; align-items: center; justify-content: flex-end; gap: 10px; border-top: 1px solid #e5eaf2; background: rgba(255, 255, 255, .97); box-shadow: 0 -8px 22px rgba(22, 41, 72, .04); }
.fp-absence-drawer-footer button { display: inline-flex; min-height: 43px; padding: 8px 17px; align-items: center; justify-content: center; gap: 8px; border-radius: 9px; font: inherit; font-size: .73rem; font-weight: 900; cursor: pointer; transition: transform 200ms ease, box-shadow 200ms ease, opacity 200ms ease; }
.fp-absence-drawer-footer .fp-absence-cancel { border: 1px solid #d8e0ea; color: #53627a; background: #fff; }
.fp-absence-drawer-footer button[type="submit"] { border: 0; color: #fff; background: linear-gradient(90deg, #2d7de0, #7439d4); box-shadow: 0 8px 18px rgba(86, 54, 164, .18); }
.fp-absence-drawer-footer button:hover:not(:disabled) { transform: translateY(-2px); box-shadow: 0 10px 22px rgba(48, 42, 95, .16); }
.fp-absence-drawer-footer button:disabled { cursor: wait; opacity: .65; }
.fp-absence-drawer-footer svg { width: 16px; height: 16px; }
.fp-absence-drawer-body > [data-modal-status] { min-height: 0; margin: -10px 0 0; }

@media (max-width: 900px) {
  .fp-action-modal .fp-absence-drawer { width: 70vw; min-width: 500px; }
}

@media (max-width: 620px) {
  .fp-action-modal.fp-absence-drawer-overlay { padding: 0; }
  .fp-action-modal .fp-absence-drawer { width: 100vw; min-width: 0; height: 100dvh; max-height: none; padding: 0; }
  .fp-absence-drawer-head { min-height: 105px; padding: 20px 58px 18px 18px; grid-template-columns: 43px minmax(0, 1fr); gap: 12px; }
  .fp-absence-head-icon { width: 43px; height: 43px; }
  .fp-absence-drawer-head h2 { font-size: 1.12rem; }
  .fp-action-modal .fp-absence-drawer-head .ap-modal-close { top: 19px; right: 15px; }
  .fp-absence-drawer-body { padding: 21px 18px 28px; gap: 21px; }
  .fp-absence-reason-grid { grid-template-columns: 1fr; }
  .fp-absence-reason-grid label > span { min-height: 47px; }
  .fp-absence-drawer-footer { min-height: 72px; padding: 12px 18px; }
  .fp-absence-drawer-footer button { flex: 1; padding-inline: 10px; }
}

@media (prefers-reduced-motion: reduce) {
  .fp-absence-drawer-overlay,
  .fp-action-modal .fp-absence-drawer,
  .fp-absence-drawer-head > *,
  .fp-absence-drawer-body > .fp-absence-form-section,
  .fp-absence-drawer-footer > * { transition-duration: 1ms; transition-delay: 0ms !important; }
}

.fp-attachment,
.ap-attachment { display: inline-flex; width: min(100%, 330px); margin-top: 9px; padding: 9px 11px; align-items: center; gap: 9px; border: 1px solid #d8e1ec; border-radius: 8px; color: #22354f; background: #fff; font: inherit; text-align: left; cursor: pointer; }
.fp-attachment > span:first-child,
.ap-attachment > span:first-child { display: grid; width: 30px; height: 30px; flex: 0 0 30px; place-items: center; border-radius: 7px; color: #6543a7; background: #f1ebfb; }
.fp-attachment > span:last-child,
.ap-attachment > span:last-child { display: flex; min-width: 0; flex-direction: column; }
.fp-attachment strong,
.ap-attachment strong { overflow: hidden; font-size: .7rem !important; text-overflow: ellipsis; white-space: nowrap; }
.fp-attachment small,
.ap-attachment small { margin-top: 2px; color: #7b8798 !important; font-size: .62rem !important; }

body.admin-app .ap-attachment { color: #243650; background: #fff; }

@media (max-width: 620px) {
  .fp-action-modal { padding: 10px; }
  .fp-action-modal .ap-modal-card { max-height: calc(100vh - 20px); padding: 24px 18px; }
  body.family-app .fp-chat-reply { grid-template-columns: 1fr; }
  body.family-app .fp-chat-reply > button { grid-column: 1; grid-row: auto; width: 100%; }
}

/* Pixel-perfect public reference system: official mockups 2026-08-12 */
@font-face { font-family: "Nunito Local"; src: url("/fonts/nunito-400.woff2") format("woff2"); font-style: normal; font-weight: 400; font-display: swap; }
@font-face { font-family: "Nunito Local"; src: url("/fonts/nunito-600.woff2") format("woff2"); font-style: normal; font-weight: 600; font-display: swap; }
@font-face { font-family: "Nunito Local"; src: url("/fonts/nunito-700.woff2") format("woff2"); font-style: normal; font-weight: 700; font-display: swap; }
@font-face { font-family: "Nunito Local"; src: url("/fonts/nunito-800.woff2") format("woff2"); font-style: normal; font-weight: 800; font-display: swap; }
@font-face { font-family: "Nunito Local"; src: url("/fonts/nunito-900.woff2") format("woff2"); font-style: normal; font-weight: 900; font-display: swap; }

body.public-site {
  --public-navy: #082957;
  --public-blue: #1673d2;
  --public-violet: #7437e8;
  --public-pink: #f23878;
  --public-green: #36a853;
  --public-orange: #f59e0b;
  --public-muted: #344d70;
  --public-line: #dfe4ec;
  --public-canvas: min(calc(100% - 48px), 1280px);
  min-width: 0;
  color: var(--public-navy);
  background-color: #fffefd;
  background-image:
    radial-gradient(circle at 3% 14%, rgba(242,56,120,.28) 0 3px, transparent 3.5px),
    radial-gradient(circle at 97% 19%, rgba(54,168,83,.24) 0 3px, transparent 3.5px),
    radial-gradient(circle at 7% 43%, rgba(22,115,210,.24) 0 3px, transparent 3.5px),
    radial-gradient(circle at 94% 62%, rgba(245,158,11,.26) 0 3px, transparent 3.5px),
    radial-gradient(circle at 4% 83%, rgba(116,55,232,.18) 0 2px, transparent 2.5px),
    radial-gradient(circle at 98% 88%, rgba(242,56,120,.22) 0 3px, transparent 3.5px);
  font-family: "Nunito Local", "Trebuchet MS", Arial, sans-serif;
  font-size: 14px;
  line-height: 1.5;
}

body.public-site *, body.public-site *::before, body.public-site *::after { box-sizing: border-box; }
body.public-site h1, body.public-site h2, body.public-site h3, body.public-site strong { font-family: inherit; letter-spacing: 0; }
body.public-site h1, body.public-site h2, body.public-site h3 { font-weight: 900; }
body.public-site img { display: block; max-width: 100%; }
body.public-site .visually-hidden { position: absolute !important; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); border: 0; white-space: nowrap; }

body.public-site .public-header {
  position: sticky;
  top: 8px;
  z-index: 1000;
  display: grid;
  width: min(calc(100% - 28px), 1320px);
  min-height: 68px;
  margin: 8px auto 0;
  padding: 8px 18px;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 18px;
  border: 1px solid rgba(220,225,234,.7);
  border-radius: 23px;
  background: rgba(255,255,255,.88);
  box-shadow: 0 9px 26px rgba(30,53,85,.1);
  -webkit-backdrop-filter: blur(16px) saturate(140%);
  backdrop-filter: blur(16px) saturate(140%);
}
body.public-site .public-brand { display: inline-flex; min-width: max-content; align-items: center; gap: 10px; color: var(--public-navy); text-decoration: none; }
body.public-site .public-brand .project-logo { width: 45px; height: 45px; flex: 0 0 45px; }
body.public-site .public-brand strong { font-size: 1.28rem; font-weight: 900; }
body.public-site .public-menu { display: flex; min-width: 0; align-items: center; justify-content: center; gap: clamp(13px, 2.15vw, 31px); }
body.public-site .public-menu a { position: relative; padding: 22px 0 19px; color: #071d43; font-size: .79rem; font-weight: 900; text-decoration: none; white-space: nowrap; }
body.public-site .public-menu a::after { position: absolute; right: 0; bottom: 10px; left: 0; height: 3px; border-radius: 4px; background: var(--public-pink); content: ""; opacity: 0; transform: scaleX(.3); transition: .18s ease; }
body.public-site .public-menu a:hover::after, body.public-site .public-menu a[aria-current="page"]::after { opacity: 1; transform: none; }
body.public-site .public-header-actions { display: flex; align-items: center; gap: 8px; }
body.public-site .family-pill, body.public-site .public-place-link { display: inline-flex; min-height: 39px; padding: 8px 14px; align-items: center; justify-content: center; gap: 6px; border: 1.5px solid #d7c2ff; border-radius: 14px; color: #5625bd; background: #fff; font-size: .71rem; font-weight: 900; text-decoration: none; white-space: nowrap; }
body.public-site .public-place-link { border-color: #5d21bf; color: #fff; background: linear-gradient(115deg,#7d3ce8,#4d179d); }
body.public-site:not(.public-home-page) .family-pill { border-color: #ffd05c; color: #082957; background: #ffc943; }
body.public-daily-page .family-pill { border-color: #ffdce8; background: #ffe8ef; }
body.public-project-page .family-pill { border-color: #d7c2ff; color: #5625bd; background: #fff; }
body.public-site .public-menu-toggle { display: none; }

body.public-site .public-reference-main,
body.public-reference .reference-inner {
  width: var(--public-canvas) !important;
  max-width: none;
  margin: 0 auto;
  overflow: visible;
  border-radius: 0;
  background: rgba(255,255,255,.76);
  box-shadow: none;
}
body.public-site .public-reference-section, body.public-reference .reference-page-section { width: 100%; margin: 0; }
body.public-site .reference-kicker, body.public-site .public-eyebrow { color: var(--public-pink); font-size: .68rem; font-weight: 900; letter-spacing: 0; text-transform: uppercase; }
body.public-site .reference-breadcrumb { margin: 0 0 20px; color: #18365e !important; font-size: .7rem; font-weight: 800; }
body.public-site .reference-breadcrumb span { margin: 0 9px; color: #7b8798; }
body.public-site .reference-section-title { margin: 0 auto 22px; text-align: center; }
body.public-site .reference-section-title h2 { margin: 0; color: var(--public-navy); font-size: 1.75rem; line-height: 1.08; }
body.public-site .reference-section-title > p:not(.reference-kicker) { max-width: 720px; margin: 8px auto 0; color: #304767; font-size: .82rem; }
body.public-site .reference-heading-mark { display: block; margin-top: 8px; color: var(--public-pink); font-size: 1rem; line-height: 1; }
body.public-site .reference-heading-mark::before, body.public-site .reference-heading-mark::after { display: inline-block; width: 24px; height: 2px; margin: 0 7px 4px; border-radius: 2px; background: var(--public-pink); content: ""; }

body.public-site .reference-button, body.public-site .primary-cta, body.public-site .secondary-button {
  display: inline-flex;
  min-height: 40px;
  padding: 8px 17px;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: 1.5px solid transparent;
  border-radius: 12px;
  font-family: inherit;
  font-size: .74rem;
  font-weight: 900;
  line-height: 1;
  text-decoration: none;
  cursor: pointer;
}
body.public-site .reference-button-primary, body.public-site .primary-cta { border-color: #6024c6; color: #fff; background: linear-gradient(105deg,#f23878 0%,#7135dc 63%,#4266f4 100%); box-shadow: 0 8px 17px rgba(99,50,202,.15); }
body.public-site .reference-button-secondary, body.public-site .secondary-button { border-color: #7b45dc; color: #6230bf; background: #fff; }
body.public-site .reference-text-link, body.public-site .text-link { color: #612dc3; font-size: .75rem; font-weight: 900; text-decoration: none; }
body.public-site .hero-hand-mark { display: block; margin-top: 14px; color: var(--public-pink); font-size: 2.8rem; line-height: 1; transform: rotate(-9deg); }

/* Home */
body.public-home-page .home-hero { display: grid; min-height: 348px; padding: 38px 22px 24px; grid-template-columns: minmax(0,.88fr) minmax(450px,1.12fr); align-items: center; gap: 35px; }
body.public-home-page .home-hero-copy { max-width: 470px; }
body.public-home-page .home-hero-copy h1 { margin: 16px 0 18px; color: var(--public-navy); font-size: 3.65rem; line-height: .94; }
body.public-home-page .home-hero-copy > p:not(.reference-kicker) { max-width: 430px; margin: 0; color: #16365e; font-size: .89rem; line-height: 1.7; }
body.public-home-page .reference-actions { display: flex; margin-top: 20px; flex-wrap: wrap; gap: 12px; }
body.public-home-page .home-hero-media { position: relative; width: 100%; height: 325px; margin: 0; }
body.public-home-page .home-hero-media::before, body.public-home-page .home-hero-media::after { position: absolute; z-index: -1; border-radius: 50%; content: ""; }
body.public-home-page .home-hero-media::before { top: -20px; right: -22px; width: 120px; height: 120px; background: #ffe4a6; }
body.public-home-page .home-hero-media::after { right: 5px; bottom: -15px; width: 100px; height: 75px; border-radius: 48% 52% 64% 36%; background: #ffc4d7; transform: rotate(-27deg); }
body.public-home-page .home-hero-media img { width: 100%; height: 100%; object-fit: cover; object-position: center; border-radius: 48% 52% 49% 51% / 40% 44% 56% 60%; }

body.public-home-page .home-pillars { min-height: 190px; padding: 4px 22px 22px; }
body.public-home-page .home-pillars .reference-section-title { margin-bottom: 18px; }
body.public-home-page .home-pillar-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 0; }
body.public-home-page .home-pillar-grid article { display: grid; min-height: 112px; padding: 0 28px; grid-template-columns: 1fr; justify-items: center; align-content: start; border-right: 1px dotted #c7ced8; text-align: center; }
body.public-home-page .home-pillar-grid article:last-child { border-right: 0; }
body.public-home-page .home-pillar-grid .reference-icon { width: 46px; height: 46px; margin-bottom: 9px; font-size: 1.45rem; }
body.public-home-page .home-pillar-grid h3 { margin: 0 0 5px; font-size: .94rem; }
body.public-home-page .home-pillar-grid p { margin: 0; color: #17365e; font-size: .67rem; line-height: 1.55; }

body.public-home-page .home-life { display: grid; min-height: 175px; padding: 24px 22px; grid-template-columns: 190px 1fr; align-items: center; gap: 24px; background: #fff; }
body.public-home-page .home-life-copy h2 { margin: 0 0 13px; font-size: 1.35rem; }
body.public-home-page .home-life-copy h2::after { display: block; width: 27px; height: 2px; margin-top: 10px; background: var(--public-pink); content: ""; }
body.public-home-page .home-life-copy p { margin: 0 0 12px; color: #17365e; font-size: .69rem; line-height: 1.65; }
body.public-home-page .home-life-gallery { display: grid; grid-template-columns: repeat(5,1fr); gap: 14px; }
body.public-home-page .home-life-gallery img { width: 100%; height: 126px; object-fit: cover; border-radius: 13px; }

body.public-home-page .home-stages { min-height: 225px; padding: 20px 22px 24px; }
body.public-home-page .home-stages .reference-section-title { margin-bottom: 14px; }
body.public-home-page .home-stages .reference-section-title > p { display: none; }
body.public-home-page .home-stage-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 15px; }
body.public-home-page .home-stage-grid article { display: grid; height: 142px; overflow: hidden; grid-template-columns: 1.05fr .95fr; border: 1px solid #e6e8ed; border-radius: 15px; background: rgba(255,255,255,.94); box-shadow: 0 7px 17px rgba(17,43,82,.07); }
body.public-home-page .home-stage-grid article > div { padding: 15px 8px 12px 16px; }
body.public-home-page .home-stage-grid h3 { margin: 0 0 7px; font-size: 1.04rem; }
body.public-home-page .home-stage-grid p { margin: 0 0 8px; color: #18365e; font-size: .64rem; line-height: 1.5; }
body.public-home-page .home-stage-grid a { color: inherit; font-size: .67rem; font-weight: 900; text-decoration: none; }
body.public-home-page .home-stage-grid img { width: 100%; height: 100%; object-fit: cover; }
body.public-home-page .stage-pink { color: var(--public-green); }
body.public-home-page .stage-green { color: var(--public-pink); }
body.public-home-page .stage-blue { color: var(--public-blue); }

body.public-home-page .home-team { min-height: 145px; padding: 14px 22px 20px; text-align: center; }
body.public-home-page .home-team .reference-section-title { margin-bottom: 10px; }
body.public-home-page .home-team .reference-section-title > p { display: none; }
body.public-home-page .home-team-grid { display: flex; min-height: 45px; align-items: center; justify-content: center; gap: 0; }
body.public-home-page .home-team-grid .public-team-card { width: 64px; min-height: 64px; margin-left: -8px; padding: 0; overflow: hidden; border: 4px solid #fff; border-radius: 50%; }
body.public-home-page .home-team-grid .public-team-card img, body.public-home-page .home-team-grid .public-team-avatar { width: 100%; height: 100%; margin: 0; border-radius: 50%; object-fit: cover; }
body.public-home-page .home-team-grid .public-team-card div { display: none; }
body.public-home-page .home-team-link { margin-top: 8px; }
body.public-home-page .home-team .public-empty { min-height: 45px; padding: 10px; }

body.public-home-page .home-practical { display: grid; min-height: 82px; margin: 0 22px 16px; padding: 13px 22px; border: 1px solid #e8e9ee; border-radius: 14px; background: #fff; box-shadow: 0 8px 20px rgba(17,43,82,.07); }
body.public-home-page .home-practical > header { display: none; }
body.public-home-page .home-practical dl { display: grid; margin: 0; grid-template-columns: repeat(4,1fr); gap: 18px; }
body.public-home-page .home-practical dl > div { display: grid; grid-template-columns: 42px 1fr; grid-template-rows: auto auto; align-content: center; column-gap: 10px; }
body.public-home-page .home-practical .reference-icon { width: 40px; height: 40px; grid-row: 1 / 3; }
body.public-home-page .home-practical dt { font-size: .7rem; font-weight: 900; }
body.public-home-page .home-practical dd { margin: 0; color: #16365e; font-size: .65rem; }

body.public-home-page .home-final-cta { display: grid; min-height: 125px; margin: 0 22px; overflow: hidden; padding: 0 26px 0 0; grid-template-columns: 250px 1fr; align-items: center; gap: 30px; border-radius: 25px 25px 0 0; background: #f3edff; }
body.public-home-page .home-final-cta img { width: 100%; height: 125px; object-fit: cover; border-radius: 0 64px 64px 0; }
body.public-home-page .home-final-cta h2 { margin: 0; font-size: 1.45rem; }
body.public-home-page .home-final-cta p { margin: 4px 0 0; color: #17365e; font-size: .7rem; }
body.public-home-page .home-final-cta .reference-actions { margin-top: 9px; }

/* Shared internal page hero and sections */
body.public-reference .reference-page-hero, body.public-daily-page .public-split-hero { display: grid; min-height: 340px; padding: 31px 28px 26px; grid-template-columns: minmax(0,.78fr) minmax(430px,1.22fr); align-items: center; gap: 42px; background: transparent; }
body.public-reference .reference-page-hero > div, body.public-daily-page .public-split-hero > div { width: auto; max-width: 480px; margin: 0; padding: 0; }
body.public-reference .reference-page-hero h1, body.public-daily-page .public-split-hero h1 { margin: 0 0 14px; color: var(--public-navy); font-size: 3.6rem; line-height: .98; }
body.public-reference .reference-page-hero h1 > span { color: var(--public-pink); font-size: .7em; font-weight: 400; }
body.public-reference .reference-page-hero strong, body.public-daily-page .public-split-hero strong { display: block; margin: 0 0 16px; color: var(--public-blue); font-size: 1.22rem; line-height: 1.4; }
body.public-project-page .reference-page-hero strong { color: var(--public-navy); }
body.public-reference .reference-page-hero p:not(.reference-breadcrumb), body.public-daily-page .public-split-hero p:not(.reference-breadcrumb) { margin: 0; color: #17365e; font-size: .82rem; line-height: 1.7; }
body.public-reference .reference-page-hero > img, body.public-daily-page .public-split-hero > img { width: 100%; height: 275px; object-fit: cover; border-radius: 48% 52% 46% 54% / 55% 45% 55% 45%; }
body.public-reference .reference-page-section, body.public-daily-page .public-page-section { padding: 23px 28px; }

/* Project */
body.public-project-page .reference-page-hero { min-height: 335px; }
body.public-project-page .reference-page-hero > img { height: 260px; }
body.public-project-page .reference-value-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 12px; }
body.public-project-page .reference-value-grid article { display: flex; min-height: 150px; padding: 17px 13px; align-items: center; justify-content: flex-start; border: 1px solid #e1e5ec; border-radius: 13px; background: #fff; box-shadow: 0 7px 18px rgba(17,43,82,.06); text-align: center; }
body.public-project-page .reference-value-grid .reference-icon { width: 45px; height: 45px; margin: 0 0 10px; }
body.public-project-page .reference-value-grid strong { font-size: .91rem; }
body.public-project-page .reference-value-grid p { margin: 6px 0 0; color: #15365f; font-size: .65rem; line-height: 1.5; }
body.public-project-page #valeurs { min-height: 215px; }
body.public-project-page .reference-approach { min-height: 345px; }
body.public-project-page .reference-approach-grid { display: grid; grid-template-columns: repeat(5,1fr); gap: 12px; }
body.public-project-page .reference-approach-grid article { display: flex; min-width: 0; padding: 0 10px; align-items: center; flex-direction: column; border-right: 1px dotted #c7ced8; text-align: center; }
body.public-project-page .reference-approach-grid article:last-child { border-right: 0; }
body.public-project-page .reference-approach-grid .reference-icon { width: 42px; height: 42px; margin-bottom: 7px; font-size: 1.15rem; }
body.public-project-page .reference-approach-grid h3 { min-height: 35px; margin: 0 0 6px; color: inherit; font-size: .88rem; line-height: 1.2; }
body.public-project-page .reference-approach-grid article:nth-child(1) { color: var(--public-green); }
body.public-project-page .reference-approach-grid article:nth-child(2) { color: var(--public-pink); }
body.public-project-page .reference-approach-grid article:nth-child(3) { color: var(--public-orange); }
body.public-project-page .reference-approach-grid article:nth-child(4) { color: var(--public-blue); }
body.public-project-page .reference-approach-grid article:nth-child(5) { color: var(--public-violet); }
body.public-project-page .reference-approach-grid p { min-height: 86px; margin: 0; color: #15365f; font-size: .61rem; line-height: 1.55; }
body.public-project-page .reference-approach-grid img { width: 100%; height: 92px; margin-top: 10px; object-fit: cover; border-radius: 12px; }
body.public-project-page .reference-journey { min-height: 245px; margin: 0 28px 15px; padding: 18px 18px 14px; border-radius: 18px; background: rgba(255,255,255,.88); box-shadow: 0 9px 22px rgba(17,43,82,.06); }
body.public-project-page .reference-journey-layout { display: grid; grid-template-columns: 125px 1fr 125px; align-items: center; gap: 18px; }
body.public-project-page .reference-journey-layout > img { width: 125px; height: 145px; object-fit: cover; border-radius: 14px; }
body.public-project-page .reference-stage-strip { display: grid; grid-template-columns: repeat(3,1fr); }
body.public-project-page .reference-stage-strip article { padding: 8px 15px; border-right: 1px solid #d4d9e2; text-align: center; }
body.public-project-page .reference-stage-strip article:last-child { border-right: 0; }
body.public-project-page .reference-stage-strip span { color: var(--public-pink); font-size: .67rem; font-weight: 900; }
body.public-project-page .reference-stage-strip strong { display: block; margin: 4px 0; font-size: .9rem; }
body.public-project-page .reference-stage-strip p { margin: 0; color: #14365e; font-size: .61rem; }
body.public-project-page .reference-journey-note { max-width: 660px; margin: 10px auto 0; color: #15365f; font-size: .63rem; text-align: center; }
body.public-project-page .reference-wide-panel { display: grid; min-height: 165px; margin: 0 auto 14px; padding: 14px; grid-template-columns: 315px 1fr; align-items: center; gap: 28px; border-radius: 54px; background: #fff; box-shadow: 0 9px 24px rgba(17,43,82,.07); }
body.public-project-page .reference-wide-panel img { width: 100%; height: 140px; object-fit: cover; border-radius: 38px; }
body.public-project-page .reference-wide-panel h2 { margin: 0; font-size: 1.45rem; }
body.public-project-page .reference-wide-panel p { margin: 8px 0; color: #15365f; font-size: .66rem; }

body.public-reference .reference-next-cta { display: flex; min-height: 105px; margin: 0; padding: 18px 55px; align-items: center; justify-content: space-between; gap: 26px; border-radius: 0; background: #f2ecff; }
body.public-reference .reference-next-cta > div { max-width: 660px; }
body.public-reference .reference-next-cta h2 { margin: 0; font-size: 1.35rem; }
body.public-reference .reference-next-cta p { margin: 4px 0 0; color: #15365f; font-size: .68rem; }

/* Daily */
body.public-daily-page .public-split-hero { min-height: 340px; }
body.public-daily-page .public-split-hero strong { color: var(--public-pink); font-size: 1.25rem; font-style: italic; }
body.public-daily-page .public-hours { display: flex; width: fit-content; margin-top: 18px; padding: 10px 14px; align-items: center; gap: 12px; border: 1px solid #e3e6eb; border-radius: 14px; background: #fff; box-shadow: 0 7px 18px rgba(17,43,82,.06); }
body.public-daily-page .public-hours > span { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 50%; color: var(--public-pink); background: #ffe9f0; font-size: 1.4rem; }
body.public-daily-page .public-hours strong { margin: 0; color: var(--public-navy); font-size: .97rem; font-style: normal; }
body.public-daily-page .public-hours small { display: block; color: #17365e; font-size: .64rem; }
body.public-daily-page .daily-moments { min-height: 250px; background: transparent !important; }
body.public-daily-page .public-page-section > header { margin: 0 auto 18px; text-align: center; }
body.public-daily-page .public-page-section > header h2 { margin: 0; font-size: 1.62rem; }
body.public-daily-page .public-moment-grid { display: grid; grid-template-columns: repeat(6,1fr); gap: 10px; }
body.public-daily-page .public-moment-grid article { min-height: 170px; padding: 14px 10px; border: 1px solid #e1e5eb; border-radius: 14px; background: #fff; text-align: center; box-shadow: 0 6px 16px rgba(17,43,82,.04); }
body.public-daily-page .public-moment-grid .reference-icon { width: 45px; height: 45px; margin: 0 auto 8px; font-size: 1.45rem; }
body.public-daily-page .public-moment-grid h3 { min-height: 36px; margin: 0 0 7px; font-size: .82rem; line-height: 1.25; }
body.public-daily-page .public-moment-grid p { margin: 0; color: #15365f; font-size: .61rem; line-height: 1.55; }
body.public-daily-page .public-moment-grid article:nth-child(1) h3, body.public-daily-page .public-moment-grid article:nth-child(4) h3 { color: var(--public-orange); }
body.public-daily-page .public-moment-grid article:nth-child(2) h3 { color: var(--public-green); }
body.public-daily-page .public-moment-grid article:nth-child(3) h3 { color: var(--public-pink); }
body.public-daily-page .public-moment-grid article:nth-child(5) h3 { color: var(--public-blue); }
body.public-daily-page .public-moment-grid article:nth-child(6) h3 { color: var(--public-violet); }
body.public-daily-page .daily-rhythms { min-height: 300px; padding-bottom: 13px; }
body.public-daily-page .public-tabs { display: grid; width: calc(100% - 100px); margin: 0 auto; grid-template-columns: repeat(3,1fr); gap: 12px; }
body.public-daily-page .public-tabs button { min-height: 48px; padding: 9px; border: 1px solid #dfe3e9; border-radius: 14px 14px 0 0; color: var(--public-navy); background: #fff; font: inherit; font-size: .91rem; font-weight: 900; cursor: pointer; }
body.public-daily-page .public-tabs button span { margin-right: 8px; color: var(--public-pink); }
body.public-daily-page .public-tabs button.active { border-color: #ff82ab; color: var(--public-pink); }
body.public-daily-page .public-tab-panel { display: grid; min-height: 190px; width: calc(100% - 40px); margin: 0 auto; padding: 17px 26px; grid-template-columns: 250px 1fr; align-items: center; gap: 25px; border: 1px solid #dfe3e9; border-radius: 19px; background: #fff; box-shadow: 0 8px 20px rgba(17,43,82,.06); }
body.public-daily-page .public-tab-panel[hidden] { display: none; }
body.public-daily-page .daily-rhythm-visual { display: grid; min-height: 150px; place-items: center; border-radius: 45% 55% 48% 52%; background: #fff0f5; font-size: 5.6rem; }
body.public-daily-page .daily-rhythm-visual small { margin-top: -35px; color: #5bc65d; font-size: 1rem; letter-spacing: 14px; }
body.public-daily-page .public-tab-panel h3 { margin: 0 0 5px; font-size: 1.18rem; }
body.public-daily-page .public-tab-panel p { margin: 0 0 10px; color: #15365f; font-size: .7rem; }
body.public-daily-page .public-tab-panel ul { display: grid; margin: 0; padding: 0; grid-template-columns: repeat(4,1fr); gap: 7px; list-style: none; }
body.public-daily-page .public-tab-panel li { padding: 8px; border-radius: 9px; color: #17365e; background: #fff0f5; font-size: .57rem; font-weight: 800; }
body.public-daily-page .daily-note { display: block; margin-top: 9px; color: #17365e; font-size: .58rem; }
body.public-daily-page .public-highlight-grid { display: grid; min-height: 177px; padding: 0 45px 13px; grid-template-columns: repeat(2,1fr); gap: 15px; }
body.public-daily-page .public-highlight-grid article { display: grid; min-height: 165px; padding: 16px 18px; grid-template-columns: 44px 1fr 100px; align-items: start; gap: 10px; border-radius: 18px; }
body.public-daily-page .public-highlight-grid .orange { background: #fff7e3; }
body.public-daily-page .public-highlight-grid .green { background: #f0f8e9; }
body.public-daily-page .public-highlight-grid h2 { margin: 3px 0 7px; font-size: 1.2rem; line-height: 1.05; }
body.public-daily-page .public-highlight-grid p { margin: 0 0 6px; color: #17365e; font-size: .62rem; line-height: 1.5; }
body.public-daily-page .highlight-illustration { align-self: end; font-size: 4.4rem; }
body.public-daily-page .daily-final-cta { min-height: 93px; margin: 0 45px; padding: 13px 30px; border-radius: 18px 18px 0 0; }
body.public-daily-page .daily-final-cta > .reference-icon { width: 58px; height: 58px; color: #fff; background: #6133b4; font-size: 1.8rem; }

/* Spaces and team */
body.public-spaces-page .reference-page-hero strong, body.public-team-page .reference-page-hero strong { color: var(--public-blue); }
body.public-spaces-page .reference-space-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; }
body.public-spaces-page .reference-space-grid .public-content-card { overflow: hidden; min-height: 245px; border: 1px solid #e1e5ec; border-radius: 16px; background: #fff; box-shadow: 0 7px 18px rgba(17,43,82,.07); }
body.public-spaces-page .reference-space-grid .public-content-card img { width: 100%; height: 145px; object-fit: cover; }
body.public-spaces-page .reference-space-grid .public-content-card > div { padding: 14px 17px; }
body.public-spaces-page .reference-space-grid h2 { margin: 0 0 6px; font-size: 1rem; }
body.public-spaces-page .reference-space-grid p { margin: 0; color: #15365f; font-size: .67rem; }
body.public-site .public-empty { min-height: 115px; padding: 25px; border: 1px dashed #bfc9d7; border-radius: 14px; background: #f7f9fc; text-align: center; }
body.public-site .public-empty strong { font-size: .9rem; }
body.public-site .public-empty p { margin: 6px 0 0; color: #536984; font-size: .72rem; }
body.public-spaces-page .public-age-section { margin-top: 10px; border-radius: 20px; background: #f5f3ff; }
body.public-spaces-page .reference-stage-strip { display: grid; grid-template-columns: repeat(3,1fr); }
body.public-spaces-page .reference-stage-strip article { min-height: 100px; padding: 3px 38px 3px 70px; border-right: 1px solid #bcc7d6; }
body.public-spaces-page .reference-stage-strip article:last-child { border-right: 0; }
body.public-spaces-page .reference-stage-strip span { color: var(--public-pink); font-size: .74rem; font-weight: 900; }
body.public-spaces-page .reference-stage-strip strong { display: block; margin: 1px 0 8px; font-size: .95rem; }
body.public-spaces-page .reference-stage-strip p { margin: 0; color: #15365f; font-size: .63rem; }
body.public-spaces-page .reference-yellow-cta, body.public-team-page .reference-yellow-cta { display: grid; min-height: 145px; padding: 13px 25px; grid-template-columns: 390px 1fr; align-items: center; gap: 25px; border-radius: 20px 20px 0 0; background: #fff7e7; }
body.public-spaces-page .reference-yellow-cta img, body.public-team-page .reference-yellow-cta img { width: 100%; height: 120px; object-fit: cover; border-radius: 45px; }

body.public-team-page .reference-page-hero > img { object-position: center; }
body.public-team-page .reference-team-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 14px; }
body.public-team-page .reference-team-grid .public-team-card { display: flex; min-height: 205px; padding: 14px 10px; align-items: center; justify-content: flex-start; flex-direction: column; border: 1px solid #dfe4eb; border-radius: 14px; background: #fff; text-align: center; box-shadow: none; }
body.public-team-page .reference-team-grid img, body.public-team-page .reference-team-grid .public-team-avatar { width: 86px; height: 86px; margin: 0 0 8px; flex: 0 0 86px; border-radius: 50%; object-fit: cover; }
body.public-team-page .reference-team-grid h2 { margin: 0 0 3px; font-size: 1rem; }
body.public-team-page .reference-team-grid strong { color: var(--public-pink); font-size: .68rem; }
body.public-team-page .reference-team-grid .public-role-tags { margin-top: 7px; gap: 4px; }
body.public-team-page .reference-team-grid .public-role-tags em { padding: 4px 7px; border-radius: 12px; font-size: .58rem; }
body.public-team-page .reference-team-principles { margin: 12px 0; padding: 20px 45px; border-radius: 20px; background: #f5f1ff; }
body.public-team-page .public-principle-grid { display: grid; grid-template-columns: repeat(3,1fr); }
body.public-team-page .public-principle-grid article { display: grid; min-height: 90px; padding: 8px 26px; grid-template-columns: 58px 1fr; align-items: center; gap: 14px; border-right: 1px solid #d8dce5; background: transparent; }
body.public-team-page .public-principle-grid article:last-child { border-right: 0; }

body.public-team-page .public-principle-grid .reference-icon { width: 56px; height: 56px; margin: 0; font-size: 2rem; }
body.public-team-page .public-principle-grid h3 { margin: 0 0 4px; font-size: .95rem; }
body.public-team-page .public-principle-grid p { margin: 0; color: #15365f; font-size: .65rem; }

/* Registration */
body.public-registration-page .public-page-intro { display: grid; min-height: 285px; padding: 28px 43px 20px; grid-template-columns: .82fr 1.18fr; align-items: center; gap: 45px; text-align: left; }
body.public-registration-page .public-page-intro > div { max-width: 430px; }
body.public-registration-page .public-page-intro h1 { margin: 11px 0 8px; font-size: 3.7rem; line-height: .92; }
body.public-registration-page .public-page-intro strong { margin: 0 0 8px; color: var(--public-pink); font-size: 1.08rem; }
body.public-registration-page .public-page-intro p { margin: 0; color: #17365e; font-size: .78rem; }
body.public-registration-page .public-page-intro > img { width: 100%; height: 240px; object-fit: cover; border-radius: 48% 52% 46% 54% / 55% 45% 55% 45%; }
body.public-registration-page .registration-steps { padding: 0 28px 15px; }
body.public-registration-page .registration-steps .reference-section-title { margin-bottom: 13px; }
body.public-registration-page .registration-steps .reference-section-title h2 { font-size: 1.55rem; }
body.public-registration-page .public-steps { display: grid; margin: 0; padding: 0; grid-template-columns: repeat(3,1fr); gap: 18px; }
body.public-registration-page .public-steps li { position: relative; display: grid; min-height: 95px; padding: 14px 16px; grid-template-columns: 28px 46px 1fr; align-items: center; gap: 8px; border: 1px solid #e3e6eb; border-radius: 14px; background: #fff; box-shadow: 0 7px 17px rgba(17,43,82,.06); }
body.public-registration-page .public-steps li > strong { position: absolute; top: 18px; left: 10px; width: 25px; height: 25px; font-size: .66rem; }
body.public-registration-page .public-steps .step-icon { color: var(--public-pink); font-size: 2rem; text-align: center; }
body.public-registration-page .public-steps li:nth-child(2) .step-icon { color: var(--public-blue); }
body.public-registration-page .public-steps li:nth-child(3) .step-icon { color: var(--public-green); }
body.public-registration-page .public-steps b { font-size: .78rem; }
body.public-registration-page .public-steps span:last-child { color: #17365e; font-size: .62rem; }
body.public-registration-page .registration-layout-v3 { display: grid; padding: 0 28px 18px; grid-template-columns: 1.45fr .72fr; gap: 20px; }
body.public-registration-page .public-form, body.public-contact-page .public-form, body.public-contact-page .public-contact-details { border: 1px solid #e0e5ec; border-radius: 14px; background: #fff; box-shadow: 0 8px 20px rgba(17,43,82,.07); }
body.public-registration-page .registration-form { padding: 22px 26px; }
body.public-registration-page .registration-form fieldset { gap: 12px; }
body.public-registration-page .registration-form > fieldset + fieldset { margin-top: 13px; padding-top: 14px; }
body.public-registration-page .registration-form legend { margin-bottom: 10px; font-size: 1.14rem; }
body.public-registration-page .form-grid { gap: 10px 14px; }
body.public-registration-page .registration-grid { grid-template-columns: repeat(3,1fr); gap: 10px; }
body.public-registration-page .registration-child { padding: 13px !important; border-color: #ffc5d8 !important; background: #fff9fb; }
body.public-registration-page .registration-form label, body.public-contact-page .public-form label { display: grid; gap: 5px; color: #152e53; font-size: .67rem; font-weight: 900; }
body.public-registration-page input, body.public-registration-page textarea, body.public-contact-page input:not([type="checkbox"]), body.public-contact-page textarea, body.public-contact-page select { width: 100%; min-height: 39px; padding: 8px 10px; border: 1px solid #cbd3df; border-radius: 8px; color: #17365e; background: #fff; font: inherit; font-size: .7rem; }
body.public-registration-page textarea, body.public-contact-page textarea { min-height: 75px; resize: vertical; }
body.public-registration-page .form-consent, body.public-contact-page .form-consent { display: flex !important; margin-top: 12px; align-items: flex-start; gap: 9px; font-weight: 600 !important; line-height: 1.45; }
body.public-registration-page .form-consent input, body.public-contact-page .form-consent input { width: 16px; height: 16px; min-height: 16px; margin: 2px 0 0; flex: 0 0 16px; }
body.public-registration-page .primary-cta { width: 100%; margin-top: 8px; }
body.public-registration-page .registration-aside { display: grid; gap: 14px; }
body.public-registration-page .registration-aside article { padding: 19px; border-radius: 16px; }
body.public-registration-page .registration-aside article:first-child { background: #fff8e9; }
body.public-registration-page .registration-aside article:last-child { background: #f2ecff; }
body.public-registration-page .registration-aside img { width: 100%; height: 150px; margin-bottom: 10px; object-fit: contain; }
body.public-registration-page .registration-aside h2 { font-size: 1.12rem; line-height: 1.1; }
body.public-registration-page .registration-aside p { margin: 8px 0 12px; font-size: .67rem; }
body.public-registration-page .public-reassurance { display: grid; margin: 0 55px 18px; padding: 12px 20px; grid-template-columns: repeat(3,1fr); gap: 0; border-radius: 0; background: transparent; }
body.public-registration-page .public-reassurance > span { padding: 0 24px; border-right: 1px solid #d4dae3; color: #17365e; font-size: .63rem; }
body.public-registration-page .public-reassurance > span:last-child { border-right: 0; }
body.public-registration-page .public-reassurance b { display: block; margin-bottom: 2px; color: var(--public-navy); font-size: .74rem; }

/* Contact */
body.public-contact-page .reference-contact-hero { display: grid; min-height: 290px; padding: 36px 58px 20px; grid-template-columns: 1.1fr .9fr; align-items: center; gap: 45px; }
body.public-contact-page .reference-contact-hero h1 { margin: 0 0 8px; font-size: 3.55rem; line-height: .95; }
body.public-contact-page .reference-contact-hero strong { display: block; margin-bottom: 10px; color: var(--public-pink); font-size: 1.14rem; }
body.public-contact-page .reference-contact-hero p:not(.reference-breadcrumb) { max-width: 520px; margin: 0; color: #17365e; font-size: .79rem; }
body.public-contact-page .reference-contact-hero .reference-contact-visual { position: static; width: 100%; height: 230px; margin: 0; object-fit: contain; border-radius: 0; background: transparent; }
body.public-contact-page .reference-contact-layout { display: grid; padding: 0 50px 22px; grid-template-columns: .64fr 1.36fr; align-items: stretch; gap: 26px; }
body.public-contact-page .public-contact-details { padding: 22px 27px; }
body.public-contact-page .public-contact-details h2, body.public-contact-page .public-form h2 { margin: 0 0 15px; font-size: 1.45rem; }
body.public-contact-page .public-contact-details dl { display: grid; gap: 0; }
body.public-contact-page .public-contact-details dl > div { display: grid; min-height: 67px; padding: 10px 0; grid-template-columns: 47px 1fr; grid-template-rows: auto auto; align-content: center; border-bottom: 1px solid #e1e5ec; }
body.public-contact-page .public-contact-details .reference-icon { width: 40px; height: 40px; grid-row: 1 / 3; }
body.public-contact-page .public-contact-details dt { margin: 0; font-size: .72rem; }
body.public-contact-page .public-contact-details dd { margin: 0; color: #17365e; font-size: .69rem; }
body.public-contact-page .contact-service-note { margin-top: 12px; padding: 12px 15px; border-radius: 12px; background: #eff7ff; }
body.public-contact-page .contact-service-note b { font-size: .68rem; }
body.public-contact-page .contact-service-note p { margin: 3px 0 0; color: #17365e; font-size: .58rem; }
body.public-contact-page .public-form { display: grid; padding: 22px 26px; gap: 11px; }
body.public-contact-page .public-form .form-grid { gap: 14px; }
body.public-contact-page .public-form textarea { min-height: 92px; }
body.public-contact-page .public-form .reference-button { width: 100%; }
body.public-contact-page .public-place-banner { display: grid; min-height: 105px; margin: 0 50px 22px; padding: 15px 40px; grid-template-columns: 70px 1fr auto; align-items: center; gap: 24px; border-radius: 15px; background: #fff8e9; }
body.public-contact-page .public-place-banner > .reference-icon { width: 62px; height: 62px; color: var(--public-blue); background: #eaf4ff; font-size: 2rem; }

/* Footer */
body.public-site .public-footer { width: 100% !important; margin: 0; padding: 0; border-radius: 38px 38px 0 0; color: #fff; background: #052b5c; box-shadow: none; }
body.public-home-page .public-footer { border-radius: 0; }
body.public-site .public-footer-inner { width: min(calc(100% - 80px), 1180px); margin: 0 auto; padding: 20px 0 9px; }
body.public-site .public-footer-grid { display: grid; grid-template-columns: 1.25fr .8fr .8fr 1.2fr; gap: 30px; }
body.public-site .public-footer .public-brand { color: #fff; }
body.public-site .public-footer .project-logo { width: 42px; height: 42px; flex-basis: 42px; }
body.public-site .public-footer .public-brand strong { font-size: 1rem; }
body.public-site .public-footer p, body.public-site .public-footer span, body.public-site .public-footer a { color: rgba(255,255,255,.92); font-size: .66rem; line-height: 1.45; }
body.public-site .public-footer-brand > p { max-width: 190px; margin: 6px 0; }
body.public-site .footer-socials { display: flex; margin-top: 7px; gap: 7px; }
body.public-site .footer-socials a { display: grid; width: 23px; height: 23px; place-items: center; border: 1px solid rgba(255,255,255,.7); border-radius: 50%; font-weight: 900; text-decoration: none; }
body.public-site .public-footer nav, body.public-site .public-footer-contact { display: flex; align-items: flex-start; flex-direction: column; gap: 3px; }
body.public-site .public-footer nav > strong, body.public-site .public-footer-contact > strong { margin-bottom: 6px; color: #fff; font-size: .73rem; text-transform: uppercase; }
body.public-site .public-footer a { text-decoration: none; }
body.public-site .public-footer-legal { display: flex; margin-top: 12px; padding-top: 9px; align-items: center; justify-content: space-between; border-top: 1px solid rgba(255,255,255,.2); }
body.public-site .public-footer-legal nav { flex-direction: row; gap: 20px; }

/* Official identity and Project pictograms. */
.project-logo,
.fp-logo,
.ap-logo {
  overflow: hidden;
  border: 1px solid rgba(218, 187, 147, .28) !important;
  border-radius: 50% !important;
  background: #fdf9f2 url("/assets/logo.png") center / cover no-repeat !important;
  box-shadow: 0 5px 14px rgba(25, 45, 68, .12) !important;
}

.project-logo::before,
.project-logo::after,
.fp-logo::before,
.fp-logo::after,
.ap-logo::before,
.ap-logo::after {
  display: none !important;
  content: none !important;
}

body.public-project-page .reference-icon .lpm-icon {
  width: 22px;
  height: 22px;
  stroke-width: 2.5;
}

body.public-project-page .reference-approach-grid .reference-icon .lpm-icon {
  width: 20px;
  height: 20px;
}

body.public-project-page .reference-stage-strip .reference-stage-icon .lpm-icon {
  width: 21px;
  height: 21px;
  stroke-width: 2.35;
}

body.public-project-page .reference-stage-strip small {
  display: block;
  margin-bottom: 4px;
  color: currentColor;
  font-size: .54rem;
  font-weight: 900;
  line-height: 1.2;
}

/* Home watermark supplied with the official identity. */
body.public-home-page .home-stages {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}

body.public-home-page .home-stages::before {
  position: absolute;
  z-index: 0;
  width: min(62vw, 780px);
  aspect-ratio: 1;
  right: -10%;
  bottom: -68%;
  pointer-events: none;
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  content: "";
  opacity: .07;
}

body.public-home-page .home-stages > * {
  position: relative;
  z-index: 1;
}

@media (max-width: 820px) {
  body.public-home-page .home-stages::before {
    width: min(105vw, 620px);
    right: -35%;
    bottom: -20%;
    opacity: .06;
  }
}

@media (max-width: 1100px) {
  body.public-site { --public-canvas: calc(100% - 24px); }
  body.public-site .public-header { width: calc(100% - 20px); padding-right: 13px; padding-left: 13px; gap: 10px; }
  body.public-site .public-brand strong { font-size: 1.1rem; }
  body.public-site .public-menu { gap: 13px; }
  body.public-site .public-menu a { font-size: .7rem; }
  body.public-site .family-pill, body.public-site .public-place-link { padding: 8px 10px; font-size: .64rem; }
  body.public-home-page .home-hero { grid-template-columns: minmax(0,.85fr) minmax(430px,1.15fr); gap: 25px; }
  body.public-project-page .reference-approach-grid p { font-size: .57rem; }
}

@media (max-width: 820px) {
  body.public-site { --public-canvas: calc(100% - 16px); }
  body.public-site .public-header { top: 5px; grid-template-columns: 1fr auto; }
  body.public-site .public-menu-toggle { display: inline-flex; min-height: 40px; padding: 8px 11px; align-items: center; gap: 6px; border: 1px solid #d6dde7; border-radius: 10px; color: var(--public-navy); background: #fff; font: inherit; font-weight: 900; }
  body.public-site .public-menu { position: absolute; top: calc(100% + 7px); right: 0; left: 0; display: none; padding: 13px; align-items: stretch; flex-direction: column; gap: 0; border: 1px solid #dfe4ec; border-radius: 15px; background: rgba(255,255,255,.98); box-shadow: 0 14px 28px rgba(17,43,82,.14); }
  body.public-site .public-menu.open { display: flex; }
  body.public-site .public-menu a { padding: 10px; font-size: .8rem; }
  body.public-site .public-menu a::after { display: none; }
  body.public-site .public-header-actions { display: none; }
  body.public-home-page .home-hero, body.public-reference .reference-page-hero, body.public-daily-page .public-split-hero, body.public-contact-page .reference-contact-hero, body.public-registration-page .public-page-intro { grid-template-columns: 1fr; }
  body.public-home-page .home-hero-copy, body.public-reference .reference-page-hero > div, body.public-daily-page .public-split-hero > div { max-width: none; }
  body.public-home-page .home-hero { padding: 40px 32px 28px; }
  body.public-home-page .home-hero-media { height: 360px; }
  body.public-home-page .home-pillar-grid { grid-template-columns: repeat(2,1fr); row-gap: 18px; }
  body.public-home-page .home-pillar-grid article:nth-child(2) { border-right: 0; }
  body.public-home-page .home-life { grid-template-columns: 1fr; }
  body.public-home-page .home-life-gallery { grid-template-columns: repeat(3,1fr); }
  body.public-home-page .home-life-gallery img:nth-child(n+4) { display: none; }
  body.public-home-page .home-stage-grid, body.public-site .public-footer-grid { grid-template-columns: repeat(2,1fr); }
  body.public-home-page .home-stage-grid article:last-child { grid-column: 1 / -1; }
  body.public-home-page .home-practical dl { grid-template-columns: repeat(2,1fr); }
  body.public-home-page .home-final-cta { grid-template-columns: 210px 1fr; }
  body.public-project-page .reference-value-grid, body.public-team-page .reference-team-grid { grid-template-columns: repeat(2,1fr); }
  body.public-project-page .reference-approach-grid { grid-template-columns: repeat(3,1fr); row-gap: 20px; }
  body.public-project-page .reference-approach-grid article:nth-child(3) { border-right: 0; }
  body.public-project-page .reference-journey-layout { grid-template-columns: 95px 1fr 95px; }
  body.public-project-page .reference-wide-panel { grid-template-columns: 260px 1fr; }
  body.public-daily-page .public-moment-grid { grid-template-columns: repeat(3,1fr); }
  body.public-daily-page .public-tab-panel { grid-template-columns: 180px 1fr; }
  body.public-daily-page .public-highlight-grid, body.public-spaces-page .reference-space-grid { grid-template-columns: 1fr 1fr; }
  body.public-spaces-page .reference-yellow-cta, body.public-team-page .reference-yellow-cta { grid-template-columns: 280px 1fr; }
  body.public-registration-page .registration-layout-v3, body.public-contact-page .reference-contact-layout { grid-template-columns: 1fr; }
  body.public-registration-page .registration-aside { grid-template-columns: repeat(2,1fr); }
}

@media (max-width: 560px) {
  body.public-site { font-size: 13px; }
  body.public-site .public-header { min-height: 60px; border-radius: 16px; }
  body.public-site .public-brand .project-logo { width: 39px; height: 39px; flex-basis: 39px; }
  body.public-site .public-brand strong { font-size: 1rem; }
  body.public-home-page .home-hero, body.public-reference .reference-page-hero, body.public-daily-page .public-split-hero, body.public-contact-page .reference-contact-hero, body.public-registration-page .public-page-intro { min-height: 0; padding: 40px 22px 24px; gap: 25px; }
  body.public-home-page .home-hero-copy h1, body.public-reference .reference-page-hero h1, body.public-daily-page .public-split-hero h1, body.public-contact-page .reference-contact-hero h1, body.public-registration-page .public-page-intro h1 { font-size: 2.75rem; }
  body.public-home-page .home-hero-media, body.public-reference .reference-page-hero > img, body.public-daily-page .public-split-hero > img, body.public-contact-page .reference-contact-hero .reference-contact-visual, body.public-registration-page .public-page-intro > img { height: 240px; }
  body.public-home-page .home-pillars, body.public-home-page .home-life, body.public-home-page .home-stages, body.public-home-page .home-team, body.public-reference .reference-page-section, body.public-daily-page .public-page-section { padding: 28px 20px; }
  body.public-home-page .home-pillar-grid, body.public-home-page .home-stage-grid, body.public-home-page .home-practical dl, body.public-project-page .reference-value-grid, body.public-project-page .reference-approach-grid, body.public-project-page .reference-stage-strip, body.public-daily-page .public-moment-grid, body.public-daily-page .public-highlight-grid, body.public-spaces-page .reference-space-grid, body.public-spaces-page .reference-stage-strip, body.public-team-page .reference-team-grid, body.public-team-page .public-principle-grid, body.public-registration-page .public-steps, body.public-registration-page .registration-aside, body.public-registration-page .public-reassurance, body.public-site .public-footer-grid { grid-template-columns: 1fr; }
  body.public-home-page .home-pillar-grid article { padding: 16px; border-right: 0; border-bottom: 1px dotted #c7ced8; }
  body.public-home-page .home-life-gallery { grid-template-columns: repeat(2,1fr); }
  body.public-home-page .home-life-gallery img:nth-child(3) { display: none; }
  body.public-home-page .home-stage-grid article:last-child { grid-column: auto; }
  body.public-home-page .home-practical { margin-right: 15px; margin-left: 15px; }
  body.public-home-page .home-final-cta { margin: 0 15px; padding: 25px; grid-template-columns: 1fr; }
  body.public-home-page .home-final-cta img { display: none; }
  body.public-project-page .reference-approach-grid article { border-right: 0; }
  body.public-project-page .reference-approach-grid p { min-height: 0; }
  body.public-project-page .reference-journey { margin-right: 15px; margin-left: 15px; }
  body.public-project-page .reference-journey-layout { grid-template-columns: 1fr; }
  body.public-project-page .reference-journey-layout > img { display: none; }
  body.public-project-page .reference-stage-strip article, body.public-spaces-page .reference-stage-strip article { padding: 15px; border-right: 0; border-bottom: 1px solid #d6dce5; }
  body.public-project-page .reference-wide-panel { margin-right: 15px; margin-left: 15px; padding: 15px; grid-template-columns: 1fr; border-radius: 22px; }
  body.public-reference .reference-next-cta, body.public-spaces-page .reference-yellow-cta, body.public-team-page .reference-yellow-cta, body.public-contact-page .public-place-banner { margin: 0 15px; padding: 22px; grid-template-columns: 1fr; align-items: flex-start; border-radius: 18px; }
  body.public-reference .reference-next-cta { flex-direction: column; }
  body.public-daily-page .public-tabs { width: 100%; gap: 5px; }
  body.public-daily-page .public-tabs button { font-size: .72rem; }
  body.public-daily-page .public-tab-panel { width: 100%; padding: 18px; grid-template-columns: 1fr; }
  body.public-daily-page .public-tab-panel ul { grid-template-columns: 1fr 1fr; }
  body.public-daily-page .public-highlight-grid { padding: 0 20px 20px; }
  body.public-daily-page .public-highlight-grid article { grid-template-columns: 44px 1fr; }
  body.public-daily-page .highlight-illustration { display: none; }
  body.public-daily-page .daily-final-cta { margin: 0 15px; }
  body.public-team-page .public-principle-grid article { border-right: 0; border-bottom: 1px solid #d6dce5; }
  body.public-registration-page .registration-grid, body.public-registration-page .form-grid, body.public-contact-page .public-form .form-grid { grid-template-columns: 1fr; }
  body.public-registration-page .registration-layout-v3, body.public-contact-page .reference-contact-layout { padding-right: 15px; padding-left: 15px; }
  body.public-registration-page .public-reassurance { margin-right: 15px; margin-left: 15px; }
  body.public-registration-page .public-reassurance > span { padding: 12px 0; border-right: 0; border-bottom: 1px solid #d6dce5; }
  body.public-contact-page .reference-contact-layout { padding-bottom: 18px; }
  body.public-site .public-footer { border-radius: 26px 26px 0 0; }
  body.public-site .public-footer-inner { width: calc(100% - 44px); padding-top: 28px; }
  body.public-site .public-footer-grid { gap: 22px; }
  body.public-site .public-footer-legal { align-items: flex-start; flex-direction: column; gap: 9px; }
}

/* Home finishing pass: validated composition, refined proportions only. */
body.public-home-page .home-hero {
  min-height: 372px;
  padding-top: 18px;
  padding-bottom: 18px;
  grid-template-columns: 390px minmax(0, 1fr);
  gap: 44px;
}

body.public-home-page .home-hero-media {
  width: 88%;
  height: 300px;
  justify-self: end;
}

body.public-home-page .home-hero-subtitle {
  display: block;
  margin: -8px 0 12px;
  color: var(--public-navy);
  font-size: .9rem;
  line-height: 1.4;
}

body.public-home-page .home-pillars {
  margin-top: 44px;
  margin-bottom: 34px;
}

body.public-home-page .home-pillars .reference-section-title { margin-bottom: 12px; }
body.public-home-page .home-pillars .reference-heading-mark { margin-top: 4px; }
body.public-home-page .home-pillar-grid {
  width: min(82%, 1060px);
  margin: 0 auto;
  gap: 12px;
}
body.public-home-page .home-pillar-grid .home-pillar-card {
  display: grid;
  min-height: 108px;
  padding: 8px 16px;
  box-sizing: border-box;
  justify-items: center;
  align-content: start;
  border: 0;
  border-radius: 8px;
  color: inherit;
  background: rgba(255, 255, 255, 0);
  box-shadow: 0 3px 10px rgba(17, 43, 82, 0);
  text-align: center;
  text-decoration: none;
  transition: transform 240ms ease, box-shadow 240ms ease, background-color 240ms ease;
}
body.public-home-page .home-pillar-grid .home-pillar-card:hover,
body.public-home-page .home-pillar-grid .home-pillar-card:focus-visible {
  background: rgba(255, 255, 255, .7);
  box-shadow: 0 9px 20px rgba(17, 43, 82, .09);
  transform: translateY(-3px);
}
body.public-home-page .home-pillar-grid .home-pillar-card:focus-visible {
  outline: 3px solid rgba(22, 115, 210, .42);
  outline-offset: 3px;
}
body.public-home-page .home-pillar-grid .home-pillar-card .reference-icon {
  width: 49px;
  height: 49px;
  margin-bottom: 7px;
  color: var(--pillar-icon-color) !important;
  background: var(--pillar-icon-background) !important;
  font-size: 1.55rem;
  transition: transform 240ms ease;
}
body.public-home-page .home-pillar-grid .home-pillar-card:hover .reference-icon,
body.public-home-page .home-pillar-grid .home-pillar-card:focus-visible .reference-icon { transform: scale(1.05); }
body.public-home-page .home-pillar-grid .home-pillar-card h3 { margin: 0 0 4px; }
body.public-home-page .home-pillar-grid .home-pillar-card p {
  margin: 0;
  font-size: .64rem;
  line-height: 1.65;
}

body.public-home-page .home-stages {
  margin-top: 28px;
  margin-bottom: 30px;
}

body.public-home-page .home-practical dl {
  width: 100%;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  justify-content: center;
  gap: clamp(20px, 4vw, 56px);
}

body.public-home-page .home-practical dl > div {
  width: 100%;
  max-width: 220px;
  margin: 0 auto;
  justify-content: center;
}

body.public-home-page .home-practical dd { white-space: pre-line; }

body.public-home-page .home-stages::before { display: none; }
body.public-home-page .home-stages.has-home-watermark::before {
  display: block;
  background-image: var(--home-watermark-image);
  background-position: var(--home-watermark-position, right center);
  opacity: var(--home-watermark-opacity, .03);
}

body.public-site .public-footer-inner,
body.public-home-page .public-footer-inner,
body.public-project-page .public-footer-inner,
body.public-daily-page .public-footer-inner,
body.public-spaces-page .public-footer-inner,
body.public-team-page .public-footer-inner,
body.public-registration-page .public-footer-inner,
body.public-contact-page .public-footer-inner {
  padding-top: 26px;
  padding-bottom: 12px;
}

body.public-site .public-footer-grid {
  grid-template-columns: minmax(240px, 1.3fr) repeat(2, minmax(140px, .72fr)) minmax(220px, 1fr);
  align-items: start;
  gap: clamp(34px, 5vw, 72px);
}

body.public-site .public-footer :is(nav, .public-footer-contact) { gap: 7px; }
body.public-site .public-footer :is(nav, .public-footer-contact) > strong { margin-bottom: 5px; }
body.public-site .public-footer a { text-underline-offset: 3px; }
body.public-site .public-footer-legal {
  margin-top: 16px;
  padding-top: 10px;
  opacity: .78;
}

body.public-site .public-footer-legal :is(a, span) { font-size: .6rem; }

/* Tabbed site content administration. */
.ap-content-head {
  align-items: start;
}

.ap-content-head h1 {
  color: #07194b;
}

.ap-content-head p {
  color: #52637b;
}

.ap-content-head-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  flex-wrap: wrap;
}

.ap-content-head-actions .ap-soft-link,
.ap-content-head-actions .ap-primary {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  border-radius: 10px;
  white-space: nowrap;
}

.ap-content-head-actions .ap-soft-link {
  padding: 0 15px;
  border: 1px solid rgba(126, 75, 220, .28);
  color: #5f35c7;
  background: #fff;
  text-decoration: none;
}

.ap-content-head-actions .ap-primary:disabled {
  opacity: .52;
  cursor: not-allowed;
  filter: grayscale(.15);
}

.ap-site-content-workspace {
  display: grid;
  gap: 18px;
}

.ap-site-content-tabs {
  position: sticky;
  z-index: 9;
  top: 10px;
  display: flex;
  gap: 8px;
  padding: 12px 16px;
  overflow-x: auto;
  border: 1px solid rgba(213, 221, 233, .92);
  border-radius: 16px;
  background: rgba(255,255,255,.96);
  box-shadow: 0 16px 38px rgba(31, 49, 83, .06);
  scrollbar-width: thin;
}

.ap-site-content-tabs button {
  position: relative;
  min-height: 54px;
  padding: 0 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  border: 1px solid transparent;
  border-radius: 10px;
  color: #52627c;
  background: transparent;
  font: inherit;
  font-size: .82rem;
  font-weight: 900;
  white-space: nowrap;
  cursor: pointer;
}

.ap-site-content-tabs button .lpm-icon {
  width: 22px;
  height: 22px;
  stroke-width: 2;
}

.ap-site-content-tabs button.active,
.ap-site-content-tabs button[aria-selected="true"] {
  color: #5f35c7;
  border-color: rgba(126, 75, 220, .14);
  background: linear-gradient(135deg, #f1e8ff, #f8f4ff);
}

.ap-site-content-tabs button.active::after,
.ap-site-content-tabs button[aria-selected="true"]::after {
  content: "";
  position: absolute;
  right: 10px;
  bottom: -13px;
  left: 10px;
  height: 3px;
  border-radius: 999px;
  background: #6f3de4;
}

.ap-site-content-tabs button:focus-visible {
  outline: 3px solid rgba(126, 75, 220, .22);
  outline-offset: 2px;
}

.ap-site-content-panel {
  display: grid;
  gap: 18px;
}

.ap-site-content-panel[hidden] {
  display: none;
}

.ap-site-content-empty {
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr);
  gap: 18px;
  align-items: start;
  padding: 24px !important;
  border-radius: 16px !important;
}

.ap-site-content-empty > span {
  display: grid;
  width: 50px;
  height: 50px;
  place-items: center;
  border-radius: 50%;
  color: #5f35c7;
  background: #efe6ff;
}

.ap-site-content-empty h2 {
  margin: 0 0 6px;
  color: #07194b;
  font-size: 1.05rem;
}

.ap-site-content-empty p {
  margin: 0 0 14px;
  max-width: 760px;
  color: #53637c;
  line-height: 1.55;
  font-weight: 700;
}

.ap-site-content-panel .ap-content-actions {
  margin: 0;
  justify-content: flex-end;
}

.ap-site-content-panel .ap-content-actions button {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border-radius: 10px;
}

.ap-site-content-panel .ap-data-section {
  margin: 0;
}

.ap-site-content-panel .ap-data-section > header {
  border-radius: 16px 16px 0 0;
}

@media (max-width: 900px) {
  .ap-content-head {
    grid-template-columns: 1fr;
  }

  .ap-content-head-actions {
    justify-content: flex-start;
  }

  .ap-site-content-tabs {
    top: 0;
    margin-inline: -4px;
    border-radius: 14px;
  }
}

@media (max-width: 620px) {
  .ap-content-head-actions,
  .ap-content-head-actions .ap-soft-link,
  .ap-content-head-actions .ap-primary {
    width: 100%;
  }

  .ap-site-content-tabs {
    padding: 10px;
  }

  .ap-site-content-tabs button {
    min-height: 48px;
    padding: 0 14px;
  }
}

/* Visual refit for Administration > Contenu du site. */
body.admin-app .ap-content-head {
  gap: 18px;
  margin-bottom: 18px;
  align-items: start;
}

body.admin-app .ap-content-head h1 {
  margin: 0 0 4px;
  color: #07194b;
  font-size: clamp(2rem, 3vw, 2.85rem);
  line-height: 1.04;
  font-weight: 950;
}

body.admin-app .ap-content-head h1 span {
  color: inherit;
}

body.admin-app .ap-content-head p {
  margin: 0;
  color: #64718b;
  font-size: .98rem;
  line-height: 1.45;
  font-weight: 700;
}

body.admin-app .ap-content-head-actions .ap-soft-link,
body.admin-app .ap-content-head-actions .ap-primary {
  min-height: 46px;
  padding-inline: 18px;
  border-radius: 12px;
  font-size: .88rem;
  font-weight: 900;
}

body.admin-app .ap-content-head-actions .ap-soft-link {
  border-color: rgba(126, 75, 220, .35);
  color: #7437e8;
  background: rgba(255,255,255,.92);
}

body.admin-app .ap-content-head-actions .ap-primary {
  border: 1px solid #7437e8;
  background: #7437e8;
  box-shadow: 0 13px 24px rgba(116,55,232,.18);
}

body.admin-app .ap-site-content-workspace {
  gap: 20px;
}

body.admin-app .ap-site-content-tabs {
  top: 12px;
  gap: 10px;
  padding: 13px 16px;
  border-radius: 14px;
  box-shadow: 0 12px 30px rgba(31,49,83,.045);
}

body.admin-app .ap-site-content-tabs button {
  min-height: 50px;
  padding: 0 20px;
  border-radius: 11px;
  color: #07194b;
  font-size: .88rem;
  font-weight: 950;
}

body.admin-app .ap-site-content-tabs button .lpm-icon {
  display: none;
}

body.admin-app .ap-site-content-tabs button.active,
body.admin-app .ap-site-content-tabs button[aria-selected="true"] {
  color: #7437e8;
  border-color: transparent;
  background: #eee1ff;
}

body.admin-app .ap-site-content-tabs button.active::after,
body.admin-app .ap-site-content-tabs button[aria-selected="true"]::after {
  right: 18px;
  bottom: -8px;
  left: 18px;
  height: 4px;
  background: #7437e8;
}

body.admin-app .ap-site-content-panel {
  gap: 20px;
  animation: apSitePanelIn .22s ease-out both;
}

@keyframes apSitePanelIn {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: translateY(0); }
}

body.admin-app .ap-site-board {
  display: grid;
  gap: 20px;
}

body.admin-app .ap-site-intro-card,
body.admin-app .ap-site-content-empty {
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr) auto;
  gap: 18px;
  align-items: center;
  padding: 20px !important;
  border: 1px solid rgba(213,221,233,.96) !important;
  border-radius: 16px !important;
  background: rgba(255,255,255,.97) !important;
  box-shadow: 0 14px 34px rgba(31,49,83,.055) !important;
}

body.admin-app .ap-site-content-empty {
  grid-template-columns: 54px minmax(0, 1fr);
  align-items: start;
}

body.admin-app .ap-site-intro-card > span,
body.admin-app .ap-site-content-empty > span {
  display: grid;
  width: 50px;
  height: 50px;
  place-items: center;
  border-radius: 999px;
  color: #7437e8;
  background: #eee1ff;
}

body.admin-app .ap-site-intro-card h2,
body.admin-app .ap-site-content-empty h2,
body.admin-app .ap-site-content-panel .ap-data-section h2 {
  margin: 0;
  color: #07194b;
  font-size: 1.28rem;
  line-height: 1.15;
  font-weight: 950;
}

body.admin-app .ap-site-intro-card p,
body.admin-app .ap-site-content-empty p,
body.admin-app .ap-site-content-panel .ap-data-section > header p {
  margin: 5px 0 0;
  color: #64718b;
  font-size: .85rem;
  line-height: 1.5;
  font-weight: 700;
}

body.admin-app .ap-site-intro-card button,
body.admin-app .ap-site-intro-actions button {
  min-height: 46px;
  padding: 0 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: 1px solid #7437e8;
  border-radius: 12px;
  color: #7437e8;
  background: #fff;
  font: inherit;
  font-size: .88rem;
  font-weight: 950;
  white-space: nowrap;
  cursor: pointer;
}

body.admin-app .ap-site-intro-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

body.admin-app .ap-site-content-panel .ap-data-section {
  overflow: hidden;
}

body.admin-app .ap-site-content-panel .ap-data-section > header {
  padding: 20px 22px 14px;
  border-bottom: 0;
  background: transparent;
}

body.admin-app .ap-site-content-panel .ap-table {
  margin: 0 20px 20px;
  overflow: auto;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.admin-app .ap-site-content-panel .ap-table table {
  border-collapse: separate;
  border-spacing: 0 10px;
}

body.admin-app .ap-site-content-panel .ap-table th {
  padding: 0 16px 8px;
  color: #67728a;
  font-size: .78rem;
  letter-spacing: .02em;
  background: transparent;
  border: 0;
}

body.admin-app .ap-site-content-panel .ap-table td {
  padding: 12px 16px;
  border-block: 1px solid #dfe6f0;
  color: #102653;
  background: #fff;
  font-size: .88rem;
  font-weight: 760;
  vertical-align: middle;
}

body.admin-app .ap-site-content-panel .ap-table td:first-child {
  border-left: 1px solid #dfe6f0;
  border-radius: 12px 0 0 12px;
}

body.admin-app .ap-site-content-panel .ap-table td:last-child {
  border-right: 1px solid #dfe6f0;
  border-radius: 0 12px 12px 0;
}

body.admin-app .ap-site-content-panel .ap-table footer {
  padding: 10px 0 0;
  color: #52637b;
  border: 0;
  background: transparent;
  font-size: .82rem;
  font-weight: 750;
}

body.admin-app .ap-site-member-cell {
  min-width: 220px;
  display: inline-grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
}

body.admin-app .ap-site-member-photo {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  overflow: hidden;
  border-radius: 999px;
  color: #7437e8;
  background: #eee1ff;
  font-size: .74rem;
  font-weight: 950;
}

body.admin-app .ap-site-member-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

body.admin-app .ap-site-member-cell strong,
body.admin-app .ap-site-content-panel .ap-table td > strong {
  display: block;
  color: #07194b;
  font-weight: 950;
}

body.admin-app .ap-site-member-cell small,
body.admin-app .ap-site-muted {
  display: block;
  max-width: 340px;
  margin-top: 3px;
  overflow: hidden;
  color: #68758d;
  font-size: .76rem;
  line-height: 1.35;
  font-weight: 700;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.admin-app .ap-site-pill {
  display: inline-flex;
  min-height: 30px;
  padding: 0 12px;
  align-items: center;
  border-radius: 999px;
  color: #7437e8;
  background: #eee1ff;
  font-weight: 950;
}

body.admin-app .ap-site-split {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}

body.admin-app .ap-homepage-form {
  gap: 20px;
}

body.admin-app .ap-homepage-overview,
body.admin-app .ap-homepage-watermark,
body.admin-app .ap-home-section,
body.admin-app .ap-site-content-panel .ap-data-section {
  border-color: rgba(213,221,233,.96) !important;
  border-radius: 16px !important;
  box-shadow: 0 14px 34px rgba(31,49,83,.055) !important;
}

body.admin-app .ap-homepage-overview,
body.admin-app .ap-homepage-watermark {
  padding: 20px !important;
  grid-template-columns: minmax(250px, 1.4fr) repeat(3, minmax(150px, .75fr));
}

body.admin-app .ap-home-section > summary {
  padding: 18px 22px;
  font-size: 1rem;
}

body.admin-app .ap-home-section-content {
  padding: 20px 22px 22px;
}

body.admin-app .ap-home-section-controls {
  padding: 14px 22px;
}

body.admin-app .ap-homepage-save {
  min-height: 70px;
  bottom: 14px;
  border-radius: 16px;
}

@media (prefers-reduced-motion: reduce) {
  body.admin-app .ap-site-content-panel {
    animation: none;
  }
}

@media (max-width: 1180px) {
  body.admin-app .ap-site-split {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 860px) {
  body.admin-app .ap-site-intro-card,
  body.admin-app .ap-site-content-empty {
    grid-template-columns: 48px minmax(0, 1fr);
  }

  body.admin-app .ap-site-intro-card button,
  body.admin-app .ap-site-intro-actions {
    grid-column: 1 / -1;
    justify-content: flex-start;
  }

  body.admin-app .ap-site-content-tabs button .lpm-icon {
    display: block;
    width: 18px;
    height: 18px;
  }
}

@media (max-width: 640px) {
  body.admin-app .ap-content-head h1 {
    font-size: 1.7rem;
  }

  body.admin-app .ap-site-content-tabs {
    padding: 10px;
  }

  body.admin-app .ap-site-content-tabs button {
    min-height: 44px;
    padding: 0 14px;
    font-size: .82rem;
  }

  body.admin-app .ap-site-content-panel .ap-table {
    margin-inline: 14px;
  }
}

/* Structured homepage editor in the existing Content area. */
.ap-homepage-editor { margin-bottom: 0; }
.ap-homepage-form { display: grid; gap: 16px; }
.ap-homepage-overview,
.ap-homepage-watermark {
  display: grid;
  grid-template-columns: minmax(240px, 1.3fr) repeat(3, minmax(160px, .7fr));
  align-items: end;
  gap: 14px;
}
.ap-homepage-overview,
.ap-homepage-watermark,
.ap-home-section,
.ap-site-content-panel .ap-data-section {
  border: 1px solid rgba(213, 221, 233, .92) !important;
  border-radius: 16px !important;
  background: rgba(255,255,255,.96) !important;
  box-shadow: 0 16px 36px rgba(31, 49, 83, .06) !important;
}
.ap-homepage-overview h2,
.ap-homepage-watermark h2 { margin: 0 0 5px; color: #07194b; font-size: 1.06rem; font-weight: 950; }
.ap-homepage-overview p,
.ap-homepage-watermark p { margin: 0; color: #637086; font-size: .82rem; font-weight: 700; line-height: 1.45; }
.ap-homepage-form label { display: grid; gap: 7px; color: #17294d; font-size: .78rem; font-weight: 900; }
.ap-homepage-form :is(input:not([type="checkbox"]), select, textarea) { width: 100%; min-height: 42px; padding: 9px 12px; box-sizing: border-box; border: 1px solid #d4dce8; border-radius: 9px; color: #102653; background: #fff; font: inherit; font-size: .84rem; font-weight: 750; }
.ap-homepage-form textarea { min-height: 76px; resize: vertical; }
.ap-homepage-watermark .ap-home-media { grid-column: 1 / -1; }
.ap-homepage-sections { display: grid; gap: 13px; }
.ap-home-section { padding: 0 !important; overflow: hidden; }
.ap-home-section > summary { display: flex; padding: 16px 20px; align-items: center; justify-content: space-between; color: #07194b; background: linear-gradient(180deg, #fbfcff, #f8f9fc); cursor: pointer; font-weight: 950; }
.ap-home-section > summary small { color: #768196; font-weight: 700; }
.ap-home-section-controls { display: grid; padding: 15px 20px; grid-template-columns: minmax(150px, .8fr) repeat(4, minmax(130px, 1fr)); align-items: end; gap: 12px; border-top: 1px solid #e8edf4; border-bottom: 1px solid #e8edf4; background: #fff; }
.ap-home-section-content { padding: 20px; }
.ap-home-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px; }
.ap-home-grid .wide { grid-column: 1 / -1; }
.ap-home-title-field { margin-bottom: 15px; }
.ap-home-items { display: grid; gap: 10px; }
.ap-home-item { display: grid; padding: 14px; grid-template-columns: repeat(4, minmax(0, 1fr)); align-items: end; gap: 10px; border: 1px solid #dde4ed; border-radius: 8px; background: #fafbfd; }
.ap-home-item .wide,
.ap-home-item .ap-home-media { grid-column: 1 / -1; }
.ap-home-media { display: grid; padding: 14px; grid-template-columns: 1fr 1fr 1fr; align-items: end; gap: 10px; border: 1px solid #d7e7fb; border-radius: 10px; background: #f3f8ff; }
.ap-home-media legend,
.ap-home-buttons legend { padding: 0 5px; color: #0b2b59; font-size: .75rem; font-weight: 900; }
.ap-home-media progress,
.ap-home-media small { grid-column: 1 / -1; width: 100%; }
.ap-home-media small { color: #69768a; font-size: .68rem; }
.ap-home-buttons { display: grid; margin-top: 14px; padding: 12px; gap: 10px; border: 1px solid #dfe5ed; border-radius: 8px; }
.ap-home-buttons > div { display: grid; grid-template-columns: 1fr 1fr 180px; gap: 10px; }
.ap-home-add,
.ap-home-remove { min-height: 36px; margin-top: 10px; padding: 7px 12px; border: 1px solid #c8d2df; border-radius: 7px; color: #5130ae; background: #fff; font: inherit; font-weight: 850; cursor: pointer; }
.ap-home-remove { color: #b83062; border-color: #efd1dd; }
.ap-homepage-save { position: sticky; z-index: 4; bottom: 12px; display: flex; min-height: 64px; padding: 12px 16px; align-items: center; justify-content: flex-end; gap: 18px; border: 1px solid #d9e0e9; border-radius: 14px; background: rgba(255,255,255,.96); box-shadow: 0 10px 28px rgba(17,43,82,.12); backdrop-filter: blur(12px); }
.ap-homepage-save p { margin: 0 auto 0 0; color: #52637b; font-weight: 750; }
.ap-homepage-save button { min-height: 42px; padding: 9px 18px; border: 0; border-radius: 10px; color: #fff; background: #5f35c7; font: inherit; font-weight: 900; cursor: pointer; }

@media (max-width: 980px) {
  .ap-homepage-overview,
  .ap-homepage-watermark,
  .ap-home-section-controls { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ap-home-item { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ap-home-media { grid-template-columns: 1fr 1fr; }
  body.public-home-page .home-hero-media { width: 92%; }
}

@media (max-width: 820px) {
  body.public-home-page .home-hero { padding-top: 52px; padding-bottom: 36px; gap: 36px; }
  body.public-home-page .home-hero-media { width: 88%; height: 286px; justify-self: center; }
  body.public-home-page .home-pillars { margin-top: 42px; margin-bottom: 40px; }
  body.public-home-page .home-pillar-grid { width: min(92%, 680px); grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 14px; }
  body.public-home-page .home-stages { margin-top: 34px; margin-bottom: 36px; }
}

@media (max-width: 620px) {
  body.public-home-page .home-hero-media { width: 92%; height: 220px; }
  body.public-home-page .home-pillars { margin-top: 34px; margin-bottom: 32px; }
  body.public-home-page .home-pillar-grid { width: 100%; grid-template-columns: 1fr; gap: 10px; }
  body.public-home-page .home-pillar-grid .home-pillar-card { min-height: 0; padding: 13px 18px; border: 0; }
  body.public-home-page .home-stages { margin-top: 26px; margin-bottom: 30px; }
  .ap-homepage-overview,
  .ap-homepage-watermark,
  .ap-home-section-controls,
  .ap-home-grid,
  .ap-home-item,
  .ap-home-media,
  .ap-home-buttons > div { grid-template-columns: 1fr; }
  .ap-home-grid .wide,
  .ap-home-item .wide,
  .ap-home-item .ap-home-media { grid-column: 1; }
}

/* Final cascade normalization for legacy public rules kept above. */
body.public-site :is(h1, h2, h3, h4, h5, h6, strong) {
  font-family: "Nunito Local", "Trebuchet MS", Arial, sans-serif !important;
  letter-spacing: 0;
}

body.public-site .public-header { grid-template-columns: auto minmax(0, 1fr) auto; }
body.public-site .public-menu {
  position: static;
  inset: auto;
  display: flex;
  width: auto;
  padding: 0;
  flex-wrap: nowrap;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
body.public-site .public-menu-toggle { display: none; }
body.public-home-page .home-hero-copy h1 { font-size: 3.65rem; }
body.public-home-page .home-hero-copy h1 span { white-space: nowrap; }
body.public-reference .reference-page-hero h1,
body.public-daily-page .public-split-hero h1 { font-size: 3.6rem; }

body.public-home-page .home-hero { grid-template-columns: minmax(0, .94fr) minmax(430px, 1.06fr); }
body.public-home-page .home-hero { min-height: 348px; padding-top: 8px; padding-bottom: 8px; }
body.public-home-page .home-life-gallery img:nth-child(2),
body.public-home-page .home-life-gallery img:nth-child(4) { margin-top: 0; }
body.public-home-page .home-life { min-height: 175px; padding-top: 7px; padding-bottom: 7px; }
body.public-home-page .home-stage-grid article,
body.public-home-page .home-stage-grid article img { min-height: 0; }
body.public-home-page .home-team-grid { margin-bottom: 8px; }
body.public-home-page .home-team .public-empty { margin-bottom: 0; }
body.public-home-page .home-team:has(.public-empty) .home-team-link { display: none; }
body.public-home-page .home-practical,
body.public-home-page .home-final-cta { width: calc(100% - 44px) !important; }
body.public-home-page .home-final-cta img { min-height: 0; }
body.public-home-page .home-final-cta > div { padding: 15px 18px; }
body.public-site .public-footer-inner { padding-top: 14px; padding-bottom: 7px; }
body.public-site .public-footer p,
body.public-site .public-footer span,
body.public-site .public-footer a { font-size: .59rem; line-height: 1.25; }
body.public-site .public-footer-grid { gap: 20px; }
body.public-site .public-footer-legal { margin-top: 8px; padding-top: 7px; }

body.public-project-page .reference-page-hero {
  min-height: 300px;
  padding-top: 20px;
  padding-bottom: 20px;
  grid-template-columns: minmax(0, .9fr) minmax(400px, 1.1fr);
  gap: 28px;
}
body.public-project-page .reference-page-hero h1 { font-size: 3rem; white-space: nowrap; }
body.public-project-page .reference-page-hero > img { height: 250px; min-height: 0; }
body.public-project-page #valeurs { min-height: 0; padding-top: 8px; padding-bottom: 8px; }
body.public-project-page #valeurs .reference-section-title { margin-bottom: 8px; }
body.public-project-page .reference-value-grid article { height: 135px; min-height: 0; padding: 10px; }
body.public-project-page .reference-approach { padding-top: 15px; padding-bottom: 15px; }
body.public-project-page .reference-approach .reference-section-title { margin-bottom: 10px; }
body.public-project-page .reference-stage-strip { position: relative; overflow: visible; gap: 0; }
body.public-project-page .reference-stage-strip::before {
  position: absolute;
  top: 22px;
  right: 15%;
  left: 15%;
  height: 2px;
  background: linear-gradient(90deg, var(--public-green), var(--public-pink), var(--public-blue));
  content: "";
}
body.public-project-page .reference-stage-strip article {
  position: relative;
  min-height: 110px;
  padding: 4px 12px;
  align-items: center;
  border: 0;
  border-right: 1px solid #d4d9e2;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
body.public-project-page .reference-stage-strip article:last-child { border-right: 0; }
body.public-project-page .reference-stage-strip article:nth-child(1),
body.public-project-page .reference-stage-strip article:nth-child(2),
body.public-project-page .reference-stage-strip article:nth-child(3) { border-top: 0; }
body.public-project-page .reference-stage-strip span {
  z-index: 1;
  display: grid;
  width: 48px;
  height: 48px;
  place-items: center;
  border-radius: 50%;
  background: #ffe8f0;
  font-size: .55rem;
}
body.public-project-page .reference-stage-strip article:nth-child(1) span { color: var(--public-green); background: #e9f8ec; }
body.public-project-page .reference-stage-strip article:nth-child(3) span { color: var(--public-blue); background: #e8f3ff; }
body.public-project-page .reference-wide-panel img { min-height: 0; }
body.public-project-page .reference-wide-panel > div { padding: 15px 20px; }

body.public-daily-page .public-split-hero { min-height: 390px; }
body.public-daily-page .public-split-hero > img { height: 330px; min-height: 0; }
body.public-daily-page .daily-moments { min-height: 0; padding-top: 10px; padding-bottom: 10px; }
body.public-daily-page .daily-rhythms { min-height: 0; padding-top: 12px; padding-bottom: 12px; }
body.public-daily-page .public-highlight-grid { min-height: 198px; }
body.public-daily-page .public-highlight-grid article { min-height: 185px; }
body.public-daily-page .daily-final-cta { min-height: 110px; }

body.public-spaces-page .reference-page-hero,
body.public-team-page .reference-page-hero { min-height: 340px; }
body.public-spaces-page .reference-page-hero > img,
body.public-team-page .reference-page-hero > img { height: 275px; min-height: 0; }
body.public-spaces-page .reference-stage-strip article {
  border: 0;
  border-right: 1px solid #bcc7d6;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
body.public-spaces-page .reference-stage-strip article:last-child { border-right: 0; }
body.public-team-page .public-principle-grid article {
  border: 0;
  border-right: 1px solid #d8dce5;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
body.public-team-page .public-principle-grid article:last-child { border-right: 0; }

@media (max-width: 1100px) {
  body.public-home-page .home-hero-copy h1,
  body.public-reference .reference-page-hero h1,
  body.public-daily-page .public-split-hero h1 { font-size: 3.25rem; }
}

@media (max-width: 820px) {
  body.public-site .public-header { grid-template-columns: 1fr auto; }
  body.public-site .public-menu-toggle { display: inline-flex; }
  body.public-site .public-menu {
    position: absolute;
    inset: calc(100% + 7px) 0 auto;
    display: none;
    padding: 13px;
    align-items: stretch;
    flex-direction: column;
    border: 1px solid #dfe4ec;
    border-radius: 15px;
    background: rgba(255,255,255,.98);
    box-shadow: 0 14px 28px rgba(17,43,82,.14);
  }
  body.public-site .public-menu.open { display: flex; }
  body.public-home-page .home-hero-copy h1,
  body.public-reference .reference-page-hero h1,
  body.public-daily-page .public-split-hero h1 { font-size: 2.9rem; }
}

@media (max-width: 560px) {
  body.public-home-page .home-hero-copy h1,
  body.public-reference .reference-page-hero h1,
  body.public-daily-page .public-split-hero h1 { font-size: 2.5rem; }
}

/* Page-specific rules must remain last to outrank the retained legacy theme. */
body.public-project-page .reference-page-hero h1 { font-size: 3rem; white-space: nowrap; }

body.public-registration-page .public-page-intro {
  min-height: 288px;
  grid-template-columns: .95fr 1.05fr;
}
body.public-registration-page .public-page-intro h1 { font-size: 3.5rem; }
body.public-registration-page .public-page-intro .hero-hand-mark { font-size: 2rem; }
body.public-registration-page .public-steps li { grid-template-columns: 46px minmax(0, 1fr); }
body.public-registration-page .public-steps li > strong { z-index: 1; }
body.public-registration-page .public-steps .step-icon { grid-column: 1; }
body.public-registration-page .public-steps span:last-child { grid-column: 2; min-width: 0; }
body.public-registration-page .registration-form { padding: 18px 20px; gap: 11px; }
body.public-registration-page .registration-form::before {
  color: var(--public-navy);
  content: "Votre demande";
  font-size: 1.25rem;
  font-weight: 900;
}
body.public-registration-page .registration-form legend {
  font-family: "Nunito Local", "Trebuchet MS", Arial, sans-serif !important;
}
body.public-registration-page .registration-form > fieldset + fieldset { margin-top: 4px; padding-top: 8px; }
body.public-registration-page .registration-form input:not([type="checkbox"]),
body.public-registration-page .registration-form textarea { min-height: 36px; padding: 6px 9px; }
body.public-registration-page .registration-form textarea { min-height: 68px; }
body.public-registration-page .registration-form .form-grid { row-gap: 9px; }

body.public-contact-page .reference-contact-layout { grid-template-columns: .75fr 1.25fr; }
body.public-contact-page .public-form { padding: 18px 22px; gap: 9px; }
body.public-contact-page .public-form input:not([type="checkbox"]),
body.public-contact-page .public-form select { min-height: 36px; padding: 6px 9px; }
body.public-contact-page .public-form textarea { min-height: 88px; padding: 7px 9px; }
body.public-contact-page .public-place-banner { min-height: 117px; }

@media (max-width: 820px) {
  body.public-home-page .home-hero {
    grid-template-columns: minmax(0, 1fr);
  }
  body.public-project-page .reference-page-hero,
  body.public-registration-page .public-page-intro,
  body.public-contact-page .reference-contact-layout { grid-template-columns: 1fr; }
  body.public-project-page .reference-page-hero h1,
  body.public-home-page .home-hero-copy h1 span { white-space: normal; }
  body.public-home-page .home-hero-media { width: 100%; min-width: 0; }
  body.public-project-page .reference-journey,
  body.public-project-page .reference-wide-panel { width: auto !important; }
}

/* Accueil: transposition stricte de la maquette officielle 1024 px. */
body.public-home-page {
  --public-canvas: 100%;
}

body.public-home-page .public-header {
  top: 0;
  width: 100%;
  min-height: 72px;
  margin: 0;
  padding: 7px 28px;
  gap: 22px;
  border-width: 0 0 1px;
  border-radius: 0;
  background: rgba(255,255,255,.94);
  box-shadow: 0 5px 16px rgba(17,43,82,.07);
}

body.public-home-page .public-brand .project-logo {
  width: 45px;
  height: 45px;
  flex-basis: 45px;
}

body.public-home-page .public-brand strong { font-size: 1.02rem; }
body.public-home-page .public-menu { gap: 29px; }
body.public-home-page .public-menu a { font-size: .69rem; }
body.public-home-page .family-pill,
body.public-home-page .public-place-link {
  min-height: 34px;
  padding: 7px 12px;
  border-radius: 11px;
  font-size: .62rem;
}

body.public-home-page .public-reference-main {
  width: 100% !important;
  background: rgba(255,255,255,.72);
}

body.public-home-page .home-hero {
  min-height: 358px;
  padding: 3px 59px 8px;
  grid-template-columns: 390px minmax(0, 1fr);
  gap: 35px;
}

body.public-home-page .home-hero-copy { max-width: 390px; }
body.public-home-page .home-hero-copy .reference-kicker {
  display: inline-flex;
  min-height: 25px;
  margin: 0 0 8px;
  padding: 5px 12px;
  align-items: center;
  border-radius: 14px;
  color: var(--public-navy);
  background: #ffd98b;
  font-size: .59rem;
}
body.public-home-page .home-hero-copy h1 {
  margin: 8px 0 19px;
  font-size: 3.38rem;
  line-height: .98;
}
body.public-home-page .home-hero-copy > p:not(.reference-kicker) {
  max-width: 355px;
  font-size: .76rem;
  line-height: 1.62;
}
body.public-home-page .home-hero-copy .reference-actions { margin-top: 18px; }
body.public-home-page .home-hero-media { height: 342px; }

body.public-home-page .home-pillars {
  min-height: 231px;
  padding: 8px 59px 20px;
}
body.public-home-page .home-pillars .reference-section-title { margin-bottom: 17px; }
body.public-home-page .home-pillars .reference-section-title h2 { font-size: 1.43rem; }
body.public-home-page .home-pillar-grid article { min-height: 118px; padding: 0 29px; }
body.public-home-page .home-pillar-grid .reference-icon { width: 44px; height: 44px; }
body.public-home-page .home-pillar-grid h3 { font-size: .88rem; }
body.public-home-page .home-pillar-grid p { font-size: .59rem; line-height: 1.55; }

body.public-home-page .home-life {
  min-height: 163px;
  padding: 14px 59px;
  grid-template-columns: 195px minmax(0, 1fr);
  gap: 14px;
}
body.public-home-page .home-life-copy h2 { font-size: 1rem; white-space: nowrap; }
body.public-home-page .home-life-copy p { max-width: 170px; font-size: .59rem; }
body.public-home-page .home-life-gallery { gap: 13px; }
body.public-home-page .home-life-gallery img { height: 127px; border-radius: 13px; }

body.public-home-page .home-stages {
  min-height: 236px;
  padding: 10px 59px 18px;
}
body.public-home-page .home-stages .reference-section-title { margin-bottom: 12px; }
body.public-home-page .home-stages .reference-section-title h2 { font-size: 1.44rem; }
body.public-home-page .home-stage-grid { gap: 14px; }
body.public-home-page .home-stage-grid article { height: 168px; border-radius: 14px; }
body.public-home-page .home-stage-grid article > div { padding: 14px 8px 11px 15px; }
body.public-home-page .home-stage-grid h3 { font-size: .95rem; }
body.public-home-page .home-stage-grid p { font-size: .58rem; }

body.public-home-page .home-team {
  min-height: 151px;
  padding: 10px 59px 16px;
  background: transparent;
}
body.public-home-page .home-team .reference-section-title h2 { font-size: 1.27rem; }
body.public-home-page .home-team .public-empty {
  width: 310px;
  min-height: 65px;
  margin: 0 auto;
  padding: 10px;
  border-radius: 12px;
  background: #f3edff;
}

body.public-home-page .home-practical {
  width: auto !important;
  min-height: 79px;
  margin: 0 59px 14px;
  padding: 12px 20px;
}
body.public-home-page .home-practical dl { gap: 15px; }
body.public-home-page .home-practical dl > div { grid-template-columns: 39px 1fr; }
body.public-home-page .home-practical .reference-icon { width: 37px; height: 37px; }
body.public-home-page .home-practical dt { font-size: .62rem; }
body.public-home-page .home-practical dd { font-size: .57rem; }

body.public-home-page .home-final-cta {
  width: auto !important;
  min-height: 119px;
  margin: 0 41px;
  padding: 0 24px 0 0;
  grid-template-columns: 280px 1fr;
  gap: 28px;
  border-radius: 24px 24px 0 0;
}
body.public-home-page .home-final-cta img { height: 119px; }
body.public-home-page .home-final-cta h2 { font-size: 1.24rem; }
body.public-home-page .home-final-cta p { font-size: .59rem; }

body.public-home-page .public-footer { min-height: 67px; }
body.public-home-page .public-footer-inner {
  width: calc(100% - 118px);
  padding: 5px 0 2px;
}
body.public-home-page .public-footer-grid {
  grid-template-columns: 1.2fr .78fr .78fr 1.13fr;
  gap: 18px;
}
body.public-home-page .public-footer .project-logo { width: 27px; height: 27px; flex-basis: 27px; }
body.public-home-page .public-footer .public-brand strong { font-size: .68rem; }
body.public-home-page .public-footer p,
body.public-home-page .public-footer span,
body.public-home-page .public-footer a { font-size: .43rem; line-height: 1.1; }
body.public-home-page .public-footer nav,
body.public-home-page .public-footer-contact { gap: 2px; }
body.public-home-page .public-footer nav > strong,
body.public-home-page .public-footer-contact > strong { margin-bottom: 2px; font-size: .55rem; }
body.public-home-page .public-footer-legal { margin-top: 2px; padding-top: 2px; }

@media (max-width: 820px) {
  body.public-home-page .public-header {
    width: calc(100% - 20px);
    margin: 8px 10px 0;
    padding: 7px 12px;
    border: 1px solid rgba(220,225,234,.7);
    border-radius: 18px;
  }
  body.public-home-page .home-hero { padding: 38px 30px 24px; grid-template-columns: minmax(0,1fr); }
  body.public-home-page .home-hero-copy { max-width: none; }
  body.public-home-page .home-hero-copy .reference-kicker { margin-bottom: 8px; }
  body.public-home-page .home-hero-media { height: 330px; }
  body.public-home-page .home-pillars,
  body.public-home-page .home-life,
  body.public-home-page .home-stages,
  body.public-home-page .home-team { padding-right: 28px; padding-left: 28px; }
  body.public-home-page .home-life { grid-template-columns: 1fr; }
  body.public-home-page .home-life-copy h2 { white-space: normal; }
  body.public-home-page .home-practical { margin-right: 22px; margin-left: 22px; }
  body.public-home-page .home-final-cta { margin-right: 22px; margin-left: 22px; }
  body.public-home-page .public-footer-inner { width: calc(100% - 44px); padding-top: 24px; }
}

/* Le Projet: transposition stricte de la maquette officielle 923 x 1704 px. */
body.public-project-page {
  --public-canvas: 100%;
}

body.public-project-page .public-header {
  top: 5px;
  width: calc(100% - 68px);
  min-height: 57px;
  margin: 5px auto 0;
  padding: 5px 18px;
  gap: 15px;
  border-radius: 20px;
}
body.public-project-page .public-brand .project-logo {
  width: 33px;
  height: 33px;
  flex-basis: 33px;
}
body.public-project-page .public-brand strong { font-size: .94rem; }
body.public-project-page .public-menu { gap: 26px; }
body.public-project-page .public-menu a {
  padding: 17px 0 15px;
  font-size: .62rem;
}
body.public-project-page .public-menu a::after {
  bottom: 7px;
  height: 2px;
  background: linear-gradient(90deg, #ffc429 0 48%, #f23878 48% 100%);
}
body.public-project-page .family-pill {
  min-height: 31px;
  padding: 6px 12px;
  border-radius: 13px;
  font-size: .59rem;
}

body.public-project-page .reference-inner {
  width: 100% !important;
  overflow: hidden;
}
body.public-project-page .reference-page-hero {
  min-height: 274px;
  padding: 20px 62px 18px;
  grid-template-columns: minmax(0, 310px) minmax(0, 1fr);
  gap: 40px;
}
body.public-project-page .reference-page-hero > div { max-width: 310px; }
body.public-project-page .reference-page-hero .reference-breadcrumb {
  margin-bottom: 18px;
  font-size: .61rem;
}
body.public-project-page .reference-page-hero h1 {
  margin-bottom: 14px;
  font-size: 2.55rem;
}
body.public-project-page .reference-page-hero strong {
  margin-bottom: 14px;
  font-size: 1.05rem;
}
body.public-project-page .reference-page-hero p:not(.reference-breadcrumb) {
  font-size: .67rem;
  line-height: 1.7;
}
body.public-project-page .reference-page-hero > img {
  height: 264px;
  border-radius: 48% 52% 46% 54% / 55% 45% 55% 45%;
}

body.public-project-page .reference-page-section { padding-right: 62px; padding-left: 62px; }
body.public-project-page #valeurs {
  min-height: 197px;
  padding-top: 6px;
  padding-bottom: 14px;
}
body.public-project-page #valeurs .reference-section-title { margin-bottom: 13px; }
body.public-project-page .reference-section-title h2 { font-size: 1.35rem; }
body.public-project-page .reference-heading-mark { margin-top: 5px; font-size: .7rem; }
body.public-project-page .reference-heading-mark::before,
body.public-project-page .reference-heading-mark::after {
  width: 21px;
  margin-bottom: 3px;
}
body.public-project-page .reference-value-grid { gap: 10px; }
body.public-project-page .reference-value-grid article {
  height: 151px;
  padding: 14px 12px;
  border-radius: 13px;
}
body.public-project-page .reference-value-grid .reference-icon {
  width: 43px;
  height: 43px;
  margin-bottom: 8px;
}
body.public-project-page .reference-value-grid strong { font-size: .73rem; }
body.public-project-page .reference-value-grid p {
  margin-top: 6px;
  font-size: .57rem;
  line-height: 1.55;
}

body.public-project-page .reference-approach {
  min-height: 356px;
  padding: 18px 62px 15px;
  background: rgba(255,255,255,.34);
}
body.public-project-page .reference-approach .reference-section-title { margin-bottom: 13px; }
body.public-project-page .reference-approach-grid { gap: 12px; }
body.public-project-page .reference-approach-grid article { padding: 0 5px; }
body.public-project-page .reference-approach-grid .reference-icon {
  width: 39px;
  height: 39px;
  margin-bottom: 7px;
}
body.public-project-page .reference-approach-grid h3 {
  min-height: 33px;
  margin-bottom: 5px;
  font-size: .72rem;
}
body.public-project-page .reference-approach-grid p {
  min-height: 89px;
  font-size: .53rem;
  line-height: 1.55;
}
body.public-project-page .reference-approach-grid img {
  height: 103px;
  margin-top: 9px;
  border-radius: 12px;
}

body.public-project-page .reference-journey {
  width: auto;
  min-height: 294px;
  margin: 10px 63px 15px;
  padding: 14px 16px 13px;
  border-radius: 18px;
}
body.public-project-page .reference-journey .reference-section-title { margin-bottom: 15px; }
body.public-project-page .reference-journey-layout {
  grid-template-columns: 110px minmax(0, 1fr) 110px;
  gap: 18px;
}
body.public-project-page .reference-journey-layout > img {
  width: 110px;
  height: 151px;
  border-radius: 14px;
}
body.public-project-page .reference-stage-strip { min-width: 0; }
body.public-project-page .reference-stage-strip article {
  min-width: 0;
  min-height: 120px;
  padding: 4px 8px;
}
body.public-project-page .reference-stage-strip span {
  width: 45px;
  height: 45px;
  font-size: .51rem;
}
body.public-project-page .reference-stage-strip strong { font-size: .76rem; }
body.public-project-page .reference-stage-strip p {
  font-size: .53rem;
  line-height: 1.55;
}
body.public-project-page .reference-journey-note {
  max-width: 590px;
  margin-top: 15px;
  font-size: .56rem;
  line-height: 1.55;
}

body.public-project-page .reference-wide-panel {
  width: 606px;
  min-height: 186px;
  margin: 0 auto 13px;
  padding: 14px;
  grid-template-columns: 240px minmax(0, 1fr);
  gap: 25px;
  border-radius: 55px;
}
body.public-project-page .reference-wide-panel img {
  height: 158px;
  border-radius: 38px;
}
body.public-project-page .reference-wide-panel > div { padding: 10px 8px; }
body.public-project-page .reference-wide-panel h2 { font-size: 1.23rem; }
body.public-project-page .reference-wide-panel p {
  margin: 7px 0;
  font-size: .56rem;
  line-height: 1.55;
}
body.public-project-page .reference-wide-panel .reference-text-link { font-size: .57rem; }

body.public-project-page .reference-next-cta {
  min-height: 111px;
  padding: 17px 104px;
  gap: 40px;
}
body.public-project-page .reference-next-cta {
  justify-content: flex-start;
}
body.public-project-page .reference-next-cta > div {
  width: 313px;
  max-width: 313px;
  flex: 0 0 313px;
}
body.public-project-page .reference-next-cta h2 { font-size: 1.18rem; }
body.public-project-page .reference-next-cta p {
  max-width: 430px;
  font-size: .57rem;
  line-height: 1.55;
}
body.public-project-page .reference-next-cta .reference-button {
  width: 169px;
  min-height: 34px;
  padding: 6px 14px;
  border-radius: 14px;
  font-size: .57rem;
}

body.public-project-page .public-footer { min-height: 150px; border-radius: 0; }
body.public-project-page .public-footer-inner {
  width: calc(100% - 140px);
  padding: 16px 0 7px;
}
body.public-project-page .public-footer-grid { gap: 25px; }
body.public-project-page .public-footer .project-logo {
  width: 32px;
  height: 32px;
  flex-basis: 32px;
}
body.public-project-page .public-footer .public-brand strong { font-size: .73rem; }
body.public-project-page .public-footer p,
body.public-project-page .public-footer span,
body.public-project-page .public-footer a {
  font-size: .49rem;
  line-height: 1.35;
}
body.public-project-page .public-footer nav > strong,
body.public-project-page .public-footer-contact > strong {
  margin-bottom: 4px;
  font-size: .59rem;
}
body.public-project-page .public-footer-legal {
  margin-top: 7px;
  padding-top: 6px;
}

@media (max-width: 900px) {
  body.public-project-page .public-header {
    top: 5px;
    width: calc(100% - 20px);
    min-height: 64px;
    margin: 5px 10px 0;
    grid-template-columns: 1fr auto;
  }
  body.public-project-page .public-menu-toggle { display: inline-flex; }
  body.public-project-page .public-menu {
    position: absolute;
    inset: calc(100% + 7px) 0 auto;
    display: none;
    padding: 13px;
    align-items: stretch;
    flex-direction: column;
    gap: 0;
    border: 1px solid #dfe4ec;
    border-radius: 15px;
    background: rgba(255,255,255,.98);
    box-shadow: 0 14px 28px rgba(17,43,82,.14);
  }
  body.public-project-page .public-menu.open { display: flex; }
  body.public-project-page .public-menu a { padding: 10px; font-size: .8rem; }
  body.public-project-page .public-menu a::after { display: none; }
  body.public-project-page .public-header-actions { display: none; }
  body.public-project-page .reference-page-hero {
    min-height: 0;
    padding: 38px 34px 26px;
    grid-template-columns: 1fr;
    gap: 24px;
  }
  body.public-project-page .reference-page-hero > div { max-width: none; }
  body.public-project-page .reference-page-hero h1 { white-space: normal; }
  body.public-project-page .reference-page-section { padding-right: 34px; padding-left: 34px; }
  body.public-project-page .reference-value-grid { grid-template-columns: repeat(2, 1fr); }
  body.public-project-page .reference-approach-grid { grid-template-columns: repeat(2, 1fr); row-gap: 24px; }
  body.public-project-page .reference-approach-grid article { border-right: 0; }
  body.public-project-page .reference-approach-grid p { min-height: 0; }
  body.public-project-page .reference-journey { margin-right: 34px; margin-left: 34px; }
  body.public-project-page .reference-journey-layout { grid-template-columns: 90px minmax(0, 1fr) 90px; }
  body.public-project-page .reference-journey-layout > img { width: 90px; }
  body.public-project-page .reference-wide-panel { width: calc(100% - 68px); }
  body.public-project-page .reference-next-cta { padding-right: 34px; padding-left: 34px; }
  body.public-project-page .public-footer-inner { width: calc(100% - 68px); }
}

@media (max-width: 560px) {
  body.public-project-page .reference-page-hero,
  body.public-project-page .reference-page-section { padding-right: 20px; padding-left: 20px; }
  body.public-project-page .reference-page-hero h1 { font-size: 2.5rem; }
  body.public-project-page .reference-page-hero > img { height: 240px; }
  body.public-project-page .reference-value-grid,
  body.public-project-page .reference-approach-grid,
  body.public-project-page .reference-stage-strip { grid-template-columns: 1fr; }
  body.public-project-page .reference-value-grid article { height: auto; min-height: 145px; }
  body.public-project-page .reference-approach-grid article { padding-bottom: 18px; }
  body.public-project-page .reference-journey { margin-right: 15px; margin-left: 15px; }
  body.public-project-page .reference-journey-layout { grid-template-columns: 1fr; }
  body.public-project-page .reference-journey-layout > img { display: none; }
  body.public-project-page .reference-stage-strip::before { display: none; }
  body.public-project-page .reference-wide-panel {
    width: auto;
    margin-right: 15px;
    margin-left: 15px;
    grid-template-columns: 1fr;
    border-radius: 22px;
  }
  body.public-project-page .reference-next-cta {
    padding: 22px;
    align-items: flex-start;
    flex-direction: column;
  }
  body.public-project-page .public-footer-inner { width: calc(100% - 44px); padding-top: 26px; }
}

/* Le Quotidien: transposition stricte de la maquette officielle 1024 x 1536 px. */
body.public-daily-page { --public-canvas: 100%; }

body.public-daily-page .public-header {
  top: 10px;
  width: calc(100% - 80px);
  min-height: 70px;
  margin: 10px 40px 0;
  padding: 6px 20px;
  gap: 18px;
  border-radius: 21px;
}
body.public-daily-page .public-brand .project-logo {
  width: 42px;
  height: 42px;
  flex-basis: 42px;
}
body.public-daily-page .public-brand strong { font-size: 1.04rem; }
body.public-daily-page .public-menu { gap: 34px; }
body.public-daily-page .public-menu a {
  padding: 20px 0 17px;
  font-size: .66rem;
}
body.public-daily-page .public-menu a::after { bottom: 8px; height: 2px; }
body.public-daily-page .family-pill {
  min-height: 34px;
  padding: 7px 14px;
  border-radius: 18px;
  font-size: .61rem;
}

body.public-daily-page .reference-inner {
  width: 100% !important;
  overflow: hidden;
}
body.public-daily-page .public-split-hero {
  min-height: 372px;
  padding: 24px 59px 18px;
  grid-template-columns: 350px minmax(0, 1fr);
  gap: 38px;
}
body.public-daily-page .public-split-hero > div { max-width: 350px; }
body.public-daily-page .public-split-hero .reference-breadcrumb {
  margin-bottom: 19px;
  font-size: .64rem;
}
body.public-daily-page .public-split-hero h1 {
  margin-bottom: 11px;
  font-size: 3rem;
  line-height: 1;
}
body.public-daily-page .public-split-hero strong {
  margin-bottom: 14px;
  font-size: 1.17rem;
  line-height: 1.5;
}
body.public-daily-page .public-split-hero p:not(.reference-breadcrumb) {
  font-size: .71rem;
  line-height: 1.65;
}
body.public-daily-page .public-split-hero > img {
  height: 315px;
  min-height: 0;
}
body.public-daily-page .public-hours {
  width: 292px;
  min-height: 68px;
  margin-top: 19px;
  padding: 10px 14px;
  border-radius: 15px;
}
body.public-daily-page .public-hours > span {
  width: 42px;
  height: 42px;
}
body.public-daily-page .public-hours strong { font-size: .9rem; }
body.public-daily-page .public-hours small { font-size: .59rem; }

body.public-daily-page .daily-moments {
  min-height: 260px;
  padding: 5px 55px 10px;
}
body.public-daily-page .public-page-section > header { margin-bottom: 7px; }
body.public-daily-page .public-page-section > header h2 { font-size: 1.43rem; }
body.public-daily-page .public-page-section > header .reference-heading-mark { margin-top: 4px; }
body.public-daily-page .public-moment-grid { gap: 10px; }
body.public-daily-page .public-moment-grid article {
  min-height: 196px;
  padding: 14px 10px 11px;
  border-radius: 14px;
}
body.public-daily-page .public-moment-grid .reference-icon {
  width: 48px;
  height: 48px;
  margin-bottom: 8px;
}
body.public-daily-page .public-moment-grid h3 {
  min-height: 39px;
  font-size: .74rem;
}
body.public-daily-page .public-moment-grid p {
  font-size: .58rem;
  line-height: 1.55;
}

body.public-daily-page .daily-rhythms {
  min-height: 327px;
  padding: 7px 0 0;
}
body.public-daily-page .public-tabs {
  width: calc(100% - 278px);
  gap: 12px;
}
body.public-daily-page .public-tabs button {
  min-height: 45px;
  padding: 8px;
  font-size: .8rem;
}
body.public-daily-page .public-tab-panel {
  min-height: 226px;
  width: calc(100% - 214px);
  padding: 17px 34px;
  grid-template-columns: 230px minmax(0, 1fr);
  gap: 28px;
}
body.public-daily-page .daily-rhythm-visual {
  min-height: 174px;
  font-size: 5.9rem;
}
body.public-daily-page .public-tab-panel h3 { font-size: 1.08rem; }
body.public-daily-page .public-tab-panel p { font-size: .65rem; }
body.public-daily-page .public-tab-panel li {
  min-height: 44px;
  padding: 8px;
  font-size: .52rem;
}

body.public-daily-page .public-highlight-grid {
  min-height: 194px;
  padding: 0 74px;
  gap: 14px;
}
body.public-daily-page .public-highlight-grid article {
  min-height: 194px;
  padding: 16px 18px;
  grid-template-columns: 44px minmax(0, 1fr) 100px;
  border-radius: 18px;
}
body.public-daily-page .public-highlight-grid h2 { font-size: 1.08rem; }
body.public-daily-page .public-highlight-grid p { font-size: .58rem; }

body.public-daily-page .daily-final-cta {
  display: grid;
  min-height: 112px;
  margin: 11px 75px 0;
  padding: 13px 28px;
  grid-template-columns: 90px minmax(0, 1fr) 218px;
  justify-content: stretch;
  gap: 18px;
  border-radius: 18px 18px 0 0;
}
body.public-daily-page .daily-final-cta > .reference-icon {
  width: 65px;
  height: 65px;
  justify-self: center;
}
body.public-daily-page .daily-final-cta > div { max-width: 370px; }
body.public-daily-page .daily-final-cta h2 { font-size: 1.08rem; }
body.public-daily-page .daily-final-cta p { font-size: .58rem; }
body.public-daily-page .daily-final-cta .reference-button {
  width: 218px;
  min-height: 44px;
  justify-self: end;
  border-radius: 18px;
  font-size: .64rem;
}

body.public-daily-page .public-footer {
  min-height: 175px;
  border-radius: 0;
}
body.public-daily-page .public-footer-inner {
  width: calc(100% - 150px);
  padding: 17px 0 8px;
}
body.public-daily-page .public-footer-grid { gap: 34px; }
body.public-daily-page .public-footer .project-logo {
  width: 42px;
  height: 42px;
  flex-basis: 42px;
}
body.public-daily-page .public-footer .public-brand strong { font-size: .78rem; }
body.public-daily-page .public-footer p,
body.public-daily-page .public-footer span,
body.public-daily-page .public-footer a {
  font-size: .55rem;
  line-height: 1.35;
}
body.public-daily-page .public-footer nav > strong,
body.public-daily-page .public-footer-contact > strong { font-size: .64rem; }

/* Le Quotidien: finition fidÃ¨le Ã  la maquette officielle. */
body.public-daily-page .public-split-hero {
  min-height: 388px;
  padding-left: 72px;
  grid-template-columns: 338px minmax(0, 1fr);
  gap: 42px;
}
body.public-daily-page .public-split-hero > div { max-width: 338px; }
body.public-daily-page .public-split-hero p:not(.reference-breadcrumb) { max-width: 310px; }
body.public-daily-page .public-split-hero > img {
  height: 315px;
  object-position: 50% 54%;
}
body.public-daily-page .public-hours {
  min-height: 51px;
  margin-top: 16px;
  padding: 6px 11px;
  gap: 10px;
  border-color: rgba(17, 43, 82, .1);
  box-shadow: 0 5px 14px rgba(17, 43, 82, .045);
}
body.public-daily-page .public-hours > span { width: 34px; height: 34px; }
body.public-daily-page .public-hours strong { font-size: .82rem; }
body.public-daily-page .public-hours small { font-size: .55rem; }

body.public-daily-page .daily-moments {
  min-height: 0;
  padding: 30px 55px 28px;
}
body.public-daily-page .daily-moments > header { margin-bottom: 14px; }
body.public-daily-page .public-moment-grid { gap: 11px; }
body.public-daily-page .public-moment-grid article {
  min-height: 168px;
  padding: 11px 10px 10px;
  border-color: rgba(17, 43, 82, .09);
  box-shadow: 0 7px 18px rgba(17, 43, 82, .035);
}
body.public-daily-page .public-moment-grid .reference-icon {
  width: 42px;
  height: 42px;
  margin-bottom: 6px;
  font-size: 1.25rem;
}
body.public-daily-page .public-moment-grid h3 {
  min-height: 32px;
  margin-bottom: 5px;
  line-height: 1.2;
}
body.public-daily-page .public-moment-grid p { line-height: 1.48; }

body.public-daily-page .daily-rhythms {
  min-height: 0;
  padding: 37px 0 32px;
}
body.public-daily-page .daily-rhythms > header { margin-bottom: 17px; }
body.public-daily-page .public-tabs {
  width: calc(100% - 278px);
  margin-bottom: -1px;
  gap: 12px;
}
body.public-daily-page .public-tabs button {
  min-height: 38px;
  padding: 5px 10px;
  border-color: rgba(17, 43, 82, .11);
  border-radius: 13px 13px 0 0;
  font-size: .73rem;
  box-shadow: 0 3px 10px rgba(17, 43, 82, .025);
}
body.public-daily-page .public-tabs button.active {
  z-index: 1;
  border-bottom-color: #fff;
  box-shadow: 0 -4px 12px rgba(255, 91, 143, .06);
}
body.public-daily-page .public-tab-panel {
  min-height: 226px;
  width: calc(100% - 214px);
  padding: 18px 36px;
  grid-template-columns: 228px minmax(0, 1fr);
  gap: 35px;
  border-color: rgba(17, 43, 82, .09);
  box-shadow: 0 9px 24px rgba(17, 43, 82, .045);
}
body.public-daily-page .daily-rhythm-visual {
  display: grid;
  min-height: 188px;
  overflow: hidden;
  place-items: center;
  background: #fff4f7;
  font-size: 0;
}
body.public-daily-page .daily-rhythm-visual img {
  display: block;
  width: 202px;
  height: 182px;
  object-fit: contain;
}
body.public-daily-page .public-tab-panel h3 { margin: 0 0 8px; }
body.public-daily-page .public-tab-panel p {
  max-width: 520px;
  margin: 0 0 13px;
  line-height: 1.62;
}
body.public-daily-page .public-tab-panel li {
  min-height: 31px;
  padding: 5px 7px;
  display: flex;
  align-items: center;
  line-height: 1.35;
}

body.public-daily-page .public-highlight-grid {
  min-height: 0;
  padding: 32px 74px 34px;
  gap: 16px;
}
body.public-daily-page .public-highlight-grid article {
  min-height: 194px;
  padding: 15px 17px 14px;
  grid-template-columns: minmax(0, 1fr) 42%;
  align-items: center;
  gap: 12px;
  border: 1px solid rgba(17, 43, 82, .055);
  box-shadow: 0 8px 22px rgba(17, 43, 82, .035);
}
body.public-daily-page .daily-highlight-copy {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr);
  align-items: start;
  gap: 9px;
}
body.public-daily-page .public-highlight-grid .reference-icon {
  width: 40px;
  height: 40px;
}
body.public-daily-page .public-highlight-grid h2 { margin-top: 2px; }
body.public-daily-page .highlight-illustration {
  display: block;
  width: 100%;
  height: 155px;
  align-self: center;
  object-fit: contain;
}

body.public-daily-page .daily-final-cta {
  min-height: 126px;
  margin: 22px 75px 0;
  padding: 12px 25px;
  grid-template-columns: 112px minmax(0, 1fr) 205px;
  gap: 22px;
  border-radius: 18px 18px 0 0;
}
body.public-daily-page .daily-cta-illustration {
  display: block;
  width: 105px;
  height: 105px;
  object-fit: contain;
}
body.public-daily-page .daily-final-cta > div { max-width: 390px; }
body.public-daily-page .daily-final-cta .reference-button {
  width: 205px;
  min-height: 39px;
}

/* Ã€ chacun son rythme : gÃ©omÃ©trie et Ã©tats chromatiques de la maquette. */
body.public-daily-page .daily-rhythms {
  --rhythm-accent: #f23878;
  --rhythm-tint: #fff0f5;
  padding-top: 31px;
  padding-bottom: 30px;
}
body.public-daily-page .daily-rhythms[data-rhythm-level="maternelle"] {
  --rhythm-accent: #36a853;
  --rhythm-tint: #edf9ef;
}
body.public-daily-page .daily-rhythms[data-rhythm-level="primaire"] {
  --rhythm-accent: #1673d2;
  --rhythm-tint: #edf6ff;
}
body.public-daily-page .daily-rhythms > header { margin-bottom: 17px; }
body.public-daily-page .daily-rhythms .public-tabs {
  width: 746px;
  max-width: calc(100% - 214px);
  margin: 0 auto -1px;
  gap: 12px;
}
body.public-daily-page .daily-rhythms .public-tabs button {
  min-width: 0;
  min-height: 46px;
  padding: 8px 16px;
  border: 1px solid rgba(17, 43, 82, .11);
  border-bottom-color: rgba(17, 43, 82, .11);
  border-radius: 14px 14px 0 0;
  color: var(--public-navy);
  background: rgba(255, 255, 255, .78);
  box-shadow: 0 -3px 12px rgba(17, 43, 82, .025);
  font-size: .8rem;
}
body.public-daily-page .daily-rhythms .public-tabs button :is(.lpm-icon, svg) {
  width: 25px;
  height: 25px;
  margin-right: 9px;
  color: currentColor;
  vertical-align: middle;
}
body.public-daily-page .daily-rhythms .public-tabs button[data-public-tab="creche"] {
  border-color: rgba(242, 56, 120, .28);
  color: #f23878;
  background: #fff0f5;
}
body.public-daily-page .daily-rhythms .public-tabs button[data-public-tab="maternelle"] {
  border-color: rgba(54, 168, 83, .28);
  color: #36a853;
  background: #edf9ef;
}
body.public-daily-page .daily-rhythms .public-tabs button[data-public-tab="primaire"] {
  border-color: rgba(22, 115, 210, .28);
  color: #1673d2;
  background: #edf6ff;
}
body.public-daily-page .daily-rhythms .public-tabs button:not(.active) {
  opacity: .9;
}
body.public-daily-page .daily-rhythms .public-tabs button:not(.active) :is(.lpm-icon, svg) {
  color: var(--tab-accent, currentColor);
}
body.public-daily-page .daily-rhythms .public-tabs button[data-public-tab="creche"] :is(.lpm-icon, svg) { --tab-accent: #f23878; color: #f23878; }
body.public-daily-page .daily-rhythms .public-tabs button[data-public-tab="maternelle"] :is(.lpm-icon, svg) { --tab-accent: #36a853; color: #36a853; }
body.public-daily-page .daily-rhythms .public-tabs button[data-public-tab="primaire"] :is(.lpm-icon, svg) { --tab-accent: #1673d2; color: #1673d2; }
body.public-daily-page .daily-rhythms .public-tabs button.active {
  z-index: 2;
  border-color: var(--rhythm-accent);
  border-bottom-color: #fff;
  color: var(--rhythm-accent);
  background: var(--rhythm-tint);
  box-shadow: 0 -4px 14px color-mix(in srgb, var(--rhythm-accent) 9%, transparent);
}
body.public-daily-page .daily-rhythms .public-tab-panel {
  min-height: 226px;
  width: 808px;
  max-width: calc(100% - 174px);
  padding: 18px 33px;
  grid-template-columns: 220px minmax(0, 1fr);
  gap: 35px;
  border-color: color-mix(in srgb, var(--rhythm-accent) 20%, #dfe4eb);
  border-radius: 19px;
  box-shadow: 0 9px 24px rgba(17, 43, 82, .045);
}
body.public-daily-page .daily-rhythms .daily-rhythm-visual {
  min-height: 188px;
  overflow: visible;
  border-radius: 0;
  background: transparent;
}
body.public-daily-page .daily-rhythms .daily-rhythm-visual img {
  width: 220px;
  height: 188px;
  object-fit: contain;
}
body.public-daily-page .daily-rhythm-copy { min-width: 0; }
body.public-daily-page .daily-rhythms .public-tab-panel h3 {
  margin: 0 0 7px;
  color: var(--rhythm-accent);
  font-size: 1.08rem;
}
body.public-daily-page .daily-rhythms .public-tab-panel p {
  max-width: 500px;
  margin: 0 0 13px;
  color: #15365f;
  font-size: .65rem;
  line-height: 1.62;
}
body.public-daily-page .daily-rhythms .public-tab-panel ul {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}
body.public-daily-page .daily-rhythms .public-tab-panel li {
  min-height: 45px;
  padding: 7px 8px;
  align-items: center;
  gap: 6px;
  border: 1px solid color-mix(in srgb, var(--rhythm-accent) 13%, transparent);
  border-radius: 9px;
  color: #17365e;
  background: var(--rhythm-tint);
  font-size: .52rem;
  line-height: 1.35;
}
body.public-daily-page .daily-rhythms .public-tab-panel li :is(.lpm-icon, svg) {
  width: 24px;
  height: 24px;
  flex: 0 0 24px;
  color: var(--rhythm-accent);
  stroke-width: 2.2;
}

@media (max-width: 900px) {
  body.public-daily-page .daily-rhythms .public-tabs,
  body.public-daily-page .daily-rhythms .public-tab-panel { width: 100%; max-width: none; }
  body.public-daily-page .daily-rhythms .public-tab-panel {
    grid-template-columns: 190px minmax(0, 1fr);
    gap: 24px;
  }
  body.public-daily-page .daily-rhythms .daily-rhythm-visual img { width: 185px; height: 172px; }
  body.public-daily-page .daily-rhythms .public-tab-panel ul { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 560px) {
  body.public-daily-page .daily-rhythms { padding-top: 38px; padding-bottom: 34px; }
  body.public-daily-page .daily-rhythms .public-tabs { gap: 5px; }
  body.public-daily-page .daily-rhythms .public-tabs button {
    min-height: 45px;
    padding: 7px 5px;
    font-size: .68rem;
  }
  body.public-daily-page .daily-rhythms .public-tabs button :is(.lpm-icon, svg) {
    width: 21px;
    height: 21px;
    margin-right: 5px;
  }
  body.public-daily-page .daily-rhythms .public-tab-panel {
    padding: 18px;
    grid-template-columns: 1fr;
    gap: 13px;
  }
  body.public-daily-page .daily-rhythms .daily-rhythm-visual { min-height: 174px; }
  body.public-daily-page .daily-rhythms .daily-rhythm-visual img { width: 205px; height: 174px; }
  body.public-daily-page .daily-rhythms .public-tab-panel li { min-height: 45px; }
  body.public-daily-page .daily-rhythms .public-tab-panel li :is(.lpm-icon, svg) {
    width: 22px;
    height: 22px;
    flex-basis: 22px;
  }
}

@media (min-width: 901px) {
  body.public-daily-page .daily-moments {
    padding-right: 35px;
    padding-left: 35px;
  }
  body.public-daily-page .public-tabs {
    width: calc(100% - 238px);
  }
  body.public-daily-page .public-tab-panel {
    width: calc(100% - 174px);
  }
}

@media (max-width: 900px) {
  body.public-daily-page .public-header {
    top: 5px;
    width: calc(100% - 20px);
    min-height: 64px;
    margin: 5px 10px 0;
    grid-template-columns: 1fr auto;
  }
  body.public-daily-page .public-menu-toggle { display: inline-flex; }
  body.public-daily-page .public-menu {
    position: absolute;
    inset: calc(100% + 7px) 0 auto;
    display: none;
    padding: 13px;
    align-items: stretch;
    flex-direction: column;
    gap: 0;
    border: 1px solid #dfe4ec;
    border-radius: 15px;
    background: rgba(255,255,255,.98);
    box-shadow: 0 14px 28px rgba(17,43,82,.14);
  }
  body.public-daily-page .public-menu.open { display: flex; }
  body.public-daily-page .public-menu a { padding: 10px; font-size: .8rem; }
  body.public-daily-page .public-menu a::after { display: none; }
  body.public-daily-page .public-header-actions { display: none; }
  body.public-daily-page .public-split-hero {
    min-height: 0;
    padding: 46px 38px 34px;
    grid-template-columns: 1fr;
    gap: 24px;
  }
  body.public-daily-page .public-split-hero > div { max-width: none; }
  body.public-daily-page .daily-moments { padding: 34px; }
  body.public-daily-page .public-moment-grid { grid-template-columns: repeat(3, 1fr); }
  body.public-daily-page .daily-rhythms { padding: 38px 34px 34px; }
  body.public-daily-page .public-tabs,
  body.public-daily-page .public-tab-panel { width: 100%; }
  body.public-daily-page .public-tab-panel { grid-template-columns: 190px minmax(0, 1fr); gap: 24px; }
  body.public-daily-page .daily-rhythm-visual img { width: 175px; height: 165px; }
  body.public-daily-page .public-highlight-grid { padding: 34px; }
  body.public-daily-page .daily-final-cta {
    margin-right: 34px;
    margin-left: 34px;
    grid-template-columns: 92px minmax(0, 1fr) 190px;
  }
  body.public-daily-page .daily-cta-illustration { width: 88px; height: 88px; }
  body.public-daily-page .daily-final-cta .reference-button { width: 190px; }
  body.public-daily-page .public-footer-inner { width: calc(100% - 68px); }
}

@media (max-width: 560px) {
  body.public-daily-page .public-split-hero,
  body.public-daily-page .daily-moments,
  body.public-daily-page .daily-rhythms { padding-right: 20px; padding-left: 20px; }
  body.public-daily-page .public-split-hero h1 { font-size: 2.5rem; }
  body.public-daily-page .public-split-hero > img { height: 240px; }
  body.public-daily-page .public-hours { width: 100%; }
  body.public-daily-page .public-moment-grid { grid-template-columns: 1fr; }
  body.public-daily-page .public-moment-grid article { min-height: 165px; }
  body.public-daily-page .public-tabs { gap: 5px; }
  body.public-daily-page .public-tabs button { font-size: .69rem; }
  body.public-daily-page .public-tab-panel { padding: 18px; grid-template-columns: 1fr; }
  body.public-daily-page .daily-rhythm-visual { min-height: 180px; }
  body.public-daily-page .daily-rhythm-visual img { width: 190px; height: 170px; }
  body.public-daily-page .public-tab-panel ul { grid-template-columns: 1fr 1fr; }
  body.public-daily-page .public-highlight-grid {
    padding-right: 20px;
    padding-left: 20px;
    grid-template-columns: 1fr;
  }
  body.public-daily-page .public-highlight-grid article {
    min-height: 210px;
    grid-template-columns: minmax(0, 1fr) 40%;
  }
  body.public-daily-page .highlight-illustration { height: 155px; }
  body.public-daily-page .daily-final-cta {
    margin-right: 15px;
    margin-left: 15px;
    padding: 22px;
    grid-template-columns: 1fr;
  }
  body.public-daily-page .daily-cta-illustration { width: 105px; height: 105px; }
  body.public-daily-page .daily-final-cta .reference-button { width: 100%; justify-self: stretch; }
  body.public-daily-page .public-footer-inner { width: calc(100% - 44px); padding-top: 26px; }
}

/* Les espaces: transposition stricte des composants rÃ©ellement publiÃ©s. */
body.public-spaces-page { --public-canvas: 100%; }

body.public-spaces-page .public-header {
  top: 0;
  width: calc(100% - 28px);
  min-height: 78px;
  margin: 0 14px;
  padding: 8px 22px;
  border-radius: 0 0 22px 22px;
}
body.public-spaces-page .public-brand .project-logo {
  width: 45px;
  height: 45px;
  flex-basis: 45px;
}
body.public-spaces-page .public-menu { gap: 35px; }
body.public-spaces-page .public-menu a {
  padding: 22px 0 18px;
  font-size: .68rem;
}
body.public-spaces-page .public-menu a::after {
  bottom: 9px;
  height: 2px;
  background: #ffc429;
}
body.public-spaces-page .family-pill {
  min-height: 37px;
  padding: 7px 14px;
  border-radius: 18px;
  font-size: .63rem;
}

body.public-spaces-page .reference-inner {
  width: 100% !important;
  overflow: hidden;
}
body.public-spaces-page .reference-page-hero {
  min-height: 315px;
  padding: 25px 52px 18px;
  grid-template-columns: 340px minmax(0, 1fr);
  gap: 50px;
}
body.public-spaces-page .reference-page-hero > div { max-width: 340px; }
body.public-spaces-page .reference-page-hero .reference-breadcrumb {
  margin-bottom: 18px;
  font-size: .64rem;
}
body.public-spaces-page .reference-page-hero h1 {
  margin-bottom: 14px;
  font-size: 3.2rem;
}
body.public-spaces-page .reference-page-hero strong {
  margin-bottom: 15px;
  font-size: 1.15rem;
  line-height: 1.45;
}
body.public-spaces-page .reference-page-hero p:not(.reference-breadcrumb) {
  font-size: .68rem;
  line-height: 1.7;
}
body.public-spaces-page .reference-page-hero > img {
  height: 263px;
  min-height: 0;
}

body.public-spaces-page .reference-page-hero + .reference-page-section {
  padding: 10px 47px 18px;
}
body.public-spaces-page .reference-page-hero + .reference-page-section .reference-section-title {
  margin-bottom: 19px;
}
body.public-spaces-page .reference-page-hero + .reference-page-section .reference-section-title h2 {
  font-size: 1.35rem;
}
body.public-spaces-page .reference-page-hero + .reference-page-section .reference-section-title p {
  margin-top: 5px;
  font-size: .65rem;
}
body.public-spaces-page .reference-space-grid .public-empty {
  min-height: 96px;
  padding: 20px;
  border-radius: 12px;
}

body.public-spaces-page .public-age-section {
  min-height: 178px;
  margin: 0 47px 13px;
  padding: 18px 72px 14px;
  border-radius: 18px;
}
body.public-spaces-page .public-age-section .reference-section-title { margin-bottom: 13px; }
body.public-spaces-page .public-age-section .reference-section-title h2 { font-size: 1.35rem; }
body.public-spaces-page .public-age-section .reference-heading-mark { margin-top: 4px; }
body.public-spaces-page .reference-stage-strip article {
  min-height: 88px;
  padding: 3px 28px 3px 55px;
}
body.public-spaces-page .reference-stage-strip span { font-size: .68rem; }
body.public-spaces-page .reference-stage-strip strong {
  margin-bottom: 6px;
  font-size: .82rem;
}
body.public-spaces-page .reference-stage-strip p {
  font-size: .57rem;
  line-height: 1.5;
}

body.public-spaces-page .reference-yellow-cta {
  min-height: 160px;
  margin: 0 47px;
  padding: 12px 22px;
  grid-template-columns: 390px minmax(0, 1fr);
  gap: 26px;
  border-radius: 20px 20px 0 0;
}
body.public-spaces-page .reference-yellow-cta img {
  height: 135px;
  border-radius: 45px;
}
body.public-spaces-page .reference-yellow-cta h2 { font-size: 1.35rem; }
body.public-spaces-page .reference-yellow-cta p {
  margin: 7px 0 12px;
  font-size: .64rem;
  line-height: 1.55;
}
body.public-spaces-page .reference-yellow-cta .reference-button {
  min-height: 36px;
  padding: 7px 18px;
  border-radius: 18px;
  font-size: .61rem;
}

body.public-spaces-page .public-footer {
  min-height: 177px;
  border-radius: 0;
}
body.public-spaces-page .public-footer-inner {
  width: calc(100% - 104px);
  padding: 16px 0 8px;
}
body.public-spaces-page .public-footer-grid { gap: 32px; }
body.public-spaces-page .public-footer .project-logo {
  width: 42px;
  height: 42px;
  flex-basis: 42px;
}
body.public-spaces-page .public-footer .public-brand strong { font-size: .82rem; }
body.public-spaces-page .public-footer p,
body.public-spaces-page .public-footer span,
body.public-spaces-page .public-footer a {
  font-size: .57rem;
  line-height: 1.4;
}
body.public-spaces-page .public-footer nav > strong,
body.public-spaces-page .public-footer-contact > strong { font-size: .65rem; }

@media (max-width: 900px) {
  body.public-spaces-page .public-header {
    top: 5px;
    width: calc(100% - 20px);
    min-height: 64px;
    margin: 5px 10px 0;
    grid-template-columns: 1fr auto;
    border-radius: 18px;
  }
  body.public-spaces-page .public-menu-toggle { display: inline-flex; }
  body.public-spaces-page .public-menu {
    position: absolute;
    inset: calc(100% + 7px) 0 auto;
    display: none;
    padding: 13px;
    align-items: stretch;
    flex-direction: column;
    gap: 0;
    border: 1px solid #dfe4ec;
    border-radius: 15px;
    background: rgba(255,255,255,.98);
    box-shadow: 0 14px 28px rgba(17,43,82,.14);
  }
  body.public-spaces-page .public-menu.open { display: flex; }
  body.public-spaces-page .public-menu a { padding: 10px; font-size: .8rem; }
  body.public-spaces-page .public-menu a::after { display: none; }
  body.public-spaces-page .public-header-actions { display: none; }
  body.public-spaces-page .reference-page-hero {
    min-height: 0;
    padding: 38px 34px 26px;
    grid-template-columns: 1fr;
    gap: 24px;
  }
  body.public-spaces-page .reference-page-hero > div { max-width: none; }
  body.public-spaces-page .reference-page-hero + .reference-page-section { padding-right: 34px; padding-left: 34px; }
  body.public-spaces-page .public-age-section { margin-right: 34px; margin-left: 34px; padding-right: 28px; padding-left: 28px; }
  body.public-spaces-page .reference-stage-strip article { padding-right: 18px; padding-left: 18px; }
  body.public-spaces-page .reference-yellow-cta {
    margin-right: 34px;
    margin-left: 34px;
    grid-template-columns: 280px minmax(0, 1fr);
  }
  body.public-spaces-page .public-footer-inner { width: calc(100% - 68px); }
}

@media (max-width: 560px) {
  body.public-spaces-page .reference-page-hero,
  body.public-spaces-page .reference-page-hero + .reference-page-section { padding-right: 20px; padding-left: 20px; }
  body.public-spaces-page .reference-page-hero h1 { font-size: 2.5rem; }
  body.public-spaces-page .reference-page-hero > img { height: 240px; }
  body.public-spaces-page .public-age-section {
    margin-right: 15px;
    margin-left: 15px;
    padding: 22px;
  }
  body.public-spaces-page .reference-stage-strip { grid-template-columns: 1fr; }
  body.public-spaces-page .reference-stage-strip article {
    min-height: 110px;
    border-right: 0;
    border-bottom: 1px solid #d6dce5;
  }
  body.public-spaces-page .reference-yellow-cta {
    margin-right: 15px;
    margin-left: 15px;
    padding: 15px;
    grid-template-columns: 1fr;
    border-radius: 22px 22px 0 0;
  }
  body.public-spaces-page .reference-yellow-cta img { height: 210px; }
  body.public-spaces-page .public-footer-inner { width: calc(100% - 44px); padding-top: 26px; }
}

/* L'Ã©quipe: transposition stricte des composants et profils rÃ©ellement publiÃ©s. */
body.public-team-page { --public-canvas: 100%; }

body.public-team-page .public-header {
  top: 0;
  width: calc(100% - 30px);
  min-height: 80px;
  margin: 0 15px;
  padding: 8px 22px;
  border-radius: 0 0 22px 22px;
}
body.public-team-page .public-brand .project-logo {
  width: 45px;
  height: 45px;
  flex-basis: 45px;
}
body.public-team-page .public-menu { gap: 34px; }
body.public-team-page .public-menu a {
  padding: 22px 0 18px;
  font-size: .68rem;
}
body.public-team-page .public-menu a::after {
  bottom: 9px;
  height: 2px;
  background: #ffc429;
}
body.public-team-page .family-pill {
  min-height: 37px;
  padding: 7px 14px;
  border-radius: 18px;
  font-size: .63rem;
}

body.public-team-page .reference-inner {
  width: 100% !important;
  overflow: hidden;
}
body.public-team-page .reference-page-hero {
  min-height: 323px;
  padding: 23px 61px 17px;
  grid-template-columns: 330px minmax(0, 1fr);
  gap: 42px;
}
body.public-team-page .reference-page-hero > div { max-width: 330px; }
body.public-team-page .reference-page-hero .reference-breadcrumb {
  margin-bottom: 18px;
  font-size: .64rem;
}
body.public-team-page .reference-page-hero h1 {
  margin-bottom: 16px;
  font-size: 3.2rem;
}
body.public-team-page .reference-page-hero strong {
  margin-bottom: 15px;
  font-size: 1.15rem;
  line-height: 1.45;
}
body.public-team-page .reference-page-hero p:not(.reference-breadcrumb) {
  font-size: .69rem;
  line-height: 1.65;
}
body.public-team-page .reference-page-hero .hero-hand-mark {
  margin-top: 14px;
  font-size: 2.2rem;
}
body.public-team-page .reference-page-hero > img {
  height: 272px;
  min-height: 0;
}

body.public-team-page .reference-page-hero + .reference-page-section {
  padding: 12px 59px 22px;
}
body.public-team-page .reference-page-hero + .reference-page-section .reference-section-title {
  margin-bottom: 17px;
}
body.public-team-page .reference-page-hero + .reference-page-section .reference-section-title h2 {
  font-size: 1.4rem;
}
body.public-team-page .reference-team-grid .public-empty {
  min-height: 96px;
  padding: 20px;
  border-radius: 12px;
}

body.public-team-page .reference-team-principles {
  min-height: 174px;
  margin: 0 45px 13px;
  padding: 20px 52px 17px;
  border-radius: 18px;
}
body.public-team-page .reference-team-principles .reference-section-title { margin-bottom: 17px; }
body.public-team-page .reference-team-principles .reference-section-title h2 { font-size: 1.35rem; }
body.public-team-page .public-principle-grid article {
  min-height: 88px;
  padding: 6px 27px;
  grid-template-columns: 54px minmax(0, 1fr);
  gap: 13px;
}
body.public-team-page .public-principle-grid .reference-icon {
  width: 54px;
  height: 54px;
  font-size: 1.8rem;
}
body.public-team-page .public-principle-grid h3 { font-size: .82rem; }
body.public-team-page .public-principle-grid p {
  font-size: .58rem;
  line-height: 1.5;
}

body.public-team-page .reference-yellow-cta {
  min-height: 163px;
  margin: 0 45px;
  padding: 12px 34px;
  grid-template-columns: 360px minmax(0, 1fr);
  gap: 31px;
  border-radius: 20px 20px 0 0;
}
body.public-team-page .reference-yellow-cta img {
  height: 139px;
  border-radius: 45px;
}
body.public-team-page .reference-yellow-cta h2 { font-size: 1.35rem; }
body.public-team-page .reference-yellow-cta p {
  margin: 7px 0 12px;
  font-size: .64rem;
  line-height: 1.55;
}
body.public-team-page .reference-yellow-cta .reference-button {
  min-height: 36px;
  padding: 7px 18px;
  border-radius: 18px;
  font-size: .61rem;
}

body.public-team-page .public-footer {
  min-height: 196px;
  border-radius: 0;
}
body.public-team-page .public-footer-inner {
  width: calc(100% - 92px);
  padding: 18px 0 8px;
}
body.public-team-page .public-footer-grid { gap: 32px; }
body.public-team-page .public-footer .project-logo {
  width: 45px;
  height: 45px;
  flex-basis: 45px;
}
body.public-team-page .public-footer .public-brand strong { font-size: .82rem; }
body.public-team-page .public-footer p,
body.public-team-page .public-footer span,
body.public-team-page .public-footer a {
  font-size: .58rem;
  line-height: 1.45;
}
body.public-team-page .public-footer nav > strong,
body.public-team-page .public-footer-contact > strong { font-size: .67rem; }

@media (max-width: 900px) {
  body.public-team-page .public-header {
    top: 5px;
    width: calc(100% - 20px);
    min-height: 64px;
    margin: 5px 10px 0;
    grid-template-columns: 1fr auto;
    border-radius: 18px;
  }
  body.public-team-page .public-menu-toggle { display: inline-flex; }
  body.public-team-page .public-menu {
    position: absolute;
    inset: calc(100% + 7px) 0 auto;
    display: none;
    padding: 13px;
    align-items: stretch;
    flex-direction: column;
    gap: 0;
    border: 1px solid #dfe4ec;
    border-radius: 15px;
    background: rgba(255,255,255,.98);
    box-shadow: 0 14px 28px rgba(17,43,82,.14);
  }
  body.public-team-page .public-menu.open { display: flex; }
  body.public-team-page .public-menu a { padding: 10px; font-size: .8rem; }
  body.public-team-page .public-menu a::after { display: none; }
  body.public-team-page .public-header-actions { display: none; }
  body.public-team-page .reference-page-hero {
    min-height: 0;
    padding: 38px 34px 26px;
    grid-template-columns: 1fr;
    gap: 24px;
  }
  body.public-team-page .reference-page-hero > div { max-width: none; }
  body.public-team-page .reference-page-hero + .reference-page-section { padding-right: 34px; padding-left: 34px; }
  body.public-team-page .reference-team-grid { grid-template-columns: repeat(2, 1fr); }
  body.public-team-page .reference-team-principles { margin-right: 34px; margin-left: 34px; padding-right: 28px; padding-left: 28px; }
  body.public-team-page .public-principle-grid article { padding-right: 16px; padding-left: 16px; }
  body.public-team-page .reference-yellow-cta {
    margin-right: 34px;
    margin-left: 34px;
    grid-template-columns: 280px minmax(0, 1fr);
  }
  body.public-team-page .public-footer-inner { width: calc(100% - 68px); }
}

@media (max-width: 560px) {
  body.public-team-page .reference-page-hero,
  body.public-team-page .reference-page-hero + .reference-page-section { padding-right: 20px; padding-left: 20px; }
  body.public-team-page .reference-page-hero h1 { font-size: 2.5rem; }
  body.public-team-page .reference-page-hero > img { height: 240px; }
  body.public-team-page .reference-team-grid { grid-template-columns: 1fr; }
  body.public-team-page .reference-team-principles {
    margin-right: 15px;
    margin-left: 15px;
    padding: 22px;
  }
  body.public-team-page .public-principle-grid { grid-template-columns: 1fr; }
  body.public-team-page .public-principle-grid article {
    min-height: 105px;
    border-right: 0;
    border-bottom: 1px solid #d6dce5;
  }
  body.public-team-page .reference-yellow-cta {
    margin-right: 15px;
    margin-left: 15px;
    padding: 15px;
    grid-template-columns: 1fr;
    border-radius: 22px 22px 0 0;
  }
  body.public-team-page .reference-yellow-cta img { height: 210px; }
  body.public-team-page .public-footer-inner { width: calc(100% - 44px); padding-top: 26px; }
}

/* Inscription: transposition stricte de la maquette officielle 1024 x 1536 px. */
body.public-registration-page { --public-canvas: 100%; }

body.public-registration-page .public-header {
  top: 0;
  width: calc(100% - 40px);
  min-height: 80px;
  margin: 0 20px;
  padding: 8px 25px;
  border-radius: 0 0 22px 22px;
}
body.public-registration-page .public-brand .project-logo {
  width: 43px;
  height: 43px;
  flex-basis: 43px;
}
body.public-registration-page .public-menu { gap: 34px; }
body.public-registration-page .public-menu a {
  padding: 22px 0 18px;
  font-size: .68rem;
}
body.public-registration-page .public-menu a::after { bottom: 9px; height: 2px; }
body.public-registration-page .family-pill {
  min-height: 36px;
  padding: 7px 14px;
  border-radius: 18px;
  font-size: .63rem;
}

body.public-registration-page .reference-inner {
  width: 100% !important;
  overflow: hidden;
}
body.public-registration-page .public-page-intro {
  min-height: 293px;
  padding: 20px 79px 14px;
  grid-template-columns: 362px minmax(0, 1fr);
  gap: 48px;
}
body.public-registration-page .public-page-intro > div { max-width: 362px; }
body.public-registration-page .public-page-intro .public-eyebrow {
  display: inline-flex;
  width: fit-content;
  min-height: 24px;
  padding: 5px 11px;
  align-items: center;
  border-radius: 13px;
  color: var(--public-navy);
  background: #ffd05d;
  font-size: .57rem;
}
body.public-registration-page .public-page-intro h1 {
  margin: 10px 0 8px;
  font-size: 3.35rem;
  line-height: .9;
}
body.public-registration-page .public-page-intro strong {
  margin-bottom: 9px;
  font-size: 1.02rem;
}
body.public-registration-page .public-page-intro p:not(.public-eyebrow) {
  font-size: .68rem;
  line-height: 1.55;
}
body.public-registration-page .public-page-intro .hero-hand-mark {
  margin-top: 10px;
  font-size: 1.9rem;
}
body.public-registration-page .public-page-intro > img {
  height: 250px;
  min-height: 0;
}

body.public-registration-page .registration-steps {
  min-height: 156px;
  padding: 0 67px 14px;
}
body.public-registration-page .registration-steps .reference-section-title { margin-bottom: 12px; }
body.public-registration-page .registration-steps .reference-section-title h2 { font-size: 1.34rem; }
body.public-registration-page .public-steps { gap: 48px; }
body.public-registration-page .public-steps li {
  min-height: 102px;
  padding: 13px 13px;
  grid-template-columns: 44px minmax(0, 1fr);
  gap: 9px;
  border-radius: 14px;
}
body.public-registration-page .public-steps li > strong {
  top: 17px;
  left: 10px;
  width: 24px;
  height: 24px;
}
body.public-registration-page .public-steps .step-icon { font-size: 1.9rem; }
body.public-registration-page .public-steps b { font-size: .7rem; }
body.public-registration-page .public-steps span:last-child {
  font-size: .56rem;
  line-height: 1.45;
}

body.public-registration-page .registration-layout-v3 {
  display: grid;
  min-height: 0;
  padding: 0 37px 13px;
  grid-template-columns: minmax(0, 607px) minmax(0, 294px);
  justify-content: center;
  gap: 20px;
}
body.public-registration-page .registration-form {
  min-height: 697px;
  padding: 16px 20px;
  gap: 8px;
}
body.public-registration-page .registration-form::before { font-size: 1.15rem; }
body.public-registration-page .registration-form fieldset { gap: 7px; }
body.public-registration-page .registration-form > fieldset + fieldset {
  margin-top: 1px;
  padding-top: 6px;
}
body.public-registration-page .registration-form legend {
  margin-bottom: 5px;
  font-size: 1rem;
}
body.public-registration-page .registration-form .form-grid {
  gap: 7px 14px;
}
body.public-registration-page .registration-grid { gap: 8px; }
body.public-registration-page .registration-child {
  padding: 10px !important;
}
body.public-registration-page .registration-child legend {
  margin-bottom: 2px;
  font-size: .83rem;
}
body.public-registration-page .registration-form label { gap: 4px; font-size: .6rem; }
body.public-registration-page .registration-form input:not([type="checkbox"]),
body.public-registration-page .registration-form textarea {
  min-height: 36px;
  padding: 6px 9px;
}
body.public-registration-page .registration-form textarea { min-height: 58px; }
body.public-registration-page .registration-form .secondary-button {
  min-height: 35px;
  padding: 7px 14px;
  border-radius: 10px;
  font-size: .65rem;
}
body.public-registration-page .form-consent {
  margin: 5px 0 0;
  font-size: .59rem;
}
body.public-registration-page .form-status:empty { display: none; }
body.public-registration-page .registration-form .primary-cta {
  min-height: 36px;
  margin-top: 2px;
  border-radius: 9px;
  font-size: .66rem;
}

body.public-registration-page .registration-aside { gap: 13px; }
body.public-registration-page .registration-aside article {
  padding: 19px;
  border-radius: 16px;
}
body.public-registration-page .registration-aside article:first-child { min-height: 414px; }
body.public-registration-page .registration-aside article:last-child { min-height: 184px; }
body.public-registration-page .registration-aside img {
  height: 197px;
  margin-bottom: 9px;
}
body.public-registration-page .registration-aside h2 { font-size: 1rem; }
body.public-registration-page .registration-aside p {
  margin: 8px 0 12px;
  font-size: .6rem;
  line-height: 1.5;
}
body.public-registration-page .registration-aside .secondary-button {
  min-height: 36px;
  border-radius: 18px;
  font-size: .62rem;
}
body.public-registration-page .registration-aside .text-link { font-size: .6rem; }

body.public-registration-page .public-reassurance {
  min-height: 82px;
  margin: 0 67px 0;
  padding: 12px 20px;
}
body.public-registration-page .public-reassurance > span {
  padding: 0 30px;
  font-size: .59rem;
}
body.public-registration-page .public-reassurance b { font-size: .68rem; }

body.public-registration-page .public-footer {
  min-height: 194px;
  border-radius: 38px 38px 0 0;
}
body.public-registration-page .public-footer-inner {
  width: calc(100% - 96px);
  padding: 18px 0 8px;
}
body.public-registration-page .public-footer-grid { gap: 31px; }
body.public-registration-page .public-footer .project-logo {
  width: 43px;
  height: 43px;
  flex-basis: 43px;
}
body.public-registration-page .public-footer .public-brand strong { font-size: .82rem; }
body.public-registration-page .public-footer p,
body.public-registration-page .public-footer span,
body.public-registration-page .public-footer a {
  font-size: .58rem;
  line-height: 1.45;
}
body.public-registration-page .public-footer nav > strong,
body.public-registration-page .public-footer-contact > strong { font-size: .67rem; }

@media (max-width: 900px) {
  body.public-registration-page .public-header {
    top: 5px;
    width: calc(100% - 20px);
    min-height: 64px;
    margin: 5px 10px 0;
    grid-template-columns: 1fr auto;
    border-radius: 18px;
  }
  body.public-registration-page .public-menu-toggle { display: inline-flex; }
  body.public-registration-page .public-menu {
    position: absolute;
    inset: calc(100% + 7px) 0 auto;
    display: none;
    padding: 13px;
    align-items: stretch;
    flex-direction: column;
    gap: 0;
    border: 1px solid #dfe4ec;
    border-radius: 15px;
    background: rgba(255,255,255,.98);
    box-shadow: 0 14px 28px rgba(17,43,82,.14);
  }
  body.public-registration-page .public-menu.open { display: flex; }
  body.public-registration-page .public-menu a { padding: 10px; font-size: .8rem; }
  body.public-registration-page .public-menu a::after { display: none; }
  body.public-registration-page .public-header-actions { display: none; }
  body.public-registration-page .public-page-intro {
    min-height: 0;
    padding: 38px 34px 26px;
    grid-template-columns: 1fr;
    gap: 24px;
  }
  body.public-registration-page .public-page-intro > div { max-width: none; }
  body.public-registration-page .registration-steps { padding-right: 34px; padding-left: 34px; }
  body.public-registration-page .public-steps { gap: 14px; }
  body.public-registration-page .registration-layout-v3 {
    padding-right: 34px;
    padding-left: 34px;
    grid-template-columns: 1fr;
  }
  body.public-registration-page .registration-form { min-height: 0; }
  body.public-registration-page .registration-aside { grid-template-columns: repeat(2, 1fr); }
  body.public-registration-page .public-reassurance { margin-right: 34px; margin-left: 34px; }
  body.public-registration-page .public-footer-inner { width: calc(100% - 68px); }
}

@media (max-width: 560px) {
  body.public-registration-page .public-page-intro,
  body.public-registration-page .registration-steps,
  body.public-registration-page .registration-layout-v3 { padding-right: 20px; padding-left: 20px; }
  body.public-registration-page .public-page-intro h1 { font-size: 2.7rem; }
  body.public-registration-page .public-page-intro > img { height: 240px; }
  body.public-registration-page .public-steps { grid-template-columns: 1fr; }
  body.public-registration-page .public-steps li { min-height: 90px; }
  body.public-registration-page .form-grid,
  body.public-registration-page .registration-grid { grid-template-columns: 1fr; }
  body.public-registration-page .registration-aside { grid-template-columns: 1fr; }
  body.public-registration-page .registration-aside article:first-child,
  body.public-registration-page .registration-aside article:last-child { min-height: 0; }
  body.public-registration-page .public-reassurance {
    margin-right: 20px;
    margin-left: 20px;
    grid-template-columns: 1fr;
  }
  body.public-registration-page .public-reassurance > span {
    min-height: 68px;
    padding: 12px 0;
    border-right: 0;
    border-bottom: 1px solid #d4dae3;
  }
  body.public-registration-page .public-footer-inner { width: calc(100% - 44px); padding-top: 26px; }
}

/* Contact: transposition stricte de la maquette officielle 1122 x 1402 px. */
body.public-contact-page { --public-canvas: 100%; }

body.public-contact-page .public-header {
  top: 4px;
  width: calc(100% - 4px);
  min-height: 82px;
  margin: 4px 2px 0;
  padding: 8px 36px;
  border-radius: 26px;
}
body.public-contact-page .public-brand .project-logo {
  width: 43px;
  height: 43px;
  flex-basis: 43px;
}
body.public-contact-page .public-menu { gap: 35px; }
body.public-contact-page .public-menu a {
  padding: 22px 0 18px;
  font-size: .67rem;
}
body.public-contact-page .public-menu a::after { bottom: 9px; height: 2px; }
body.public-contact-page .family-pill {
  min-height: 36px;
  padding: 7px 14px;
  border-radius: 18px;
  font-size: .62rem;
}

body.public-contact-page .reference-inner {
  width: 100% !important;
  overflow: hidden;
}
body.public-contact-page .reference-contact-hero {
  min-height: 270px;
  padding: 29px 78px 17px;
  grid-template-columns: 520px minmax(0, 1fr);
  gap: 45px;
}
body.public-contact-page .reference-contact-hero .reference-breadcrumb {
  margin-bottom: 18px;
  font-size: .64rem;
}
body.public-contact-page .reference-contact-hero h1 {
  margin-bottom: 8px;
  font-size: 3.15rem;
}
body.public-contact-page .reference-contact-hero strong {
  margin-bottom: 10px;
  font-size: 1.12rem;
}
body.public-contact-page .reference-contact-hero p:not(.reference-breadcrumb) {
  max-width: 490px;
  font-size: .68rem;
  line-height: 1.6;
}
body.public-contact-page .reference-contact-hero .hero-hand-mark {
  margin-top: 11px;
  font-size: 2.1rem;
}
body.public-contact-page .reference-contact-visual {
  height: 220px;
  min-height: 0;
}

body.public-contact-page .reference-contact-layout {
  min-height: 595px;
  padding: 0 70px 24px;
  grid-template-columns: 354px minmax(0, 1fr);
  gap: 35px;
}
body.public-contact-page .public-contact-details {
  min-height: 571px;
  padding: 25px 29px;
  border-radius: 17px;
}
body.public-contact-page .public-contact-details h2,
body.public-contact-page .public-form h2 {
  margin-bottom: 15px;
  font-size: 1.36rem;
}
body.public-contact-page .public-contact-details dl > div {
  min-height: 75px;
  padding: 9px 0;
  grid-template-columns: 54px 1fr;
}
body.public-contact-page .public-contact-details .reference-icon {
  width: 45px;
  height: 45px;
}
body.public-contact-page .public-contact-details dt { font-size: .68rem; }
body.public-contact-page .public-contact-details dd { font-size: .64rem; }
body.public-contact-page .contact-service-note {
  margin-top: 13px;
  padding: 14px 17px;
  border-radius: 13px;
}
body.public-contact-page .contact-service-note b { font-size: .65rem; }
body.public-contact-page .contact-service-note p {
  font-size: .55rem;
  line-height: 1.45;
}

body.public-contact-page .public-form {
  min-height: 571px;
  padding: 24px 28px;
  gap: 8px;
  border-radius: 17px;
}
body.public-contact-page .public-form label {
  gap: 4px;
  font-size: .63rem;
}
body.public-contact-page .public-form .form-grid { gap: 14px; }
body.public-contact-page .public-form input:not([type="checkbox"]),
body.public-contact-page .public-form select {
  min-height: 39px;
  padding: 7px 10px;
}
body.public-contact-page .public-form textarea {
  min-height: 91px;
  padding: 8px 10px;
}
body.public-contact-page .form-consent {
  margin-top: 5px;
  font-size: .59rem;
}
body.public-contact-page .form-status:empty { display: none; }
body.public-contact-page .public-form .reference-button {
  min-height: 43px;
  margin-top: 2px;
  border-radius: 18px;
  font-size: .68rem;
}

body.public-contact-page .public-place-banner {
  min-height: 115px;
  margin: 0 70px 20px;
  padding: 14px 52px;
  grid-template-columns: 120px minmax(0, 1fr) 230px;
  gap: 24px;
  border-radius: 17px;
}
body.public-contact-page .public-place-banner > .reference-icon {
  width: 66px;
  height: 66px;
  justify-self: center;
}
body.public-contact-page .public-place-banner h2 { font-size: 1.18rem; }
body.public-contact-page .public-place-banner p {
  font-size: .61rem;
  line-height: 1.5;
}
body.public-contact-page .public-place-banner .reference-button {
  width: 230px;
  min-height: 43px;
  justify-self: end;
  border-radius: 20px;
  font-size: .65rem;
}

body.public-contact-page .public-footer {
  min-height: 289px;
  border-radius: 38px 38px 0 0;
}
body.public-contact-page .public-footer-inner {
  width: calc(100% - 86px);
  padding: 25px 0 12px;
}
body.public-contact-page .public-footer-grid { gap: 39px; }
body.public-contact-page .public-footer .project-logo {
  width: 48px;
  height: 48px;
  flex-basis: 48px;
}
body.public-contact-page .public-footer .public-brand strong { font-size: .89rem; }
body.public-contact-page .public-footer p,
body.public-contact-page .public-footer span,
body.public-contact-page .public-footer a {
  font-size: .62rem;
  line-height: 1.5;
}
body.public-contact-page .public-footer nav > strong,
body.public-contact-page .public-footer-contact > strong { font-size: .7rem; }

@media (max-width: 900px) {
  body.public-contact-page .public-header {
    top: 5px;
    width: calc(100% - 20px);
    min-height: 64px;
    margin: 5px 10px 0;
    padding: 7px 13px;
    grid-template-columns: 1fr auto;
    border-radius: 18px;
  }
  body.public-contact-page .public-menu-toggle { display: inline-flex; }
  body.public-contact-page .public-menu {
    position: absolute;
    inset: calc(100% + 7px) 0 auto;
    display: none;
    padding: 13px;
    align-items: stretch;
    flex-direction: column;
    gap: 0;
    border: 1px solid #dfe4ec;
    border-radius: 15px;
    background: rgba(255,255,255,.98);
    box-shadow: 0 14px 28px rgba(17,43,82,.14);
  }
  body.public-contact-page .public-menu.open { display: flex; }
  body.public-contact-page .public-menu a { padding: 10px; font-size: .8rem; }
  body.public-contact-page .public-menu a::after { display: none; }
  body.public-contact-page .public-header-actions { display: none; }
  body.public-contact-page .reference-contact-hero {
    min-height: 0;
    padding: 38px 34px 26px;
    grid-template-columns: 1fr;
    gap: 24px;
  }
  body.public-contact-page .reference-contact-layout {
    padding-right: 34px;
    padding-left: 34px;
    grid-template-columns: 1fr;
  }
  body.public-contact-page .public-contact-details,
  body.public-contact-page .public-form { min-height: 0; }
  body.public-contact-page .public-place-banner {
    margin-right: 34px;
    margin-left: 34px;
    grid-template-columns: 76px minmax(0, 1fr) 190px;
  }
  body.public-contact-page .public-place-banner .reference-button { width: 190px; }
  body.public-contact-page .public-footer-inner { width: calc(100% - 68px); }
}

@media (max-width: 560px) {
  body.public-contact-page .reference-contact-hero,
  body.public-contact-page .reference-contact-layout { padding-right: 20px; padding-left: 20px; }
  body.public-contact-page .reference-contact-hero h1 { font-size: 2.6rem; }
  body.public-contact-page .reference-contact-visual { height: 210px; }
  body.public-contact-page .public-form .form-grid { grid-template-columns: 1fr; }
  body.public-contact-page .public-place-banner {
    margin-right: 15px;
    margin-left: 15px;
    padding: 22px;
    grid-template-columns: 1fr;
  }
  body.public-contact-page .public-place-banner > .reference-icon { justify-self: start; }
  body.public-contact-page .public-place-banner .reference-button { width: 100%; justify-self: stretch; }
  body.public-contact-page .public-footer-inner { width: calc(100% - 44px); padding-top: 26px; }
}

/* Production design system: shared public chrome and family shell. */
.lpm-icon,
svg.lpm-icon,
[data-lucide] {
  display: inline-block;
  width: 1.15em;
  height: 1.15em;
  flex: 0 0 auto;
  vertical-align: -0.2em;
}

body.public-site {
  --lpm-shell-width: min(calc(100% - 68px), 1440px);
  --lpm-control-radius: 12px;
  --lpm-card-radius: 14px;
  --lpm-border: #dfe4ec;
  --lpm-shadow: 0 10px 28px rgba(17, 43, 82, .09);
}

body.public-site .public-header,
body.public-home-page .public-header,
body.public-project-page .public-header,
body.public-daily-page .public-header,
body.public-spaces-page .public-header,
body.public-team-page .public-header,
body.public-registration-page .public-header,
body.public-contact-page .public-header {
  top: 10px;
  width: var(--lpm-shell-width);
  min-height: 68px;
  margin: 10px auto 0;
  padding: 7px 20px;
  gap: clamp(14px, 2vw, 28px);
  border: 1px solid rgba(216, 223, 233, .76);
  border-radius: 22px;
  background: rgba(255, 255, 255, .88);
  box-shadow: 0 10px 30px rgba(20, 43, 78, .1);
  -webkit-backdrop-filter: blur(18px) saturate(145%);
  backdrop-filter: blur(18px) saturate(145%);
}

body.public-site .public-brand .project-logo,
body.public-home-page .public-brand .project-logo,
body.public-project-page .public-brand .project-logo,
body.public-daily-page .public-brand .project-logo,
body.public-spaces-page .public-brand .project-logo,
body.public-team-page .public-brand .project-logo,
body.public-registration-page .public-brand .project-logo,
body.public-contact-page .public-brand .project-logo {
  width: 43px;
  height: 43px;
  flex-basis: 43px;
}

body.public-site .public-brand strong,
body.public-home-page .public-brand strong,
body.public-project-page .public-brand strong,
body.public-daily-page .public-brand strong,
body.public-spaces-page .public-brand strong,
body.public-team-page .public-brand strong,
body.public-registration-page .public-brand strong,
body.public-contact-page .public-brand strong { font-size: 1rem; }

body.public-site .public-menu,
body.public-home-page .public-menu,
body.public-project-page .public-menu,
body.public-daily-page .public-menu,
body.public-spaces-page .public-menu,
body.public-team-page .public-menu,
body.public-registration-page .public-menu,
body.public-contact-page .public-menu { gap: clamp(16px, 2.3vw, 34px); }

body.public-site .public-menu a,
body.public-home-page .public-menu a,
body.public-project-page .public-menu a,
body.public-daily-page .public-menu a,
body.public-spaces-page .public-menu a,
body.public-team-page .public-menu a,
body.public-registration-page .public-menu a,
body.public-contact-page .public-menu a {
  padding: 20px 0 17px;
  font-size: .69rem;
}

body.public-site .family-pill,
body.public-site .public-place-link,
body.public-home-page .family-pill,
body.public-home-page .public-place-link,
body.public-project-page .family-pill,
body.public-daily-page .family-pill,
body.public-spaces-page .family-pill,
body.public-team-page .family-pill,
body.public-registration-page .family-pill,
body.public-contact-page .family-pill {
  min-height: 36px;
  padding: 7px 13px;
  gap: 7px;
  border-radius: 14px;
  font-size: .64rem;
}

body.public-site .public-header a,
body.public-site .reference-button,
body.public-site .primary-cta,
body.public-site .secondary-button,
body.public-site button,
body.family-app a,
body.family-app button {
  transition: border-color .18s ease, background-color .18s ease, color .18s ease, box-shadow .18s ease, transform .18s ease;
}

@media (hover: hover) {
  body.public-site :is(.reference-button, .primary-cta, .secondary-button, .family-pill, .public-place-link):hover,
  body.family-app :is(button, .fp-sidebar-action):hover { transform: translateY(-1px); }
}

body.public-site :is(a, button, input, select, textarea):focus-visible,
body.family-app :is(a, button, input, select, textarea):focus-visible {
  outline: 3px solid rgba(116, 55, 232, .2);
  outline-offset: 2px;
}

body.public-site .public-footer,
body.public-home-page .public-footer,
body.public-project-page .public-footer,
body.public-daily-page .public-footer,
body.public-spaces-page .public-footer,
body.public-team-page .public-footer,
body.public-registration-page .public-footer,
body.public-contact-page .public-footer {
  min-height: 0;
  border-radius: 0;
  background: #0b2b59;
}

body.public-site .public-footer-inner,
body.public-home-page .public-footer-inner,
body.public-project-page .public-footer-inner,
body.public-daily-page .public-footer-inner,
body.public-spaces-page .public-footer-inner,
body.public-team-page .public-footer-inner,
body.public-registration-page .public-footer-inner,
body.public-contact-page .public-footer-inner {
  width: var(--lpm-shell-width);
  margin: 0 auto;
  padding: 34px 0 18px;
}

body.public-site .public-footer-grid,
body.public-home-page .public-footer-grid,
body.public-project-page .public-footer-grid,
body.public-daily-page .public-footer-grid,
body.public-spaces-page .public-footer-grid,
body.public-team-page .public-footer-grid,
body.public-registration-page .public-footer-grid,
body.public-contact-page .public-footer-grid {
  grid-template-columns: 1.35fr .8fr .85fr 1.15fr;
  gap: clamp(28px, 4vw, 60px);
}

body.public-site .public-footer .project-logo,
body.public-home-page .public-footer .project-logo,
body.public-project-page .public-footer .project-logo,
body.public-daily-page .public-footer .project-logo,
body.public-spaces-page .public-footer .project-logo,
body.public-team-page .public-footer .project-logo,
body.public-registration-page .public-footer .project-logo,
body.public-contact-page .public-footer .project-logo {
  width: 42px;
  height: 42px;
  flex-basis: 42px;
}

body.public-site .public-footer .public-brand strong,
body.public-home-page .public-footer .public-brand strong,
body.public-project-page .public-footer .public-brand strong,
body.public-daily-page .public-footer .public-brand strong,
body.public-spaces-page .public-footer .public-brand strong,
body.public-team-page .public-footer .public-brand strong,
body.public-registration-page .public-footer .public-brand strong,
body.public-contact-page .public-footer .public-brand strong { font-size: .88rem; }

body.public-site .public-footer :is(p, span, a),
body.public-home-page .public-footer :is(p, span, a),
body.public-project-page .public-footer :is(p, span, a),
body.public-daily-page .public-footer :is(p, span, a),
body.public-spaces-page .public-footer :is(p, span, a),
body.public-team-page .public-footer :is(p, span, a),
body.public-registration-page .public-footer :is(p, span, a),
body.public-contact-page .public-footer :is(p, span, a) {
  font-size: .68rem;
  line-height: 1.55;
}

body.public-site .public-footer :is(nav, .public-footer-contact) { gap: 5px; }
body.public-site .public-footer :is(nav, .public-footer-contact) > strong {
  margin-bottom: 6px;
  font-size: .72rem;
  letter-spacing: 0;
}
body.public-site .public-footer-brand > p { max-width: 220px; margin: 7px 0; }
body.public-site .footer-location,
body.public-site .public-footer-contact > :is(a, span) {
  display: flex;
  align-items: flex-start;
  gap: 7px;
}
body.public-site .public-footer .lpm-icon { width: 14px; height: 14px; margin-top: 2px; }
body.public-site .public-footer [hidden] { display: none !important; }
body.public-contact-page .public-contact-details [hidden] { display: none !important; }
body.public-site .public-footer-legal {
  margin-top: 24px;
  padding-top: 14px;
}

body.family-app {
  --fp-sidebar-width: 292px;
  --fp-shell-shadow: 0 8px 26px rgba(25, 46, 75, .055);
  font-family: "Nunito Local", "Trebuchet MS", Arial, sans-serif;
  background: #fdfdfe;
}

body.family-app .fp-sidebar {
  display: flex;
  padding: 18px 20px 20px;
  flex-direction: column;
  border-right-color: #e8ebf0;
  background-color: rgba(255, 255, 255, .98);
}

body.family-app .fp-sidebar nav {
  min-height: 0;
  flex: 1 0 auto;
  gap: 3px;
}

body.family-app .fp-sidebar a {
  min-height: 42px;
  padding: 6px 10px;
  grid-template-columns: 32px minmax(0, 1fr) auto auto;
  gap: 8px;
  border-radius: 8px;
  font-size: .78rem;
  font-weight: 850;
}

body.family-app .fp-sidebar a > span {
  width: 32px;
  height: 30px;
  border-radius: 0;
  background: transparent;
}

body.family-app .fp-sidebar a > span .lpm-icon { width: 18px; height: 18px; }
body.family-app .fp-sidebar .fp-nav-chevron { width: 14px; height: 14px; }
body.family-app .fp-sidebar a:hover { background: #faf9fc; }
body.family-app .fp-sidebar a.active {
  background: linear-gradient(100deg, #f6efff, #f2e9fb);
  box-shadow: none;
}

body.family-app .fp-sidebar :is(.nav-espace-familles, .nav-messages, .nav-mon-compte) { color: #0871dc; }
body.family-app .fp-sidebar :is(.nav-mon-enfant, .nav-planning) { color: #7437e8; }
body.family-app .fp-sidebar :is(.nav-photos) { color: #f23878; }
body.family-app .fp-sidebar :is(.nav-menus, .nav-aide) { color: #ef8f00; }
body.family-app .fp-sidebar :is(.nav-documents, .nav-sante) { color: #2e9e48; }

body.family-app .fp-sidebar a em {
  min-width: 22px;
  height: 22px;
  padding: 0 6px;
  border-radius: 11px;
  background: #f23878;
  font-size: .62rem;
}

body.family-app .fp-sidebar nav hr {
  width: calc(100% - 8px);
  margin: 11px 4px;
  background: #e9edf2;
}

body.family-app .fp-sidebar .fp-child-subnav {
  margin: -1px 0 8px 17px;
  padding-left: 20px;
  border-left: 1px solid #e5dbfb;
}
body.family-app .fp-sidebar .fp-child-subnav a {
  position: relative;
  min-height: 32px;
  padding: 5px 8px;
  color: #24456f;
  font-size: .67rem;
  font-weight: 700;
}
body.family-app .fp-sidebar .fp-child-subnav a::before {
  position: absolute;
  top: 50%;
  left: -21px;
  width: 12px;
  border-top: 1px solid #e5dbfb;
  content: "";
}

body.family-app .fp-sidebar-actions {
  display: grid;
  margin-top: 18px;
  gap: 10px;
}
body.family-app .fp-sidebar .fp-sidebar-action {
  min-height: 48px;
  padding: 9px 13px;
  grid-template-columns: 26px minmax(0, 1fr) 18px;
  border: 1px solid transparent;
  border-radius: 10px;
}
body.family-app .fp-sidebar .fp-sidebar-action .lpm-icon { width: 17px; height: 17px; }
body.family-app .fp-sidebar .fp-sidebar-faq {
  border-color: #eadcfb;
  color: #7437e8;
  background: #f7f0ff;
}
body.family-app .fp-sidebar .fp-sidebar-logout {
  border-color: #f8dce6;
  color: #f23878;
  background: #fff3f7;
}

body.family-app .fp-topbar {
  min-height: 82px;
  padding: 12px 32px;
  border-bottom-color: #e8ebf0;
  background: rgba(255, 255, 255, .92);
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);
}
body.family-app .fp-shell { min-height: calc(100vh - 82px); }
body.family-app .fp-sidebar { margin-top: -82px; }
body.family-app .fp-sidebar .fp-sidebar-brand { min-height: 82px; margin-bottom: 14px; }
body.family-app .fp-child-avatar { width: 48px; height: 48px; flex-basis: 48px; }
body.family-app .fp-bell,
body.family-app .fp-avatar-mini { box-shadow: 0 4px 14px rgba(23, 48, 82, .06); }
body.family-app .fp-bell .lpm-icon { width: 18px; height: 18px; }
body.family-app .fp-top-title {
  padding: 9px 14px;
  border: 1px solid #e3d6fb;
  color: #6933cf;
  background: #faf7ff;
}
body.family-app .fp-content { padding: 28px 32px 22px; }
body.family-app .fp-panel,
body.family-app .fp-side-card,
body.family-app .fp-side-event,
body.family-app .fp-calendar,
body.family-app .fp-account-form,
body.family-app .fp-dashboard-column {
  border-radius: 10px;
  box-shadow: var(--fp-shell-shadow);
}
body.family-app .fp-summary-card { border-radius: 10px; }

@media (max-width: 1100px) {
  body.public-site { --lpm-shell-width: calc(100% - 36px); }
  body.public-site .public-header,
  body.public-home-page .public-header,
  body.public-project-page .public-header,
  body.public-daily-page .public-header,
  body.public-spaces-page .public-header,
  body.public-team-page .public-header,
  body.public-registration-page .public-header,
  body.public-contact-page .public-header { gap: 12px; padding-right: 14px; padding-left: 14px; }
  body.public-site .public-menu { gap: 15px; }
  body.public-site .public-header-actions { gap: 6px; }
}

@media (max-width: 900px) {
  body.public-site { --lpm-shell-width: calc(100% - 20px); }
  body.public-site .public-header,
  body.public-home-page .public-header,
  body.public-project-page .public-header,
  body.public-daily-page .public-header,
  body.public-spaces-page .public-header,
  body.public-team-page .public-header,
  body.public-registration-page .public-header,
  body.public-contact-page .public-header {
    top: 6px;
    min-height: 62px;
    margin-top: 6px;
    grid-template-columns: 1fr auto;
    border-radius: 18px;
  }
  body.public-site .public-brand .project-logo { width: 40px; height: 40px; flex-basis: 40px; }
  body.public-site .public-menu-toggle { display: inline-flex; }
  body.public-site .public-menu {
    position: absolute;
    inset: calc(100% + 7px) 0 auto;
    display: none;
    padding: 12px;
    align-items: stretch;
    flex-direction: column;
    gap: 0;
    border: 1px solid #dfe4ec;
    border-radius: 15px;
    background: rgba(255, 255, 255, .98);
    box-shadow: 0 14px 28px rgba(17, 43, 82, .14);
  }
  body.public-site .public-menu.open { display: flex; }
  body.public-site .public-menu a { padding: 10px; font-size: .8rem; }
  body.public-site .public-header-actions { display: none; }
  body.project-v2 .public-header-actions { display: none; }
  body.public-site .public-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  body.family-app .fp-topbar { min-height: 76px; }
  body.family-app .fp-sidebar { top: 76px; margin-top: 0; }
  body.family-app .fp-sidebar-actions { display: none; }
}

@media (max-width: 620px) {
  body.public-site { --lpm-shell-width: calc(100% - 20px); }
  body.public-site .public-footer-inner { width: calc(100% - 40px); padding: 30px 0 18px; }
  body.public-site .public-footer-grid { grid-template-columns: 1fr; gap: 24px; }
  body.public-site .public-footer-legal { align-items: flex-start; flex-direction: column; gap: 9px; }
}

/* Homepage finishing values validated after the legacy page-specific cascade. */
body.public-site .public-header .project-logo,
body.public-home-page .public-header .project-logo,
body.public-project-page .public-header .project-logo,
body.public-daily-page .public-header .project-logo,
body.public-spaces-page .public-header .project-logo,
body.public-team-page .public-header .project-logo,
body.public-registration-page .public-header .project-logo,
body.public-contact-page .public-header .project-logo {
  overflow: visible;
  border: 0 !important;
  background-color: transparent !important;
  background-image: url("/assets/logo-transparent.png") !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  background-size: contain !important;
  box-shadow: none !important;
}

body.public-home-page .home-hero-media {
  width: 88%;
  height: 300px;
  justify-self: end;
}

body.public-home-page .home-pillars {
  margin-top: 44px;
  margin-bottom: 34px;
}

body.public-home-page .home-stages {
  margin-top: 28px;
  margin-bottom: 30px;
}

body.public-home-page .home-practical dl {
  width: 100%;
  grid-template-columns: repeat(4, minmax(150px, 220px));
  justify-content: center;
  gap: clamp(20px, 4vw, 56px);
}

body.public-home-page .home-practical { grid-template-columns: minmax(0, 1fr); }

body.public-home-page .home-practical dl > div {
  width: 100%;
  max-width: 220px;
  margin: 0 auto;
  justify-content: center;
}

body.public-home-page .home-stage-grid h3 { margin-bottom: 2px; }
body.public-home-page .home-stage-grid small {
  display: block;
  margin-bottom: 7px;
  color: currentColor;
  font-size: .58rem;
  line-height: 1.35;
}

body.public-home-page .public-footer-inner {
  width: var(--lpm-shell-width);
  padding-top: 26px;
  padding-bottom: 12px;
}

body.public-home-page .public-footer-grid {
  grid-template-columns: minmax(240px, 1.3fr) repeat(2, minmax(140px, .72fr)) minmax(220px, 1fr);
  align-items: start;
  gap: clamp(34px, 5vw, 72px);
}

body.public-home-page .public-footer :is(nav, .public-footer-contact) { gap: 7px; }
body.public-home-page .public-footer-legal {
  margin-top: 16px;
  padding-top: 10px;
  opacity: .78;
}
body.public-home-page .public-footer-legal :is(a, span) { font-size: .6rem; }

@media (max-width: 900px) {
  body.public-home-page .public-footer-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
  }

  body.public-home-page .public-footer-grid > *,
  body.public-home-page .public-footer-contact > :is(a, span) {
    min-width: 0;
  }
}

@media (max-width: 820px) {
  body.public-home-page .home-hero-media {
    width: 88%;
    height: 286px;
    justify-self: center;
  }
  body.public-home-page .home-pillars { margin-top: 42px; margin-bottom: 40px; }
  body.public-home-page .home-stages { margin-top: 34px; margin-bottom: 36px; }
  body.public-home-page .home-practical dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.public-home-page .public-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 620px) {
  body.public-home-page .home-hero-media { width: 92%; height: 220px; }
  body.public-home-page .home-pillars { margin-top: 34px; margin-bottom: 32px; }
  body.public-home-page .home-stages { margin-top: 26px; margin-bottom: 30px; }
  body.public-home-page .home-practical dl { grid-template-columns: 1fr; }
  body.public-home-page .public-footer-inner { width: calc(100% - 40px); padding: 26px 0 14px; }
  body.public-home-page .public-footer-grid { grid-template-columns: 1fr; gap: 24px; }
}

@media (prefers-reduced-motion: reduce) {
  body.public-home-page .home-pillar-grid .home-pillar-card,
  body.public-home-page .home-pillar-grid .home-pillar-card .reference-icon { transition: none; }
}

.ap-home-item:is([data-home-item-type="values"], [data-home-item-type="levels"]) { position: relative; padding-top: 50px; }
.ap-home-reorder {
  position: absolute;
  top: 10px;
  left: 14px;
  display: inline-flex;
  align-items: center;
  gap: 5px;
}
.ap-home-reorder button {
  display: inline-grid;
  width: 30px;
  height: 30px;
  padding: 0;
  place-items: center;
  border: 1px solid #d4dce7;
  border-radius: 6px;
  color: #5030aa;
  background: #fff;
  font: inherit;
  font-weight: 900;
  cursor: pointer;
}
.ap-home-reorder button:hover,
.ap-home-reorder button:focus-visible { border-color: #8159df; outline: 2px solid rgba(116, 55, 232, .2); }
.ap-home-drag { cursor: grab !important; }
.ap-home-drag:active { cursor: grabbing !important; }
.ap-home-item.is-dragging { opacity: .55; box-shadow: 0 12px 26px rgba(17,43,82,.12); }
.ap-homepage-form input[type="color"] { min-height: 40px; padding: 4px; cursor: pointer; }

/* Homepage levels: final visual and interaction pass. */
body.public-home-page .home-stage-grid .home-stage-card {
  height: 136px;
  min-height: 0;
  grid-template-columns: 45fr 55fr;
  outline: 0;
  transition: transform 240ms ease, box-shadow 240ms ease;
}

body.public-home-page .home-stage-grid .home-stage-card > div {
  display: grid;
  min-width: 0;
  padding: 12px 9px 11px 15px;
  grid-template-rows: auto auto 1fr auto;
  align-content: stretch;
}

body.public-home-page .home-stage-grid .home-stage-card h3 {
  margin: 0 0 2px;
  color: var(--public-navy);
}

body.public-home-page .home-stage-grid .home-stage-card small {
  margin: 0 0 5px;
  font-weight: 800;
}

body.public-home-page .home-stage-grid .home-stage-card p {
  margin: 0;
  align-self: start;
  color: #18365e;
}

body.public-home-page .home-stage-grid .home-stage-card a {
  width: max-content;
  max-width: 100%;
  align-self: end;
  color: currentColor;
  transition: gap 220ms ease, transform 220ms ease;
}

body.public-home-page .home-stage-grid .home-stage-card img {
  width: 100%;
  height: 100%;
  min-height: 0;
  object-fit: cover;
  object-position: center;
  transition: transform 280ms ease;
}

body.public-home-page .home-stage-grid .stage-pink { color: #b93466; }
body.public-home-page .home-stage-grid .stage-green { color: #28754c; }
body.public-home-page .home-stage-grid .stage-blue { color: #1c69a2; }

body.public-home-page .home-stage-grid .home-stage-card:hover,
body.public-home-page .home-stage-grid .home-stage-card:focus-visible,
body.public-home-page .home-stage-grid .home-stage-card:focus-within {
  transform: translateY(-3px);
  box-shadow: 0 11px 24px rgba(17, 43, 82, .12);
}

body.public-home-page .home-stage-grid .home-stage-card:focus-visible {
  outline: 3px solid rgba(22, 115, 210, .5);
  outline-offset: 3px;
}

body.public-home-page .home-stage-grid .home-stage-card:hover img,
body.public-home-page .home-stage-grid .home-stage-card:focus-within img { transform: scale(1.025); }
body.public-home-page .home-stage-grid .home-stage-card:hover a,
body.public-home-page .home-stage-grid .home-stage-card:focus-within a { gap: 10px; transform: translateX(2px); }

body.public-home-page .home-stage-grid .home-stage-card a:focus-visible {
  border-radius: 3px;
  outline: 2px solid currentColor;
  outline-offset: 3px;
}

@media (max-width: 820px) {
  body.public-home-page .home-stage-grid .home-stage-card { height: 154px; grid-template-columns: 47fr 53fr; }
}

@media (max-width: 620px) {
  body.public-home-page .home-stage-grid .home-stage-card {
    height: 168px;
    grid-template-columns: 48fr 52fr;
  }
  body.public-home-page .home-stage-grid .home-stage-card > div { padding: 15px 10px 14px 16px; }
}

@media (prefers-reduced-motion: reduce) {
  body.public-home-page .home-stage-grid .home-stage-card,
  body.public-home-page .home-stage-grid .home-stage-card :is(img, a) { transition: none; }
}

/* Homepage production polish: proportions and motion only. */
body.public-home-page .public-header {
  box-shadow: 0 8px 26px rgba(20, 43, 78, .075);
  transition: border-color 260ms ease, background-color 260ms ease, box-shadow 260ms ease;
}

body.public-home-page .public-header .project-logo {
  width: 46px;
  height: 46px;
  flex-basis: 46px;
  background-size: 112% auto !important;
  mix-blend-mode: multiply;
  opacity: .96;
  transition: opacity 240ms ease, transform 240ms ease;
}

body.public-home-page .public-brand:hover .project-logo { opacity: 1; transform: scale(1.025); }

body.public-home-page .home-hero {
  grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
  gap: 35px;
}

body.public-home-page .home-hero-copy { max-width: 500px; }
body.public-home-page .home-hero-copy h1 { font-size: 3.2rem; }
body.public-home-page .home-hero-copy > p:not(.reference-kicker) { max-width: 410px; }

body.public-home-page .home-hero-copy .reference-kicker {
  min-height: 22px;
  padding: 3px 10px;
  border-radius: 12px;
  font-size: .56rem;
}

body.public-home-page .home-hero-media {
  width: 100%;
  height: 264px;
}

body.public-home-page .home-hero-media picture {
  display: block;
  width: 100%;
  height: 100%;
  overflow: hidden;
  border-radius: 48% 52% 49% 51% / 40% 44% 56% 60%;
}

body.public-home-page .home-hero-media img {
  transition: transform 320ms ease;
}

body.public-home-page .home-hero-media:hover img { transform: scale(1.008); }

body.public-home-page .home-hero-copy .reference-button {
  min-height: 36px;
  padding: 7px 16px;
  transition: border-color 240ms ease, background-color 240ms ease, color 240ms ease, box-shadow 240ms ease, transform 240ms ease;
}

body.public-home-page .reference-button-arrow {
  display: inline-block;
  transition: transform 240ms ease;
}

body.public-home-page .reference-button:hover {
  transform: translateY(-2px);
  box-shadow: 0 9px 20px rgba(41, 38, 84, .13);
}

body.public-home-page .reference-button:hover .reference-button-arrow { transform: translateX(2px); }

body.public-home-page .home-pillars {
  margin-top: 58px;
  margin-bottom: 46px;
}

body.public-home-page .home-stages { margin-top: 36px; }

body.public-home-page .home-practical dl > div,
body.public-home-page .home-final-cta img {
  transition: transform 240ms ease, box-shadow 240ms ease;
}

body.public-home-page .home-practical dl > div:hover { transform: translateY(-2px); }
body.public-home-page .home-final-cta:hover img { transform: scale(1.012); }

@media (max-width: 820px) {
  body.public-home-page .home-hero { grid-template-columns: minmax(0, 1fr); }
  body.public-home-page .home-hero-media { width: 88%; height: 252px; }
  body.public-home-page .home-pillars { margin-top: 50px; margin-bottom: 46px; }
  body.public-home-page .home-stages { margin-top: 36px; }
}

@media (max-width: 620px) {
  body.public-home-page .home-hero-media { width: 92%; height: 194px; }
  body.public-home-page .home-hero-copy .reference-button { min-height: 44px; }
  body.public-home-page .home-pillars { margin-top: 42px; margin-bottom: 40px; }
  body.public-home-page .home-stages { margin-top: 32px; }
}

@media (prefers-reduced-motion: reduce) {
  body.public-home-page .public-header,
  body.public-home-page .public-header .project-logo,
  body.public-home-page .home-hero-media img,
  body.public-home-page .reference-button,
  body.public-home-page .reference-button-arrow,
  body.public-home-page .home-practical dl > div,
  body.public-home-page .home-final-cta img { transition: none; }
}

/* Le Projet: final CMS rendering aligned with the official mockup. */
body.public-project-page .public-header {
  box-shadow: 0 8px 26px rgba(20, 43, 78, .075);
  transition: border-color 260ms ease, background-color 260ms ease, box-shadow 260ms ease;
}

body.public-project-page .public-header .project-logo {
  width: 46px;
  height: 46px;
  flex-basis: 46px;
  background-size: 112% auto !important;
  mix-blend-mode: multiply;
  opacity: .96;
}

body.public-project-page .family-pill {
  border-color: #d7c2ff !important;
  color: #5625bd !important;
  background: rgba(255, 255, 255, .92) !important;
}

body.public-project-page .icon-violet { color: #7437e8; background: #f0e9ff; }

body.public-project-page .reference-project-hero-media {
  display: block;
  width: 100%;
  height: 264px;
  overflow: hidden;
  border-radius: 48% 52% 46% 54% / 55% 45% 55% 45%;
}

body.public-project-page .reference-project-hero-media img,
body.public-project-page .reference-approach-grid picture img,
body.public-project-page .reference-journey-media img,
body.public-project-page .reference-wide-media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

body.public-project-page .reference-page-hero h1::after {
  display: inline-block;
  margin-left: 8px;
  color: var(--public-pink);
  font-size: .68em;
  content: "â™¡";
}

body.public-project-page :is(.reference-value-grid article, .reference-approach-grid article) {
  outline: 0;
  transition: transform 240ms ease, box-shadow 240ms ease;
}

body.public-project-page :is(.reference-value-grid article, .reference-approach-grid article):focus-visible {
  outline: 3px solid rgba(22, 115, 210, .42);
  outline-offset: 3px;
}

body.public-project-page .reference-approach-grid picture {
  display: block;
  width: 100%;
  height: 103px;
  margin-top: 9px;
  overflow: hidden;
  border-radius: 12px;
}

body.public-project-page .reference-approach-grid picture img { transition: transform 280ms ease; }

body.public-project-page .reference-journey-layout > .reference-journey-media {
  display: block;
  width: 110px;
  height: 151px;
  overflow: hidden;
  border-radius: 14px;
}

body.public-project-page .reference-stage-strip .reference-stage-icon.icon-green { color: var(--public-green); background: #e9f8ec; }
body.public-project-page .reference-stage-strip .reference-stage-icon.icon-pink { color: var(--public-pink); background: #ffe8f0; }
body.public-project-page .reference-stage-strip .reference-stage-icon.icon-blue { color: var(--public-blue); background: #e8f3ff; }

body.public-project-page .reference-wide-panel > .reference-wide-media {
  display: block;
  width: 100%;
  height: 158px;
  overflow: hidden;
  border-radius: 38px;
}

body.public-project-page .reference-next-cta + .reference-next-cta { margin-top: 0; }

@media (hover: hover) {
  body.public-project-page .reference-value-grid article:hover,
  body.public-project-page .reference-approach-grid article:hover { transform: translateY(-2px); }
  body.public-project-page .reference-value-grid article:hover { box-shadow: 0 10px 24px rgba(17, 43, 82, .1); }
  body.public-project-page .reference-approach-grid article:hover picture img { transform: scale(1.018); }
}

@media (max-width: 900px) {
  body.public-project-page .reference-project-hero-media { height: 300px; }
  body.public-project-page .reference-journey-layout > .reference-journey-media { width: 90px; }
}

@media (max-width: 560px) {
  body.public-project-page .reference-project-hero-media { height: 240px; }
  body.public-project-page .reference-journey-layout > .reference-journey-media { display: none; }
  body.public-project-page .reference-wide-panel > .reference-wide-media { height: 190px; border-radius: 18px; }
  body.public-project-page .reference-next-cta > div { width: auto; max-width: none; flex-basis: auto; }
}

@media (prefers-reduced-motion: reduce) {
  body.public-project-page .public-header,
  body.public-project-page :is(.reference-value-grid article, .reference-approach-grid article),
  body.public-project-page .reference-approach-grid picture img { transition: none; }
}

.ap-home-item[data-home-item-type^="project-"] { position: relative; padding-top: 50px; }

/* Le Projet: premium finish without changing the approved composition. */
body.public-project-page .reference-page-hero {
  min-height: 258px;
  margin-bottom: 26px;
  grid-template-columns: minmax(0, 340px) minmax(0, 1fr);
  gap: 30px;
}

body.public-project-page .reference-page-hero > div { max-width: 340px; }
body.public-project-page .reference-page-hero h1 { font-size: 2.42rem; }
body.public-project-page .reference-page-hero strong { color: var(--public-pink); }
body.public-project-page .reference-project-hero-media { height: 238px; }

body.public-project-page #valeurs {
  padding-top: 12px;
  padding-bottom: 34px;
}

body.public-project-page #valeurs .reference-section-title { margin-bottom: 18px; }

body.public-project-page .reference-value-grid article {
  height: 128px;
  min-height: 128px;
  padding: 12px 14px;
  justify-content: center;
  border-radius: 13px;
  transition: transform 240ms ease, box-shadow 240ms ease, border-color 240ms ease;
}

body.public-project-page .reference-value-grid .reference-icon {
  width: 47px;
  height: 47px;
  margin: 0 0 5px;
  flex: 0 0 47px;
  transition: transform 240ms ease;
}

body.public-project-page .reference-value-grid .reference-icon .lpm-icon {
  width: 24px;
  height: 24px;
}

body.public-project-page .reference-value-grid strong {
  margin: 3px 0 0;
  font-size: .73rem;
  line-height: 1.25;
}

body.public-project-page .reference-value-grid p {
  display: -webkit-box;
  margin: 6px 0 0;
  overflow: hidden;
  font-size: .57rem;
  line-height: 1.48;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

body.public-project-page .reference-approach {
  min-height: 0;
  padding-top: 30px;
  padding-bottom: 38px;
}

body.public-project-page .reference-approach .reference-section-title { margin-bottom: 26px; }

body.public-project-page .reference-approach-grid { gap: 0; }

body.public-project-page .reference-approach-grid article {
  min-height: 145px;
  padding: 2px 20px 4px;
  justify-content: flex-start;
  border-right: 1px dotted rgba(116, 135, 161, .32);
}

body.public-project-page .reference-approach-grid .reference-icon {
  width: 43px;
  height: 43px;
  margin-bottom: 12px;
  flex: 0 0 43px;
}

body.public-project-page .reference-approach-grid .reference-icon .lpm-icon {
  width: 22px;
  height: 22px;
}

body.public-project-page .reference-approach-grid h3 {
  min-height: 35px;
  margin: 0 0 10px;
  font-size: .72rem;
  line-height: 1.3;
}

body.public-project-page .reference-approach-grid p {
  display: -webkit-box;
  min-height: 0;
  margin: 0;
  overflow: hidden;
  font-size: .56rem;
  line-height: 1.55;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

body.public-project-page .reference-approach-grid picture { display: none; }

@media (hover: hover) {
  body.public-project-page .reference-value-grid article:hover {
    transform: translateY(-3px);
    border-color: rgba(116, 55, 232, .2);
    box-shadow: 0 12px 26px rgba(17, 43, 82, .115);
  }
  body.public-project-page .reference-value-grid article:hover .reference-icon { transform: scale(1.04); }
  body.public-project-page .reference-approach-grid article:hover .reference-icon { transform: scale(1.04); }
}

@media (max-width: 900px) {
  body.public-project-page .reference-page-hero {
    margin-bottom: 32px;
    grid-template-columns: 1fr;
  }
  body.public-project-page .reference-page-hero > div { max-width: none; }
  body.public-project-page .reference-project-hero-media { height: 270px; }
  body.public-project-page .reference-value-grid article { height: 132px; min-height: 132px; }
  body.public-project-page .reference-approach-grid article { min-height: 150px; padding-right: 24px; padding-left: 24px; }
}

@media (max-width: 560px) {
  body.public-project-page .reference-page-hero { margin-bottom: 28px; }
  body.public-project-page .reference-page-hero h1 { font-size: 2.3rem; }
  body.public-project-page .reference-project-hero-media { height: 216px; }
  body.public-project-page #valeurs { padding-bottom: 30px; }
  body.public-project-page .reference-value-grid article { height: 124px; min-height: 124px; }
  body.public-project-page .reference-approach { padding-top: 28px; padding-bottom: 30px; }
  body.public-project-page .reference-approach-grid article {
    min-height: 128px;
    padding: 16px 12px;
    border-right: 0;
    border-bottom: 1px dotted rgba(116, 135, 161, .28);
  }
  body.public-project-page .reference-approach-grid article:last-child { border-bottom: 0; }
}

@media (prefers-reduced-motion: reduce) {
  body.public-project-page .reference-value-grid article,
  body.public-project-page :is(.reference-value-grid, .reference-approach-grid) .reference-icon { transition: none; }
}

/* Heroes interieurs : meme echelle de titre et accroches roses italiques. */
body:is(.public-project-page, .public-spaces-page, .public-team-page) .reference-page-hero h1,
body.public-daily-page .public-split-hero h1,
body.public-registration-page .public-page-intro h1,
body.public-contact-page .reference-contact-hero h1 {
  color: var(--public-navy);
  font-size: 2.42rem !important;
  line-height: 1;
}

body:is(.public-project-page, .public-spaces-page, .public-team-page) .reference-page-hero > div > strong,
body.public-daily-page .public-split-hero > div > strong,
body.public-registration-page .public-page-intro > div > strong,
body.public-contact-page .reference-contact-hero > div > strong {
  color: var(--public-pink) !important;
  font-size: 1.05rem !important;
  font-style: italic;
  line-height: 1.45;
}

/* Le Quotidien reprend le rythme typographique du Hero Notre projet. */
body.public-daily-page .public-split-hero > div { max-width: 340px; }
body.public-daily-page .public-split-hero .reference-breadcrumb { margin-bottom: 28px; }
body.public-daily-page .public-split-hero h1 { margin: 0 0 14px !important; }
body.public-daily-page .public-split-hero > div > strong { margin-bottom: 14px; }
body.public-daily-page .public-split-hero > div > p:not(.reference-breadcrumb) {
  font-size: .67rem;
  line-height: 1.7;
}
body.public-daily-page .public-hours > div {
  display: grid;
  gap: 2px;
}
body.public-daily-page .public-hours strong {
  margin: 0 !important;
  line-height: 1.15;
}

/* Le Quotidien : grille des moments conforme a la maquette. */
body.public-daily-page .public-moment-grid article {
  min-height: 188px;
  padding: 15px 12px 13px;
  outline: 0;
  transition: transform 240ms ease, border-color 240ms ease, box-shadow 240ms ease;
}
body.public-daily-page .public-moment-grid .reference-icon {
  width: 54px;
  height: 54px;
  margin: 0 auto 10px;
  transition: transform 240ms ease;
}
body.public-daily-page .public-moment-grid .reference-icon :is(.lpm-icon, svg) {
  width: 30px;
  height: 30px;
  stroke-width: 2.15;
}
body.public-daily-page .public-moment-grid .icon-orange { color: #f59e0b; background: #fff0d8; }
body.public-daily-page .public-moment-grid .icon-green { color: #36a853; background: #e6f6e7; }
body.public-daily-page .public-moment-grid .icon-pink { color: #f23878; background: #ffe6ef; }
body.public-daily-page .public-moment-grid .icon-blue { color: #1673d2; background: #e5f3ff; }
body.public-daily-page .public-moment-grid .icon-violet { color: #7437e8; background: #f0e8ff; }
body.public-daily-page .public-moment-grid h3 {
  min-height: 38px;
  margin: 0 0 9px;
  font-size: .82rem;
  line-height: 1.25;
}
body.public-daily-page .public-moment-grid p {
  font-size: .65rem;
  line-height: 1.55;
}
body.public-daily-page .public-moment-grid article:focus-visible {
  outline: 3px solid rgba(22, 115, 210, .42);
  outline-offset: 3px;
}

@media (hover: hover) {
  body.public-daily-page .public-moment-grid article:hover {
    border-color: rgba(116, 55, 232, .2);
    box-shadow: 0 12px 26px rgba(17, 43, 82, .115);
    transform: translateY(-3px);
  }
  body.public-daily-page .public-moment-grid article:hover .reference-icon { transform: scale(1.04); }
}

@media (prefers-reduced-motion: reduce) {
  body.public-daily-page .public-moment-grid article,
  body.public-daily-page .public-moment-grid .reference-icon { transition: none; }
}

body.public-project-page .reference-page-hero h1::after {
  display: none;
  content: none;
}

@media (max-width: 560px) {
  body:is(.public-project-page, .public-spaces-page, .public-team-page) .reference-page-hero h1,
  body.public-daily-page .public-split-hero h1,
  body.public-registration-page .public-page-intro h1,
  body.public-contact-page .reference-contact-hero h1 { font-size: 2.3rem !important; }
}

/* Titres epures : la hierarchie repose sur la typographie et l'espace blanc. */
body.public-site :is(.reference-heading-mark, .hero-hand-mark, .daily-heart, .team-heart, .family-heart) {
  display: none !important;
}

body.public-site :is(
  .reference-section-title h2,
  .public-page-section > header > h2,
  .home-life-copy h2,
  .home-final-cta h2,
  .registration-steps h2,
  .reference-next-cta h2
)::before,
body.public-site :is(
  .reference-section-title h2,
  .public-page-section > header > h2,
  .home-life-copy h2,
  .home-final-cta h2,
  .registration-steps h2,
  .reference-next-cta h2
)::after,
body.family-app :is(
  .fp-page-head h1,
  .fp-panel h2,
  .family-panel-head h2,
  .quick-panel h2,
  .route-section h2
)::before,
body.family-app :is(
  .fp-page-head h1,
  .fp-panel h2,
  .family-panel-head h2,
  .quick-panel h2,
  .route-section h2
)::after {
  display: none !important;
  content: none !important;
}

body.admin-app :is(
  .ap-head h1,
  .ap-card h2,
  .admin-welcome h1,
  .admin-card h2,
  .admin-card-head h2,
  .route-section h2
)::before,
body.admin-app :is(
  .ap-head h1,
  .ap-card h2,
  .admin-welcome h1,
  .admin-card h2,
  .admin-card-head h2,
  .route-section h2
)::after {
  display: none !important;
  content: none !important;
}

body.public-site .reference-section-title,
body.public-site .public-page-section > header {
  text-align: center;
}

body.public-home-page :is(.home-pillars, .home-stages) .reference-section-title,
body.public-project-page :is(#valeurs, .reference-approach, .reference-journey) .reference-section-title,
body.public-spaces-page .public-age-section .reference-section-title,
body.public-team-page .reference-page-section .reference-section-title,
body.public-registration-page .registration-steps .reference-section-title {
  margin-bottom: 24px;
}

body.public-daily-page :is(.daily-moments, .daily-rhythms) > header {
  margin-bottom: 24px;
}

/* Accent typographique partage des titres structurels. */
.lpm-title-accent {
  margin-right: 0 !important;
  margin-left: 0 !important;
  color: var(--lpm-title-accent, currentColor);
  font-style: italic;
}

.lpm-title-accent[data-title-tone="pink"] { --lpm-title-accent: #f23878; }
.lpm-title-accent[data-title-tone="green"] { --lpm-title-accent: #36a853; }
.lpm-title-accent[data-title-tone="blue"] { --lpm-title-accent: #1673d2; }
.lpm-title-accent[data-title-tone="orange"] { --lpm-title-accent: #ef8b00; }
.lpm-title-accent[data-title-tone="violet"] { --lpm-title-accent: #7437e8; }

/* Les espaces : accompagnement par age conforme a la maquette. */
body.public-spaces-page .public-age-section {
  width: calc(100% - 94px);
  min-height: 0;
  margin-right: auto;
  margin-left: auto;
  padding: 20px clamp(38px, 5vw, 76px) 22px;
  box-sizing: border-box;
  border-radius: 18px;
  background: linear-gradient(100deg, #fbf8ff 0%, #f5f2ff 52%, #f9f7ff 100%);
}

body.public-spaces-page .public-age-section .reference-section-title {
  margin-bottom: 16px;
}

body.public-spaces-page .public-age-section .reference-section-title h2 {
  font-size: 1.18rem;
}

/* L'equipe : finition alignee sur la maquette officielle. */
body.public-team-page .reference-page-hero {
  min-height: 350px;
  padding: 28px 60px 24px;
  grid-template-columns: minmax(310px, 34%) minmax(0, 66%);
  align-items: center;
  gap: 46px;
}

body.public-team-page .reference-page-hero > div {
  max-width: 350px;
}

body.public-team-page .reference-page-hero .reference-breadcrumb {
  margin-bottom: 25px;
}

body.public-team-page .reference-page-hero h1 {
  margin-bottom: 16px;
}

body.public-team-page .reference-page-hero > div > strong {
  display: block;
  margin-bottom: 15px;
  color: var(--public-blue) !important;
  font-style: normal;
  line-height: 1.45;
}

body.public-team-page .reference-page-hero p:not(.reference-breadcrumb) {
  max-width: 325px;
  line-height: 1.65;
}

body.public-team-page .reference-page-hero > img {
  width: 100%;
  height: 285px;
  padding: 9px 0;
  box-sizing: border-box;
  object-fit: contain;
  object-position: center;
  border-radius: 44% 56% 47% 53% / 47% 44% 56% 53%;
}

body.public-team-page .reference-page-hero + .reference-page-section {
  padding: 20px 60px 28px;
}

body.public-team-page .reference-page-hero + .reference-page-section .reference-section-title {
  margin-bottom: 22px;
}

body.public-team-page .reference-team-grid {
  gap: 14px;
}

body.public-team-page .reference-team-grid .public-team-card {
  min-height: 215px;
  padding: 15px 10px 13px;
  border-color: rgba(178, 191, 209, .48);
  border-radius: 15px;
  box-shadow: 0 5px 14px rgba(17, 43, 82, .035);
  transition: transform 240ms ease, border-color 240ms ease, box-shadow 240ms ease;
}

body.public-team-page .reference-team-grid img,
body.public-team-page .reference-team-grid .public-team-avatar {
  width: 88px;
  height: 88px;
  margin-bottom: 9px;
  flex-basis: 88px;
}

body.public-team-page .reference-team-grid .public-role-tags em:nth-child(4n + 1) {
  color: #c23567;
  background: #ffe7ef;
}

body.public-team-page .reference-team-grid .public-role-tags em:nth-child(4n + 2) {
  color: #26773b;
  background: #e8f6e8;
}

body.public-team-page .reference-team-grid .public-role-tags em:nth-child(4n + 3) {
  color: #1a68b9;
  background: #e5f2ff;
}

body.public-team-page .reference-team-grid .public-role-tags em:nth-child(4n + 4) {
  color: #7040b0;
  background: #f0e7ff;
}

body.public-team-page .reference-team-principles {
  width: calc(100% - 90px);
  min-height: 178px;
  margin: 12px auto 16px;
  padding: 21px 44px 18px;
  box-sizing: border-box;
  border-radius: 18px;
  background: linear-gradient(100deg, #f8f4ff 0%, #f4f0ff 52%, #f8f5ff 100%);
}

body.public-team-page .reference-team-principles .reference-section-title {
  margin-bottom: 18px;
}

body.public-team-page .public-principle-grid {
  gap: 0;
}

body.public-team-page .public-principle-grid article {
  min-height: 88px;
  padding: 7px 28px;
  grid-template-columns: 58px minmax(0, 1fr);
  gap: 15px;
  outline: none;
  transition: transform 240ms ease, background-color 240ms ease;
}

body.public-team-page .public-principle-grid .reference-icon {
  width: 58px;
  height: 58px;
  border-radius: 50%;
}

body.public-team-page .public-principle-grid .reference-icon :is(.lpm-icon, svg) {
  width: 34px;
  height: 34px;
  stroke-width: 2;
}

body.public-team-page .public-principle-grid .icon-pink {
  color: var(--public-pink);
  background: #ffe5ee;
}

body.public-team-page .public-principle-grid .icon-green {
  color: var(--public-green);
  background: #e6f7e6;
}

body.public-team-page .public-principle-grid .icon-blue {
  color: var(--public-blue);
  background: #e4f2ff;
}

body.public-team-page .public-principle-grid .pink h3 { color: var(--public-pink); }
body.public-team-page .public-principle-grid .green h3 { color: var(--public-green); }
body.public-team-page .public-principle-grid .blue h3 { color: var(--public-blue); }

body.public-team-page .public-principle-grid h3 {
  margin: 0 0 5px;
  font-size: .88rem;
}

body.public-team-page .public-principle-grid p {
  max-width: 190px;
  font-size: .61rem;
  line-height: 1.55;
}

body.public-team-page .reference-yellow-cta {
  width: calc(100% - 90px);
  min-height: 166px;
  margin: 0 auto;
  padding: 13px 34px;
  box-sizing: border-box;
  grid-template-columns: minmax(310px, 38%) minmax(0, 1fr);
  gap: 31px;
  overflow: hidden;
  border-radius: 20px 20px 0 0;
  background: linear-gradient(100deg, #fff9ed 0%, #fff4dc 100%);
}

body.public-team-page .reference-yellow-cta img {
  height: 140px;
  object-position: center 42%;
  border-radius: 44px;
}

body.public-team-page .reference-yellow-cta > div {
  max-width: 510px;
}

body.public-team-page .reference-yellow-cta .reference-button::before {
  display: inline-block;
  width: 13px;
  height: 13px;
  margin-right: 7px;
  vertical-align: -2px;
  background: currentColor;
  content: "";
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m22 7-8.99 5.727a2 2 0 0 1-2.009 0L2 7m2-3h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2Z'/%3E%3C/svg%3E") center / contain no-repeat;
}

body.public-team-page .reference-team-principles article:focus-visible,
body.public-team-page .reference-team-grid .public-team-card:focus-visible {
  outline: 3px solid rgba(22, 115, 210, .4);
  outline-offset: 3px;
}

@media (hover: hover) {
  body.public-team-page .reference-team-grid .public-team-card:hover {
    border-color: rgba(116, 55, 232, .22);
    box-shadow: 0 10px 23px rgba(17, 43, 82, .09);
    transform: translateY(-3px);
  }

  body.public-team-page .public-principle-grid article:hover {
    background: rgba(255, 255, 255, .38);
    transform: translateY(-2px);
  }
}

@media (max-width: 900px) {
  body.public-team-page .reference-page-hero {
    padding: 40px 34px 30px;
    grid-template-columns: 1fr;
    gap: 26px;
  }

  body.public-team-page .reference-page-hero > div { max-width: 430px; }
  body.public-team-page .reference-page-hero > img { height: 300px; }
  body.public-team-page .reference-team-principles,
  body.public-team-page .reference-yellow-cta { width: calc(100% - 68px); }
  body.public-team-page .reference-team-principles { padding-right: 25px; padding-left: 25px; }
  body.public-team-page .public-principle-grid article { padding-right: 16px; padding-left: 16px; }
  body.public-team-page .reference-yellow-cta { grid-template-columns: minmax(250px, 42%) minmax(0, 1fr); }
}

@media (max-width: 560px) {
  body.public-team-page .reference-page-hero {
    padding: 38px 20px 30px;
  }

  body.public-team-page .reference-page-hero .reference-breadcrumb { margin-bottom: 20px; }
  body.public-team-page .reference-page-hero > img { height: 235px; padding: 0; }
  body.public-team-page .reference-page-hero + .reference-page-section { padding: 26px 20px 30px; }
  body.public-team-page .reference-team-grid .public-team-card { min-height: 205px; }
  body.public-team-page .reference-team-principles,
  body.public-team-page .reference-yellow-cta { width: calc(100% - 30px); }
  body.public-team-page .reference-team-principles { padding: 22px 20px; }
  body.public-team-page .public-principle-grid article {
    min-height: 102px;
    padding: 12px 5px;
    border-right: 0;
    border-bottom: 1px solid rgba(179, 187, 201, .45);
  }
  body.public-team-page .public-principle-grid article:last-child { border-bottom: 0; }
  body.public-team-page .reference-yellow-cta {
    padding: 15px;
    grid-template-columns: 1fr;
  }
  body.public-team-page .reference-yellow-cta img { height: 210px; }
}

@media (prefers-reduced-motion: reduce) {
  body.public-team-page .reference-team-grid .public-team-card,
  body.public-team-page .public-principle-grid article { transition: none; }
}

/* L'Ã©quipe : carrousel public connectÃ© aux membres publiÃ©s. */
body.public-team-page .public-team-hero {
  width: min(100% - 72px, 1180px);
  min-height: 245px;
  margin: 0 auto;
  padding: 48px 58px 38px;
  box-sizing: border-box;
  border-radius: 0 0 30px 30px;
  background: linear-gradient(115deg, #fff 0%, #fbf8ff 54%, #f4fbf6 100%);
}

body.public-team-page .public-team-hero > div {
  display: grid;
  max-width: 640px;
  gap: 12px;
}

body.public-team-page .public-team-hero-icon {
  display: grid;
  width: 56px;
  height: 56px;
  place-items: center;
  color: #7437e8;
  background: #f0e9ff;
  border-radius: 50%;
}

body.public-team-page .public-team-hero-icon .lpm-icon {
  width: 28px;
  height: 28px;
}

body.public-team-page .public-team-hero h1 {
  margin: 0;
  color: var(--public-navy);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.7rem, 7vw, 5.4rem);
  line-height: .94;
}

body.public-team-page .public-team-hero p:not(.reference-breadcrumb) {
  max-width: 540px;
  margin: 0;
  color: #42566f;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.7;
}

body.public-team-page .public-team-carousel-section {
  padding: 34px 0 30px;
}

body.public-team-page .public-team-carousel-root.reference-team-grid {
  display: block;
  width: min(100% - 72px, 1180px);
  margin: 0 auto;
}

body.public-team-page .public-team-carousel {
  outline: none;
}

body.public-team-page .public-team-carousel-stage {
  position: relative;
  min-height: 435px;
}

body.public-team-page .public-team-carousel-track {
  position: relative;
  min-height: 435px;
  overflow: hidden;
}

body.public-team-page .public-team-carousel-card {
  position: absolute;
  top: 0;
  left: 50%;
  display: grid;
  width: min(760px, 72%);
  min-height: 390px;
  padding: 18px;
  grid-template-columns: minmax(230px, 42%) minmax(0, 1fr);
  gap: 24px;
  align-items: stretch;
  border: 1px solid rgba(202, 213, 226, .9);
  border-radius: 24px;
  color: inherit;
  background: #fff;
  box-shadow: 0 22px 60px rgba(26, 47, 83, .12);
  text-align: left;
  opacity: 0;
  transform: translateX(-50%) scale(.88);
  transition: transform 300ms ease, opacity 300ms ease, box-shadow 300ms ease;
  pointer-events: none;
}

body.public-team-page .public-team-carousel-card.is-active {
  z-index: 3;
  opacity: 1;
  transform: translateX(-50%) scale(1);
  pointer-events: auto;
}

body.public-team-page .public-team-carousel-card.is-previous,
body.public-team-page .public-team-carousel-card.is-next {
  z-index: 2;
  width: 360px;
  min-height: 320px;
  grid-template-columns: 1fr;
  gap: 12px;
  opacity: .58;
  box-shadow: 0 14px 34px rgba(26, 47, 83, .08);
  pointer-events: auto;
  cursor: pointer;
}

body.public-team-page .public-team-carousel-card.is-previous {
  transform: translateX(-148%) scale(.86);
}

body.public-team-page .public-team-carousel-card.is-next {
  transform: translateX(48%) scale(.86);
}

body.public-team-page .public-team-carousel-card.is-hidden {
  visibility: hidden;
}

body.public-team-page .public-team-media {
  display: block;
  min-height: 100%;
  overflow: hidden;
  border-radius: 19px;
  background: linear-gradient(135deg, #f0e9ff, #e9f8ed);
}

body.public-team-page .public-team-media img,
body.public-team-page .public-team-media .public-team-avatar {
  display: grid;
  width: 100%;
  height: 100%;
  min-height: 350px;
  margin: 0;
  place-items: center;
  object-fit: cover;
  object-position: center;
  border-radius: 19px;
}

body.public-team-page .public-team-media img + .public-team-avatar {
  display: none;
}

body.public-team-page .public-team-media.has-image-error .public-team-avatar {
  display: grid;
}

body.public-team-page .public-team-media .public-team-avatar {
  color: #7437e8;
  background: linear-gradient(135deg, #f0e9ff, #e7f7eb);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 4.2rem;
  font-weight: 900;
}

body.public-team-page .public-team-copy {
  display: flex;
  min-width: 0;
  padding: 14px 8px 10px 0;
  flex-direction: column;
  justify-content: center;
  gap: 12px;
}

body.public-team-page .public-team-copy > small {
  width: fit-content;
  padding: 6px 10px;
  border-radius: 999px;
  color: #7437e8;
  background: #f0e9ff;
  font-size: .68rem;
  font-weight: 950;
  letter-spacing: .08em;
  text-transform: uppercase;
}

body.public-team-page .public-team-copy > strong {
  color: var(--public-navy);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.85rem, 3vw, 2.75rem);
  line-height: 1.02;
}

body.public-team-page .public-team-bio {
  color: #52657d;
  font-size: .92rem;
  font-weight: 650;
  line-height: 1.7;
}

body.public-team-page .public-team-details {
  display: grid;
  gap: 8px;
}

body.public-team-page .public-team-details > span {
  display: grid;
  padding-top: 8px;
  grid-template-columns: 105px minmax(0, 1fr);
  gap: 14px;
  border-top: 1px solid #edf0f5;
}

body.public-team-page .public-team-details b {
  color: #183160;
  font-size: .75rem;
  font-weight: 950;
}

body.public-team-page .public-team-details em {
  color: #5d6d82;
  font-size: .78rem;
  font-style: normal;
  font-weight: 700;
  line-height: 1.45;
}

body.public-team-page .public-team-carousel-card .public-role-tags {
  justify-content: flex-start;
}

body.public-team-page .public-team-carousel-card.is-previous .public-team-media,
body.public-team-page .public-team-carousel-card.is-next .public-team-media {
  min-height: 165px;
}

body.public-team-page .public-team-carousel-card.is-previous .public-team-media img,
body.public-team-page .public-team-carousel-card.is-next .public-team-media img,
body.public-team-page .public-team-carousel-card.is-previous .public-team-media .public-team-avatar,
body.public-team-page .public-team-carousel-card.is-next .public-team-media .public-team-avatar {
  min-height: 165px;
}

body.public-team-page .public-team-carousel-card.is-previous .public-team-copy,
body.public-team-page .public-team-carousel-card.is-next .public-team-copy {
  padding: 0 4px 2px;
  gap: 6px;
}

body.public-team-page .public-team-carousel-card.is-previous .public-team-copy > strong,
body.public-team-page .public-team-carousel-card.is-next .public-team-copy > strong {
  font-size: 1.18rem;
}

body.public-team-page .public-team-carousel-card.is-previous .public-team-bio,
body.public-team-page .public-team-carousel-card.is-next .public-team-bio {
  display: -webkit-box;
  overflow: hidden;
  font-size: .72rem;
  line-height: 1.45;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

body.public-team-page .public-team-carousel-card.is-previous .public-team-details,
body.public-team-page .public-team-carousel-card.is-next .public-team-details,
body.public-team-page .public-team-carousel-card.is-previous .public-role-tags,
body.public-team-page .public-team-carousel-card.is-next .public-role-tags {
  display: none;
}

body.public-team-page .public-team-arrow {
  position: absolute;
  z-index: 5;
  top: 50%;
  display: grid;
  width: 44px;
  height: 44px;
  place-items: center;
  border: 1px solid #e1d8f4;
  border-radius: 50%;
  color: #7437e8;
  background: rgba(255, 255, 255, .92);
  box-shadow: 0 10px 24px rgba(32, 49, 75, .12);
  transform: translateY(-50%);
  cursor: pointer;
}

body.public-team-page .public-team-arrow.previous { left: 8px; }
body.public-team-page .public-team-arrow.next { right: 8px; }

body.public-team-page .public-team-arrow .lpm-icon {
  width: 20px;
  height: 20px;
}

body.public-team-page .public-team-dots {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-top: 8px;
}

body.public-team-page .public-team-dots button {
  width: 9px;
  height: 9px;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: #d7ddea;
  cursor: pointer;
}

body.public-team-page .public-team-dots button.active {
  width: 28px;
  background: #7437e8;
}

body.public-team-page .public-team-empty {
  width: min(100%, 740px);
  margin: 0 auto;
}

body.public-team-page .reference-team-principles .reference-section-title p {
  max-width: 620px;
  margin: 8px auto 0;
  color: #536984;
  font-size: .78rem;
  font-weight: 700;
  line-height: 1.65;
}

body.public-team-page .public-team-carousel-card:focus-visible,
body.public-team-page .public-team-arrow:focus-visible,
body.public-team-page .public-team-dots button:focus-visible {
  outline: 3px solid rgba(116, 55, 232, .28);
  outline-offset: 3px;
}

@media (hover: hover) {
  body.public-team-page .public-team-carousel-card.is-previous:hover,
  body.public-team-page .public-team-carousel-card.is-next:hover,
  body.public-team-page .public-team-arrow:hover {
    opacity: .82;
    border-color: rgba(116, 55, 232, .32);
  }
}

@media (max-width: 900px) {
  body.public-team-page .public-team-hero,
  body.public-team-page .public-team-carousel-root.reference-team-grid {
    width: calc(100% - 44px);
  }

  body.public-team-page .public-team-hero {
    padding: 40px 34px 34px;
  }

  body.public-team-page .public-team-carousel-stage,
  body.public-team-page .public-team-carousel-track {
    min-height: 610px;
  }

  body.public-team-page .public-team-carousel-card,
  body.public-team-page .public-team-carousel-card.is-active {
    width: min(620px, 86%);
    min-height: 560px;
    grid-template-columns: 1fr;
    transform: translateX(-50%) scale(1);
  }

  body.public-team-page .public-team-carousel-card.is-previous,
  body.public-team-page .public-team-carousel-card.is-next {
    width: 270px;
    min-height: 330px;
  }

  body.public-team-page .public-team-carousel-card.is-previous {
    transform: translateX(-132%) scale(.78);
  }

  body.public-team-page .public-team-carousel-card.is-next {
    transform: translateX(32%) scale(.78);
  }

  body.public-team-page .public-team-media img,
  body.public-team-page .public-team-media .public-team-avatar {
    min-height: 255px;
  }

  body.public-team-page .public-team-copy {
    padding: 2px 4px 4px;
  }
}

@media (max-width: 560px) {
  body.public-team-page .public-team-hero {
    width: calc(100% - 28px);
    padding: 34px 22px 28px;
    border-radius: 0 0 22px 22px;
  }

  body.public-team-page .public-team-carousel-section {
    padding-top: 26px;
  }

  body.public-team-page .public-team-carousel-root.reference-team-grid {
    width: calc(100% - 28px);
  }

  body.public-team-page .public-team-carousel-stage,
  body.public-team-page .public-team-carousel-track {
    min-height: auto;
  }

  body.public-team-page .public-team-carousel-track {
    overflow: visible;
  }

  body.public-team-page .public-team-carousel-card,
  body.public-team-page .public-team-carousel-card.is-active {
    position: relative;
    left: auto;
    display: grid;
    width: 100%;
    min-height: 0;
    padding: 14px;
    opacity: 1;
    transform: none;
  }

body.public-team-page .public-team-carousel-card.is-previous,
body.public-team-page .public-team-carousel-card.is-next,
body.public-team-page .public-team-carousel-card.is-hidden {
  display: none;
}

  body.public-team-page .public-team-media img,
  body.public-team-page .public-team-media .public-team-avatar {
    min-height: 255px;
  }

  body.public-team-page .public-team-copy > strong {
    font-size: 1.75rem;
  }

  body.public-team-page .public-team-details > span {
    grid-template-columns: 1fr;
    gap: 4px;
  }

  body.public-team-page .public-team-arrow {
    top: 132px;
    width: 40px;
    height: 40px;
  }

  body.public-team-page .public-team-arrow.previous { left: -6px; }
  body.public-team-page .public-team-arrow.next { right: -6px; }
}

@media (prefers-reduced-motion: reduce) {
  body.public-team-page .public-team-carousel-card,
  body.public-team-page .public-team-arrow,
  body.public-team-page .public-team-dots button {
    transition: none;
  }
}

body.public-team-page .public-team-showcase.reference-inner {
  width: min(100% - 32px, 1560px);
  max-width: none;
  padding: 14px 0 42px;
}

body.public-team-page .public-team-carousel-section {
  position: relative;
  overflow: hidden;
  padding: clamp(34px, 4.2vw, 58px);
  border: 1px solid rgba(218, 224, 238, .86);
  border-radius: 28px;
  background: linear-gradient(180deg, rgba(255, 255, 255, .98), rgba(250, 251, 255, .94));
  box-shadow: 0 24px 70px rgba(38, 49, 77, .1);
}

body.public-team-page .public-team-showcase-header {
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr) auto;
  align-items: center;
  gap: 28px;
  margin-bottom: 38px;
}

body.public-team-page .public-team-hero-icon {
  width: 88px;
  height: 88px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #7c4df0;
  background: #efe6ff;
}

body.public-team-page .public-team-hero-icon .lpm-icon {
  width: 46px;
  height: 46px;
  stroke-width: 1.8;
}

body.public-team-page .public-team-showcase-header h1 {
  margin: 0 0 10px;
  color: #0b2353;
  font-family: "Nunito", system-ui, sans-serif;
  font-size: clamp(2.2rem, 4vw, 3.35rem);
  font-weight: 950;
  letter-spacing: 0;
  line-height: 1;
}

body.public-team-page .public-team-showcase-header p {
  max-width: 650px;
  margin: 0;
  color: #53617c;
  font-size: 1.06rem;
  font-weight: 760;
  line-height: 1.55;
}

body.public-team-page .public-team-all-link {
  min-height: 56px;
  padding: 0 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  border: 1px solid rgba(124, 77, 240, .24);
  border-radius: 16px;
  color: #7c4df0;
  background: rgba(255, 255, 255, .74);
  box-shadow: 0 12px 24px rgba(79, 54, 146, .06);
  font-size: 1rem;
  font-weight: 900;
  text-decoration: none;
}

body.public-team-page .public-team-all-link .lpm-icon {
  width: 24px;
  height: 24px;
}

body.public-team-page .public-team-carousel-root.reference-team-grid {
  width: 100%;
  margin: 0;
}

body.public-team-page .public-team-carousel {
  width: 100%;
}

body.public-team-page .public-team-carousel-stage,
body.public-team-page .public-team-carousel-track {
  min-height: 560px;
}

body.public-team-page .public-team-carousel-track {
  overflow: visible;
}

body.public-team-page .public-team-carousel-card {
  width: min(800px, 55vw);
  min-height: 520px;
  padding: 22px;
  grid-template-columns: minmax(250px, 40%) minmax(0, 1fr);
  gap: 40px;
  border-color: rgba(215, 222, 236, .88);
  border-radius: 20px;
  box-shadow: 0 24px 58px rgba(24, 38, 70, .12);
}

body.public-team-page .public-team-carousel-card.is-active {
  transform: translateX(-50%) scale(1);
}

body.public-team-page .public-team-carousel-card.is-active.has-no-details {
  min-height: 430px;
  grid-template-columns: minmax(230px, 38%) minmax(0, 1fr);
}

body.public-team-page .public-team-carousel-card.is-active.is-sparse {
  align-items: center;
}

body.public-team-page .public-team-carousel-card.is-previous,
body.public-team-page .public-team-carousel-card.is-next {
  width: clamp(280px, 24vw, 365px);
  min-height: 470px;
  padding: 18px;
  opacity: .96;
  border-radius: 20px;
  box-shadow: 0 18px 42px rgba(32, 46, 75, .08);
}

body.public-team-page .public-team-carousel-card.is-previous {
  transform: translateX(calc(-50% - min(37vw, 560px))) scale(.92);
}

body.public-team-page .public-team-carousel-card.is-next {
  transform: translateX(calc(-50% + min(37vw, 560px))) scale(.92);
}

body.public-team-page .public-team-media {
  position: relative;
  border-radius: 14px;
  background: linear-gradient(135deg, #efe6ff, #e8f8ee);
}

body.public-team-page .public-team-media img,
body.public-team-page .public-team-media .public-team-avatar {
  min-height: 476px;
  border-radius: 14px;
}

body.public-team-page .public-team-carousel-card.has-no-details .public-team-media img,
body.public-team-page .public-team-carousel-card.has-no-details .public-team-media .public-team-avatar {
  min-height: 386px;
}

body.public-team-page .public-team-photo-mark {
  position: absolute;
  right: 12px;
  bottom: 12px;
  display: grid;
  width: 64px;
  height: 64px;
  place-items: center;
  border-radius: 50%;
  color: #7c4df0;
  background: rgba(255, 255, 255, .94);
  box-shadow: 0 10px 26px rgba(42, 52, 92, .13);
}

body.public-team-page .public-team-photo-mark .lpm-icon {
  width: 30px;
  height: 30px;
}

body.public-team-page .public-team-copy {
  padding: 20px 14px 16px 0;
  gap: 18px;
}

body.public-team-page .public-team-carousel-card.has-no-details .public-team-copy {
  justify-content: center;
}

body.public-team-page .public-team-copy > small {
  padding: 0;
  color: #7c4df0;
  background: transparent;
  font-size: .82rem;
  letter-spacing: .12em;
}

body.public-team-page .public-team-copy > small::after {
  content: "";
  width: 9px;
  height: 9px;
  margin-left: 10px;
  display: inline-block;
  border-radius: 50%;
  background: currentColor;
  vertical-align: .08em;
}

body.public-team-page .public-team-copy > strong {
  font-family: "Nunito", system-ui, sans-serif;
  font-size: clamp(2rem, 3vw, 2.55rem);
  font-weight: 950;
  letter-spacing: 0;
}

body.public-team-page .public-team-bio {
  max-width: 410px;
  color: #53617c;
  font-size: 1rem;
  font-weight: 760;
  line-height: 1.7;
}

body.public-team-page .public-team-details {
  gap: 22px;
  margin-top: 12px;
}

body.public-team-page .public-team-details > span {
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr);
  align-items: center;
  gap: 18px;
  padding-top: 0;
  border-top: 0;
}

body.public-team-page .public-team-details i {
  display: grid;
  width: 52px;
  height: 52px;
  place-items: center;
  border-radius: 50%;
  color: #7c4df0;
  background: #efe6ff;
}

body.public-team-page .public-team-details i .lpm-icon {
  width: 25px;
  height: 25px;
}

body.public-team-page .public-team-details b {
  display: block;
  margin-bottom: 4px;
  color: #102653;
  font-size: .98rem;
}

body.public-team-page .public-team-details em {
  color: #53617c;
  font-size: .95rem;
}

body.public-team-page .public-team-carousel-card.is-previous .public-team-media,
body.public-team-page .public-team-carousel-card.is-next .public-team-media,
body.public-team-page .public-team-carousel-card.is-previous .public-team-media img,
body.public-team-page .public-team-carousel-card.is-next .public-team-media img,
body.public-team-page .public-team-carousel-card.is-previous .public-team-media .public-team-avatar,
body.public-team-page .public-team-carousel-card.is-next .public-team-media .public-team-avatar {
  min-height: 235px;
}

body.public-team-page .public-team-carousel-card.is-previous .public-team-photo-mark,
body.public-team-page .public-team-carousel-card.is-next .public-team-photo-mark {
  width: 52px;
  height: 52px;
  right: -16px;
  bottom: -16px;
}

body.public-team-page .public-team-carousel-card.is-previous .public-team-copy,
body.public-team-page .public-team-carousel-card.is-next .public-team-copy {
  padding: 22px 0 0;
  gap: 10px;
}

body.public-team-page .public-team-carousel-card.is-previous .public-team-copy > small,
body.public-team-page .public-team-carousel-card.is-next .public-team-copy > small {
  color: #69bd91;
  font-size: .72rem;
}

body.public-team-page .public-team-carousel-card.is-previous .public-team-copy > strong,
body.public-team-page .public-team-carousel-card.is-next .public-team-copy > strong {
  font-size: 1.42rem;
}

body.public-team-page .public-team-carousel-card.is-previous .public-team-bio,
body.public-team-page .public-team-carousel-card.is-next .public-team-bio {
  display: -webkit-box;
  overflow: hidden;
  font-size: .82rem;
  line-height: 1.5;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

body.public-team-page .public-team-arrow {
  width: 70px;
  height: 70px;
  border-color: rgba(226, 230, 240, .9);
  color: #7c4df0;
  background: rgba(255, 255, 255, .96);
}

body.public-team-page .public-team-arrow.previous {
  left: calc(50% - min(31vw, 475px));
}

body.public-team-page .public-team-arrow.next {
  right: calc(50% - min(31vw, 475px));
}

body.public-team-page .public-team-arrow .lpm-icon {
  width: 34px;
  height: 34px;
  stroke-width: 2.5;
}

body.public-team-page .public-team-dots {
  margin-top: 14px;
}

body.public-team-page .public-team-dots button {
  width: 12px;
  height: 12px;
  background: #d9deeb;
}

body.public-team-page .public-team-dots button.active {
  width: 12px;
  background: #7c4df0;
}

body.public-team-page .public-team-carousel-hint {
  margin: 22px 0 0;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 12px;
  color: #8a96ad;
  font-size: .95rem;
  font-weight: 760;
}

body.public-team-page .public-team-carousel-hint .lpm-icon {
  width: 20px;
  height: 20px;
}

body.public-team-page .public-team-values-card {
  margin-top: 34px;
  padding: 24px 34px 24px 24px;
  display: grid;
  grid-template-columns: 66px minmax(0, 1fr) 260px;
  align-items: center;
  gap: 24px;
  border: 1px solid rgba(180, 145, 244, .22);
  border-radius: 16px;
  background: linear-gradient(90deg, rgba(246, 239, 255, .82), rgba(255, 255, 255, .88));
}

body.public-team-page .public-team-values-card > span {
  display: grid;
  width: 58px;
  height: 58px;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: linear-gradient(135deg, #b78cff, #8f5df2);
}

body.public-team-page .public-team-values-card > span .lpm-icon {
  width: 30px;
  height: 30px;
}

body.public-team-page .public-team-values-card h2 {
  margin: 0 0 6px;
  color: #102653;
  font-size: 1.22rem;
  font-weight: 950;
}

body.public-team-page .public-team-values-card p {
  margin: 0;
  color: #344766;
  font-size: .98rem;
  font-weight: 760;
  line-height: 1.5;
}

body.public-team-page .public-team-values-card img {
  width: 100%;
  max-height: 92px;
  object-fit: contain;
  object-position: right center;
}

@media (max-width: 1040px) {
  body.public-team-page .public-team-showcase-header {
    grid-template-columns: 76px minmax(0, 1fr);
  }

  body.public-team-page .public-team-all-link {
    grid-column: 2;
    width: fit-content;
  }

  body.public-team-page .public-team-carousel-card,
  body.public-team-page .public-team-carousel-card.is-active {
    width: min(720px, 78vw);
  }

  body.public-team-page .public-team-carousel-card.is-previous {
    transform: translateX(-154%) scale(.85);
  }

  body.public-team-page .public-team-carousel-card.is-next {
    transform: translateX(54%) scale(.85);
  }

  body.public-team-page .public-team-arrow.previous { left: 4px; }
  body.public-team-page .public-team-arrow.next { right: 4px; }
}

@media (max-width: 760px) {
  body.public-team-page .public-team-showcase.reference-inner {
    width: min(100% - 22px, 560px);
  }

  body.public-team-page .public-team-carousel-section {
    padding: 26px 18px;
  }

  body.public-team-page .public-team-showcase-header {
    grid-template-columns: 58px minmax(0, 1fr);
    gap: 16px;
    margin-bottom: 24px;
  }

  body.public-team-page .public-team-hero-icon {
    width: 58px;
    height: 58px;
  }

  body.public-team-page .public-team-hero-icon .lpm-icon {
    width: 31px;
    height: 31px;
  }

  body.public-team-page .public-team-showcase-header h1 {
    font-size: 2rem;
  }

  body.public-team-page .public-team-showcase-header p {
    font-size: .95rem;
  }

  body.public-team-page .public-team-all-link {
    grid-column: 1 / -1;
    width: 100%;
    min-height: 48px;
  }

  body.public-team-page .public-team-carousel-card,
  body.public-team-page .public-team-carousel-card.is-active {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  body.public-team-page .public-team-media img,
  body.public-team-page .public-team-media .public-team-avatar {
    min-height: 300px;
  }

  body.public-team-page .public-team-copy {
    padding: 0;
  }

  body.public-team-page .public-team-values-card {
    grid-template-columns: 54px minmax(0, 1fr);
    padding: 18px;
  }

  body.public-team-page .public-team-values-card img {
    display: none;
  }
}

/* Administration > Membres : surcharge finale effective, aprÃ¨s toutes les rÃ¨gles partagÃ©es. */
@media (min-width: 921px) {
  body.admin-app[data-admin-page="membres"] {
    display: grid;
    grid-template-columns: 226px minmax(0, 1fr);
    min-height: 100vh;
    background: #fdfdff;
  }

  body.admin-app[data-admin-page="membres"] .ap-sidebar {
    width: auto;
    height: 100vh;
    padding: 38px 14px 20px;
    box-sizing: border-box;
    border-right: 1px solid #e7ebf1;
    background: #fff;
    box-shadow: 18px 0 42px rgba(36, 50, 80, .045);
  }

  body.admin-app[data-admin-page="membres"] .ap-sidebar-toggle,
  body.admin-app[data-admin-page="membres"] .ap-sidebar-account,
  body.admin-app[data-admin-page="membres"] .ap-nav-domain h2 {
    display: none;
  }

  body.admin-app[data-admin-page="membres"] .ap-main {
    padding: 34px 32px;
    background: #fbfcff;
  }

  body.admin-app[data-admin-page="membres"] .ap-head {
    min-height: 54px;
    margin: 0 0 44px;
    align-items: start;
  }

  body.admin-app[data-admin-page="membres"] .ap-head .ap-primary {
    min-height: 47px;
    height: 47px;
    padding: 0 20px;
    font-size: .88rem;
  }

  body.admin-app[data-admin-page="membres"] .ap-members-page {
    gap: 28px;
  }

  body.admin-app[data-admin-page="membres"] .ap-members-stats {
    gap: 26px;
  }

  body.admin-app[data-admin-page="membres"] .ap-members-kpi {
    min-height: 132px;
    height: 132px;
    padding: 18px 22px;
    grid-template-columns: 58px minmax(0, 1fr);
    gap: 14px;
    border-radius: 13px;
  }

  body.admin-app[data-admin-page="membres"] .ap-members-kpi > span {
    width: 56px;
    height: 56px;
  }

  body.admin-app[data-admin-page="membres"] .ap-members-kpi strong {
    font-size: 2rem;
  }

  body.admin-app[data-admin-page="membres"] .ap-members-kpi p {
    margin: 0 0 8px;
    font-size: .94rem;
  }

  body.admin-app[data-admin-page="membres"] .ap-members-kpi small {
    font-size: .86rem;
  }

  body.admin-app[data-admin-page="membres"] .ap-members-toolbar {
    grid-template-columns: minmax(320px, 1.7fr) repeat(3, minmax(145px, .72fr)) minmax(130px, .55fr);
    gap: 22px;
  }

  body.admin-app[data-admin-page="membres"] .ap-members-toolbar .lpm-search-field,
  body.admin-app[data-admin-page="membres"] .ap-members-toolbar select,
  body.admin-app[data-admin-page="membres"] .ap-members-toolbar button {
    min-height: 49px;
    height: 49px;
    font-size: .86rem;
  }

  body.admin-app[data-admin-page="membres"] .ap-members-table-card > header {
    padding: 0;
  }

  body.admin-app[data-admin-page="membres"] .ap-members-table-card > header h2 {
    display: none;
  }

  body.admin-app[data-admin-page="membres"] .ap-members-table th,
  body.admin-app[data-admin-page="membres"] .ap-members-table td {
    padding: 13px 16px;
    font-size: .86rem;
  }

  body.admin-app[data-admin-page="membres"] .ap-members-table tbody tr {
    height: 72px;
  }

  body.admin-app[data-admin-page="membres"] .ap-member-avatar,
  body.admin-app[data-admin-page="membres"] .ap-member-avatar img,
  body.admin-app[data-admin-page="membres"] .ap-member-avatar > span {
    width: 40px;
    height: 40px;
  }

  body.admin-app[data-admin-page="membres"] .ap-member-cell {
    grid-template-columns: 40px minmax(0, 1fr);
    gap: 14px;
  }

  body.admin-app[data-admin-page="membres"] .ap-member-actions > button,
  body.admin-app[data-admin-page="membres"] .ap-member-actions summary {
    width: 38px !important;
    height: 38px !important;
  }
}

/* Administration > Equipe : route active remapee sur la maquette Membres. */
@media (min-width: 921px) {
  body.admin-app[data-admin-page="equipe"] {
    display: grid;
    grid-template-columns: 226px minmax(0, 1fr);
    min-height: 100vh;
    background: #fdfdff;
  }

  body.admin-app[data-admin-page="equipe"] .ap-sidebar {
    width: auto;
    height: 100vh;
    padding: 38px 14px 20px;
    box-sizing: border-box;
    border-right: 1px solid #e7ebf1;
    background: #fff;
    box-shadow: 18px 0 42px rgba(36, 50, 80, .045);
  }

  body.admin-app[data-admin-page="equipe"] .ap-sidebar-toggle,
  body.admin-app[data-admin-page="equipe"] .ap-sidebar-account,
  body.admin-app[data-admin-page="equipe"] .ap-nav-domain h2 {
    display: none;
  }

  body.admin-app[data-admin-page="equipe"] .ap-main {
    padding: 34px 32px;
    background: #fbfcff;
  }

  body.admin-app[data-admin-page="equipe"] .ap-head {
    min-height: 54px;
    margin: 0 0 44px;
    align-items: start;
  }

  body.admin-app[data-admin-page="equipe"] .ap-head .ap-primary {
    min-height: 47px;
    height: 47px;
    padding: 0 20px;
    font-size: .88rem;
  }

  body.admin-app[data-admin-page="equipe"] .ap-members-page {
    gap: 28px;
  }

  body.admin-app[data-admin-page="equipe"] .ap-members-stats {
    gap: 26px;
  }

  body.admin-app[data-admin-page="equipe"] .ap-members-kpi {
    min-height: 132px;
    height: 132px;
    padding: 18px 22px;
    grid-template-columns: 58px minmax(0, 1fr);
    gap: 14px;
    border-radius: 13px;
  }

  body.admin-app[data-admin-page="equipe"] .ap-members-kpi > span {
    width: 56px;
    height: 56px;
  }

  body.admin-app[data-admin-page="equipe"] .ap-members-kpi strong {
    font-size: 2rem;
  }

  body.admin-app[data-admin-page="equipe"] .ap-members-kpi p {
    margin: 0 0 8px;
    font-size: .94rem;
  }

  body.admin-app[data-admin-page="equipe"] .ap-members-kpi small {
    font-size: .86rem;
  }

  body.admin-app[data-admin-page="equipe"] .ap-members-toolbar {
    grid-template-columns: minmax(320px, 1.7fr) repeat(3, minmax(145px, .72fr)) minmax(130px, .55fr);
    gap: 22px;
  }

  body.admin-app[data-admin-page="equipe"] .ap-members-toolbar .lpm-search-field,
  body.admin-app[data-admin-page="equipe"] .ap-members-toolbar select,
  body.admin-app[data-admin-page="equipe"] .ap-members-toolbar button {
    min-height: 49px;
    height: 49px;
    font-size: .86rem;
  }

  body.admin-app[data-admin-page="equipe"] .ap-members-table-card > header {
    padding: 0;
  }

  body.admin-app[data-admin-page="equipe"] .ap-members-table-card > header h2 {
    display: none;
  }

  body.admin-app[data-admin-page="equipe"] .ap-members-table th,
  body.admin-app[data-admin-page="equipe"] .ap-members-table td {
    padding: 13px 16px;
    font-size: .86rem;
  }

  body.admin-app[data-admin-page="equipe"] .ap-members-table tbody tr {
    height: 72px;
  }

  body.admin-app[data-admin-page="equipe"] .ap-member-avatar,
  body.admin-app[data-admin-page="equipe"] .ap-member-avatar img,
  body.admin-app[data-admin-page="equipe"] .ap-member-avatar > span {
    width: 40px;
    height: 40px;
  }

  body.admin-app[data-admin-page="equipe"] .ap-member-cell {
    grid-template-columns: 40px minmax(0, 1fr);
    gap: 14px;
  }

  body.admin-app[data-admin-page="equipe"] .ap-member-actions > button,
  body.admin-app[data-admin-page="equipe"] .ap-member-actions summary {
    width: 38px !important;
    height: 38px !important;
  }
}

/* Administration > Equipe : route active remapÃ©e sur la maquette Membres. */
@media (min-width: 921px) {
  body.admin-app[data-admin-page="equipe"] {
    display: grid;
    grid-template-columns: 226px minmax(0, 1fr);
    min-height: 100vh;
    background: #fdfdff;
  }

  body.admin-app[data-admin-page="equipe"] .ap-sidebar {
    width: auto;
    height: 100vh;
    padding: 38px 14px 20px;
    box-sizing: border-box;
    border-right: 1px solid #e7ebf1;
    background: #fff;
    box-shadow: 18px 0 42px rgba(36, 50, 80, .045);
  }

  body.admin-app[data-admin-page="equipe"] .ap-sidebar-toggle,
  body.admin-app[data-admin-page="equipe"] .ap-sidebar-account,
  body.admin-app[data-admin-page="equipe"] .ap-nav-domain h2 {
    display: none;
  }

  body.admin-app[data-admin-page="equipe"] .ap-main { padding: 34px 32px; background: #fbfcff; }
  body.admin-app[data-admin-page="equipe"] .ap-head { min-height: 54px; margin: 0 0 44px; align-items: start; }
  body.admin-app[data-admin-page="equipe"] .ap-head .ap-primary { min-height: 47px; height: 47px; padding: 0 20px; font-size: .88rem; }
  body.admin-app[data-admin-page="equipe"] .ap-members-page { gap: 28px; }
  body.admin-app[data-admin-page="equipe"] .ap-members-stats { gap: 26px; }
  body.admin-app[data-admin-page="equipe"] .ap-members-kpi { min-height: 132px; height: 132px; padding: 18px 22px; grid-template-columns: 58px minmax(0, 1fr); gap: 14px; border-radius: 13px; }
  body.admin-app[data-admin-page="equipe"] .ap-members-kpi > span { width: 56px; height: 56px; }
  body.admin-app[data-admin-page="equipe"] .ap-members-kpi strong { font-size: 2rem; }
  body.admin-app[data-admin-page="equipe"] .ap-members-kpi p { margin: 0 0 8px; font-size: .94rem; }
  body.admin-app[data-admin-page="equipe"] .ap-members-kpi small { font-size: .86rem; }
  body.admin-app[data-admin-page="equipe"] .ap-members-toolbar { grid-template-columns: minmax(320px, 1.7fr) repeat(3, minmax(145px, .72fr)) minmax(130px, .55fr); gap: 22px; }
  body.admin-app[data-admin-page="equipe"] .ap-members-toolbar .lpm-search-field,
  body.admin-app[data-admin-page="equipe"] .ap-members-toolbar select,
  body.admin-app[data-admin-page="equipe"] .ap-members-toolbar button { min-height: 49px; height: 49px; font-size: .86rem; }
  body.admin-app[data-admin-page="equipe"] .ap-members-table-card > header { padding: 0; }
  body.admin-app[data-admin-page="equipe"] .ap-members-table-card > header h2 { display: none; }
  body.admin-app[data-admin-page="equipe"] .ap-members-table th,
  body.admin-app[data-admin-page="equipe"] .ap-members-table td { padding: 13px 16px; font-size: .86rem; }
  body.admin-app[data-admin-page="equipe"] .ap-members-table tbody tr { height: 72px; }
  body.admin-app[data-admin-page="equipe"] .ap-member-avatar,
  body.admin-app[data-admin-page="equipe"] .ap-member-avatar img,
  body.admin-app[data-admin-page="equipe"] .ap-member-avatar > span { width: 40px; height: 40px; }
  body.admin-app[data-admin-page="equipe"] .ap-member-cell { grid-template-columns: 40px minmax(0, 1fr); gap: 14px; }
  body.admin-app[data-admin-page="equipe"] .ap-member-actions > button,
  body.admin-app[data-admin-page="equipe"] .ap-member-actions summary { width: 38px !important; height: 38px !important; }
}

/* Administration > Ã‰quipe : surcharge finale effective sur la route rÃ©ellement utilisÃ©e. */
@media (min-width: 921px) {
  body.admin-app[data-admin-page="equipe"] {
    display: grid;
    grid-template-columns: 226px minmax(0, 1fr);
    min-height: 100vh;
    background: #fdfdff;
  }

  body.admin-app[data-admin-page="equipe"] .ap-sidebar {
    width: auto;
    height: 100vh;
    padding: 38px 14px 20px;
    box-sizing: border-box;
    border-right: 1px solid #e7ebf1;
    background: #fff;
    box-shadow: 18px 0 42px rgba(36, 50, 80, .045);
  }

  body.admin-app[data-admin-page="equipe"] .ap-sidebar-toggle,
  body.admin-app[data-admin-page="equipe"] .ap-sidebar-account,
  body.admin-app[data-admin-page="equipe"] .ap-nav-domain h2 {
    display: none;
  }

  body.admin-app[data-admin-page="equipe"] .ap-main {
    padding: 34px 32px;
    background: #fbfcff;
  }

  body.admin-app[data-admin-page="equipe"] .ap-head {
    min-height: 54px;
    margin: 0 0 44px;
    align-items: start;
  }

  body.admin-app[data-admin-page="equipe"] .ap-head .ap-primary {
    min-height: 47px;
    height: 47px;
    padding: 0 20px;
    font-size: .88rem;
  }

  body.admin-app[data-admin-page="equipe"] .ap-members-page { gap: 28px; }
  body.admin-app[data-admin-page="equipe"] .ap-members-stats { gap: 26px; }

  body.admin-app[data-admin-page="equipe"] .ap-members-kpi {
    min-height: 132px;
    height: 132px;
    padding: 18px 22px;
    grid-template-columns: 58px minmax(0, 1fr);
    gap: 14px;
    border-radius: 13px;
  }

  body.admin-app[data-admin-page="equipe"] .ap-members-kpi > span {
    width: 56px;
    height: 56px;
  }

  body.admin-app[data-admin-page="equipe"] .ap-members-kpi strong { font-size: 2rem; }
  body.admin-app[data-admin-page="equipe"] .ap-members-kpi p { margin: 0 0 8px; font-size: .94rem; }
  body.admin-app[data-admin-page="equipe"] .ap-members-kpi small { font-size: .86rem; }

  body.admin-app[data-admin-page="equipe"] .ap-members-toolbar {
    grid-template-columns: minmax(320px, 1.7fr) repeat(3, minmax(145px, .72fr)) minmax(130px, .55fr);
    gap: 22px;
  }

  body.admin-app[data-admin-page="equipe"] .ap-members-toolbar .lpm-search-field,
  body.admin-app[data-admin-page="equipe"] .ap-members-toolbar select,
  body.admin-app[data-admin-page="equipe"] .ap-members-toolbar button {
    min-height: 49px;
    height: 49px;
    font-size: .86rem;
  }

  body.admin-app[data-admin-page="equipe"] .ap-members-table-card > header { padding: 0; }
  body.admin-app[data-admin-page="equipe"] .ap-members-table-card > header h2 { display: none; }

  body.admin-app[data-admin-page="equipe"] .ap-members-table th,
  body.admin-app[data-admin-page="equipe"] .ap-members-table td {
    padding: 13px 16px;
    font-size: .86rem;
  }

  body.admin-app[data-admin-page="equipe"] .ap-members-table tbody tr { height: 72px; }

  body.admin-app[data-admin-page="equipe"] .ap-member-avatar,
  body.admin-app[data-admin-page="equipe"] .ap-member-avatar img,
  body.admin-app[data-admin-page="equipe"] .ap-member-avatar > span {
    width: 40px;
    height: 40px;
  }

  body.admin-app[data-admin-page="equipe"] .ap-member-cell {
    grid-template-columns: 40px minmax(0, 1fr);
    gap: 14px;
  }

  body.admin-app[data-admin-page="equipe"] .ap-member-actions > button,
  body.admin-app[data-admin-page="equipe"] .ap-member-actions summary {
    width: 38px !important;
    height: 38px !important;
  }
}

/* Administration > Membres : surcharge finale maquette. */
@media (min-width: 921px) {
  body.admin-app[data-admin-page="membres"] {
    display: grid;
    grid-template-columns: 226px minmax(0, 1fr);
    min-height: 100vh;
    background: #fdfdff;
  }

  body.admin-app[data-admin-page="membres"] .ap-sidebar {
    position: sticky;
    top: 0;
    width: auto;
    height: 100vh;
    padding: 38px 14px 20px;
    box-sizing: border-box;
    border-right: 1px solid #e7ebf1;
    background: #fff;
    box-shadow: 18px 0 42px rgba(36, 50, 80, .045);
  }

  body.admin-app[data-admin-page="membres"] .ap-sidebar-toggle,
  body.admin-app[data-admin-page="membres"] .ap-sidebar-account,
  body.admin-app[data-admin-page="membres"] .ap-nav-domain h2 {
    display: none;
  }

  body.admin-app[data-admin-page="membres"] .ap-sidebar-head {
    min-height: 64px;
    margin-bottom: 18px;
  }

  body.admin-app[data-admin-page="membres"] .ap-sidebar nav a,
  body.admin-app[data-admin-page="membres"] .ap-sidebar .ap-dashboard-nav a,
  body.admin-app[data-admin-page="membres"] .ap-nav-domain nav a {
    min-height: 46px;
    padding: 0 14px;
    grid-template-columns: 24px minmax(0, 1fr) auto;
    gap: 10px;
    border-radius: 8px;
    font-size: .83rem;
    font-weight: 850;
  }

  body.admin-app[data-admin-page="membres"] .ap-main {
    padding: 34px 32px;
    background: #fbfcff;
  }

  body.admin-app[data-admin-page="membres"] .ap-head {
    min-height: 54px;
    margin: 0 0 44px;
    align-items: start;
  }

  body.admin-app[data-admin-page="membres"] .ap-head h1 {
    margin-bottom: 10px;
    font-size: 1.9rem;
  }

  body.admin-app[data-admin-page="membres"] .ap-head p {
    font-size: .94rem;
    line-height: 1.35;
  }

  body.admin-app[data-admin-page="membres"] .ap-head .ap-primary {
    min-height: 47px;
    height: 47px;
    padding: 0 20px;
    border-radius: 7px;
    font-size: .88rem;
    box-shadow: 0 14px 24px rgba(111, 70, 214, .2);
  }

  body.admin-app[data-admin-page="membres"] .ap-members-page {
    gap: 28px;
  }

  body.admin-app[data-admin-page="membres"] .ap-members-stats {
    gap: 26px;
  }

  body.admin-app[data-admin-page="membres"] .ap-members-kpi {
    min-height: 132px;
    height: 132px;
    padding: 18px 22px;
    grid-template-columns: 58px minmax(0, 1fr);
    gap: 14px;
    border-radius: 13px;
    box-shadow: 0 10px 26px rgba(24, 43, 70, .055);
  }

  body.admin-app[data-admin-page="membres"] .ap-members-kpi > span {
    width: 56px;
    height: 56px;
    border-radius: 50%;
  }

  body.admin-app[data-admin-page="membres"] .ap-members-kpi .lpm-icon {
    width: 28px;
    height: 28px;
  }

  body.admin-app[data-admin-page="membres"] .ap-members-kpi strong {
    font-size: 2rem;
  }

  body.admin-app[data-admin-page="membres"] .ap-members-kpi p {
    margin: 0 0 8px;
    font-size: .94rem;
  }

  body.admin-app[data-admin-page="membres"] .ap-members-kpi small {
    font-size: .86rem;
  }

  body.admin-app[data-admin-page="membres"] .ap-members-toolbar {
    grid-template-columns: minmax(320px, 1.7fr) repeat(3, minmax(145px, .72fr)) minmax(130px, .55fr);
    gap: 22px;
  }

  body.admin-app[data-admin-page="membres"] .ap-members-toolbar .lpm-search-field,
  body.admin-app[data-admin-page="membres"] .ap-members-toolbar select,
  body.admin-app[data-admin-page="membres"] .ap-members-toolbar button {
    min-height: 49px;
    height: 49px;
    border-radius: 7px;
    font-size: .86rem;
  }

  body.admin-app[data-admin-page="membres"] .ap-members-table-card {
    border-radius: 12px;
  }

  body.admin-app[data-admin-page="membres"] .ap-members-table-card > header {
    padding: 0;
  }

  body.admin-app[data-admin-page="membres"] .ap-members-table-card > header h2 {
    display: none;
  }

  body.admin-app[data-admin-page="membres"] .ap-members-table th,
  body.admin-app[data-admin-page="membres"] .ap-members-table td {
    padding: 13px 16px;
    font-size: .86rem;
  }

  body.admin-app[data-admin-page="membres"] .ap-members-table th {
    font-size: .78rem;
    font-weight: 950;
  }

  body.admin-app[data-admin-page="membres"] .ap-members-table tbody tr {
    height: 72px;
  }

  body.admin-app[data-admin-page="membres"] .ap-member-avatar,
  body.admin-app[data-admin-page="membres"] .ap-member-avatar img,
  body.admin-app[data-admin-page="membres"] .ap-member-avatar > span {
    width: 40px;
    height: 40px;
  }

  body.admin-app[data-admin-page="membres"] .ap-member-cell {
    grid-template-columns: 40px minmax(0, 1fr);
    gap: 14px;
  }

  body.admin-app[data-admin-page="membres"] .ap-member-cell strong {
    font-size: .92rem;
  }

  body.admin-app[data-admin-page="membres"] .ap-member-cell small,
  body.admin-app[data-admin-page="membres"] .ap-muted-cell {
    font-size: .78rem;
  }

  body.admin-app[data-admin-page="membres"] .ap-status-badge {
    padding: 5px 12px;
    font-size: .78rem;
  }

  body.admin-app[data-admin-page="membres"] .ap-member-actions {
    gap: 10px;
  }

  body.admin-app[data-admin-page="membres"] .ap-member-actions > button,
  body.admin-app[data-admin-page="membres"] .ap-member-actions summary {
    width: 38px;
    height: 38px;
    border-radius: 7px;
  }

  body.admin-app[data-admin-page="membres"] .ap-member-actions .lpm-icon {
    width: 17px;
    height: 17px;
  }

  body.admin-app[data-admin-page="membres"] .ap-members-table-footer {
    min-height: 83px;
    padding: 16px;
  }

  body.admin-app[data-admin-page="membres"] .ap-members-table-footer select,
  body.admin-app[data-admin-page="membres"] .ap-members-table-footer nav button {
    min-height: 40px;
    height: 40px;
  }
}

body.public-team-page .public-team-carousel-card,
body.public-team-page .public-team-carousel-card.is-active,
body.public-team-page .public-team-carousel-card.is-previous,
body.public-team-page .public-team-carousel-card.is-next {
  width: min(720px, 53vw) !important;
  max-width: calc(100vw - 190px) !important;
  box-sizing: border-box;
}

@media (max-width: 760px) {
  body.public-team-page .public-team-carousel-card,
  body.public-team-page .public-team-carousel-card.is-active,
  body.public-team-page .public-team-carousel-card.is-previous,
  body.public-team-page .public-team-carousel-card.is-next {
    width: 100% !important;
    max-width: 100% !important;
  }
}

/* Administration - weekly menu form modal. */
body.admin-app .ap-menu-modal { padding: 10px; background: rgba(18, 31, 54, .5); backdrop-filter: blur(7px); }
body.admin-app .ap-menu-form-card { width: min(1380px, calc(100vw - 20px)); height: min(900px, calc(100dvh - 20px)); max-height: none; padding: 0; gap: 0; grid-template-rows: auto minmax(0, 1fr) auto; overflow: hidden; border: 1px solid rgba(222, 228, 238, .98); border-radius: 12px; background: #fff; box-shadow: 0 28px 88px rgba(10, 28, 55, .24); }
body.admin-app .ap-menu-modal-head { display: grid; padding: 26px 32px 18px; grid-template-columns: minmax(0, 1fr) 42px; gap: 18px; align-items: start; }
body.admin-app .ap-menu-modal-head h2 { margin: 0 0 8px; color: #08265a; font-size: 1.75rem; line-height: 1.1; letter-spacing: 0; }
body.admin-app .ap-menu-modal-head p { margin: 0; color: #425778; font-size: .95rem; font-weight: 650; }
body.admin-app .ap-menu-modal .ap-modal-close { position: static; display: grid; width: 42px; height: 42px; padding: 0; place-items: center; border: 0; border-radius: 50%; color: #6b36d8; background: #f2ebff; cursor: pointer; }
body.admin-app .ap-menu-form-scroll { min-height: 0; padding: 18px 32px 24px; overflow-y: auto; scrollbar-width: thin; scrollbar-color: rgba(120, 98, 173, .32) transparent; }
body.admin-app .ap-menu-top-grid { display: grid; grid-template-columns: minmax(280px, 1fr) minmax(280px, 1fr); gap: 28px; }
body.admin-app .ap-menu-panel { position: relative; display: grid; min-height: 126px; padding: 20px 22px 20px 82px; box-sizing: border-box; align-content: start; gap: 10px; border: 1px solid #e2e7ef; border-radius: 8px; background: #fff; box-shadow: 0 12px 28px rgba(18, 40, 72, .06); }
body.admin-app .ap-menu-panel-icon { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 8px; color: #6d37d8; background: #f0e8ff; }
body.admin-app .ap-menu-panel > .ap-menu-panel-icon { position: absolute; top: 20px; left: 20px; }
body.admin-app .ap-menu-panel-icon svg, body.admin-app .ap-menu-modal .lpm-icon { width: 18px; height: 18px; }
body.admin-app .ap-menu-panel label, body.admin-app .ap-menu-publication > label { margin: 0; color: #102c58; font-size: .92rem; font-weight: 950; }
body.admin-app .ap-menu-panel label b { color: #6d37d8; }
body.admin-app .ap-menu-panel input[type="date"] { width: 100%; min-height: 46px; padding: 0 14px; box-sizing: border-box; border: 1px solid #ccd6e5; border-radius: 8px; color: #132d59; background: #fff; font: inherit; font-weight: 800; }
body.admin-app .ap-menu-panel small { color: #596b86; font-size: .78rem; font-weight: 650; }
body.admin-app .ap-menu-status-options { display: flex; flex-wrap: wrap; gap: 10px; }
body.admin-app .ap-menu-status-choice { position: relative; display: inline-flex !important; min-width: 142px; min-height: 46px; padding: 0 18px; box-sizing: border-box; align-items: center; justify-content: center; gap: 10px !important; border: 1px solid #dbe2ec; border-radius: 8px; color: #263b5e; background: #fff; cursor: pointer; }
body.admin-app .ap-menu-status-choice input { position: absolute; width: 1px; height: 1px; min-height: 1px; opacity: 0; }
body.admin-app .ap-menu-status-choice span { width: 10px; height: 10px; border-radius: 50%; background: #b8c1cf; }
body.admin-app .ap-menu-status-choice.is-selected { border-color: #d8c9fb; color: #6233c5; background: #f8f4ff; }
body.admin-app .ap-menu-status-choice.is-selected span { background: #6d37d8; }
body.admin-app .ap-menu-status-choice input:focus-visible + span { outline: 3px solid rgba(109, 55, 216, .18); outline-offset: 4px; }
body.admin-app .ap-menu-week-section { display: grid; gap: 18px; margin-top: 28px; }
body.admin-app .ap-menu-week-section > header { display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: 14px; align-items: center; }
body.admin-app .ap-menu-week-section h3 { margin: 0 0 5px; color: #08265a; font-size: 1.15rem; letter-spacing: 0; }
body.admin-app .ap-menu-week-section p { margin: 0; color: #4e607c; font-size: .82rem; }
body.admin-app .ap-menu-days-grid { display: grid; grid-template-columns: repeat(5, minmax(190px, 1fr)); gap: 16px; }
body.admin-app .ap-menu-day-card { display: grid; min-width: 0; padding: 18px 16px; gap: 17px; border: 1px solid #e2e7ef; border-radius: 8px; background: #fff; box-shadow: 0 10px 24px rgba(18, 40, 72, .04); }
body.admin-app .ap-menu-day-card.is-locked { background: #fafbfc; }
body.admin-app .ap-menu-day-card > header { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
body.admin-app .ap-menu-day-card > header strong { color: #08265a; font-size: 1rem; }
body.admin-app .ap-menu-day-card > header span { color: #6d37d8; }
body.admin-app .ap-menu-field { display: grid; min-width: 0; gap: 8px !important; color: #102c58; font-size: .78rem; font-weight: 900; }
body.admin-app .ap-menu-field > span { display: inline-flex; align-items: center; gap: 8px; }
body.admin-app .ap-menu-field > span .lpm-icon { width: 16px; height: 16px; }
body.admin-app .ap-menu-field:nth-of-type(1) > span .lpm-icon { color: #2ca35a; }
body.admin-app .ap-menu-field:nth-of-type(2) > span .lpm-icon { color: #f07a2d; }
body.admin-app .ap-menu-field:nth-of-type(3) > span .lpm-icon { color: #7040dc; }
body.admin-app .ap-menu-field textarea { width: 100%; min-height: 74px; padding: 11px 10px 22px; box-sizing: border-box; border: 1px solid #d5dce8; border-radius: 8px; color: #17345f; background: #fff; font: inherit; font-size: .74rem; line-height: 1.5; resize: vertical; }
body.admin-app .ap-menu-field textarea:disabled { color: #7a8596; background: #f2f5f8; }
body.admin-app .ap-menu-field textarea::placeholder { color: #75849a; }
body.admin-app .ap-menu-field textarea:focus, body.admin-app .ap-menu-panel input[type="date"]:focus { border-color: #7437e8; outline: 3px solid rgba(116, 55, 232, .14); }
body.admin-app .ap-menu-field small { display: flex; min-height: 16px; margin-top: -27px; padding: 0 8px 0 10px; box-sizing: border-box; align-items: center; justify-content: space-between; gap: 6px; pointer-events: none; }
body.admin-app .ap-menu-field small em { margin-left: auto; color: #6c7890; font-size: .68rem; font-style: normal; font-weight: 750; }
body.admin-app .ap-menu-modal .ap-field-error { min-height: 14px; color: #c8325d !important; font-size: .68rem !important; font-style: normal; font-weight: 750 !important; }
body.admin-app .ap-menu-modal .has-error :is(input, textarea) { border-color: #df4a72; box-shadow: 0 0 0 2px rgba(223, 74, 114, .1); }
body.admin-app .ap-menu-info { display: grid; margin-top: 30px; padding: 18px; grid-template-columns: 40px minmax(0, 1fr); gap: 14px; align-items: center; border: 1px solid #e2d6fb; border-radius: 8px; color: #283963; background: #f5f0ff; }
body.admin-app .ap-menu-info > span { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 50%; color: #fff; background: #6d37d8; }
body.admin-app .ap-menu-info strong { color: #102c58; font-size: .94rem; }
body.admin-app .ap-menu-info p, body.admin-app .ap-menu-record-status { margin: 2px 0 0; color: #4d5f7b; font-size: .82rem; }
body.admin-app .ap-menu-record-status { text-align: center; }
body.admin-app .ap-menu-footer { display: grid; min-height: 86px; padding: 14px 32px; box-sizing: border-box; grid-template-columns: auto minmax(0, 1fr) auto; gap: 18px; align-items: center; border-top: 1px solid #e1e6ef; background: #fff; }
body.admin-app .ap-menu-footer button { min-height: 48px; padding: 0 22px; display: inline-flex; align-items: center; justify-content: center; gap: 10px; border-radius: 7px; font: inherit; font-weight: 900; cursor: pointer; }
body.admin-app .ap-menu-footer .ap-secondary { border: 1px solid #cbd5e3; color: #17345f; background: #fff; }
body.admin-app .ap-menu-footer button[type="submit"] { min-width: 260px; border: 0; color: #fff; background: linear-gradient(100deg, #5f31d7, #7837dd); box-shadow: 0 12px 22px rgba(103, 55, 214, .2); }
body.admin-app .ap-menu-footer button:disabled { cursor: not-allowed; opacity: .55; }
body.admin-app .ap-menu-footer-summary { display: flex; min-width: 0; align-items: center; justify-content: center; gap: 18px; color: #122d58; font-size: .9rem; font-weight: 900; }
body.admin-app .ap-menu-footer-summary span { display: inline-flex; min-width: 0; align-items: center; gap: 9px; }
body.admin-app .ap-menu-footer-summary span:first-child strong { min-width: 0; white-space: normal; }
body.admin-app .ap-menu-footer-summary i { width: 1px; height: 24px; background: #ccd5e3; }
body.admin-app .ap-menu-footer-summary em { padding: 5px 12px; border-radius: 999px; color: #5a3bab; background: #ebe3fa; font-size: .78rem; font-style: normal; }
.ap-menu-table-day { display: block; min-width: 180px; color: #20375c; line-height: 1.45; }
.ap-menu-table-day strong { color: #08265a; }
.ap-menu-table-day small { display: block; margin-top: 3px; color: #65738a; }
body.family-app .fp-menu-day-meals { display: grid; gap: 8px; }
body.family-app .fp-menu-day-meals p { display: grid; gap: 3px; }
body.family-app .fp-menu-day-meals b { color: #0b2b59; font-size: .72rem; }

@media (max-width: 860px) {
  body.admin-app .ap-menu-modal { padding: 8px; }
  body.admin-app .ap-menu-form-card { width: calc(100vw - 16px); height: calc(100dvh - 16px); }
  body.admin-app .ap-menu-modal-head, body.admin-app .ap-menu-form-scroll, body.admin-app .ap-menu-footer { padding-inline: 18px; }
  body.admin-app .ap-menu-top-grid, body.admin-app .ap-menu-days-grid { grid-template-columns: 1fr; }
  body.admin-app .ap-menu-footer { grid-template-columns: 1fr; }
  body.admin-app .ap-menu-footer-summary { order: -1; flex-wrap: wrap; justify-content: flex-start; }
  body.admin-app .ap-menu-footer button, body.admin-app .ap-menu-footer button[type="submit"] { width: 100%; min-width: 0; }
}

@media (min-width: 861px) and (max-width: 1180px) {
  body.admin-app .ap-menu-days-grid { grid-template-columns: repeat(2, minmax(240px, 1fr)); }
}

/* L'Ã©quipe : animation fluide du carrousel existant. */
body.public-team-page .public-team-carousel-card {
  will-change: transform, opacity;
  transition:
    transform 580ms cubic-bezier(.22, 1, .36, 1),
    opacity 520ms cubic-bezier(.22, 1, .36, 1),
    box-shadow 580ms cubic-bezier(.22, 1, .36, 1);
}

body.public-team-page .public-team-photo-mark,
body.public-team-page .public-team-dots button {
  transition:
    transform 320ms cubic-bezier(.22, 1, .36, 1),
    opacity 320ms ease,
    background-color 320ms ease;
}

body.public-team-page .public-team-carousel.is-transitioning .public-team-arrow,
body.public-team-page .public-team-carousel.is-transitioning .public-team-dots button {
  pointer-events: none;
}

body.public-team-page .public-team-carousel.is-transitioning .public-team-arrow {
  opacity: .72;
}

@keyframes publicTeamMobileSlideIn {
  from {
    opacity: .78;
    transform: translate3d(14px, 0, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@media (max-width: 760px) {
  body.public-team-page .public-team-carousel.is-transitioning .public-team-carousel-card.is-active {
    animation: publicTeamMobileSlideIn 360ms cubic-bezier(.22, 1, .36, 1) both;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.public-team-page .public-team-carousel-card,
  body.public-team-page .public-team-photo-mark,
  body.public-team-page .public-team-dots button {
    transition: none;
    will-change: auto;
  }

body.public-team-page .public-team-carousel.is-transitioning .public-team-carousel-card.is-active {
    animation: none;
  }
}

/* Administration : formulaire Ã©quipe structurÃ© et connectÃ© au carrousel public. */
body.admin-app .ap-team-member-modal .ap-team-member-card {
  width: min(100% - 24px, 1480px);
  max-height: min(94vh, 820px);
  padding: 0;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  overflow: hidden;
  border-radius: 22px;
}

body.admin-app .ap-team-member-header {
  display: grid;
  padding: 18px 24px 14px;
  grid-template-columns: minmax(0, 1fr) 38px;
  align-items: center;
  gap: 14px;
  border-bottom: 1px solid #e7edf5;
}

body.admin-app .ap-team-member-icon {
  display: grid;
  width: 50px;
  height: 50px;
  place-items: center;
  border-radius: 50%;
  color: #7b4ff2;
  background: #efe7ff;
}

body.admin-app .ap-team-member-icon .lpm-icon {
  width: 25px;
  height: 25px;
}

body.admin-app .ap-team-member-header h2 {
  margin: 0;
  color: #102653;
  font-size: 1.48rem;
  line-height: 1.1;
}

body.admin-app .ap-team-member-header span:not(.ap-team-member-icon) {
  display: block;
  margin-top: 4px;
  color: #63718a;
  font-size: .78rem;
  font-weight: 700;
}

body.admin-app .ap-team-member-body {
  min-height: 0;
  padding: 16px 24px 18px;
  display: grid;
  grid-template-columns: minmax(280px, .95fr) minmax(330px, 1.05fr) minmax(300px, .95fr);
  gap: 14px;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: rgba(123, 79, 242, .28) transparent;
}

body.admin-app .ap-team-member-column {
  display: grid;
  gap: 12px;
  align-content: start;
}

body.admin-app .ap-team-member-section {
  padding: 13px 14px;
  border: 1px solid #e4ebf4;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 12px 26px rgba(31, 49, 82, .05);
}

body.admin-app .ap-team-member-section > header {
  position: relative;
  margin-bottom: 10px;
  padding-left: 36px;
}

body.admin-app .ap-team-member-section > header::before,
body.admin-app .ap-team-member-preview h3::before {
  content: "";
  position: absolute;
  left: 0;
  top: -1px;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #efe7ff;
}

body.admin-app .ap-team-member-section h3 {
  margin: 0 0 3px;
  color: #11295a;
  font-size: .9rem;
}

body.admin-app .ap-team-member-section p {
  margin: 0;
  color: #697891;
  font-size: .7rem;
  line-height: 1.45;
}

body.admin-app .ap-team-member-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

body.admin-app .ap-team-member-grid.compact {
  align-items: start;
}

body.admin-app .ap-team-member-card label {
  margin: 0;
  display: grid;
  gap: 5px;
  color: #17315f;
  font-size: .72rem;
  font-weight: 850;
}

body.admin-app .ap-team-member-card label > span b {
  color: #d84d7a;
  font-weight: 950;
}

body.admin-app .ap-team-member-card label.span-2,
body.admin-app .ap-team-member-card .span-2 {
  grid-column: 1 / -1;
}

body.admin-app .ap-team-member-card input:not([type="checkbox"]):not([type="file"]),
body.admin-app .ap-team-member-card select,
body.admin-app .ap-team-member-card textarea {
  width: 100%;
  min-height: 38px;
  padding: 8px 10px;
  box-sizing: border-box;
  border: 1px solid #dce5f0;
  border-radius: 10px;
  color: #142d5b;
  background: #fbfcff;
  font: inherit;
  font-size: .76rem;
  font-weight: 700;
}

body.admin-app .ap-team-member-card textarea {
  min-height: 76px;
  resize: vertical;
}

body.admin-app .ap-team-field-help {
  margin: -6px 0 0;
  color: #6a7890;
  font-size: .68rem;
  font-weight: 750;
}

body.admin-app .ap-team-status {
  margin: 2px 0 0;
  padding: 0;
  border: 0;
}

body.admin-app .ap-team-status legend {
  margin-bottom: 8px;
  color: #17315f;
  font-size: .72rem;
  font-weight: 850;
}

body.admin-app .ap-team-status legend b {
  color: #d84d7a;
}

body.admin-app .ap-team-status > div {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

body.admin-app .ap-team-status label {
  min-height: 36px;
  padding: 0 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: 1px solid #dfe7f1;
  border-radius: 10px;
  background: #fff;
  color: #122a58;
  font-size: .72rem;
  font-weight: 900;
  cursor: pointer;
}

body.admin-app .ap-team-status label.is-selected {
  border-color: #8bd8a0;
  color: #14833e;
  background: #f2fbf5;
}

body.admin-app .ap-team-status input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

body.admin-app .ap-team-status label span {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: currentColor;
}

body.admin-app .ap-team-photo-field {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  justify-items: center;
  min-height: 0;
  padding: 12px;
  border: 1px solid #e2e8f2;
  border-radius: 14px;
  background: #fbfcff;
}

body.admin-app .ap-team-photo-preview,
body.admin-app .ap-team-preview-photo {
  overflow: hidden;
  display: grid;
  place-items: center;
  border-radius: 16px;
  color: #7452d7;
  background: linear-gradient(135deg, #efe7ff, #e8f8ee);
  font-weight: 950;
}

body.admin-app .ap-team-photo-preview {
  width: 128px;
  height: 128px;
  border-radius: 50%;
  font-size: 1.42rem;
}

body.admin-app .ap-team-photo-preview img,
body.admin-app .ap-team-preview-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

body.admin-app .ap-team-photo-actions {
  display: grid;
  width: 100%;
  gap: 8px;
  justify-items: center;
  min-width: 0;
}

body.admin-app .ap-team-photo-success {
  margin: 0;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: 7px;
  color: #14833e;
  font-size: .72rem;
  font-weight: 850;
}

body.admin-app .ap-team-photo-success .lpm-icon,
body.admin-app .ap-team-photo-file .lpm-icon {
  width: 16px;
  height: 16px;
}

body.admin-app .ap-team-photo-file {
  min-height: 40px;
  padding: 0 10px;
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr) auto 18px;
  align-items: center;
  gap: 8px;
  border: 1px solid #dfe7f1;
  border-radius: 10px;
  background: #fff;
  color: #11295a;
}

body.admin-app .ap-team-photo-file strong {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: .72rem;
}

body.admin-app .ap-team-photo-file small {
  color: #748198;
}

body.admin-app .ap-team-photo-file i {
  display: grid;
  place-items: center;
  color: #12a34f;
}

body.admin-app .ap-team-photo-buttons {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
}

body.admin-app .ap-team-member-card .ap-team-photo-upload {
  min-height: 32px;
  height: 32px;
  width: fit-content;
  max-width: fit-content;
  padding: 0 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  border: 1px solid #d8c8fb;
  border-radius: 10px;
  color: #6940d5;
  background: #f7f2ff;
  font-size: 13px;
  font-weight: 900;
  line-height: 1;
  cursor: pointer;
  box-shadow: none;
}

body.admin-app .ap-team-member-card .ap-team-photo-upload .lpm-icon {
  width: 14px;
  height: 14px;
}

body.admin-app .ap-team-photo-actions .ap-soft-link.danger {
  margin: 0;
  min-height: 32px;
  height: 32px;
  width: fit-content;
  max-width: fit-content;
  padding: 0 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  border: 1px solid #f0cbd3;
  color: #d8244f;
  background: #fffafa;
  border-radius: 10px;
  font-size: 13px;
  font-weight: 900;
  line-height: 1;
  box-shadow: none;
}

body.admin-app .ap-team-photo-actions .ap-soft-link.danger .lpm-icon {
  width: 14px;
  height: 14px;
}

body.admin-app .ap-team-photo-upload input {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
}

body.admin-app .ap-team-photo-actions small {
  justify-self: center;
  max-width: 280px;
  color: #6a7890;
  font-size: .72rem;
  font-weight: 700;
  line-height: 1.35;
  text-align: center;
}

body.admin-app .ap-team-photo-actions .ap-field-error {
  min-height: 0;
  margin: 0;
  color: #c73763;
  font-size: .72rem;
  font-weight: 800;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

body.admin-app .ap-team-member-preview {
  position: sticky;
  top: 0;
  align-self: start;
  padding: 14px;
  border: 1px solid #e2d8fa;
  border-radius: 16px;
  background: linear-gradient(180deg, #fbf8ff, #fff);
  box-shadow: 0 16px 34px rgba(40, 51, 86, .07);
}

body.admin-app .ap-team-member-preview h3 {
  position: relative;
  min-height: 28px;
  margin: 0 0 12px;
  padding-left: 36px;
  color: #102653;
  font-size: .9rem;
}

body.admin-app .ap-team-member-preview h3 .lpm-icon {
  position: absolute;
  left: 6px;
  top: 6px;
  z-index: 1;
  width: 16px;
  height: 16px;
  color: #7251e8;
}

body.admin-app .ap-team-member-preview h3 small {
  display: inline;
  margin-left: 4px;
  color: #526176;
  font-size: .76rem;
  font-weight: 700;
}

body.admin-app .ap-team-preview-card {
  display: grid;
  justify-items: center;
  gap: 10px;
  padding: 18px 14px;
  border: 1px solid #e1e7f0;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 18px 38px rgba(31, 49, 82, .1);
  text-align: center;
}

body.admin-app .ap-team-preview-photo {
  width: 118px;
  height: 118px;
  border-radius: 50%;
  font-size: 1.9rem;
}

body.admin-app .ap-team-preview-card small {
  color: #7b4ff2;
  font-size: .84rem;
  font-weight: 900;
  letter-spacing: 0;
  text-transform: none;
}

body.admin-app .ap-team-preview-card strong {
  color: #102653;
  font-size: 1.18rem;
  line-height: 1.12;
}

body.admin-app .ap-team-preview-card > i {
  width: 44px;
  height: 3px;
  border-radius: 999px;
  background: #7251e8;
}

body.admin-app .ap-team-preview-card p {
  margin: 0;
  color: #5f6f88;
  font-size: .74rem;
  font-weight: 700;
  line-height: 1.45;
}

body.admin-app .ap-team-preview-card em[data-preview-publication] {
  margin-top: 4px;
  padding: 7px 12px;
  border-radius: 999px;
  color: #14783b;
  background: #e9f8ee;
  font-size: .7rem;
  font-style: normal;
  font-weight: 900;
}

body.admin-app .ap-team-preview-card em[data-preview-publication].is-off {
  color: #697386;
  background: #edf1f6;
}

body.admin-app .ap-team-preview-note {
  margin: 12px 0 0;
  padding: 10px 12px;
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr);
  gap: 10px;
  border-radius: 12px;
  color: #473678;
  background: #f3edff;
  font-size: .7rem;
  font-weight: 750;
  line-height: 1.45;
}

body.admin-app .ap-team-member-footer {
  min-height: 58px;
  padding: 9px 20px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  border-top: 1px solid #e7edf5;
  background: rgba(255, 255, 255, .96);
}

body.admin-app .ap-team-member-footer [data-record-status] {
  margin: 0;
  color: #526176;
  font-size: .78rem;
  font-weight: 800;
  text-align: center;
}

body.admin-app .ap-team-member-footer-center {
  min-width: 0;
  display: grid;
  justify-items: center;
  gap: 3px;
  color: #102653;
}

body.admin-app .ap-team-member-footer-center p {
  max-width: 100%;
  margin: 0;
  overflow-wrap: anywhere;
  text-align: center;
  font-size: .78rem;
  font-weight: 900;
}

body.admin-app .ap-team-member-footer-center small:empty {
  display: none;
}

body.admin-app .ap-team-member-footer button[type="submit"] {
  min-height: 40px;
  padding: 0 15px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border: 0;
  border-radius: 10px;
  color: #fff;
  background: #7251e8;
  font-size: .78rem;
  font-weight: 900;
}

body.admin-app .ap-team-member-footer button[type="submit"]:disabled {
  opacity: .58;
  cursor: wait;
}

/* Administration > Membres : liste staff connectÃ©e au site public. */
body.admin-app .ap-members-page {
  display: grid;
  gap: 20px;
}

body.admin-app .ap-members-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}

body.admin-app .ap-members-kpi {
  min-height: 118px;
  padding: 20px;
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr);
  align-items: center;
  gap: 14px;
  border: 1px solid #e3e9f2;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 12px 26px rgba(31, 49, 82, .055);
}

body.admin-app .ap-members-kpi > span {
  width: 50px;
  height: 50px;
  display: grid;
  place-items: center;
  border-radius: 14px;
}

body.admin-app .ap-members-kpi .lpm-icon { width: 23px; height: 23px; }
body.admin-app .ap-members-kpi.purple > span { color: #7240d6; background: #eee6ff; }
body.admin-app .ap-members-kpi.green > span { color: #2d9850; background: #e6f7ed; }
body.admin-app .ap-members-kpi.orange > span { color: #d9841f; background: #fff1dc; }
body.admin-app .ap-members-kpi.gray > span { color: #718096; background: #edf2f7; }

body.admin-app .ap-members-kpi strong {
  display: block;
  color: #102653;
  font-size: 1.35rem;
  line-height: 1;
}

body.admin-app .ap-members-kpi p {
  margin: 5px 0 2px;
  color: #17315f;
  font-size: .78rem;
  font-weight: 900;
}

body.admin-app .ap-members-kpi small {
  color: #687891;
  font-size: .68rem;
  font-weight: 750;
}

body.admin-app .ap-members-toolbar {
  padding: 14px;
  display: grid;
  grid-template-columns: minmax(240px, 1.4fr) repeat(3, minmax(150px, .7fr)) auto;
  gap: 12px;
  align-items: end;
  border: 1px solid #e3e9f2;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 10px 24px rgba(31, 49, 82, .045);
}

body.admin-app .ap-members-toolbar label:not(.lpm-search-field) {
  display: grid;
  gap: 6px;
  color: #17315f;
  font-size: .68rem;
  font-weight: 900;
}

body.admin-app .ap-members-toolbar select {
  min-height: 43px;
  padding: 0 12px;
  border: 1px solid #dce5f0;
  border-radius: 10px;
  color: #142d5b;
  background: #fbfcff;
  font: inherit;
  font-size: .75rem;
  font-weight: 800;
}

body.admin-app .ap-members-toolbar button {
  min-height: 43px;
  padding: 0 15px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: 1px solid #d8cafa;
  border-radius: 10px;
  color: #6237cc;
  background: #f7f2ff;
  font: inherit;
  font-size: .74rem;
  font-weight: 900;
  cursor: pointer;
}

body.admin-app .ap-members-table-card {
  overflow: hidden;
  border: 1px solid #e3e9f2;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 14px 32px rgba(31, 49, 82, .055);
}

body.admin-app .ap-members-table-card > header {
  padding: 18px 20px;
  border-bottom: 1px solid #edf1f6;
}

body.admin-app .ap-members-table-card h2 {
  margin: 0 0 4px;
  color: #102653;
  font-size: 1.05rem;
}

body.admin-app .ap-members-table-card p {
  margin: 0;
  color: #687891;
  font-size: .76rem;
  font-weight: 750;
}

body.admin-app .ap-members-table-scroll {
  overflow-x: auto;
}

body.admin-app .ap-members-table {
  width: 100%;
  min-width: 820px;
  border-collapse: collapse;
}

body.admin-app .ap-members-table th,
body.admin-app .ap-members-table td {
  padding: 15px 18px;
  border-bottom: 1px solid #eef2f7;
  color: #17315f;
  text-align: left;
  vertical-align: middle;
  font-size: .78rem;
  font-weight: 780;
}

body.admin-app .ap-members-table th {
  color: #697891;
  font-size: .68rem;
  font-weight: 950;
  text-transform: uppercase;
  letter-spacing: .04em;
}

body.admin-app .ap-members-table tr.is-disabled {
  opacity: .72;
}

body.admin-app .ap-member-cell {
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr);
  align-items: center;
  gap: 12px;
}

body.admin-app .ap-member-avatar,
body.admin-app .ap-member-avatar img,
body.admin-app .ap-member-avatar > span {
  width: 46px;
  height: 46px;
  border-radius: 50%;
}

body.admin-app .ap-member-avatar {
  overflow: hidden;
  display: grid;
  place-items: center;
  color: #7240d6;
  background: #eee6ff;
  font-weight: 950;
}

body.admin-app .ap-member-avatar img {
  display: block;
  object-fit: cover;
}

body.admin-app .ap-member-cell strong {
  display: block;
  color: #102653;
  font-size: .84rem;
}

body.admin-app .ap-member-cell small,
body.admin-app .ap-muted-cell {
  color: #718096;
  font-size: .72rem;
  font-weight: 750;
}

body.admin-app .ap-member-actions {
  display: flex;
  align-items: center;
  gap: 6px;
}

body.admin-app .ap-member-actions > button,
body.admin-app .ap-member-actions summary {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border: 1px solid #dfe6f0;
  border-radius: 10px;
  color: #5e36cf;
  background: #fff;
  cursor: pointer;
}

body.admin-app .ap-member-actions .lpm-icon { width: 17px; height: 17px; }
body.admin-app[data-admin-page="membres"] .ap-member-actions .lpm-icon { width: 15px; height: 15px; }
body.admin-app .ap-member-actions details { position: relative; }
body.admin-app .ap-member-actions summary { list-style: none; }
body.admin-app .ap-member-actions summary::-webkit-details-marker { display: none; }

body.admin-app .ap-member-actions details > div {
  position: absolute;
  z-index: 5;
  top: 36px;
  right: 0;
  min-width: 128px;
  padding: 5px;
  border: 1px solid #e1e7f0;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 14px 30px rgba(23, 45, 78, .14);
}

body.admin-app .ap-member-actions details button {
  width: 100%;
  min-height: 30px;
  padding: 0 9px;
  border: 0;
  border-radius: 8px;
  color: #17315f;
  background: transparent;
  font: inherit;
  font-size: .7rem;
  font-weight: 850;
  text-align: left;
  cursor: pointer;
}

body.admin-app .ap-member-actions details button:hover {
  background: #f6f8fb;
}

body.admin-app .ap-member-actions details button.is-danger {
  color: #c23d63;
}

body.admin-app .ap-member-actions details button.is-danger:hover {
  background: #fff1f5;
}

body.admin-app .ap-team-preview-card em {
  margin-top: -5px;
  color: #687891;
  font-size: .74rem;
  font-style: normal;
  font-weight: 850;
}

body.admin-app[data-admin-page="membres"] .ap-top {
  display: none;
}

body.admin-app[data-admin-page="membres"] .ap-main {
  padding: 26px 30px 32px;
  background: #fcfdff;
}

body.admin-app[data-admin-page="membres"] .ap-head {
  margin: 0 0 24px;
  align-items: flex-start;
}

body.admin-app[data-admin-page="membres"] .ap-head h1 {
  margin: 0 0 8px;
  min-height: 30px;
  color: #081b45;
  font-size: 1.78rem;
  line-height: 1;
}

body.admin-app[data-admin-page="membres"] .ap-head h1 .lpm-title-accent {
  display: inline-block !important;
  color: inherit;
  font-style: normal;
}

body.admin-app[data-admin-page="membres"] .ap-head h1::after {
  display: none;
}

body.admin-app[data-admin-page="membres"] .ap-head p {
  max-width: none;
  color: #284164;
  font-size: .9rem;
  font-weight: 700;
}

body.admin-app[data-admin-page="membres"] .ap-head .ap-primary {
  min-height: 38px;
  padding: 0 16px;
  border-radius: 7px;
  background: linear-gradient(100deg, #6c3bd8, #7d4be1);
  box-shadow: 0 8px 16px rgba(109, 61, 214, .14);
  font-size: .8rem;
}

body.admin-app[data-admin-page="membres"] .ap-head .ap-primary .lpm-icon {
  width: 16px;
  height: 16px;
}

body.admin-app[data-admin-page="membres"] .ap-members-page {
  gap: 18px;
}

body.admin-app[data-admin-page="membres"] .ap-members-stats {
  gap: 14px;
}

body.admin-app[data-admin-page="membres"] .ap-members-kpi {
  min-height: 86px;
  padding: 12px 14px;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 10px;
  border-radius: 9px;
  box-shadow: 0 8px 19px rgba(22, 39, 70, .045);
}

body.admin-app[data-admin-page="membres"] .ap-members-kpi > span {
  width: 40px;
  height: 40px;
  border-radius: 50%;
}

body.admin-app[data-admin-page="membres"] .ap-members-kpi .lpm-icon {
  width: 19px;
  height: 19px;
}

body.admin-app[data-admin-page="membres"] .ap-members-kpi strong {
  font-size: 1.35rem;
}

body.admin-app[data-admin-page="membres"] .ap-members-kpi p {
  margin: 3px 0 1px;
  font-size: .78rem;
}

body.admin-app[data-admin-page="membres"] .ap-members-kpi small {
  font-size: .68rem;
}

body.admin-app[data-admin-page="membres"] .ap-members-toolbar {
  padding: 0;
  grid-template-columns: minmax(280px, 1.7fr) repeat(3, minmax(145px, .7fr)) minmax(110px, .5fr);
  gap: 10px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

body.admin-app[data-admin-page="membres"] .ap-members-toolbar .lpm-search-field,
body.admin-app[data-admin-page="membres"] .ap-members-toolbar select,
body.admin-app[data-admin-page="membres"] .ap-members-toolbar button {
  min-height: 38px;
  border-radius: 7px;
  border-color: #dce4ef;
  background-color: #fff;
  box-shadow: 0 4px 12px rgba(22, 39, 70, .025);
}

body.admin-app[data-admin-page="membres"] .ap-members-toolbar label:not(.lpm-search-field) {
  gap: 0;
}

body.admin-app[data-admin-page="membres"] .ap-members-toolbar label:not(.lpm-search-field) {
  font-size: 0;
}

body.admin-app[data-admin-page="membres"] .ap-members-toolbar select {
  padding-inline: 10px;
  font-size: .76rem;
}

body.admin-app[data-admin-page="membres"] .ap-members-toolbar button {
  padding-inline: 12px;
  font-size: .74rem;
}

body.admin-app[data-admin-page="membres"] .ap-members-toolbar .lpm-icon,
body.admin-app[data-admin-page="membres"] .lpm-search-field .lpm-icon {
  width: 16px;
  height: 16px;
}

body.admin-app[data-admin-page="membres"] .ap-members-table-card {
  border-radius: 9px;
  box-shadow: 0 14px 32px rgba(21, 43, 76, .055);
}

body.admin-app[data-admin-page="membres"] .ap-members-table-card > header {
  padding: 12px 16px;
}

body.admin-app[data-admin-page="membres"] .ap-members-table-card h2 {
  font-size: .95rem;
}

body.admin-app[data-admin-page="membres"] .ap-members-table-card > header p {
  display: none;
}

body.admin-app[data-admin-page="membres"] .ap-members-table th,
body.admin-app[data-admin-page="membres"] .ap-members-table td {
  padding: 9px 14px;
  font-size: .78rem;
}

body.admin-app[data-admin-page="membres"] .ap-members-table th {
  color: #142c58;
  font-size: .68rem;
  letter-spacing: 0;
  text-transform: none;
}

body.admin-app[data-admin-page="membres"] .ap-member-avatar,
body.admin-app[data-admin-page="membres"] .ap-member-avatar img,
body.admin-app[data-admin-page="membres"] .ap-member-avatar > span {
  width: 34px;
  height: 34px;
}

body.admin-app[data-admin-page="membres"] .ap-member-cell {
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 9px;
}

body.admin-app[data-admin-page="membres"] .ap-member-cell strong {
  font-size: .78rem;
}

body.admin-app[data-admin-page="membres"] .ap-member-cell small,
body.admin-app[data-admin-page="membres"] .ap-muted-cell {
  font-size: .68rem;
}

body.admin-app[data-admin-page="membres"] .ap-status-badge {
  padding: 4px 8px;
  font-size: .66rem;
}

body.admin-app[data-admin-page="membres"] .ap-member-actions > button,
body.admin-app[data-admin-page="membres"] .ap-member-actions summary {
  width: 32px;
  height: 32px;
  border-radius: 7px;
}

body.admin-app .ap-members-table-footer {
  min-height: 54px;
  padding: 10px 14px;
  display: flex;
  align-items: center;
  gap: 8px;
  border-top: 1px solid #eef2f7;
}

body.admin-app .ap-members-table-footer label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #284164;
  font-size: .74rem;
  font-weight: 800;
}

body.admin-app .ap-members-table-footer select {
  min-width: 64px;
  min-height: 34px;
  padding: 0 9px;
  border: 1px solid #dce4ef;
  border-radius: 7px;
  color: #142c58;
  background: #fff;
  font: inherit;
  font-weight: 900;
}

body.admin-app .ap-members-table-footer > span {
  color: #284164;
  font-size: .74rem;
  font-weight: 800;
}

body.admin-app .ap-members-table-footer nav {
  margin-left: auto;
  display: flex;
  gap: 6px;
}

body.admin-app .ap-members-table-footer nav button {
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border: 1px solid #dce4ef;
  border-radius: 7px;
  color: #142c58;
  background: #fff;
  font: inherit;
  font-weight: 900;
}

body.admin-app .ap-members-table-footer nav button.active {
  color: #fff;
  border-color: #7437e8;
  background: #7437e8;
}

body.public-team-page .public-team-carousel-card,
body.public-team-page .public-team-copy,
body.public-team-page .public-team-copy > strong,
body.public-team-page .public-team-bio {
  min-width: 0;
  max-width: 100%;
  overflow-wrap: anywhere;
}

@media (max-width: 920px) {
  body.admin-app[data-admin-page="membres"] .ap-top {
    display: flex;
  }

  body.admin-app[data-admin-page="membres"] .ap-main {
    padding: 92px 22px 32px;
  }

  body.admin-app[data-admin-page="membres"] .ap-head {
    margin-bottom: 28px;
  }

  body.admin-app .ap-members-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.admin-app .ap-members-toolbar {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.admin-app .ap-members-toolbar .lpm-search-field {
    grid-column: 1 / -1;
  }

  body.admin-app .ap-team-member-body {
    grid-template-columns: 1fr;
  }

  body.admin-app .ap-team-member-preview {
    position: static;
  }
}

@media (max-width: 640px) {
  body.admin-app .ap-members-stats,
  body.admin-app .ap-members-toolbar {
    grid-template-columns: 1fr;
  }

  body.admin-app .ap-members-kpi {
    min-height: 98px;
  }

  body.admin-app .ap-members-table {
    min-width: 760px;
  }

  body.admin-app .ap-team-member-modal .ap-team-member-card {
    width: min(100% - 16px, 560px);
    max-height: 94vh;
  }

  body.admin-app .ap-team-member-header,
  body.admin-app .ap-team-member-body,
  body.admin-app .ap-team-member-footer {
    padding-right: 16px;
    padding-left: 16px;
  }

  body.admin-app .ap-team-member-grid,
  body.admin-app .ap-team-member-footer {
    grid-template-columns: 1fr;
  }

  body.admin-app .ap-team-photo-field {
    grid-template-columns: 1fr;
    justify-items: center;
    gap: 10px;
  }

  body.admin-app .ap-team-photo-preview {
    width: 112px;
    height: 112px;
    font-size: 1.25rem;
  }

  body.admin-app .ap-team-member-card .ap-team-photo-upload {
    width: fit-content;
    max-width: fit-content;
  }

  body.admin-app .ap-team-photo-actions {
    justify-items: center;
  }

  body.admin-app .ap-team-photo-buttons,
  body.admin-app .ap-team-status > div {
    justify-content: center;
  }
}

body.public-spaces-page .public-age-section .reference-stage-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
}

body.public-spaces-page .public-age-section .reference-stage-strip article {
  display: grid;
  min-width: 0;
  min-height: 104px;
  padding: 2px clamp(24px, 3vw, 50px);
  grid-template-columns: 42px minmax(0, 1fr);
  align-items: start;
  gap: 14px;
  border: 0;
  border-right: 1px solid rgba(126, 143, 169, .45);
  background: transparent;
}

body.public-spaces-page .public-age-section .reference-stage-strip article:first-child { padding-left: 12px; }
body.public-spaces-page .public-age-section .reference-stage-strip article:last-child {
  padding-right: 12px;
  border-right: 0;
}

body.public-spaces-page .public-age-section .reference-stage-icon {
  display: grid;
  width: 42px;
  height: 42px;
  margin-top: 0;
  place-items: center;
  border-radius: 0;
  background: transparent;
}

body.public-spaces-page .public-age-section .reference-stage-icon :is(.lpm-icon, svg) {
  width: 34px;
  height: 34px;
  stroke-width: 2.2;
}

body.public-spaces-page .public-age-section .reference-stage-icon.icon-pink { color: var(--public-pink); }
body.public-spaces-page .public-age-section .reference-stage-icon.icon-green { color: var(--public-green); }
body.public-spaces-page .public-age-section .reference-stage-icon.icon-blue { color: var(--public-blue); }

body.public-spaces-page .public-age-section .reference-stage-strip article > div { min-width: 0; }
body.public-spaces-page .public-age-section .reference-stage-strip article > div > span {
  display: block;
  margin: 2px 0 10px;
  font-size: .68rem;
  font-weight: 900;
  line-height: 1.2;
}
body.public-spaces-page .public-age-section .reference-stage-strip article:nth-child(1) > div > span { color: var(--public-pink); }
body.public-spaces-page .public-age-section .reference-stage-strip article:nth-child(2) > div > span { color: var(--public-green); }
body.public-spaces-page .public-age-section .reference-stage-strip article:nth-child(3) > div > span { color: var(--public-blue); }

body.public-spaces-page .public-age-section .reference-stage-strip strong {
  display: block;
  margin: 0;
  color: var(--public-navy);
  font-size: .76rem;
  line-height: 1.2;
}

body.public-spaces-page .public-age-section .reference-stage-strip p {
  max-width: 220px;
  margin: 0;
  color: var(--public-navy);
  font-size: .57rem;
  line-height: 1.55;
}

@media (max-width: 900px) {
  body.public-spaces-page .public-age-section {
    width: calc(100% - 68px);
    margin-right: auto;
    margin-left: auto;
    padding-right: 28px;
    padding-left: 28px;
  }
  body.public-spaces-page .public-age-section .reference-stage-strip article {
    padding-right: 22px;
    padding-left: 22px;
    grid-template-columns: 38px minmax(0, 1fr);
    gap: 11px;
  }
  body.public-spaces-page .public-age-section .reference-stage-icon,
  body.public-spaces-page .public-age-section .reference-stage-icon :is(.lpm-icon, svg) {
    width: 32px;
    height: 32px;
  }
}

@media (max-width: 620px) {
  body.public-spaces-page .public-age-section {
    width: calc(100% - 30px);
    margin-right: auto;
    margin-left: auto;
    padding: 24px 22px;
  }
  body.public-spaces-page .public-age-section .reference-section-title { margin-bottom: 12px; }
  body.public-spaces-page .public-age-section .reference-section-title h2 { font-size: 1.08rem; }
  body.public-spaces-page .public-age-section .reference-stage-strip { grid-template-columns: 1fr; }
  body.public-spaces-page .public-age-section .reference-stage-strip article,
  body.public-spaces-page .public-age-section .reference-stage-strip article:first-child,
  body.public-spaces-page .public-age-section .reference-stage-strip article:last-child {
    min-height: 0;
    padding: 18px 6px;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 14px;
    border-right: 0;
    border-bottom: 1px solid rgba(126, 143, 169, .32);
  }
  body.public-spaces-page .public-age-section .reference-stage-strip article:last-child { border-bottom: 0; }
  body.public-spaces-page .public-age-section .reference-stage-icon,
  body.public-spaces-page .public-age-section .reference-stage-icon :is(.lpm-icon, svg) {
    width: 36px;
    height: 36px;
  }
  body.public-spaces-page .public-age-section .reference-stage-strip p { max-width: none; }
}

/* Polish public : hierarchie, regularite et densite visuelle. */
.lpm-title-accent[data-title-tone="pink"] { --lpm-title-accent: #d94f80; }
.lpm-title-accent[data-title-tone="green"] { --lpm-title-accent: #32944c; }
.lpm-title-accent[data-title-tone="blue"] { --lpm-title-accent: #196bbd; }
.lpm-title-accent[data-title-tone="orange"] { --lpm-title-accent: #d98112; }
.lpm-title-accent[data-title-tone="violet"] { --lpm-title-accent: #7042cf; }

body.public-site :is(.reference-section-title, .public-page-section > header) > p {
  margin-top: 11px;
}

body.public-site :is(
  .home-pillar-grid,
  .home-stage-grid,
  .reference-value-grid,
  .reference-approach-grid,
  .reference-space-grid,
  .reference-team-grid,
  .public-moment-grid,
  .public-highlight-grid
) > article,
body.public-team-page .reference-team-grid > .public-team-card {
  height: 100%;
  box-sizing: border-box;
}

body.public-site .public-empty {
  min-height: 0;
  padding: 14px 20px;
  border-color: rgba(168, 183, 203, .55);
  border-radius: 10px;
  background: rgba(248, 250, 253, .72);
}

body.public-site .public-empty strong {
  font-size: .73rem;
  font-weight: 850;
}

body.public-site .public-empty p {
  margin-top: 4px;
  font-size: .65rem;
  line-height: 1.4;
}

body.public-spaces-page .reference-page-hero + .reference-page-section .reference-section-title > p {
  margin-top: 11px;
}

body.public-spaces-page .reference-space-grid .public-empty {
  min-height: 0;
  padding: 14px 20px;
}

body.public-team-page .reference-page-hero > div {
  align-self: center;
  transform: translateY(3px);
}

body.public-team-page .reference-page-hero + .reference-page-section {
  padding-top: 26px;
  padding-bottom: 34px;
}

body.public-team-page .reference-page-hero + .reference-page-section .reference-section-title {
  margin-bottom: 20px;
}

body.public-team-page .reference-team-grid .public-empty {
  min-height: 0;
  padding: 14px 20px;
}

body.public-team-page .reference-team-principles {
  margin-top: 4px;
  margin-bottom: 24px;
}

body.public-team-page .reference-yellow-cta {
  margin-bottom: 0;
}

@media (max-width: 900px) {
  body.public-team-page .reference-page-hero > div { transform: none; }
  body.public-team-page .reference-page-hero + .reference-page-section { padding-top: 30px; padding-bottom: 34px; }
}

@media (max-width: 560px) {
  body.public-site .public-empty { padding: 13px 15px; }
  body.public-team-page .reference-page-hero + .reference-page-section { padding-top: 30px; padding-bottom: 32px; }
  body.public-team-page .reference-team-principles { margin-top: 0; margin-bottom: 20px; }
}

/* Contact : polish des proportions et du rythme, sans changement de structure. */
body.public-contact-page {
  background-image:
    radial-gradient(circle at 3% 14%, rgba(242,56,120,.18) 0 3px, transparent 3.5px),
    radial-gradient(circle at 97% 19%, rgba(54,168,83,.15) 0 3px, transparent 3.5px),
    radial-gradient(circle at 7% 43%, rgba(22,115,210,.15) 0 3px, transparent 3.5px),
    radial-gradient(circle at 94% 62%, rgba(245,158,11,.17) 0 3px, transparent 3.5px),
    radial-gradient(circle at 4% 83%, rgba(116,55,232,.12) 0 2px, transparent 2.5px),
    radial-gradient(circle at 98% 88%, rgba(242,56,120,.14) 0 3px, transparent 3.5px);
}

body.public-contact-page .reference-contact-hero {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 38px;
}

body.public-contact-page .reference-contact-hero > div {
  max-width: 540px;
}

body.public-contact-page .reference-contact-visual {
  width: 87%;
  justify-self: center;
}

body.public-contact-page .reference-contact-layout {
  align-items: stretch;
}

body.public-contact-page .public-contact-details,
body.public-contact-page .public-form {
  height: 100%;
}

body.public-contact-page .public-contact-details dl > div {
  min-height: 79px;
  padding: 12px 0;
  grid-template-columns: 49px minmax(0, 1fr);
  border-bottom-color: rgba(171, 185, 205, .3);
}

body.public-contact-page .public-contact-details dl > div:last-child {
  border-bottom: 0;
}

body.public-contact-page .public-contact-details .reference-icon {
  width: 39px;
  height: 39px;
}

body.public-contact-page .contact-service-note {
  margin-top: 16px;
  padding: 17px 19px;
  background: rgba(245, 158, 11, .075);
}

body.public-contact-page .contact-service-note b {
  display: block;
  margin-bottom: 4px;
}

body.public-contact-page .public-form {
  padding: 25px 28px;
  gap: 12px;
}

body.public-contact-page .public-form label {
  gap: 5px;
}

body.public-contact-page .public-form .form-grid {
  gap: 16px;
}

body.public-contact-page .form-consent {
  margin-top: 7px;
}

body.public-contact-page .public-form .reference-button {
  min-height: 40px;
  margin-top: 8px;
  border-radius: 15px;
}

body.public-contact-page .public-place-banner {
  min-height: 127px;
  padding-top: 21px;
  padding-bottom: 21px;
  grid-template-columns: 128px minmax(0, 1fr) 230px;
  gap: 28px;
}

body.public-contact-page .public-place-banner > .reference-icon {
  width: 72px;
  height: 72px;
}

body.public-contact-page .public-place-banner > div {
  align-self: center;
}

body.public-contact-page .public-place-banner .reference-button {
  align-self: center;
}

@media (max-width: 900px) {
  body.public-contact-page .reference-contact-hero {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  body.public-contact-page .reference-contact-visual {
    width: min(88%, 480px);
  }

  body.public-contact-page .public-contact-details,
  body.public-contact-page .public-form { height: auto; }

  body.public-contact-page .public-place-banner {
    grid-template-columns: 84px minmax(0, 1fr) 190px;
  }
}

@media (max-width: 560px) {
  body.public-contact-page .reference-contact-visual { width: 100%; }
  body.public-contact-page .public-contact-details dl > div { min-height: 74px; }
  body.public-contact-page .public-form { padding: 24px 22px; gap: 12px; }
  body.public-contact-page .public-place-banner {
    padding-top: 25px;
    padding-bottom: 25px;
    grid-template-columns: 1fr;
    gap: 18px;
  }
}

/* Contact : alignement final sur la maquette officielle. */
body.public-contact-page .reference-contact-hero {
  min-height: 270px;
  padding: 29px clamp(52px, 7vw, 78px) 17px;
  grid-template-columns: minmax(0, 520px) minmax(360px, 1fr);
  align-items: center;
  gap: 45px;
}

body.public-contact-page .reference-contact-hero > div {
  max-width: 520px;
}

body.public-contact-page .reference-contact-visual {
  width: 100%;
  height: 220px;
  justify-self: center;
  object-fit: contain;
}

body.public-contact-page .reference-contact-layout {
  min-height: 595px;
  padding: 0 clamp(48px, 6.25vw, 70px) 24px;
  grid-template-columns: 354px minmax(0, 1fr);
  align-items: stretch;
  gap: 35px;
}

body.public-contact-page .public-contact-details {
  min-height: 571px;
  padding: 25px 29px;
}

body.public-contact-page .public-contact-details h2,
body.public-contact-page .public-form h2 {
  margin-bottom: 15px;
  font-size: 1.36rem;
}

body.public-contact-page .public-contact-details dl > div {
  min-height: 75px;
  padding: 9px 0;
  grid-template-columns: 54px minmax(0, 1fr);
  border-bottom-color: rgba(171, 185, 205, .38);
}

body.public-contact-page .public-contact-details .reference-icon {
  width: 45px;
  height: 45px;
}

body.public-contact-page .public-contact-details .reference-icon .lpm-icon {
  width: 20px;
  height: 20px;
  stroke-width: 2.15;
}

body.public-contact-page .contact-service-note {
  display: grid;
  min-height: 82px;
  margin-top: 13px;
  padding: 14px 17px;
  grid-template-columns: 43px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  border-radius: 13px;
  background: #eff7ff;
}

body.public-contact-page .contact-service-note > .lpm-icon {
  width: 34px;
  height: 34px;
  color: var(--public-blue);
  stroke-width: 1.9;
}

body.public-contact-page .contact-service-note b {
  margin-bottom: 3px;
  font-size: .65rem;
}

body.public-contact-page .contact-service-note p {
  margin: 0;
  font-size: .55rem;
  line-height: 1.45;
}

body.public-contact-page .public-form {
  min-height: 571px;
  padding: 24px 28px;
  gap: 8px;
}

body.public-contact-page .public-form label:not(.form-consent, .hp-field) {
  grid-template-columns: minmax(0, 1fr);
}

body.public-contact-page .public-form label:not(.form-consent, .hp-field) > :is(input, select, textarea, .contact-character-count) {
  grid-column: 1;
}

body.public-contact-page .contact-field-label b {
  color: #ef386f;
  font-style: normal;
}

body.public-contact-page .contact-message-field {
  position: relative;
}

body.public-contact-page .contact-character-count {
  position: absolute;
  right: 8px;
  bottom: -1px;
  color: #6b7f9c;
  font-size: .52rem;
  font-weight: 700;
}

body.public-contact-page .public-form textarea {
  padding-bottom: 15px;
}

body.public-contact-page .form-consent {
  margin-top: 5px;
}

body.public-contact-page .public-form .reference-button {
  min-height: 43px;
  margin-top: 2px;
  gap: 8px;
  border-radius: 18px;
}

body.public-contact-page .public-form .reference-button .lpm-icon {
  width: 15px;
  height: 15px;
  stroke-width: 2.2;
}

body.public-contact-page .public-place-banner {
  min-height: 115px;
  margin: 0 clamp(48px, 6.25vw, 70px) 20px;
  padding: 14px 52px;
  grid-template-columns: 120px minmax(0, 1fr) 230px;
  gap: 24px;
}

body.public-contact-page .contact-place-illustration {
  width: 82px;
  height: 82px;
  justify-self: center;
  object-fit: contain;
}

body.public-contact-page .public-place-banner .reference-button {
  border-color: transparent;
  color: var(--public-navy);
  background: linear-gradient(135deg, #ffd857, #ffbd45);
  box-shadow: 0 8px 18px rgba(245, 158, 11, .2);
}

body.public-contact-page .public-place-banner .reference-button:hover {
  box-shadow: 0 10px 22px rgba(245, 158, 11, .26);
}

/* Espace familles - Mon enfant : dossier applicatif unifiÃ©. */
body.family-app[data-family-page="mon-enfant"] .fp-content {
  max-width: 1500px;
  margin: 0 auto;
}

body.family-app .fp-child-nav-group {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 34px;
}

body.family-app .fp-child-nav-group > .nav-mon-enfant { grid-column: 1 / -1; padding-right: 42px; }
body.family-app .fp-child-nav-toggle {
  position: absolute;
  top: 4px;
  right: 4px;
  z-index: 2;
  display: grid;
  width: 34px;
  height: 34px;
  padding: 0;
  place-items: center;
  border: 0;
  border-radius: 7px;
  color: var(--fp-violet);
  background: transparent;
  cursor: pointer;
}
body.family-app .fp-child-nav-toggle:hover { background: rgba(116, 55, 232, .08); }
body.family-app .fp-child-nav-toggle .lpm-icon { width: 15px; height: 15px; }
body.family-app .fp-child-nav-group .fp-child-subnav { grid-column: 1 / -1; }
body.family-app .fp-child-nav-group .fp-child-subnav[hidden] { display: none !important; }
body.family-app .fp-child-subnav a {
  grid-template-columns: 21px minmax(0, 1fr) !important;
  min-height: 34px !important;
  padding: 6px 10px !important;
  border-radius: 7px !important;
}
body.family-app .fp-child-subnav a > .lpm-icon { width: 14px; height: 14px; color: #8b78ad; }
body.family-app .fp-sidebar .fp-child-subnav a > span {
  display: block;
  width: auto;
  height: auto;
  min-width: 0;
  justify-self: stretch;
  border-radius: 0;
  color: inherit;
  background: transparent;
  font-size: inherit;
  line-height: 1.25;
  text-align: left;
}

/* Espace familles - assistant d'inscription d'un enfant. */
body.family-app[data-family-page="inscription"] .fp-content {
  max-width: 1460px;
  margin: 0 auto;
}

body.family-app .fp-registration-page-head { margin-bottom: 22px; }
body.family-app .fp-registration-page-head h1 { margin-bottom: 5px; }
body.family-app .fp-registration-page-head h1 .lpm-title-accent { margin-left: 0; }
body.family-app .fp-registration-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 292px;
  align-items: start;
  gap: 22px;
}

body.family-app .fp-registration-wizard {
  min-height: 650px;
  padding: 0;
  overflow: hidden;
  border-color: #e2e6ed;
  box-shadow: 0 14px 34px rgba(23, 48, 82, .07);
}
body.family-app .fp-registration-wizard [hidden] { display: none !important; }

body.family-app .fp-registration-progress {
  padding: 23px 28px 18px;
  border-bottom: 1px solid #eceff4;
  background: linear-gradient(105deg, rgba(247, 241, 255, .9), rgba(255, 250, 241, .68));
}
body.family-app .fp-registration-progress > div:first-child {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
}
body.family-app .fp-registration-progress > div > span { color: var(--fp-violet); font-size: .65rem; font-weight: 900; }
body.family-app .fp-registration-progress > div > strong { color: var(--fp-navy); font-size: .78rem; }
body.family-app .fp-registration-progress > div > em { color: #718096; font-size: .62rem; font-style: normal; font-weight: 850; }
body.family-app .fp-registration-progress-track { height: 5px; margin: 12px 0 16px; overflow: hidden; border-radius: 5px; background: #e7e3ee; }
body.family-app .fp-registration-progress-track > span { display: block; width: 25%; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--fp-violet), var(--fp-pink)); transition: width 180ms ease; }
body.family-app .fp-registration-progress ol { display: grid; margin: 0; padding: 0; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; list-style: none; }
body.family-app .fp-registration-progress li { display: flex; min-width: 0; align-items: center; gap: 7px; color: #8a96a8; font-size: .58rem; font-weight: 850; }
body.family-app .fp-registration-progress li .lpm-icon { width: 15px; height: 15px; flex: 0 0 auto; }
body.family-app .fp-registration-progress li.active { color: var(--fp-violet); }
body.family-app .fp-registration-progress li.complete { color: var(--fp-green); }

body.family-app .fp-registration-wizard form { display: flex; min-height: 500px; flex-direction: column; }
body.family-app .fp-registration-step { padding: 30px 34px 24px; animation: fp-registration-enter 180ms ease both; }
body.family-app .fp-registration-step[hidden] { display: none; }
body.family-app .fp-registration-step > header { display: grid; margin-bottom: 27px; grid-template-columns: 46px minmax(0, 1fr); align-items: center; gap: 13px; }
body.family-app .fp-registration-step > header > span { display: grid; width: 46px; height: 46px; place-items: center; border-radius: 11px; color: var(--fp-violet); background: #f1eaff; }
body.family-app .fp-registration-step > header > span .lpm-icon { width: 21px; height: 21px; }
body.family-app .fp-registration-step > header small { color: var(--fp-violet); font-size: .57rem; font-weight: 900; text-transform: uppercase; }
body.family-app .fp-registration-step > header h2 { margin: 2px 0 3px; color: var(--fp-navy); font-size: 1.18rem; }
body.family-app .fp-registration-step > header p { margin: 0; color: #718096; font-size: .67rem; line-height: 1.5; }

body.family-app .fp-registration-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 21px 18px; }
body.family-app .fp-registration-fields.one-column { grid-template-columns: 1fr; }
body.family-app .fp-registration-fields .wide { grid-column: 1 / -1; }
body.family-app .fp-registration-fields label { position: relative; display: grid; min-width: 0; gap: 7px; color: #354a69; font-size: .66rem; font-weight: 850; }
body.family-app .fp-registration-fields label > span em { color: var(--fp-pink); font-style: normal; }
body.family-app .fp-registration-fields :is(input, textarea) { width: 100%; min-height: 44px; padding: 10px 12px; box-sizing: border-box; border: 1px solid #d5dbe5; border-radius: 8px; outline: 0; color: var(--fp-navy); background: #fff; font: inherit; font-size: .7rem; font-weight: 700; transition: border-color 160ms ease, box-shadow 160ms ease, background 160ms ease; }
body.family-app .fp-registration-fields textarea { min-height: 88px; resize: vertical; line-height: 1.5; }
body.family-app .fp-registration-fields input[readonly] { color: #63728a; background: #f7f8fa; cursor: default; }
body.family-app .fp-registration-fields :is(input, textarea):hover { border-color: #b8c2d0; }
body.family-app .fp-registration-fields :is(input, textarea):focus { border-color: #8a58e9; box-shadow: 0 0 0 3px rgba(116, 55, 232, .11); }
body.family-app .fp-registration-fields label > small { color: #8b96a7; font-size: .56rem; font-weight: 650; line-height: 1.35; }
body.family-app .fp-registration-fields label.is-valid:not(:has(input[readonly])) :is(input, textarea) { padding-right: 38px; border-color: #8ac99a; background: #fbfffc; }
body.family-app .fp-registration-fields label.is-valid:not(:has(input[readonly]))::after { position: absolute; right: 12px; bottom: 26px; color: var(--fp-green); content: "âœ“"; font-size: .78rem; font-weight: 900; }
body.family-app .fp-registration-fields label.is-invalid :is(input, textarea) { border-color: #eb7098; background: #fffafb; box-shadow: 0 0 0 3px rgba(242, 56, 120, .08); }
body.family-app .fp-registration-fields label.is-invalid > small { color: #c72e62; }

body.family-app .fp-registration-inline-note { display: flex; margin-top: 24px; padding: 13px 15px; align-items: flex-start; gap: 10px; border: 1px solid #e6dcf8; border-radius: 8px; color: #624599; background: #f8f4ff; }
body.family-app .fp-registration-inline-note .lpm-icon { width: 17px; height: 17px; flex: 0 0 auto; }
body.family-app .fp-registration-inline-note p { margin: 0; font-size: .6rem; font-weight: 700; line-height: 1.5; }

body.family-app .fp-registration-review { display: grid; gap: 10px; }
body.family-app .fp-registration-review article { display: grid; min-height: 68px; padding: 13px 14px; grid-template-columns: 36px minmax(0, 1fr) auto; align-items: center; gap: 11px; border: 1px solid #e6e9ef; border-radius: 8px; background: #fbfcfd; }
body.family-app .fp-registration-review article > span { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 8px; color: var(--fp-violet); background: #eee7fb; }
body.family-app .fp-registration-review article > span .lpm-icon { width: 16px; height: 16px; }
body.family-app .fp-registration-review small { display: block; color: #8793a5; font-size: .53rem; font-weight: 800; }
body.family-app .fp-registration-review strong { display: block; margin-top: 2px; color: var(--fp-navy); font-size: .69rem; }
body.family-app .fp-registration-review p { margin: 2px 0 0; color: #718096; font-size: .56rem; }
body.family-app .fp-registration-review button { min-height: 32px; padding: 7px 11px; border: 1px solid #dfd0fa; border-radius: 7px; color: var(--fp-violet); background: #f8f3ff; font-size: .58rem; font-weight: 850; cursor: pointer; }
body.family-app .fp-registration-included { margin: 18px 0 15px; padding: 15px; border-radius: 8px; background: #f6f9fc; }
body.family-app .fp-registration-included h3 { margin: 0 0 10px; color: var(--fp-navy); font-size: .72rem; }
body.family-app .fp-registration-included ul { display: grid; margin: 0; padding: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; list-style: none; }
body.family-app .fp-registration-included li { display: flex; align-items: center; gap: 7px; color: #4f617a; font-size: .58rem; font-weight: 750; }
body.family-app .fp-registration-included .lpm-icon { width: 14px; height: 14px; color: var(--fp-green); }
body.family-app .fp-registration-consent { display: flex; padding: 13px 14px; align-items: flex-start; gap: 10px; border: 1px solid #e2e6ec; border-radius: 8px; color: #526176; background: #fff; font-size: .59rem; font-weight: 700; line-height: 1.5; }
body.family-app .fp-registration-consent input { width: 17px; height: 17px; margin: 1px 0 0; flex: 0 0 17px; accent-color: var(--fp-violet); }
body.family-app .fp-registration-consent a { color: var(--fp-violet); font-weight: 850; }
body.family-app .fp-registration-consent.is-invalid { border-color: #eb7098; background: #fff8fa; }

body.family-app .fp-registration-status { min-height: 18px; margin: 0 34px; color: #b42d5c; font-size: .6rem; font-weight: 800; }
body.family-app .fp-registration-actions { display: flex; min-height: 70px; margin-top: auto; padding: 14px 34px; box-sizing: border-box; align-items: center; gap: 11px; border-top: 1px solid #edf0f4; background: #fcfcfd; }
body.family-app .fp-registration-actions > span { margin-right: auto; color: #8b96a7; font-size: .54rem; }
body.family-app .fp-registration-actions button { display: inline-flex; min-height: 40px; padding: 9px 16px; align-items: center; justify-content: center; gap: 7px; border: 1px solid #ddd3ed; border-radius: 8px; color: #526176; background: #fff; font-size: .63rem; font-weight: 900; cursor: pointer; transition: transform 160ms ease, box-shadow 160ms ease; }
body.family-app .fp-registration-actions button .lpm-icon { width: 15px; height: 15px; }
body.family-app .fp-registration-actions :is([data-registration-next], [data-registration-submit]) { border-color: transparent; color: #fff; background: linear-gradient(110deg, #7437e8, #f23878); box-shadow: 0 7px 18px rgba(116, 55, 232, .19); }
body.family-app .fp-registration-actions button:hover { transform: translateY(-2px); box-shadow: 0 9px 20px rgba(23, 48, 82, .12); }
body.family-app .fp-registration-actions button:disabled { opacity: .7; cursor: wait; transform: none; }
body.family-app .fp-registration-actions .is-loading .lpm-icon { animation: fp-registration-spin 900ms linear infinite; }

body.family-app .fp-registration-guide { position: sticky; top: 94px; display: grid; gap: 13px; }
body.family-app .fp-registration-guide > article { padding: 19px; border: 1px solid #e5e8ed; border-radius: 10px; background: rgba(255, 255, 255, .94); box-shadow: 0 9px 24px rgba(23, 48, 82, .055); }
body.family-app .fp-registration-guide h2 { margin: 0 0 14px; color: var(--fp-navy); font-size: .82rem; }
body.family-app .fp-registration-time { display: flex; align-items: center; gap: 13px; background: linear-gradient(105deg, #fff8e9, #fff) !important; }
body.family-app .fp-registration-time > span { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 10px; color: var(--fp-orange); background: #fff0cf; }
body.family-app .fp-registration-time .lpm-icon { width: 20px; height: 20px; }
body.family-app .fp-registration-time small { display: block; color: #78869a; font-size: .55rem; font-weight: 800; }
body.family-app .fp-registration-time strong { color: var(--fp-navy); font-size: .84rem; }
body.family-app .fp-registration-guide ul { display: grid; margin: 0; padding: 0; gap: 10px; list-style: none; }
body.family-app .fp-registration-guide ul li { display: flex; align-items: center; gap: 9px; color: #526176; font-size: .62rem; font-weight: 750; }
body.family-app .fp-registration-guide ul .lpm-icon { width: 15px; height: 15px; color: var(--fp-green); }
body.family-app .fp-registration-after ol { position: relative; display: grid; margin: 0; padding: 0; gap: 15px; list-style: none; }
body.family-app .fp-registration-after li { position: relative; display: grid; grid-template-columns: 27px minmax(0, 1fr); gap: 10px; }
body.family-app .fp-registration-after li:not(:last-child)::after { position: absolute; top: 28px; bottom: -14px; left: 13px; width: 1px; background: #e0d7ef; content: ""; }
body.family-app .fp-registration-after li > span { z-index: 1; display: grid; width: 27px; height: 27px; place-items: center; border-radius: 50%; color: var(--fp-violet); background: #eee7fb; font-size: .58rem; font-weight: 900; }
body.family-app .fp-registration-after strong { display: block; color: #344a69; font-size: .61rem; }
body.family-app .fp-registration-after small { display: block; margin-top: 2px; color: #8793a5; font-size: .54rem; line-height: 1.35; }
body.family-app .fp-registration-help { display: grid; grid-template-columns: 35px minmax(0, 1fr); gap: 11px; border-color: #e4d7fa !important; background: #f8f3ff !important; }
body.family-app .fp-registration-help > .lpm-icon { width: 23px; height: 23px; color: var(--fp-violet); }
body.family-app .fp-registration-help strong { color: var(--fp-navy); font-size: .68rem; }
body.family-app .fp-registration-help p { margin: 4px 0 8px; color: #65758c; font-size: .56rem; line-height: 1.4; }
body.family-app .fp-registration-help a { display: inline-flex; align-items: center; gap: 5px; color: var(--fp-violet); font-size: .58rem; font-weight: 900; text-decoration: none; }
body.family-app .fp-registration-help a .lpm-icon { width: 13px; height: 13px; }

body.family-app .fp-registration-confirmation { max-width: 650px; margin: auto; padding: 42px 38px; text-align: center; animation: fp-registration-enter 220ms ease both; }
body.family-app .fp-registration-success-icon { display: grid; width: 62px; height: 62px; margin: 0 auto 14px; place-items: center; border-radius: 50%; color: var(--fp-violet); background: linear-gradient(145deg, #f0e8ff, #ffeaf1); }
body.family-app .fp-registration-success-icon .lpm-icon { width: 29px; height: 29px; }
body.family-app .fp-registration-confirmation > small { color: var(--fp-green); font-size: .58rem; font-weight: 900; text-transform: uppercase; }
body.family-app .fp-registration-confirmation h2 { margin: 7px 0 8px; color: var(--fp-navy); font-size: 1.35rem; }
body.family-app .fp-registration-confirmation > p { max-width: 500px; margin: 0 auto 24px; color: #63728a; font-size: .67rem; line-height: 1.6; }
body.family-app .fp-registration-confirmation ol { display: grid; max-width: 500px; margin: 0 auto 25px; padding: 0; gap: 9px; text-align: left; list-style: none; }
body.family-app .fp-registration-confirmation li { display: grid; padding: 11px 13px; grid-template-columns: 30px minmax(0, 1fr); align-items: center; gap: 9px; border-radius: 8px; color: #718096; background: #f7f8fa; }
body.family-app .fp-registration-confirmation li > .lpm-icon { width: 17px; height: 17px; }
body.family-app .fp-registration-confirmation li.done { color: var(--fp-green); background: #eff8f0; }
body.family-app .fp-registration-confirmation li strong { display: block; color: var(--fp-navy); font-size: .63rem; }
body.family-app .fp-registration-confirmation li small { display: block; margin-top: 2px; color: #8290a3; font-size: .54rem; }
body.family-app .fp-registration-confirmation > div { display: flex; justify-content: center; gap: 10px; }
body.family-app .fp-registration-confirmation > div a { min-height: 39px; padding: 9px 15px; border: 1px solid #dac9f8; border-radius: 8px; color: var(--fp-violet); background: #fff; font-size: .61rem; font-weight: 900; text-decoration: none; }
body.family-app .fp-registration-confirmation > div a:first-child { color: #fff; border-color: transparent; background: linear-gradient(110deg, #7437e8, #f23878); }

@keyframes fp-registration-enter { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: translateY(0); } }
@keyframes fp-registration-spin { to { transform: rotate(360deg); } }

@media (max-width: 1080px) {
  body.family-app .fp-registration-layout { grid-template-columns: 1fr; }
  body.family-app .fp-registration-guide { position: static; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.family-app .fp-registration-guide .fp-registration-after { grid-row: span 2; }
}

@media (max-width: 700px) {
  body.family-app[data-family-page="inscription"] .fp-content { padding-right: 16px; padding-left: 16px; }
  body.family-app .fp-registration-layout { gap: 16px; }
  body.family-app .fp-registration-progress { padding: 19px 18px 15px; }
  body.family-app .fp-registration-progress ol { gap: 4px; }
  body.family-app .fp-registration-progress li { justify-content: center; }
  body.family-app .fp-registration-progress li span { display: none; }
  body.family-app .fp-registration-step { padding: 24px 19px 20px; }
  body.family-app .fp-registration-step > header { margin-bottom: 22px; grid-template-columns: 40px minmax(0, 1fr); }
  body.family-app .fp-registration-step > header > span { width: 40px; height: 40px; }
  body.family-app .fp-registration-fields { grid-template-columns: 1fr; }
  body.family-app .fp-registration-fields .wide { grid-column: auto; }
  body.family-app .fp-registration-included ul { grid-template-columns: 1fr; }
  body.family-app .fp-registration-actions { padding: 13px 18px; flex-wrap: wrap; }
  body.family-app .fp-registration-actions > span { order: 3; width: 100%; text-align: center; }
  body.family-app .fp-registration-actions button { flex: 1; }
  body.family-app .fp-registration-guide { grid-template-columns: 1fr; }
  body.family-app .fp-registration-guide .fp-registration-after { grid-row: auto; }
  body.family-app .fp-registration-review article { grid-template-columns: 32px minmax(0, 1fr); }
  body.family-app .fp-registration-review button { grid-column: 2; justify-self: start; }
  body.family-app .fp-registration-confirmation { padding: 34px 19px; }
  body.family-app .fp-registration-confirmation > div { flex-direction: column; }
  body.family-app .fp-registration-confirmation > div a { display: flex; align-items: center; justify-content: center; }
}
body.family-app .fp-child-subnav a.active {
  color: #6427cc !important;
  background: #f3ebff !important;
  font-weight: 900 !important;
}
body.family-app .fp-child-subnav a.active::after {
  position: absolute;
  top: 6px;
  bottom: 6px;
  left: -22px;
  width: 3px;
  border-radius: 3px;
  background: var(--fp-violet);
  content: "";
}
body.family-app .fp-child-subnav a.active > .lpm-icon { color: var(--fp-violet); stroke-width: 2.3; }

body.family-app .fp-child-breadcrumb {
  display: flex;
  margin: 0 0 12px;
  align-items: center;
  gap: 7px;
  color: #718096;
  font-size: .68rem;
  font-weight: 800;
}
body.family-app .fp-child-breadcrumb a { color: #63728a; text-decoration: none; }
body.family-app .fp-child-breadcrumb strong { color: var(--fp-violet); }
body.family-app .fp-child-breadcrumb .lpm-icon { width: 12px; height: 12px; }

body.family-app[data-family-page="mon-enfant"] .fp-child-page-head { margin-bottom: 18px; }
body.family-app[data-family-page="mon-enfant"] .fp-child-workspace { display: block; }
body.family-app[data-family-page="mon-enfant"] .fp-child-profile-card { display: grid; gap: 16px; }
body.family-app[data-family-page="mon-enfant"] .fp-child-identity {
  position: sticky;
  top: 82px;
  z-index: 8;
  min-height: 142px;
  padding: 20px 24px;
  grid-template-columns: minmax(390px, 1.2fr) minmax(300px, .8fr);
  align-items: center;
  gap: 20px;
  border-color: #e2e6ed;
  background: rgba(255, 255, 255, .96);
  box-shadow: 0 10px 30px rgba(20, 43, 78, .08);
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);
}
body.family-app[data-family-page="mon-enfant"] .fp-child-photo {
  width: 84px;
  height: 84px;
  overflow: hidden;
  border: 5px solid #f1eaff;
  color: var(--fp-violet);
  background: #f6f1ff;
}
body.family-app[data-family-page="mon-enfant"] .fp-child-photo img { width: 100%; height: 100%; object-fit: cover; }
body.family-app[data-family-page="mon-enfant"] .fp-child-photo span { font-size: 1.7rem; }
body.family-app[data-family-page="mon-enfant"] .fp-child-switcher { position: relative; min-width: 0; }
body.family-app[data-family-page="mon-enfant"] .fp-child-switcher-trigger {
  display: grid;
  width: 100%;
  min-height: 104px;
  padding: 8px 12px 8px 8px;
  box-sizing: border-box;
  grid-template-columns: 84px minmax(0, 1fr) 22px;
  align-items: center;
  gap: 16px;
  border: 1px solid transparent;
  border-radius: 11px;
  color: var(--fp-navy);
  background: transparent;
  text-align: left;
  font: inherit;
  cursor: pointer;
  transition: border-color 200ms ease, background-color 200ms ease, box-shadow 200ms ease;
}
body.family-app[data-family-page="mon-enfant"] .fp-child-switcher-trigger:hover,
body.family-app[data-family-page="mon-enfant"] .fp-child-switcher.is-open .fp-child-switcher-trigger {
  border-color: #e5daf8;
  background: #fbf9ff;
  box-shadow: 0 6px 18px rgba(86, 55, 147, .07);
}
body.family-app[data-family-page="mon-enfant"] .fp-child-switcher-trigger:focus-visible,
body.family-app[data-family-page="mon-enfant"] .fp-child-switcher-option:focus-visible,
body.family-app[data-family-page="mon-enfant"] .fp-child-switcher-add:focus-visible {
  outline: 3px solid rgba(126, 67, 231, .22);
  outline-offset: 2px;
}
body.family-app[data-family-page="mon-enfant"] .fp-child-switcher-current { display: grid; min-width: 0; justify-items: start; gap: 5px; }
body.family-app[data-family-page="mon-enfant"] .fp-child-switcher-current strong { overflow: hidden; max-width: 100%; color: var(--fp-navy); font-size: 1.3rem; font-weight: 950; text-overflow: ellipsis; white-space: nowrap; }
body.family-app[data-family-page="mon-enfant"] .fp-child-switcher-current small { overflow: hidden; max-width: 100%; color: #65738a; font-size: .68rem; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
body.family-app[data-family-page="mon-enfant"] .fp-child-switcher-current small i,
body.family-app[data-family-page="mon-enfant"] .fp-child-switcher-option-copy small i { margin: 0 3px; color: #b1bac7; font-style: normal; }
body.family-app[data-family-page="mon-enfant"] .fp-child-switcher-current em,
body.family-app[data-family-page="mon-enfant"] .fp-child-switcher-option-copy em {
  display: inline-flex;
  min-height: 22px;
  padding: 3px 8px;
  box-sizing: border-box;
  align-items: center;
  gap: 6px;
  border-radius: 12px;
  color: #5d6b80;
  background: #f3f5f8;
  font-size: .59rem;
  font-style: normal;
  font-weight: 900;
}
body.family-app[data-family-page="mon-enfant"] :is(.fp-child-switcher-current, .fp-child-switcher-option-copy) em > i { width: 7px; height: 7px; border-radius: 50%; background: #9ba7b8; }
body.family-app[data-family-page="mon-enfant"] :is(.fp-child-switcher-current, .fp-child-switcher-option-copy) em.is-present { color: #237a3a; background: #edf8ef; }
body.family-app[data-family-page="mon-enfant"] :is(.fp-child-switcher-current, .fp-child-switcher-option-copy) em.is-present > i { background: #39a852; }
body.family-app[data-family-page="mon-enfant"] :is(.fp-child-switcher-current, .fp-child-switcher-option-copy) em.is-absent { color: #a85b17; background: #fff5e8; }
body.family-app[data-family-page="mon-enfant"] :is(.fp-child-switcher-current, .fp-child-switcher-option-copy) em.is-absent > i { background: #e98a27; }
body.family-app[data-family-page="mon-enfant"] :is(.fp-child-switcher-current, .fp-child-switcher-option-copy) em.is-holiday { color: #176aa7; background: #ecf6ff; }
body.family-app[data-family-page="mon-enfant"] :is(.fp-child-switcher-current, .fp-child-switcher-option-copy) em.is-holiday > i { background: #328ed0; }
body.family-app[data-family-page="mon-enfant"] .fp-child-switcher-chevron { width: 18px; height: 18px; color: var(--fp-violet); transition: transform 200ms ease; }
body.family-app[data-family-page="mon-enfant"] .fp-child-switcher.is-open .fp-child-switcher-chevron { transform: rotate(180deg); }
body.family-app[data-family-page="mon-enfant"] .fp-child-switcher-menu {
  position: absolute;
  top: calc(100% + 9px);
  left: 0;
  z-index: 20;
  width: min(470px, 100%);
  padding: 8px;
  box-sizing: border-box;
  visibility: hidden;
  border: 1px solid #e4e0eb;
  border-radius: 11px;
  opacity: 0;
  background: rgba(255, 255, 255, .985);
  box-shadow: 0 18px 45px rgba(25, 42, 76, .16);
  transform: translateY(-7px);
  transform-origin: top center;
  pointer-events: none;
  transition: opacity 200ms ease, transform 200ms cubic-bezier(.22, 1, .36, 1), visibility 200ms;
  -webkit-backdrop-filter: blur(18px);
  backdrop-filter: blur(18px);
}
body.family-app[data-family-page="mon-enfant"] .fp-child-switcher.is-open .fp-child-switcher-menu { visibility: visible; opacity: 1; transform: translateY(0); pointer-events: auto; }
body.family-app[data-family-page="mon-enfant"] .fp-child-switcher-list { display: grid; gap: 5px; }
body.family-app[data-family-page="mon-enfant"] .fp-child-switcher-option {
  display: grid;
  width: 100%;
  min-height: 74px;
  padding: 8px 10px;
  box-sizing: border-box;
  grid-template-columns: 52px minmax(0, 1fr) 24px;
  align-items: center;
  gap: 11px;
  border: 1px solid transparent;
  border-radius: 9px;
  color: var(--fp-navy);
  background: transparent;
  text-align: left;
  font: inherit;
  cursor: pointer;
  transition: border-color 180ms ease, background-color 180ms ease, transform 180ms ease;
}
body.family-app[data-family-page="mon-enfant"] .fp-child-switcher-option:hover { border-color: #ece5f7; background: #faf8fd; transform: translateY(-1px); }
body.family-app[data-family-page="mon-enfant"] .fp-child-switcher-option.is-selected { border-color: #d8c6f5; background: #f6f0ff; }
body.family-app[data-family-page="mon-enfant"] .fp-child-switcher-avatar { display: grid; width: 48px; height: 48px; overflow: hidden; place-items: center; border: 3px solid #eee5fb; border-radius: 50%; color: var(--fp-violet); background: #f5f0fc; font-size: 1rem; font-weight: 950; }
body.family-app[data-family-page="mon-enfant"] .fp-child-switcher-avatar img { width: 100%; height: 100%; object-fit: cover; }
body.family-app[data-family-page="mon-enfant"] .fp-child-switcher-option-copy { display: grid; min-width: 0; justify-items: start; gap: 3px; }
body.family-app[data-family-page="mon-enfant"] .fp-child-switcher-option-copy strong { font-size: .8rem; font-weight: 950; }
body.family-app[data-family-page="mon-enfant"] .fp-child-switcher-option-copy small { overflow: hidden; max-width: 100%; color: #6e7c91; font-size: .6rem; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }
body.family-app[data-family-page="mon-enfant"] .fp-child-switcher-option-copy em { min-height: 19px; padding: 2px 7px; font-size: .54rem; }
body.family-app[data-family-page="mon-enfant"] .fp-child-switcher-check { display: grid; width: 22px; height: 22px; place-items: center; border-radius: 50%; opacity: 0; color: #fff; background: var(--fp-violet); transform: scale(.8); transition: opacity 180ms ease, transform 180ms ease; }
body.family-app[data-family-page="mon-enfant"] .fp-child-switcher-check .lpm-icon { width: 13px; height: 13px; }
body.family-app[data-family-page="mon-enfant"] .fp-child-switcher-option.is-selected .fp-child-switcher-check { opacity: 1; transform: scale(1); }
body.family-app[data-family-page="mon-enfant"] .fp-child-switcher-add { display: grid; min-height: 48px; margin-top: 8px; padding: 8px 10px; grid-template-columns: 28px minmax(0, 1fr) 18px; align-items: center; gap: 9px; border-top: 1px solid #ece8f1; color: var(--fp-violet); text-decoration: none; font-size: .67rem; font-weight: 900; transition: background-color 180ms ease, color 180ms ease; }
body.family-app[data-family-page="mon-enfant"] .fp-child-switcher-add:hover { color: #6130bd; background: #faf7ff; }
body.family-app[data-family-page="mon-enfant"] .fp-child-switcher-add > .lpm-icon:first-child { width: 18px; height: 18px; padding: 5px; border-radius: 8px; background: #eee5ff; }
body.family-app[data-family-page="mon-enfant"] .fp-child-switcher-add > .lpm-icon:last-child { width: 15px; height: 15px; justify-self: end; }
body.family-app[data-family-page="mon-enfant"] .fp-child-quick-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
body.family-app[data-family-page="mon-enfant"] .fp-child-quick-actions :is(button, a) {
  min-height: 46px;
  gap: 7px;
  border-radius: 9px;
  font-size: .68rem;
}
body.family-app[data-family-page="mon-enfant"] .fp-child-quick-actions .lpm-icon { width: 16px; height: 16px; }
body.family-app[data-family-page="mon-enfant"] .fp-child-workspace { opacity: 1; transform: translateY(0); transition: opacity 180ms ease, transform 180ms ease; }
body.family-app[data-family-page="mon-enfant"] .fp-child-workspace.is-child-changing { opacity: .18; transform: translateY(4px); pointer-events: none; }
body.family-app[data-family-page="mon-enfant"] .fp-child-workspace.is-child-entering { opacity: 0; transform: translateY(4px); }

body.family-app .fp-child-view-tabs {
  display: flex;
  position: sticky;
  top: 240px;
  z-index: 7;
  min-height: 52px;
  padding: 5px;
  gap: 4px;
  border: 1px solid #e6eaf0;
  border-radius: 11px;
  background: rgba(255, 255, 255, .96);
  box-shadow: 0 5px 18px rgba(20, 43, 78, .055);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
}
body.family-app .fp-child-view-tabs button {
  min-width: 0;
  min-height: 40px;
  padding: 7px 13px;
  flex: 1 1 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  border: 0;
  border-radius: 8px;
  color: #65748a;
  background: transparent;
  font: inherit;
  font-size: .69rem;
  font-weight: 850;
  cursor: pointer;
}
body.family-app .fp-child-view-tabs button:hover { color: var(--fp-violet); background: #faf8ff; }
body.family-app .fp-child-view-tabs button.active { color: #6427cc; background: #f3ebff; box-shadow: inset 0 0 0 1px #e6d8ff; }
body.family-app .fp-child-view-tabs .lpm-icon { width: 16px; height: 16px; }

body.family-app .fp-child-view-stage { min-height: 500px; }
body.family-app .fp-child-view-stage.is-transitioning { animation: fpChildViewIn .18s ease both; }
@keyframes fpChildViewIn { from { opacity: .35; transform: translateY(4px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { body.family-app .fp-child-view-stage.is-transitioning { animation: none; } }
body.family-app .fp-child-view[hidden] { display: none !important; }
body.family-app .fp-child-view { display: grid; gap: 16px; }
body.family-app .fp-child-view-head { display: flex; min-height: 72px; padding: 4px 3px; align-items: center; justify-content: space-between; gap: 18px; }
body.family-app .fp-child-view-head p { margin: 0 0 4px; color: var(--fp-violet); font-size: .64rem; font-weight: 900; text-transform: uppercase; }
body.family-app .fp-child-view-head h2 { margin: 0; color: var(--fp-navy); font-size: 1.28rem; }
body.family-app .fp-child-view-head span { display: block; margin-top: 5px; color: #718096; font-size: .7rem; }
body.family-app .fp-child-view-head > button { min-height: 40px; padding: 8px 13px; display: inline-flex; align-items: center; gap: 7px; border: 1px solid #dfd1f8; border-radius: 8px; color: var(--fp-violet); background: #f7f2ff; font: inherit; font-size: .68rem; font-weight: 900; cursor: pointer; }

body.family-app .fp-child-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
body.family-app .fp-child-metric { display: grid; min-height: 112px; padding: 18px; grid-template-columns: 42px minmax(0, 1fr); align-items: start; gap: 12px; border: 1px solid #e6eaf0; border-radius: 10px; background: #fff; box-shadow: var(--fp-shell-shadow); }
body.family-app .fp-child-metric > span { display: grid; width: 40px; height: 40px; place-items: center; border-radius: 10px; }
body.family-app .fp-child-metric > span .lpm-icon { width: 20px; height: 20px; }
body.family-app .fp-child-metric small { display: block; margin-bottom: 4px; color: #718096; font-size: .63rem; font-weight: 800; }
body.family-app .fp-child-metric strong { color: var(--fp-navy); font-size: .84rem; line-height: 1.3; }
body.family-app .fp-child-metric p { margin: 6px 0 0; color: #8b96a7; font-size: .58rem; }
body.family-app .fp-child-metric.green > span { color: var(--fp-green); background: #eaf7eb; }
body.family-app .fp-child-metric.orange > span { color: var(--fp-orange); background: #fff5dd; }
body.family-app .fp-child-metric.blue > span { color: var(--fp-blue); background: #eaf4ff; }
body.family-app .fp-child-metric.pink > span { color: var(--fp-pink); background: #ffeaf1; }

body.family-app .fp-child-dashboard-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 14px; }
body.family-app .fp-child-dashboard-grid > section,
body.family-app .fp-child-recent,
body.family-app .fp-child-history-panel { padding: 20px 22px; }
body.family-app :is(.fp-child-attention, .fp-child-snapshot) > header,
body.family-app .fp-child-detail-card > header { display: flex; align-items: center; gap: 11px; }
body.family-app :is(.fp-child-attention, .fp-child-snapshot) > header > span,
body.family-app .fp-child-detail-card > header > .lpm-icon { display: grid; width: 38px; height: 38px; padding: 9px; box-sizing: border-box; place-items: center; border-radius: 10px; color: var(--fp-violet); background: #f1eaff; }
body.family-app :is(.fp-child-attention, .fp-child-snapshot, .fp-child-detail-card) h3 { margin: 0; color: var(--fp-navy); font-size: .86rem; }
body.family-app :is(.fp-child-attention, .fp-child-snapshot, .fp-child-detail-card) header p { margin: 3px 0 0; color: #8490a1; font-size: .6rem; }
body.family-app .fp-child-attention ul { display: grid; margin: 16px 0 0; padding: 0; gap: 7px; list-style: none; }
body.family-app .fp-child-attention li { display: grid; min-height: 56px; padding: 9px 10px; grid-template-columns: 34px minmax(0, 1fr) 30px; align-items: center; gap: 9px; border-radius: 8px; background: #f8fafc; }
body.family-app .fp-child-attention li > span { color: var(--fp-violet); }
body.family-app .fp-child-attention li strong,
body.family-app .fp-child-attention li small { display: block; }
body.family-app .fp-child-attention li strong { color: var(--fp-navy); font-size: .68rem; }
body.family-app .fp-child-attention li small { margin-top: 2px; color: #8490a1; font-size: .56rem; }
body.family-app .fp-child-attention li a { display: grid; width: 30px; height: 30px; place-items: center; color: var(--fp-violet); border-radius: 7px; }
body.family-app .fp-child-snapshot > header > span { color: var(--fp-pink); background: #ffeaf1; }
body.family-app .fp-child-snapshot dl { margin: 16px 0 14px; }
body.family-app .fp-child-snapshot dl > div,
body.family-app .fp-child-detail-card dl > div { display: grid; min-height: 39px; padding: 8px 2px; grid-template-columns: 1fr 1.25fr; border-bottom: 1px solid #edf0f4; }
body.family-app .fp-child-snapshot :is(dt, dd),
body.family-app .fp-child-detail-card :is(dt, dd) { margin: 0; font-size: .66rem; }
body.family-app .fp-child-snapshot dt,
body.family-app .fp-child-detail-card dt { color: #718096; }
body.family-app .fp-child-snapshot dd,
body.family-app .fp-child-detail-card dd { color: var(--fp-navy); font-weight: 850; }
body.family-app .fp-child-snapshot > button { width: 100%; min-height: 39px; border: 1px solid #f5cad9; border-radius: 8px; color: var(--fp-pink); background: #fff2f6; font: inherit; font-size: .66rem; font-weight: 900; cursor: pointer; }

body.family-app .fp-child-recent > header { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
body.family-app .fp-child-recent > header h3 { margin: 0; color: var(--fp-navy); font-size: .9rem; }
body.family-app .fp-child-recent > header p { margin: 4px 0 0; color: #8490a1; font-size: .62rem; }
body.family-app .fp-child-recent > header button { min-height: 36px; border: 0; color: var(--fp-violet); background: transparent; font: inherit; font-size: .64rem; font-weight: 900; cursor: pointer; }

body.family-app .fp-child-profile-sections,
body.family-app .fp-child-admin-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
body.family-app .fp-child-detail-card { min-height: 250px; padding: 22px; }
body.family-app .fp-child-detail-card > header { margin-bottom: 16px; }
body.family-app .fp-child-detail-card.blue > header > .lpm-icon { color: var(--fp-blue); background: #eaf4ff; }
body.family-app .fp-child-detail-card.green > header > .lpm-icon { color: var(--fp-green); background: #eaf7eb; }
body.family-app .fp-child-detail-card.pink > header > .lpm-icon { color: var(--fp-pink); background: #ffeaf1; }
body.family-app .fp-child-detail-card.orange > header > .lpm-icon { color: var(--fp-orange); background: #fff5dd; }
body.family-app .fp-child-detail-card ul { display: grid; margin: 0; padding: 0; gap: 8px; list-style: none; }
body.family-app .fp-child-detail-card li { padding: 10px 12px; border-radius: 8px; background: #f8fafc; }
body.family-app .fp-child-detail-card li strong,
body.family-app .fp-child-detail-card li small { display: block; }
body.family-app .fp-child-detail-card li strong { color: var(--fp-navy); font-size: .69rem; }
body.family-app .fp-child-detail-card li small { margin-top: 3px; color: #718096; font-size: .59rem; }
body.family-app .fp-child-detail-card > p { color: #536178; font-size: .69rem; line-height: 1.55; }

body.family-app .fp-child-health-editor .fp-health-form { max-width: none; padding: 22px; }
body.family-app .fp-child-health-editor .fp-health-form > h2 { display: none; }
body.family-app .fp-child-health-editor .fp-health-question { border-radius: 9px; }

body.family-app .fp-child-admin-editor { padding: 22px; }
body.family-app .fp-child-admin-editor > header { display: flex; margin-bottom: 17px; align-items: flex-start; justify-content: space-between; }
body.family-app .fp-child-admin-editor h3 { margin: 0; color: var(--fp-navy); }
body.family-app .fp-child-admin-editor header p { margin: 4px 0 0; color: #718096; font-size: .64rem; }
body.family-app .fp-child-admin-editor header button { display: grid; width: 34px; height: 34px; place-items: center; border: 0; border-radius: 7px; background: #f6f7f9; cursor: pointer; }
body.family-app .fp-child-admin-editor label { display: grid; margin-top: 13px; gap: 6px; color: var(--fp-navy); font-size: .68rem; font-weight: 850; }
body.family-app .fp-child-admin-editor :is(input, textarea) { width: 100%; padding: 10px 12px; box-sizing: border-box; border: 1px solid #d8dfe8; border-radius: 8px; color: var(--fp-navy); background: #fff; font: inherit; }
body.family-app .fp-child-admin-editor footer { display: flex; margin-top: 18px; justify-content: flex-end; gap: 9px; }
body.family-app .fp-child-admin-editor footer button { min-height: 40px; padding: 8px 14px; border: 1px solid #d9dfE8; border-radius: 8px; color: #536178; background: #fff; font: inherit; font-weight: 850; cursor: pointer; }
body.family-app .fp-child-admin-editor footer button[type="submit"] { border-color: var(--fp-violet); color: #fff; background: var(--fp-violet); }

body.family-app .fp-child-timeline { position: relative; display: grid; margin: 18px 0 0; padding: 0; gap: 12px; list-style: none; }
body.family-app .fp-child-timeline::before { position: absolute; top: 18px; bottom: 18px; left: 19px; width: 1px; background: #e1e6ed; content: ""; }
body.family-app .fp-child-timeline li { position: relative; display: grid; min-height: 62px; grid-template-columns: 40px minmax(0, 1fr); gap: 13px; }
body.family-app .fp-child-timeline li > span { z-index: 1; display: grid; width: 40px; height: 40px; place-items: center; border: 4px solid #fff; border-radius: 50%; color: var(--fp-violet); background: #eee7fb; }
body.family-app .fp-child-timeline li.green > span { color: var(--fp-green); background: #eaf7eb; }
body.family-app .fp-child-timeline li.pink > span { color: var(--fp-pink); background: #ffeaf1; }
body.family-app .fp-child-timeline li.orange > span { color: var(--fp-orange); background: #fff5dd; }
body.family-app .fp-child-timeline li.blue > span { color: var(--fp-blue); background: #eaf4ff; }
body.family-app .fp-child-timeline time { color: #8b96a7; font-size: .56rem; font-weight: 800; }
body.family-app .fp-child-timeline h3 { margin: 3px 0; color: var(--fp-navy); font-size: .72rem; }
body.family-app .fp-child-timeline p { margin: 0; color: #718096; font-size: .62rem; line-height: 1.45; }
body.family-app .fp-child-no-data { display: grid; min-height: 180px; padding: 28px; place-items: center; align-content: center; text-align: center; color: #718096; }
body.family-app .fp-child-no-data > .lpm-icon { width: 28px; height: 28px; margin-bottom: 10px; color: #a68bd9; }
body.family-app .fp-child-no-data strong { color: var(--fp-navy); }
body.family-app .fp-child-no-data p { max-width: 430px; margin: 6px 0 0; font-size: .66rem; line-height: 1.5; }

@media (max-width: 1180px) {
  body.family-app[data-family-page="mon-enfant"] .fp-child-identity { grid-template-columns: minmax(340px, 1fr); }
  body.family-app[data-family-page="mon-enfant"] .fp-child-quick-actions { grid-column: 1 / -1; }
  body.family-app .fp-child-view-tabs { top: 300px; }
  body.family-app .fp-child-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 820px) {
  body.family-app .fp-sidebar nav { overflow: visible; }
  body.family-app .fp-sidebar:has(.fp-child-subnav:not([hidden])) { padding-bottom: 58px; }
  body.family-app .fp-child-nav-group { flex: 0 0 48px; grid-template-columns: 48px; }
  body.family-app .fp-child-nav-group > .nav-mon-enfant { width: 48px; min-width: 48px; padding-right: 10px; }
  body.family-app .fp-child-nav-toggle {
    top: 1px;
    right: -2px;
    width: 20px;
    height: 20px;
    border: 1px solid #e8dcfb;
    background: #fff;
  }
  body.family-app .fp-child-nav-toggle .lpm-icon { width: 11px; height: 11px; }
  body.family-app .fp-child-nav-group .fp-child-subnav {
    position: absolute;
    top: 51px;
    left: -56px;
    z-index: 4;
    display: flex;
    width: calc(100vw - 16px);
    margin: 0;
    padding: 6px 8px;
    overflow-x: auto;
    gap: 4px;
    border: 0;
    border-top: 1px solid #eee8f7;
    background: rgba(255, 255, 255, .98);
    box-shadow: 0 8px 16px rgba(23, 48, 82, .05);
  }
  body.family-app .fp-sidebar .fp-child-subnav a {
    width: auto;
    min-width: 128px !important;
    min-height: 38px !important;
    flex: 0 0 auto;
    grid-template-columns: 18px minmax(0, 1fr) !important;
  }
  body.family-app .fp-sidebar .fp-child-subnav a span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  body.family-app .fp-sidebar .fp-child-subnav a::before,
  body.family-app .fp-sidebar .fp-child-subnav a.active::after { display: none; }
  body.family-app[data-family-page="mon-enfant"] .fp-child-identity { position: relative; top: auto; }
  body.family-app .fp-child-view-tabs { position: sticky; top: 82px; overflow-x: auto; }
  body.family-app .fp-child-view-tabs button { flex: 0 0 auto; min-width: 132px; }
  body.family-app .fp-child-dashboard-grid,
  body.family-app .fp-child-profile-sections,
  body.family-app .fp-child-admin-grid { grid-template-columns: 1fr; }
}

@media (max-width: 620px) {
  body.family-app[data-family-page="mon-enfant"] .fp-content { padding-right: 16px; padding-left: 16px; }
  body.family-app .fp-child-breadcrumb { margin-top: 8px; }
  body.family-app[data-family-page="mon-enfant"] .fp-child-identity { padding: 14px; grid-template-columns: minmax(0, 1fr); gap: 10px; }
  body.family-app[data-family-page="mon-enfant"] .fp-child-switcher-trigger { min-height: 90px; padding: 7px; grid-template-columns: 68px minmax(0, 1fr) 18px; gap: 11px; }
  body.family-app[data-family-page="mon-enfant"] .fp-child-photo { width: 64px; height: 64px; border-width: 4px; }
  body.family-app[data-family-page="mon-enfant"] .fp-child-switcher-current strong { font-size: 1.08rem; }
  body.family-app[data-family-page="mon-enfant"] .fp-child-switcher-current small { font-size: .6rem; }
  body.family-app[data-family-page="mon-enfant"] .fp-child-switcher-menu { position: absolute; top: calc(100% + 8px); right: 0; bottom: auto; left: 0; width: auto; max-height: min(58vh, 520px); overflow-y: auto; transform: translateY(-7px); }
  body.family-app[data-family-page="mon-enfant"] .fp-child-switcher.is-open .fp-child-switcher-menu { transform: translateY(0); }
  body.family-app[data-family-page="mon-enfant"] .fp-child-quick-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.family-app .fp-child-view-tabs { margin-right: -16px; margin-left: -16px; padding-right: 16px; padding-left: 16px; border-right: 0; border-left: 0; border-radius: 0; }
  body.family-app .fp-child-metrics { grid-template-columns: 1fr; }
  body.family-app .fp-child-view-head { align-items: flex-start; flex-direction: column; }
  body.family-app .fp-child-view-head > button { width: 100%; justify-content: center; }
  body.family-app .fp-child-dashboard-grid > section,
  body.family-app .fp-child-recent,
  body.family-app .fp-child-history-panel,
  body.family-app .fp-child-detail-card { padding: 18px; }
}

@media (prefers-reduced-motion: reduce) {
  body.family-app[data-family-page="mon-enfant"] :is(.fp-child-switcher-menu, .fp-child-switcher-chevron, .fp-child-switcher-option, .fp-child-switcher-check, .fp-child-workspace) { transition-duration: 1ms !important; }
}

@media (max-width: 980px) and (min-width: 761px) {
  body.public-contact-page .public-header {
    width: calc(100% - 28px);
    padding-right: 18px;
    padding-left: 18px;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 12px;
  }

  body.public-contact-page .public-brand strong { font-size: .82rem; }
  body.public-contact-page .public-menu { gap: 17px; }
  body.public-contact-page .public-menu a { font-size: .57rem; }
  body.public-contact-page .family-pill { padding-right: 11px; padding-left: 11px; font-size: .57rem; }

  body.public-contact-page .public-menu-toggle { display: none; }
  body.public-contact-page .public-menu {
    position: static;
    display: flex;
    padding: 0;
    align-items: center;
    flex-direction: row;
    border: 0;
    background: transparent;
    box-shadow: none;
  }
  body.public-contact-page .public-header-actions { display: flex; }

  body.public-contact-page .reference-contact-hero {
    min-height: 168px;
    padding: 12px 56px 6px;
    grid-template-columns: minmax(0, 335px) minmax(280px, 1fr);
    gap: 28px;
  }
  body.public-contact-page .reference-contact-hero h1 { font-size: 2rem !important; }
  body.public-contact-page .reference-contact-hero > div > strong { font-size: .82rem !important; }
  body.public-contact-page .reference-contact-hero p:not(.reference-breadcrumb) { font-size: .58rem; }
  body.public-contact-page .reference-contact-hero .reference-breadcrumb { margin-bottom: 12px; font-size: .55rem; }
  body.public-contact-page .reference-contact-visual { width: 100%; height: 150px; }

  body.public-contact-page .reference-contact-layout {
    min-height: 0;
    padding: 0 52px 20px;
    grid-template-columns: 256px minmax(0, 1fr);
    gap: 25px;
  }
  body.public-contact-page .public-contact-details { order: 0; }
  body.public-contact-page .public-contact-details,
  body.public-contact-page .public-form { min-height: 447px; height: 100%; }
  body.public-contact-page .public-contact-details { padding: 19px 21px; }
  body.public-contact-page .public-form { padding: 18px 20px; gap: 6px; }
  body.public-contact-page .public-contact-details h2,
  body.public-contact-page .public-form h2 { margin-bottom: 10px; font-size: 1.05rem; }
  body.public-contact-page .public-contact-details dl > div { min-height: 56px; padding: 6px 0; grid-template-columns: 41px minmax(0, 1fr); }
  body.public-contact-page .public-contact-details .reference-icon { width: 34px; height: 34px; }
  body.public-contact-page .public-contact-details .reference-icon .lpm-icon { width: 16px; height: 16px; }
  body.public-contact-page .public-contact-details dt { font-size: .56rem; }
  body.public-contact-page .public-contact-details dd { font-size: .51rem; }
  body.public-contact-page .contact-service-note { min-height: 63px; margin-top: 10px; padding: 10px 12px; grid-template-columns: 32px minmax(0, 1fr); gap: 7px; }
  body.public-contact-page .contact-service-note > .lpm-icon { width: 26px; height: 26px; }
  body.public-contact-page .contact-service-note b { font-size: .53rem; }
  body.public-contact-page .contact-service-note p { font-size: .45rem; }
  body.public-contact-page .public-form label { font-size: .52rem; }
  body.public-contact-page .public-form input:not([type="checkbox"]),
  body.public-contact-page .public-form select { min-height: 34px; padding: 5px 8px; }
  body.public-contact-page .public-form textarea { min-height: 68px; padding: 6px 8px 13px; }
  body.public-contact-page .form-consent { font-size: .48rem; }
  body.public-contact-page .public-form .reference-button { min-height: 34px; }

  body.public-contact-page .public-place-banner {
    min-height: 84px;
    margin: 0 52px 18px;
    padding: 10px 35px;
    grid-template-columns: 82px minmax(0, 1fr) 165px;
    gap: 18px;
  }
  body.public-contact-page .contact-place-illustration { width: 62px; height: 62px; }
  body.public-contact-page .public-place-banner h2 { font-size: .88rem; }
  body.public-contact-page .public-place-banner p { font-size: .49rem; }
  body.public-contact-page .public-place-banner .reference-button { width: 165px; min-height: 34px; font-size: .52rem; }
}

@media (max-width: 760px) {
  body.public-contact-page .reference-contact-hero {
    min-height: 0;
    padding: 38px 34px 26px;
    grid-template-columns: 1fr;
    gap: 24px;
  }
  body.public-contact-page .reference-contact-visual { width: min(88%, 480px); height: auto; }
  body.public-contact-page .reference-contact-layout {
    min-height: 0;
    padding-right: 34px;
    padding-left: 34px;
    grid-template-columns: 1fr;
  }
  body.public-contact-page .public-contact-details,
  body.public-contact-page .public-form { min-height: 0; height: auto; }
  body.public-contact-page .public-place-banner {
    margin-right: 34px;
    margin-left: 34px;
    padding-right: 30px;
    padding-left: 30px;
    grid-template-columns: 76px minmax(0, 1fr) 190px;
  }
  body.public-contact-page .public-place-banner .reference-button { width: 190px; }
}

@media (max-width: 560px) {
  body.public-contact-page .reference-contact-hero,
  body.public-contact-page .reference-contact-layout { padding-right: 20px; padding-left: 20px; }
  body.public-contact-page .public-place-banner {
    margin-right: 15px;
    margin-left: 15px;
    padding: 22px;
    grid-template-columns: 1fr;
  }
  body.public-contact-page .contact-place-illustration { justify-self: start; }
  body.public-contact-page .public-place-banner .reference-button { width: 100%; justify-self: stretch; }
}

/* Keep the medical workspace immune to the legacy questionnaire rules above. */
body.family-app .fp-child-health-editor .fp-medical-record,
body.family-app .fp-medical-record { padding: 0; }
body.family-app .fp-medical-record .fp-health-detail { margin-top: 0; }
body.family-app .fp-medical-record .fp-health-detail.is-visible { margin-top: 14px; }

body.family-app .fp-medical-record .fp-health-detail.is-visible { overflow: visible; }
body.family-app .fp-medical-field { display: grid; min-width: 0; gap: 6px; }
body.family-app .fp-medical-field-label { color: var(--fp-navy); font-size: .59rem; font-weight: 850; }
body.family-app .fp-searchable-select { position: relative; min-width: 0; }
body.family-app .fp-searchable-select > button { display: grid; width: 100%; min-height: 39px; padding: 9px 11px; box-sizing: border-box; grid-template-columns: minmax(0, 1fr) 16px; align-items: center; gap: 8px; border: 1px solid #d8dfe8; border-radius: 8px; color: var(--fp-navy); background: #fff; font: inherit; font-size: .67rem; font-weight: 700; text-align: left; cursor: pointer; transition: border-color 200ms ease, box-shadow 200ms ease; }
body.family-app .fp-searchable-select > button:hover { border-color: #bdc7d4; }
body.family-app .fp-searchable-select > button:focus-visible,
body.family-app .fp-searchable-select > button.is-open { border-color: var(--fp-violet); outline: 0; box-shadow: 0 0 0 3px rgba(116, 55, 232, .1); }
body.family-app .fp-searchable-select > button > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
body.family-app .fp-searchable-select > button > span.is-placeholder { color: #929dad; font-weight: 600; }
body.family-app .fp-searchable-select > button > .lpm-icon { width: 15px; height: 15px; transition: transform 200ms ease; }
body.family-app .fp-searchable-select > button[aria-expanded="true"] > .lpm-icon { transform: rotate(180deg); }
body.family-app .fp-searchable-select-menu { position: absolute; top: calc(100% + 6px); left: 0; z-index: 20; width: min(100%, 320px); min-width: 250px; padding: 7px; box-sizing: border-box; border: 1px solid #e0d8ef; border-radius: 9px; background: #fff; box-shadow: 0 16px 36px rgba(25, 43, 70, .16); animation: fp-allergy-menu-in 180ms cubic-bezier(.22, 1, .36, 1); }
body.family-app .fp-searchable-select-menu[hidden] { display: none; }
body.family-app .fp-searchable-select-menu > label { position: relative; display: block; }
body.family-app .fp-searchable-select-menu > label > .lpm-icon { position: absolute; top: 50%; left: 10px; z-index: 1; width: 14px; height: 14px; color: #7e8999; transform: translateY(-50%); pointer-events: none; }
body.family-app .fp-searchable-select-menu input[type="search"] { min-height: 36px; padding: 8px 10px 8px 32px; border-color: #e1e5eb; background: #f8fafc; }
body.family-app .fp-searchable-select-menu [role="listbox"] { display: grid; max-height: 210px; margin-top: 6px; overflow-y: auto; gap: 2px; overscroll-behavior: contain; }
body.family-app .fp-searchable-select-menu [role="option"] { display: grid; width: 100%; min-height: 34px; padding: 7px 9px; grid-template-columns: minmax(0, 1fr) 16px; align-items: center; gap: 8px; border: 0; border-radius: 6px; color: #354860; background: transparent; font: inherit; font-size: .63rem; font-weight: 750; text-align: left; cursor: pointer; }
body.family-app .fp-searchable-select-menu [role="option"]:hover,
body.family-app .fp-searchable-select-menu [role="option"].is-active { color: var(--fp-violet); background: #f4efff; }
body.family-app .fp-searchable-select-menu [role="option"][aria-selected="true"] { color: var(--fp-pink); background: #fff0f5; }
body.family-app .fp-searchable-select-menu [role="option"] [data-allergy-check] { display: grid; width: 15px; height: 15px; place-items: center; opacity: 0; }
body.family-app .fp-searchable-select-menu [role="option"][aria-selected="true"] [data-allergy-check] { opacity: 1; }
body.family-app .fp-searchable-select-menu [role="option"] [data-allergy-check] .lpm-icon { width: 14px; height: 14px; }
body.family-app .fp-searchable-select-menu > p { margin: 8px; color: #7e8999; font-size: .59rem; text-align: center; }

@keyframes fp-allergy-menu-in {
  from { opacity: 0; transform: translateY(-5px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 520px) {
  body.family-app .fp-searchable-select-menu { position: fixed; top: auto; right: 14px; bottom: 14px; left: 14px; width: auto; min-width: 0; padding: 10px; border-radius: 10px; }
  body.family-app .fp-searchable-select-menu input[type="search"] { min-height: 44px; }
  body.family-app .fp-searchable-select-menu [role="listbox"] { max-height: min(45vh, 330px); }
body.family-app .fp-searchable-select-menu [role="option"] { min-height: 42px; }
}

/* Responsive and security polish - August 2026 */
body.public-site .public-menu-account {
  display: none;
}

body.public-daily-page .public-hours-detailed {
  grid-template-columns: auto minmax(0, 1fr) minmax(0, 1fr);
  align-items: center;
  gap: 14px;
}

body.public-daily-page .public-hours-detailed > div {
  display: grid;
  min-width: 0;
  gap: 3px;
}

body.public-daily-page .public-hours-detailed small {
  color: #68758c;
  font-size: .62rem;
  font-weight: 850;
}

body.public-registration-page .public-steps.detailed li {
  min-height: 128px;
  padding: 18px 18px 20px;
  grid-template-columns: 1fr;
  align-content: center;
  justify-items: center;
  gap: 9px;
  text-align: center;
}

body.public-registration-page .public-steps.detailed li > strong {
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  position: static;
  margin: 0 auto 2px;
  font-size: .78rem;
}

body.public-registration-page .public-steps.detailed .step-icon {
  display: none !important;
}

body.public-registration-page .public-steps.detailed {
  width: min(100%, 960px);
  margin: 0 auto;
  grid-template-columns: repeat(3, minmax(0, 280px));
  justify-content: center;
  gap: clamp(14px, 2vw, 22px);
}

body.public-registration-page .public-steps.detailed span {
  align-items: center;
  max-width: 215px;
  text-align: center;
}

body.public-registration-page .public-steps.detailed b {
  color: var(--public-navy);
  font-size: .82rem;
  line-height: 1.25;
  text-align: center;
}

body.public-registration-page .public-steps.detailed span:last-child {
  grid-column: auto;
  min-width: 0;
  color: #17365e;
  font-size: .64rem;
  line-height: 1.48;
  text-align: center;
}

@media (max-width: 980px) {
  body.public-registration-page .public-steps.detailed {
    grid-template-columns: repeat(2, minmax(0, 280px));
  }
}

@media (max-width: 640px) {
  body.public-registration-page .registration-steps {
    padding-right: 22px;
    padding-left: 22px;
  }

  body.public-registration-page .public-steps.detailed {
    grid-template-columns: minmax(0, 1fr);
  }

  body.public-registration-page .public-steps.detailed li {
    min-height: 118px;
    padding: 17px 16px 19px;
  }
}

body.public-privacy-page .privacy-content-card {
  display: grid;
  width: min(1080px, calc(100% - 48px));
  margin: 0 auto clamp(58px, 7vw, 92px);
  gap: 18px;
}

body.public-privacy-page .privacy-content-card article {
  padding: clamp(22px, 3vw, 34px);
  border: 1px solid #e5eaf1;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 16px 40px rgba(18, 43, 78, .06);
}

body.public-privacy-page .privacy-content-card h2 {
  margin: 0 0 10px;
  color: var(--public-navy, #0b2b59);
  font-size: clamp(1.1rem, 2vw, 1.4rem);
}

body.public-privacy-page .privacy-content-card p {
  margin: 0;
  color: var(--public-muted, #536178);
  line-height: 1.75;
}

body.admin-app .ap-modal {
  overflow: auto;
  align-items: start;
}

body.admin-app .ap-modal-card {
  max-height: calc(100dvh - 44px);
  overflow-y: auto;
  box-sizing: border-box;
}

body.admin-app :is(.ap-registration-drawer, .ap-child-drawer, .ap-planning-drawer) {
  max-height: 100dvh;
}

body.admin-app :is(.ap-registration-drawer-body, .ap-child-drawer-body, .ap-planning-drawer-body) {
  overscroll-behavior: contain;
}

@media (max-width: 900px) {
  body.public-site .public-menu-account {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--lpm-violet);
    font-weight: 900;
  }

  body.public-site .public-menu-account .lpm-icon {
    width: 17px;
    height: 17px;
  }
}

@media (max-width: 680px) {
  body.public-daily-page .public-hours-detailed {
    grid-template-columns: auto minmax(0, 1fr);
  }

  body.public-daily-page .public-hours-detailed > span {
    grid-row: 1 / span 2;
  }

  body.public-registration-page .registration-layout-v3 {
    gap: 18px;
  }

  body.public-registration-page .registration-form {
    padding: 20px;
  }

  body.public-registration-page .registration-child {
    padding: 18px 14px 16px !important;
  }

  body.public-registration-page .registration-child legend {
    max-width: calc(100% - 46px);
  }

  body.public-registration-page .registration-child .icon-button {
    top: 12px;
    right: 12px;
  }

  body.public-registration-page .secondary-button,
  body.public-registration-page .primary-cta {
    width: 100%;
  }

  body.public-registration-page .form-consent {
    grid-template-columns: 22px minmax(0, 1fr) !important;
  }

  body.public-privacy-page .privacy-content-card {
    width: calc(100% - 40px);
  }
}

@media (max-width: 420px) {
  body.public-site .public-menu {
    max-height: calc(100dvh - 92px);
    overflow-y: auto;
  }

  body.public-registration-page .public-page-intro h1 {
    font-size: clamp(2.25rem, 18vw, 2.85rem);
  }

  body.public-registration-page .registration-form {
    padding: 16px;
  }
}

@media (max-height: 720px), (min-resolution: 1.25dppx) {
  body.admin-app .ap-modal {
    padding-top: 12px;
    padding-bottom: 12px;
  }

  body.admin-app .ap-modal-card {
    max-height: calc(100dvh - 24px);
  }
}

/* Messages 2 final cascade layer. */
body.family-app .fp-conversations > .fp-record-list { display: flex; min-height: 0; padding: 0 10px; overflow-y: auto; flex: 1; flex-direction: column; gap: 4px; }
body.family-app .fp-conversations .fp-thread-button { display: grid; width: 100%; min-height: 84px; padding: 11px 10px; grid-template-columns: 42px minmax(0, 1fr); align-content: center; gap: 10px; border: 1px solid transparent; border-radius: 8px; }
body.family-app .fp-conversations .fp-thread-button.active { border-color: #ddcdfa; background: #f2ebff; box-shadow: inset 3px 0 #7750dc; }
body.family-app .fp-conversations .fp-thread-button .fp-thread-content > b { color: #36445a; font-size: .68rem; }
body.family-app .fp-conversations .fp-thread-button p { margin: 2px 0 0; -webkit-line-clamp: 1; }
body.family-app .fp-chat-bubble.sent { border: 0; background: linear-gradient(135deg, #7250dc, #6237cf); box-shadow: 0 5px 14px rgba(92, 54, 190, .15); }
body.family-app .fp-chat-bubble.sent p { color: #fff; }
body.family-app .fp-chat-bubble.sent small { color: rgba(255, 255, 255, .75); }
body.family-app .fp-chat-reply { grid-template-columns: minmax(0, 1fr) 40px; }
body.family-app .fp-chat-reply .fp-composer { grid-column: 1; }
body.family-app .fp-chat-reply .fp-composer-send { width: 40px; grid-column: 2; grid-row: 1; }
body.family-app .fp-chat-reply > p,
body.family-app .fp-chat-reply > progress,
body.family-app .fp-chat-reply > .fp-composer-file { grid-column: 1 / -1; }

/* Administration - refined family and child creation modals. */
body.admin-app .ap-modal.ap-family-form-modal,
body.admin-app .ap-modal.ap-child-flow-modal {
  display: flex;
  padding: 24px;
  align-items: center;
  justify-content: center;
  background: rgba(11, 24, 48, .58);
  backdrop-filter: blur(8px);
}

body.admin-app .ap-flow-card {
  display: grid;
  width: min(640px, calc(100vw - 42px));
  max-height: calc(100dvh - 42px);
  padding: 0;
  grid-template-rows: auto minmax(0, 1fr) auto;
  overflow: hidden;
  border: 1px solid rgba(224, 230, 241, .95);
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 28px 80px rgba(13, 31, 58, .24);
}

body.admin-app .ap-child-flow-modal .ap-flow-card {
  width: min(620px, calc(100vw - 42px));
  grid-template-rows: auto auto minmax(0, 1fr) auto;
}

body.admin-app .ap-flow-header {
  display: grid;
  padding: 24px 24px 18px;
  grid-template-columns: 46px minmax(0, 1fr) 34px;
  align-items: start;
  gap: 14px;
  border-bottom: 0;
}

body.admin-app .ap-flow-header h2 {
  margin: 0 0 6px;
  padding: 0;
  color: #08265a;
  font-size: 1.25rem;
  font-weight: 950;
  letter-spacing: 0;
}

body.admin-app .ap-flow-header p {
  max-width: 520px;
  margin: 0;
  color: #52617c;
  font-size: .8rem;
  line-height: 1.55;
}

body.admin-app .ap-flow-icon,
body.admin-app .ap-flow-header .ap-modal-close {
  display: grid;
  place-items: center;
  border-radius: 50%;
}

body.admin-app .ap-flow-icon {
  width: 46px;
  height: 46px;
}

body.admin-app .ap-flow-icon .lpm-icon { width: 22px; height: 22px; }
body.admin-app .ap-flow-icon.family { color: #7437e8; background: #f1e9ff; }
body.admin-app .ap-flow-icon.child { color: #25a85b; background: #eaf8ef; }

body.admin-app .ap-flow-header .ap-modal-close {
  position: static;
  width: 34px;
  height: 34px;
  border: 0;
  color: #7437e8;
  background: #f3ecff;
}

body.admin-app .ap-flow-scroll {
  min-height: 0;
  margin: 0 24px;
  padding: 18px 0 16px;
  overflow-y: auto;
  overscroll-behavior: contain;
  border-top: 1px solid #e1e6ee;
  scrollbar-width: thin;
  scrollbar-color: rgba(122, 139, 164, .35) transparent;
}

body.admin-app .ap-flow-scroll::-webkit-scrollbar { width: 6px; }
body.admin-app .ap-flow-scroll::-webkit-scrollbar-track { background: transparent; }
body.admin-app .ap-flow-scroll::-webkit-scrollbar-thumb {
  border-radius: 999px;
  background: rgba(122, 139, 164, .28);
}

body.admin-app .ap-family-form-grid,
body.admin-app .ap-child-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 38px;
}

body.admin-app .ap-family-form-grid > .ap-flow-section:first-child {
  padding-right: 0;
  border-right: 0;
}

body.admin-app .ap-family-form-grid {
  position: relative;
}

body.admin-app .ap-family-form-grid::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 1px;
  transform: translateX(-.5px);
  background: #e6eaf2;
}

body.admin-app .ap-flow-section {
  display: grid;
  gap: 13px;
}

body.admin-app .ap-flow-section.ap-flow-wide { margin-top: 17px; }

body.admin-app .ap-flow-section h3,
body.admin-app .ap-flow-section h4 {
  display: flex;
  margin: 0 0 2px;
  align-items: center;
  gap: 10px;
  color: #08265a;
  font-size: .9rem;
  font-weight: 950;
}

body.admin-app .ap-flow-section h3 .lpm-icon,
body.admin-app .ap-flow-section h4 .lpm-icon {
  width: 19px;
  height: 19px;
  color: #7437e8;
}

body.admin-app .ap-child-form-grid .ap-flow-section h4 .lpm-icon { color: #25a85b; }

body.admin-app .ap-flow-card label {
  display: grid;
  min-width: 0;
  gap: 7px;
  color: #08265a;
  font-size: .8rem;
  font-weight: 900;
}

body.admin-app .ap-flow-card label b { color: #7437e8; }
body.admin-app .ap-child-flow-modal .ap-flow-card label b { color: #25a85b; }

body.admin-app .ap-label-line {
  display: inline-flex;
  min-width: 0;
  align-items: baseline;
  gap: 4px;
  white-space: nowrap;
}

body.admin-app .ap-label-line > span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}

body.admin-app .ap-label-line small,
body.admin-app .ap-flow-hint {
  color: #5d6a84;
  font-size: .73rem;
  font-weight: 650;
}

body.admin-app .ap-flow-card :is(input, select, textarea) {
  width: 100%;
  min-width: 0;
  min-height: 44px;
  box-sizing: border-box;
  border: 1px solid #cfd8e7;
  border-radius: 8px;
  padding: 0 13px;
  color: #142d5b;
  background: #fff;
  font: inherit;
  font-size: .82rem;
  font-weight: 700;
}

body.admin-app .ap-flow-card textarea {
  min-height: 86px;
  padding-top: 13px;
  resize: vertical;
  line-height: 1.55;
}

body.admin-app .ap-flow-card :is(input, select, textarea)::placeholder { color: #7b87a0; }

body.admin-app .ap-flow-card .has-error :is(input, select, textarea) {
  border-color: #d84c7d;
  background: #fff7fa;
}

body.admin-app .ap-flow-card :is(input, select, textarea):focus {
  border-color: #7c3aed;
  outline: 3px solid rgba(124, 58, 237, .14);
}

body.admin-app .ap-child-flow-modal .ap-flow-card :is(input, select, textarea):focus {
  border-color: #25a85b;
  outline-color: rgba(37, 168, 91, .14);
}

body.admin-app .ap-flow-field-row {
  display: grid;
  grid-template-columns: minmax(120px, .78fr) minmax(0, 1fr);
  gap: 16px;
}

body.admin-app .ap-flow-help {
  display: grid;
  margin: 0;
  padding: 12px 13px;
  grid-template-columns: 22px minmax(0, 1fr);
  gap: 12px;
  border: 1px solid #dbc8ff;
  border-radius: 8px;
  color: #233662;
  background: #faf7ff;
  font-size: .76rem;
  font-weight: 700;
  line-height: 1.55;
}

body.admin-app .ap-flow-divider {
  display: block;
  height: 1px;
  margin: 1px 0 3px;
  background: #e1e6ee;
}

body.admin-app .ap-flow-help.child {
  border-color: #bbe8cb;
  background: #f2fbf5;
}

body.admin-app .ap-flow-help .lpm-icon { width: 20px; height: 20px; color: #7437e8; }
body.admin-app .ap-flow-help.child .lpm-icon { color: #25a85b; }

body.admin-app .ap-flow-counter {
  justify-self: end;
  margin-top: -34px;
  padding-right: 13px;
  color: #5d6a84;
  font-size: .75rem;
  font-weight: 850;
  pointer-events: none;
}

body.admin-app .ap-flow-footer {
  position: sticky;
  bottom: 0;
  z-index: 2;
  display: grid;
  min-height: 80px;
  padding: 14px 24px;
  grid-template-columns: 94px minmax(0, 1fr) 158px;
  align-items: center;
  gap: 22px;
  border-top: 1px solid #e4e9f1;
  background: rgba(255, 255, 255, .96);
}

body.admin-app .ap-flow-footer button {
  min-height: 44px;
  border-radius: 8px;
  font-size: .82rem;
  font-weight: 950;
  cursor: pointer;
}

body.admin-app .ap-flow-footer .ap-secondary {
  border: 1px solid #bfc9dc;
  color: #08265a;
  background: #fff;
}

body.admin-app .ap-flow-footer button[type="submit"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  border: 0;
  color: #fff;
  background: linear-gradient(135deg, #7c3aed, #6236d3);
  box-shadow: 0 14px 30px rgba(98, 54, 211, .22);
}

body.admin-app .ap-flow-footer button[type="submit"]:disabled {
  opacity: .5;
  transform: none;
  box-shadow: none;
  cursor: not-allowed;
}

body.admin-app .ap-flow-footer-summary {
  display: grid;
  min-height: 46px;
  padding: 8px 12px;
  grid-template-columns: 24px minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  border-radius: 8px;
  color: #233662;
  background: #f8f3ff;
}

body.admin-app .ap-child-flow-modal .ap-flow-footer-summary { background: #f2fbf5; }
body.admin-app .ap-flow-footer-summary > span { color: #7437e8; }
body.admin-app .ap-child-flow-modal .ap-flow-footer-summary > span { color: #25a85b; }
body.admin-app .ap-flow-footer-summary p { display: grid; min-width: 0; margin: 0; gap: 2px; }
body.admin-app .ap-flow-footer-summary small { color: #66738b; font-size: .68rem; font-weight: 800; }
body.admin-app .ap-flow-footer-summary strong,
body.admin-app .ap-flow-footer-summary em {
  overflow: hidden;
  color: #08265a;
  font-size: .78rem;
  font-style: normal;
  font-weight: 900;
  text-overflow: ellipsis;
  white-space: normal;
}

body.admin-app .ap-flow-footer-summary em {
  color: #66738b;
  font-size: .7rem;
  font-weight: 750;
}

body.admin-app .ap-flow-steps {
  display: grid;
  padding: 16px 80px 20px;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 22px;
}

body.admin-app .ap-flow-steps span {
  position: relative;
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 12px;
  color: #6b7891;
  font-size: .82rem;
  font-weight: 950;
}

body.admin-app .ap-flow-steps span:first-child::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 8px;
  left: 168px;
  height: 1px;
  border-top: 1px dashed #cfd8e7;
}

body.admin-app .ap-flow-steps b {
  display: grid;
  width: 30px;
  height: 30px;
  flex: 0 0 30px;
  place-items: center;
  border: 1px solid #cfd8e7;
  border-radius: 50%;
  color: #08265a;
  background: #fff;
}

body.admin-app .ap-flow-steps .active { color: #08265a; }
body.admin-app .ap-flow-steps .active b,
body.admin-app .ap-flow-steps .done b {
  border-color: #25a85b;
  color: #fff;
  background: #25a85b;
}

body.admin-app .ap-child-step { display: grid; gap: 14px; }
body.admin-app .ap-flow-step-label { margin: 0; color: #25a85b; font-size: .82rem; font-weight: 950; }
body.admin-app .ap-child-step h3 { margin: 0; color: #08265a; font-size: 1.34rem; font-weight: 950; }
body.admin-app .ap-child-step > p:not(.ap-flow-step-label):not(.ap-flow-help) { margin: -8px 0 10px; color: #52617c; font-size: .86rem; }

body.admin-app .ap-family-picker {
  display: grid;
  gap: 8px;
}

body.admin-app .ap-family-search span {
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  min-height: 44px;
  border: 1px solid #cfd8e7;
  border-radius: 9px;
  padding: 0 14px;
  background: #fff;
  box-shadow: none;
}

body.admin-app .ap-family-search span .lpm-icon { width: 18px; height: 18px; color: #60708a; }
body.admin-app .ap-family-search span:focus-within {
  border-color: #25a85b;
  outline: 3px solid rgba(37, 168, 91, .13);
}
body.admin-app .ap-family-search input {
  min-height: 42px;
  border: 0;
  box-shadow: none;
  outline: 0;
  padding: 0;
}

body.admin-app .ap-family-choice-list {
  display: grid;
  overflow: hidden;
  border: 1px solid #dce3ee;
  border-radius: 9px;
  background: #fff;
  box-shadow: 0 14px 34px rgba(18, 40, 76, .08);
}

body.admin-app .ap-family-choice {
  display: grid;
  width: 100%;
  min-height: 63px;
  padding: 10px 14px;
  grid-template-columns: 36px minmax(0, 1fr) auto 20px;
  align-items: center;
  gap: 12px;
  border: 0;
  border-bottom: 1px solid #eef2f7;
  color: #08265a;
  background: #fff;
  text-align: left;
  cursor: pointer;
}

body.admin-app .ap-family-choice:last-child { border-bottom: 0; }
body.admin-app .ap-family-choice:hover,
body.admin-app .ap-family-choice.is-selected {
  background: #f2fbf5;
  box-shadow: inset 0 0 0 2px #25a85b;
}

body.admin-app .ap-family-choice:hover { background: #fbf8ff; }

body.admin-app .ap-family-choice-avatar {
  display: grid;
  width: 36px;
  height: 36px;
  place-items: center;
  border-radius: 50%;
  color: #7437e8;
  background: #f0e7ff;
  font-size: .82rem;
  font-weight: 950;
}

body.admin-app .ap-family-choice-avatar.tone-2 { color: #d68418; background: #fff1cf; }
body.admin-app .ap-family-choice-avatar.tone-3 { color: #d04477; background: #ffe3ee; }
body.admin-app .ap-family-choice-avatar.tone-4 { color: #2781c8; background: #e5f4ff; }

body.admin-app .ap-family-choice span:nth-child(2) {
  display: grid;
  min-width: 0;
  gap: 5px;
}

body.admin-app .ap-family-choice strong { overflow: hidden; font-size: .86rem; font-weight: 950; text-overflow: ellipsis; white-space: nowrap; }
body.admin-app .ap-family-choice small { overflow: hidden; color: #5f6d87; font-size: .76rem; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }

body.admin-app .ap-flow-status-badge {
  display: inline-flex;
  min-height: 26px;
  padding: 0 11px;
  align-items: center;
  gap: 7px;
  border-radius: 999px;
  color: #237a4d;
  background: #dcf6e5;
  font-size: .7rem;
  font-style: normal;
  font-weight: 950;
}

body.admin-app .ap-flow-status-badge i {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: currentColor;
}

body.admin-app .ap-family-choice > i {
  display: grid;
  width: 20px;
  height: 20px;
  place-items: center;
  border-radius: 50%;
  opacity: 0;
  color: #fff;
  background: #25a85b;
}

body.admin-app .ap-family-choice.is-selected > i { opacity: 1; }

body.admin-app .ap-family-create-row {
  display: flex;
  min-height: 48px;
  align-items: center;
  border-top: 1px solid #e5eaf2;
  background: #fff;
}

body.admin-app .ap-family-create-row button {
  display: inline-flex;
  min-height: 48px;
  padding: 0 18px;
  align-items: center;
  gap: 8px;
  border: 0;
  color: #7c3aed;
  background: transparent;
  font-size: .82rem;
  font-weight: 950;
  cursor: pointer;
}

body.admin-app .ap-family-create-row .lpm-icon {
  width: 17px;
  height: 17px;
}

body.admin-app .ap-flow-empty {
  display: grid;
  min-height: 148px;
  padding: 20px;
  place-items: center;
  gap: 8px;
  color: #52617c;
  text-align: center;
}

body.admin-app .ap-flow-empty.compact {
  min-height: 130px;
  border: 1px dashed #cfd8e7;
  border-radius: 9px;
  background: #f8fafc;
}

body.admin-app .ap-flow-empty > .lpm-icon { width: 28px; height: 28px; color: #7437e8; }
body.admin-app .ap-flow-empty strong { color: #08265a; font-size: .95rem; font-weight: 950; }
body.admin-app .ap-flow-empty p { max-width: 380px; margin: 0; font-size: .8rem; line-height: 1.5; }
body.admin-app .ap-flow-empty :is(button, a) {
  display: inline-flex;
  min-height: 40px;
  padding: 0 15px;
  align-items: center;
  border: 0;
  border-radius: 8px;
  color: #7437e8;
  background: #f1e9ff;
  font-weight: 950;
  text-decoration: none;
}

body.admin-app .ap-selected-family-card {
  display: grid;
  min-height: 70px;
  padding: 14px 16px;
  grid-template-columns: 42px minmax(0, 1fr);
  align-items: center;
  gap: 13px;
  border: 1px solid #bbe8cb;
  border-radius: 9px;
  background: #f2fbf5;
}

body.admin-app .ap-selected-family-card span:last-child { display: grid; min-width: 0; gap: 3px; }
body.admin-app .ap-selected-family-card small { color: #237a4d; font-size: .68rem; font-weight: 900; }
body.admin-app .ap-selected-family-card strong { overflow: hidden; color: #08265a; font-size: .9rem; font-weight: 950; text-overflow: ellipsis; white-space: nowrap; }
body.admin-app .ap-selected-family-card em { overflow: hidden; color: #5f6d87; font-size: .74rem; font-style: normal; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }

body.admin-app .ap-child-extra-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

@media (max-width: 820px) {
  body.admin-app .ap-modal.ap-family-form-modal,
  body.admin-app .ap-modal.ap-child-flow-modal {
    padding: 12px;
    align-items: stretch;
  }

  body.admin-app .ap-flow-card,
  body.admin-app .ap-child-flow-modal .ap-flow-card {
    width: 100%;
    max-height: calc(100dvh - 24px);
  }

  body.admin-app .ap-flow-header {
    padding: 24px 20px 20px;
    grid-template-columns: 52px minmax(0, 1fr) 40px;
    gap: 13px;
  }

  body.admin-app .ap-flow-icon {
    width: 50px;
    height: 50px;
  }

  body.admin-app .ap-flow-scroll { padding: 22px 20px 18px; }

  body.admin-app .ap-family-form-grid,
  body.admin-app .ap-child-form-grid,
  body.admin-app .ap-child-extra-grid {
    grid-template-columns: 1fr;
  }

  body.admin-app .ap-family-form-grid > .ap-flow-section:first-child {
    padding-right: 0;
    padding-bottom: 20px;
    border-right: 0;
    border-bottom: 1px solid #e6eaf2;
  }

  body.admin-app .ap-flow-steps {
    padding: 18px 20px 4px;
    gap: 10px;
  }

  body.admin-app .ap-flow-steps span {
    font-size: .75rem;
  }

  body.admin-app .ap-flow-steps span:first-child::after {
    display: none;
  }

  body.admin-app .ap-flow-footer {
    min-height: 0;
    padding: 14px 20px;
    grid-template-columns: 1fr;
    gap: 10px;
  }

  body.admin-app .ap-flow-footer-summary {
    order: -1;
  }

  body.admin-app .ap-flow-footer button {
    width: 100%;
  }
}

@media (max-width: 520px) {
  body.admin-app .ap-flow-header h2 { font-size: 1.22rem; }
  body.admin-app .ap-flow-header p { font-size: .76rem; }
  body.admin-app .ap-flow-field-row { grid-template-columns: 1fr; }
  body.admin-app .ap-family-choice {
    min-height: 86px;
    padding: 13px;
    grid-template-columns: 38px minmax(0, 1fr) 22px;
  }
  body.admin-app .ap-family-choice .ap-flow-status-badge {
    grid-column: 2 / -1;
    justify-self: start;
  }
  body.admin-app .ap-family-choice > i {
    grid-column: 3;
    grid-row: 1;
  }
  body.admin-app .ap-flow-steps {
    grid-template-columns: 1fr;
  }
}

/* Final mobile guardrail: keep public pages inside the viewport after page-specific polish layers. */
@media (max-width: 620px) {
  html,
  body.public-site {
    max-width: 100%;
    overflow-x: hidden;
  }

  body.public-site .public-header {
    width: calc(100% - 20px);
    max-width: calc(100vw - 20px);
    padding-right: 8px;
    padding-left: 10px;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 6px;
  }

  body.public-site .public-brand { min-width: 0; }
  body.public-site .public-brand strong {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  body.public-site .public-menu-toggle {
    display: inline-flex;
    width: 44px;
    min-width: 44px;
    padding-right: 0;
    padding-left: 0;
    flex: 0 0 auto;
    justify-self: end;
    justify-content: center;
    font-size: 0;
    gap: 0;
  }

  body.public-site .public-menu-toggle span { margin: 0; }

  body.public-home-page .public-reference-main,
  body.public-home-page .home-hero,
  body.public-home-page .home-hero-copy {
    min-width: 0;
    max-width: 100%;
  }

  body.public-home-page .home-hero-copy h1 {
    max-width: 100%;
    font-size: clamp(2.45rem, 10.4vw, 2.75rem);
    line-height: 1.06;
    overflow-wrap: normal;
  }
}

/* Administration shared finish: align admin pages with the planning/family-space system. */
body.admin-app {
  --ap-ui-navy: #102d59;
  --ap-ui-muted: #607087;
  --ap-ui-border: #e2e8f0;
  --ap-ui-soft: #f7f9fc;
  --ap-ui-violet: #7437e8;
  --ap-ui-green: #36a853;
  --ap-ui-shadow: 0 8px 24px rgba(24, 43, 70, .055);
  font-family: "Nunito Local", "Trebuchet MS", Arial, sans-serif;
  color: var(--ap-ui-navy);
  background: #fdfdfe;
}

body.admin-app .ap-main {
  min-width: 0;
  background: #fbfcfe;
}

body.admin-app .ap-top {
  min-height: 82px;
  padding: 12px 32px;
  border-bottom-color: #e8edf3;
  background: rgba(255, 255, 255, .92);
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);
}

body.admin-app .ap-sidebar {
  padding: 18px 20px 20px;
  border-right-color: #e8ebf0;
  background-color: rgba(255, 255, 255, .98);
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);
}

body.admin-app .ap-sidebar-head {
  min-height: 82px;
  padding: 0;
}

body.admin-app .ap-sidebar .ap-brand {
  gap: 10px;
}

body.admin-app .ap-sidebar .ap-logo {
  width: 46px;
  height: 46px;
  flex-basis: 46px;
}

body.admin-app .ap-sidebar .ap-brand strong {
  color: var(--ap-ui-navy);
  font-size: .95rem;
  font-weight: 950;
  letter-spacing: 0;
}

body.admin-app .ap-sidebar .ap-brand small {
  color: var(--ap-ui-violet);
  font-size: .66rem;
  font-weight: 850;
}

body.admin-app .ap-sidebar-account {
  min-height: 48px;
  margin: 0 0 14px;
  padding: 9px 13px;
  grid-template-columns: 26px minmax(0, 1fr) 18px;
  border: 1px solid #eadcfb;
  border-radius: 10px;
  color: var(--ap-ui-violet);
  background: #f7f0ff;
  box-shadow: none;
}

body.admin-app .ap-sidebar-account > span:first-child {
  width: 26px;
  height: 26px;
  color: var(--ap-ui-violet);
  background: transparent;
}

body.admin-app .ap-sidebar-account small {
  color: #7e6fa8;
  font-size: .58rem;
}

body.admin-app .ap-sidebar-account strong {
  color: var(--ap-ui-navy);
  font-size: .68rem;
  font-weight: 900;
}

body.admin-app .ap-sidebar-scroll {
  padding: 0 0 18px;
  scrollbar-width: thin;
  scrollbar-color: rgba(116, 55, 232, .22) transparent;
}

body.admin-app .ap-sidebar .ap-dashboard-nav,
body.admin-app .ap-nav-domain nav {
  gap: 3px;
}

body.admin-app .ap-nav-domain {
  margin-top: 11px;
  padding-top: 11px;
  border-top-color: #e9edf2;
}

body.admin-app .ap-nav-domain h2 {
  margin: 0 10px 7px;
  color: #7a879c;
  font-size: .6rem;
  font-weight: 900;
  letter-spacing: .06em;
}

body.admin-app .ap-sidebar .ap-dashboard-nav a { --ap-nav-color: var(--ap-ui-violet) !important; }
body.admin-app .ap-nav-domain:nth-of-type(1) nav a:nth-child(1) { --ap-nav-color: #2e9e48 !important; }
body.admin-app .ap-nav-domain:nth-of-type(1) nav a:nth-child(2) { --ap-nav-color: #0871dc !important; }
body.admin-app .ap-nav-domain:nth-of-type(1) nav a:nth-child(3) { --ap-nav-color: #ef8f00 !important; }
body.admin-app .ap-nav-domain:nth-of-type(2) nav a:nth-child(1) { --ap-nav-color: #f23878 !important; }
body.admin-app .ap-nav-domain:nth-of-type(2) nav a:nth-child(2) { --ap-nav-color: #0871dc !important; }
body.admin-app .ap-nav-domain:nth-of-type(2) nav a:nth-child(3) { --ap-nav-color: #ef8f00 !important; }
body.admin-app .ap-nav-domain:nth-of-type(2) nav a:nth-child(4) { --ap-nav-color: #f23878 !important; }
body.admin-app .ap-nav-domain:nth-of-type(3) nav a:nth-child(1) { --ap-nav-color: #0871dc !important; }
body.admin-app .ap-nav-domain:nth-of-type(3) nav a:nth-child(2) { --ap-nav-color: #2e9e48 !important; }
body.admin-app .ap-nav-domain:nth-of-type(4) nav a:nth-child(1) { --ap-nav-color: var(--ap-ui-violet) !important; }
body.admin-app .ap-nav-domain:nth-of-type(4) nav a:nth-child(2) { --ap-nav-color: #2e9e48 !important; }
body.admin-app .ap-nav-domain:nth-of-type(4) nav a:nth-child(3) { --ap-nav-color: var(--ap-ui-violet) !important; }
body.admin-app .ap-nav-domain:nth-of-type(4) nav a:nth-child(4) { --ap-nav-color: #0871dc !important; }
body.admin-app .ap-nav-domain:nth-of-type(4) nav a:nth-child(5) { --ap-nav-color: #68758c !important; }
body.admin-app .ap-nav-domain:nth-of-type(5) nav a { --ap-nav-color: var(--ap-ui-violet) !important; }

body.admin-app .ap-sidebar nav a,
body.admin-app .ap-sidebar .ap-dashboard-nav a,
body.admin-app .ap-nav-domain nav a {
  min-height: 42px;
  padding: 6px 10px;
  grid-template-columns: 32px minmax(0, 1fr) auto;
  gap: 8px;
  border-radius: 8px;
  color: #344762;
  background: transparent;
  font-size: .78rem;
  font-weight: 850;
}

body.admin-app .ap-sidebar nav a:hover,
body.admin-app .ap-sidebar nav a:focus-visible {
  color: var(--ap-ui-navy);
  background: #faf9fc;
  outline: 0;
}

body.admin-app .ap-sidebar nav a.active {
  color: var(--ap-ui-violet);
  border-color: transparent;
  background: linear-gradient(100deg, #f6efff, #f2e9fb);
  box-shadow: none;
}

body.admin-app .ap-sidebar nav a.active::before {
  background: var(--ap-ui-violet);
}

body.admin-app .ap-nav-icon {
  width: 32px !important;
  height: 30px;
  color: var(--ap-nav-color);
  background: transparent;
}

body.admin-app .ap-nav-icon .lpm-icon {
  width: 18px;
  height: 18px;
}

body.admin-app .ap-head h1,
body.admin-app .ap-dashboard-head h1,
body.admin-app .ap-family-head h1,
body.admin-app .ap-registration-head h1,
body.admin-app .ap-audit-head h1,
body.admin-app .admin-welcome h1 {
  color: var(--ap-ui-navy) !important;
  font-size: clamp(1.75rem, 2.3vw, 2.25rem);
  line-height: 1.06;
  letter-spacing: 0;
}

body.admin-app :is(.ap-head, .ap-dashboard-head, .ap-family-head, .ap-registration-head, .ap-audit-head) p {
  color: var(--ap-ui-muted);
  font-size: .78rem;
  line-height: 1.55;
}

body.admin-app :is(.ap-card, .admin-card, .ap-family-directory, .ap-registration-results, .ap-registration-column, .ap-registration-completed-table, .ap-registration-drawer-card, .ap-child-drawer-card, .ap-family-drawer-section, .ap-planning-calendar-card, .ap-planning-upcoming, .ap-planning-type-card, .ap-family-stat, .ap-registration-stat) {
  border-color: var(--ap-ui-border);
  border-radius: 10px;
  background-color: rgba(255, 255, 255, .96);
  box-shadow: var(--ap-ui-shadow);
}

body.admin-app :is(.ap-card h2, .admin-card h2, .ap-registration-column h2, .ap-family-drawer-section h3, .ap-child-drawer-card h3) {
  color: var(--ap-ui-navy);
  letter-spacing: 0;
}

body.admin-app :is(input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]), select, textarea) {
  min-height: 42px;
  border-color: #d8e0ea;
  border-radius: 8px;
  color: #263d5e;
  background-color: #fff;
  font: inherit;
  font-size: .72rem;
  font-weight: 650;
  transition: border-color 200ms ease, box-shadow 200ms ease, background-color 200ms ease;
}

body.admin-app textarea {
  min-height: 96px;
  line-height: 1.5;
}

body.admin-app :is(input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]), select, textarea):focus {
  border-color: #9879df;
  outline: 0;
  box-shadow: 0 0 0 3px rgba(116, 55, 232, .1);
}

body.admin-app :is(input, textarea)::placeholder {
  color: #8a97aa;
}

body.admin-app :is(button, .ap-button, .admin-button) {
  font-family: inherit;
  letter-spacing: 0;
}

body.admin-app :is(.ap-primary, button[type="submit"], .admin-primary) {
  border-color: transparent;
  color: #fff;
  background: linear-gradient(135deg, #7b4ce1, #6232ca);
  box-shadow: 0 8px 18px rgba(92, 54, 190, .16);
}

body.admin-app :is(button:disabled, .is-disabled, [aria-disabled="true"]) {
  cursor: not-allowed;
  opacity: .52;
}

body.admin-app .lpm-search-field {
  --lpm-search-height: 44px;
  --lpm-search-radius: 9px;
  --lpm-search-icon-track: 44px;
  border-color: #d8e0ea;
  box-shadow: 0 5px 16px rgba(28, 49, 79, .04);
}

body.admin-app .lpm-search-field > input[type="search"] {
  padding-right: 14px;
  font-size: .72rem;
  font-weight: 650;
}

body.admin-app label.lpm-search-field.ap-family-search {
  min-height: 44px;
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  align-items: center;
}

body.admin-app label.lpm-search-field.ap-family-search > .lpm-search-icon {
  display: grid;
  min-height: 0;
  padding: 0;
  grid-template-columns: none;
  gap: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

body.admin-app .ap-family-controls {
  min-height: 70px;
  padding: 13px 16px;
  grid-template-columns: minmax(320px, 1fr) minmax(0, auto) 132px;
  gap: 12px;
}

body.admin-app .ap-family-filters {
  overflow-x: auto;
  scrollbar-width: none;
}

body.admin-app .ap-family-filters::-webkit-scrollbar {
  width: 0;
  height: 0;
}

body.admin-app .ap-family-filters button {
  min-height: 36px;
  flex: 0 0 auto;
  border-color: #dfe5ed;
  font-size: .62rem;
}

body.admin-app .ap-family-sort select {
  min-height: 36px;
}

body.admin-app .ap-family-picker > .ap-family-search {
  display: grid;
  gap: 6px;
}

body.admin-app .ap-family-picker > .ap-family-search > span {
  min-height: 44px;
  padding: 0 14px;
  grid-template-columns: 20px minmax(0, 1fr);
  gap: 8px;
  border-color: #cfd8e7;
  border-radius: 9px;
  box-shadow: none;
}

body.admin-app .ap-family-picker > .ap-family-search > span:focus-within {
  border-color: var(--ap-ui-green);
  outline: 3px solid rgba(54, 168, 83, .13);
}

body.admin-app .ap-family-picker > .ap-family-search input[type="search"] {
  min-height: 42px;
  padding: 0;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

body.admin-app :is(.ap-table, .ap-registration-list, .ap-family-list, .ap-registration-completed-table) {
  scrollbar-width: thin;
  scrollbar-color: rgba(116, 55, 232, .22) transparent;
}

body.admin-app :is(.ap-table, .ap-registration-list, .ap-family-list, .ap-registration-completed-table)::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}

body.admin-app :is(.ap-table, .ap-registration-list, .ap-family-list, .ap-registration-completed-table)::-webkit-scrollbar-thumb {
  border-radius: 999px;
  background: rgba(116, 55, 232, .22);
}

@media (max-width: 1024px) {
  body.admin-app .ap-top {
    padding-right: 18px;
    padding-left: 18px;
  }

  body.admin-app .ap-family-controls {
    grid-template-columns: 1fr;
  }

  body.admin-app .ap-family-sort {
    width: min(260px, 100%);
  }
}

@media (max-width: 860px) {
  body.admin-app .ap-sidebar {
    padding: 16px;
  }

  body.admin-app .ap-sidebar-head {
    min-height: 58px;
  }

  body.admin-app .ap-sidebar .ap-brand-copy {
    opacity: 1;
  }

  body.admin-app .ap-sidebar nav a,
  body.admin-app .ap-sidebar .ap-dashboard-nav a,
  body.admin-app .ap-nav-domain nav a {
    min-height: 44px;
  }
}

/* Admin form density pass: family, child and registration forms follow Planning scale. */
body.admin-app .ap-modal.ap-registration-form-modal {
  display: flex;
  padding: 24px;
  align-items: center;
  justify-content: center;
  background: rgba(11, 24, 48, .58);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}

body.admin-app :is(.ap-family-form-modal, .ap-child-flow-modal, .ap-registration-form-modal) .ap-flow-card {
  width: min(600px, calc(100vw - 42px));
  max-height: calc(100dvh - 42px);
  border-radius: 10px;
  box-shadow: 0 24px 70px rgba(13, 31, 58, .22);
}

body.admin-app .ap-registration-form-modal .ap-flow-card {
  width: min(660px, calc(100vw - 42px));
}

body.admin-app :is(.ap-family-form-modal, .ap-child-flow-modal, .ap-registration-form-modal) .ap-flow-header {
  padding: 20px 22px 15px;
  grid-template-columns: 42px minmax(0, 1fr) 32px;
  gap: 12px;
}

body.admin-app :is(.ap-family-form-modal, .ap-child-flow-modal, .ap-registration-form-modal) .ap-flow-header h2 {
  margin-bottom: 5px;
  font-size: 1.18rem;
  line-height: 1.12;
}

body.admin-app :is(.ap-family-form-modal, .ap-child-flow-modal, .ap-registration-form-modal) .ap-flow-header p {
  font-size: .74rem;
  line-height: 1.45;
}

body.admin-app :is(.ap-family-form-modal, .ap-child-flow-modal, .ap-registration-form-modal) .ap-flow-icon {
  width: 42px;
  height: 42px;
}

body.admin-app :is(.ap-family-form-modal, .ap-child-flow-modal, .ap-registration-form-modal) .ap-flow-icon .lpm-icon {
  width: 20px;
  height: 20px;
}

body.admin-app .ap-flow-icon.registration {
  color: #7437e8;
  background: #f1e9ff;
}

body.admin-app :is(.ap-family-form-modal, .ap-child-flow-modal, .ap-registration-form-modal) .ap-flow-header .ap-modal-close {
  width: 32px;
  height: 32px;
}

body.admin-app :is(.ap-family-form-modal, .ap-child-flow-modal, .ap-registration-form-modal) .ap-flow-scroll {
  margin: 0 22px;
  padding: 15px 0 14px;
}

body.admin-app :is(.ap-family-form-grid, .ap-child-form-grid, .ap-registration-form-grid) {
  gap: 24px;
}

body.admin-app .ap-registration-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 18px;
}

body.admin-app :is(.ap-family-form-modal, .ap-child-flow-modal, .ap-registration-form-modal) .ap-flow-section {
  gap: 11px;
}

body.admin-app :is(.ap-family-form-modal, .ap-child-flow-modal, .ap-registration-form-modal) .ap-flow-section.ap-flow-wide {
  margin-top: 14px;
}

body.admin-app :is(.ap-family-form-modal, .ap-child-flow-modal, .ap-registration-form-modal) .ap-flow-section h3,
body.admin-app :is(.ap-family-form-modal, .ap-child-flow-modal, .ap-registration-form-modal) .ap-flow-section h4 {
  gap: 8px;
  font-size: .82rem;
}

body.admin-app :is(.ap-family-form-modal, .ap-child-flow-modal, .ap-registration-form-modal) .ap-flow-section h3 .lpm-icon,
body.admin-app :is(.ap-family-form-modal, .ap-child-flow-modal, .ap-registration-form-modal) .ap-flow-section h4 .lpm-icon {
  width: 17px;
  height: 17px;
}

body.admin-app :is(.ap-family-form-modal, .ap-child-flow-modal, .ap-registration-form-modal) .ap-flow-card label {
  gap: 6px;
  font-size: .73rem;
  font-weight: 900;
}

body.admin-app :is(.ap-family-form-modal, .ap-child-flow-modal, .ap-registration-form-modal) .ap-label-line {
  gap: 4px;
}

body.admin-app :is(.ap-family-form-modal, .ap-child-flow-modal, .ap-registration-form-modal) .ap-label-line small,
body.admin-app :is(.ap-family-form-modal, .ap-child-flow-modal, .ap-registration-form-modal) .ap-flow-hint,
body.admin-app :is(.ap-family-form-modal, .ap-child-flow-modal, .ap-registration-form-modal) .ap-field-error {
  font-size: .66rem;
}

body.admin-app :is(.ap-family-form-modal, .ap-child-flow-modal, .ap-registration-form-modal) .ap-flow-card :is(input, select, textarea) {
  min-height: 42px;
  padding-right: 11px;
  padding-left: 11px;
  border-radius: 7px;
  font-size: .74rem;
}

body.admin-app :is(.ap-family-form-modal, .ap-child-flow-modal, .ap-registration-form-modal) .ap-flow-card textarea {
  min-height: 76px;
  padding-top: 10px;
}

body.admin-app .ap-registration-message-field {
  margin-top: 11px;
}

body.admin-app :is(.ap-family-form-modal, .ap-child-flow-modal, .ap-registration-form-modal) .ap-flow-help {
  padding: 10px 11px;
  grid-template-columns: 19px minmax(0, 1fr);
  gap: 10px;
  font-size: .69rem;
  line-height: 1.45;
}

body.admin-app :is(.ap-family-form-modal, .ap-child-flow-modal, .ap-registration-form-modal) .ap-flow-help .lpm-icon {
  width: 18px;
  height: 18px;
}

body.admin-app :is(.ap-family-form-modal, .ap-child-flow-modal, .ap-registration-form-modal) .ap-flow-footer {
  min-height: 74px;
  padding: 12px 22px;
  grid-template-columns: 88px minmax(0, 1fr) 148px;
  gap: 16px;
}

body.admin-app .ap-registration-form-modal .ap-flow-footer {
  grid-template-columns: 88px minmax(0, 1fr) 160px;
}

body.admin-app :is(.ap-family-form-modal, .ap-child-flow-modal, .ap-registration-form-modal) .ap-flow-footer button {
  min-height: 42px;
  font-size: .74rem;
}

body.admin-app :is(.ap-family-form-modal, .ap-child-flow-modal, .ap-registration-form-modal) .ap-flow-footer-summary {
  min-height: 42px;
  padding: 7px 10px;
  grid-template-columns: 21px minmax(0, 1fr);
  gap: 10px;
}

body.admin-app :is(.ap-family-form-modal, .ap-child-flow-modal, .ap-registration-form-modal) .ap-flow-footer-summary strong,
body.admin-app :is(.ap-family-form-modal, .ap-child-flow-modal, .ap-registration-form-modal) .ap-flow-footer-summary em {
  font-size: .7rem;
}

body.admin-app .ap-flow-steps {
  padding: 13px 66px 16px;
  gap: 18px;
}

body.admin-app .ap-flow-steps span {
  gap: 10px;
  font-size: .73rem;
}

body.admin-app .ap-flow-steps b {
  width: 27px;
  height: 27px;
  flex-basis: 27px;
}

body.admin-app .ap-flow-steps span:first-child::after {
  left: 148px;
}

body.admin-app .ap-child-step {
  gap: 11px;
}

body.admin-app .ap-flow-step-label {
  font-size: .72rem;
}

body.admin-app .ap-child-step h3 {
  font-size: 1.1rem;
}

body.admin-app .ap-child-step > p:not(.ap-flow-step-label):not(.ap-flow-help) {
  margin: -6px 0 7px;
  font-size: .75rem;
}

body.admin-app .ap-family-picker > .ap-family-search > span,
body.admin-app .ap-family-search span {
  min-height: 42px;
  padding: 0 12px;
  grid-template-columns: 18px minmax(0, 1fr);
  gap: 8px;
}

body.admin-app .ap-family-picker > .ap-family-search input[type="search"],
body.admin-app .ap-family-search input {
  min-height: 40px;
  font-size: .74rem;
}

body.admin-app .ap-family-choice {
  min-height: 58px;
  padding: 9px 12px;
  grid-template-columns: 34px minmax(0, 1fr) auto 19px;
  gap: 10px;
}

body.admin-app .ap-family-choice-avatar {
  width: 34px;
  height: 34px;
  font-size: .72rem;
}

body.admin-app .ap-family-choice strong {
  font-size: .76rem;
}

body.admin-app .ap-family-choice small {
  font-size: .66rem;
}

body.admin-app .ap-flow-status-badge {
  min-height: 24px;
  padding: 0 9px;
  font-size: .62rem;
}

body.admin-app .ap-registration-class-empty {
  align-content: center;
}

@media (max-width: 820px) {
  body.admin-app .ap-modal.ap-registration-form-modal {
    padding: 12px;
    align-items: stretch;
  }

  body.admin-app .ap-registration-form-grid {
    grid-template-columns: 1fr;
  }

  body.admin-app :is(.ap-family-form-modal, .ap-child-flow-modal, .ap-registration-form-modal) .ap-flow-card {
    width: 100%;
    max-height: calc(100dvh - 24px);
  }

  body.admin-app :is(.ap-family-form-modal, .ap-child-flow-modal, .ap-registration-form-modal) .ap-flow-footer,
  body.admin-app .ap-registration-form-modal .ap-flow-footer {
    min-height: 0;
    padding: 13px 18px;
    grid-template-columns: 1fr;
    gap: 9px;
  }

  body.admin-app :is(.ap-family-form-modal, .ap-child-flow-modal, .ap-registration-form-modal) .ap-flow-footer-summary {
    order: -1;
  }
}

/* Targeted fix: clean family search in Add child step 1. */
body.admin-app .ap-child-flow-modal .ap-child-family-search {
  display: grid;
  min-width: 0;
  gap: 6px;
}

body.admin-app .ap-child-flow-modal .ap-child-family-search > .ap-label-line {
  display: inline-flex;
  min-height: 0;
  padding: 0;
  align-items: baseline;
  gap: 4px;
  border: 0;
  border-radius: 0;
  color: #08265a;
  background: transparent;
  box-shadow: none;
  font-size: .73rem;
  font-weight: 900;
}

body.admin-app .ap-child-flow-modal .ap-child-family-search-box {
  position: relative;
  display: block;
  width: 100%;
  min-height: 42px;
  overflow: hidden;
  border: 1px solid #cfd8e7;
  border-radius: 8px;
  background: #fff;
  box-shadow: none;
  transition: border-color 180ms ease, box-shadow 180ms ease, background-color 180ms ease;
}

body.admin-app .ap-child-flow-modal .ap-child-family-search-box:focus-within {
  border-color: #25a85b;
  box-shadow: 0 0 0 3px rgba(37, 168, 91, .13);
}

body.admin-app .ap-child-flow-modal .ap-child-family-search-box > .lpm-icon {
  position: absolute;
  top: 50%;
  left: 13px;
  width: 16px;
  height: 16px;
  transform: translateY(-50%);
  color: #60708a;
  pointer-events: none;
}

body.admin-app .ap-child-flow-modal .ap-child-family-search-box input[type="search"] {
  appearance: none;
  width: 100%;
  min-width: 0;
  min-height: 40px;
  padding: 0 12px 0 38px;
  border: 0;
  border-radius: 0;
  outline: 0;
  color: #142d5b;
  background: transparent;
  box-shadow: none;
  font: inherit;
  font-size: .74rem;
  font-weight: 700;
}

body.admin-app .ap-child-flow-modal .ap-child-family-search-box input[type="search"]::placeholder {
  color: #7b87a0;
  opacity: 1;
}

body.admin-app .ap-child-flow-modal .ap-family-choice-list {
  max-height: min(272px, 38vh);
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: rgba(37, 168, 91, .24) transparent;
}

body.admin-app .ap-child-flow-modal .ap-family-search-hint {
  display: grid;
  min-height: 82px;
  padding: 14px 15px;
  align-content: center;
  justify-items: center;
  gap: 4px;
  border: 1px dashed #d8e2ee;
  border-radius: 8px;
  color: #60708a;
  background: #fbfcff;
  text-align: center;
}

body.admin-app .ap-child-flow-modal .ap-family-search-hint .lpm-icon {
  width: 18px;
  height: 18px;
  color: #25a85b;
}

body.admin-app .ap-child-flow-modal .ap-family-search-hint span {
  color: #183160;
  font-size: .75rem;
  font-weight: 850;
}

body.admin-app .ap-child-flow-modal .ap-family-search-hint small {
  color: #6a7890;
  font-size: .68rem;
  font-weight: 700;
}

body.admin-app .ap-child-flow-modal .ap-family-choice-list::-webkit-scrollbar {
  width: 6px;
}

body.admin-app .ap-child-flow-modal .ap-family-choice-list::-webkit-scrollbar-thumb {
  border-radius: 999px;
  background: rgba(37, 168, 91, .24);
}

body.admin-app .ap-child-flow-modal .ap-family-choice:hover:not(.is-selected) {
  background: #fbf8ff;
  box-shadow: inset 0 0 0 1px #e8ddfb;
}

body.admin-app .ap-child-flow-modal .ap-family-choice {
  min-height: 50px;
  padding: 7px 10px;
  grid-template-columns: 30px minmax(0, 1fr) auto 18px;
  gap: 9px;
}

body.admin-app .ap-child-flow-modal .ap-family-choice-avatar {
  width: 30px;
  height: 30px;
  font-size: .66rem;
}

body.admin-app .ap-child-flow-modal .ap-family-choice strong {
  font-size: .72rem;
}

body.admin-app .ap-child-flow-modal .ap-family-choice small {
  max-width: 100%;
  font-size: .64rem;
}

body.admin-app .ap-child-flow-modal .ap-family-choice .ap-flow-status-badge {
  min-height: 20px;
  padding: 0 7px;
  font-size: .56rem;
  opacity: .78;
}

body.admin-app .ap-child-flow-modal .ap-family-choice.is-selected {
  background: #f2fbf5;
  box-shadow: inset 0 0 0 2px #25a85b;
}

body.admin-app .ap-child-flow-modal .ap-family-choice.is-selected > i {
  opacity: 1;
}

body.admin-app .ap-child-flow-modal .ap-family-choice:not(.is-selected) > i {
  opacity: 0;
}

/* L'Ã©quipe : recalage strict du carrousel sur la maquette validÃ©e. */
body.public-team-page .public-team-showcase.reference-inner {
  width: min(100% - 28px, 1504px);
  padding: 10px 0 30px;
}

body.public-team-page .public-team-carousel-section {
  padding: clamp(28px, 3.1vw, 44px) clamp(32px, 3.8vw, 54px) 28px;
  border-radius: 24px;
  box-shadow: 0 18px 48px rgba(38, 49, 77, .08);
}

body.public-team-page .public-team-showcase-header {
  grid-template-columns: 82px minmax(0, 1fr) auto;
  gap: 22px;
  margin-bottom: 24px;
}

body.public-team-page .public-team-hero-icon {
  width: 74px;
  height: 74px;
}

body.public-team-page .public-team-hero-icon .lpm-icon {
  width: 38px;
  height: 38px;
}

body.public-team-page .public-team-showcase-header h1 {
  margin-bottom: 6px;
  font-size: clamp(2.45rem, 3.1vw, 3rem);
  line-height: 1.02;
}

body.public-team-page .public-team-showcase-header p {
  max-width: 560px;
  font-size: clamp(1.02rem, 1.18vw, 1.18rem);
  line-height: 1.45;
}

body.public-team-page .public-team-all-link {
  min-height: 50px;
  padding: 0 24px;
  gap: 10px;
  border-radius: 14px;
  font-size: .92rem;
}

body.public-team-page .public-team-all-link .lpm-icon {
  width: 21px;
  height: 21px;
}

body.public-team-page .public-team-carousel-stage,
body.public-team-page .public-team-carousel-track {
  min-height: 450px;
}

body.public-team-page .public-team-carousel-card,
body.public-team-page .public-team-carousel-card.is-active {
  width: min(720px, 53vw) !important;
  max-width: calc(100vw - 190px);
  box-sizing: border-box;
  min-height: 420px;
  padding: 18px;
  grid-template-columns: minmax(235px, 40%) minmax(0, 1fr);
  gap: 30px;
  border-radius: 18px;
  box-shadow: 0 18px 46px rgba(24, 38, 70, .1);
}

body.public-team-page .public-team-carousel-card.is-active.has-no-details {
  min-height: 360px;
  grid-template-columns: minmax(220px, 38%) minmax(0, 1fr);
}

body.public-team-page .public-team-media,
body.public-team-page .public-team-media img,
body.public-team-page .public-team-media .public-team-avatar {
  border-radius: 13px;
}

body.public-team-page .public-team-media img,
body.public-team-page .public-team-media .public-team-avatar {
  min-height: 384px;
}

body.public-team-page .public-team-carousel-card.has-no-details .public-team-media img,
body.public-team-page .public-team-carousel-card.has-no-details .public-team-media .public-team-avatar {
  min-height: 324px;
}

body.public-team-page .public-team-media .public-team-avatar {
  font-family: "Nunito", system-ui, sans-serif;
  font-size: clamp(2.1rem, 3vw, 2.85rem);
  font-weight: 950;
}

body.public-team-page .public-team-photo-mark {
  right: 10px;
  bottom: 10px;
  width: 52px;
  height: 52px;
}

body.public-team-page .public-team-photo-mark .lpm-icon {
  width: 25px;
  height: 25px;
}

body.public-team-page .public-team-copy {
  padding: 12px 8px 10px 0;
  gap: 13px;
}

body.public-team-page .public-team-copy > small {
  font-size: .78rem;
  letter-spacing: .12em;
}

body.public-team-page .public-team-copy > small::after {
  width: 8px;
  height: 8px;
  margin-left: 8px;
}

body.public-team-page .public-team-copy > strong {
  font-size: clamp(1.88rem, 2.35vw, 2.25rem);
  line-height: 1.08;
}

body.public-team-page .public-team-bio {
  max-width: 370px;
  font-size: .98rem;
  line-height: 1.55;
}

body.public-team-page .public-team-details {
  gap: 16px;
  margin-top: 4px;
}

body.public-team-page .public-team-details > span {
  grid-template-columns: 44px minmax(0, 1fr);
  gap: 14px;
}

body.public-team-page .public-team-details i {
  width: 44px;
  height: 44px;
}

body.public-team-page .public-team-details i .lpm-icon {
  width: 22px;
  height: 22px;
}

body.public-team-page .public-team-details b {
  margin-bottom: 2px;
  font-size: .9rem;
}

body.public-team-page .public-team-details em {
  font-size: .88rem;
  line-height: 1.4;
}

body.public-team-page .public-team-carousel-card.is-previous,
body.public-team-page .public-team-carousel-card.is-next {
  width: clamp(238px, 20vw, 300px);
  min-height: 370px;
  padding: 16px;
  gap: 10px;
  opacity: .86;
  border-radius: 17px;
  box-shadow: 0 14px 34px rgba(32, 46, 75, .075);
}

body.public-team-page .public-team-carousel-card.is-previous {
  transform: translateX(calc(-50% - min(34vw, 500px))) scale(.88);
}

body.public-team-page .public-team-carousel-card.is-next {
  transform: translateX(calc(-50% + min(34vw, 500px))) scale(.88);
}

body.public-team-page .public-team-carousel-card.is-previous .public-team-media,
body.public-team-page .public-team-carousel-card.is-next .public-team-media,
body.public-team-page .public-team-carousel-card.is-previous .public-team-media img,
body.public-team-page .public-team-carousel-card.is-next .public-team-media img,
body.public-team-page .public-team-carousel-card.is-previous .public-team-media .public-team-avatar,
body.public-team-page .public-team-carousel-card.is-next .public-team-media .public-team-avatar {
  min-height: 202px;
}

body.public-team-page .public-team-carousel-card.is-previous .public-team-photo-mark,
body.public-team-page .public-team-carousel-card.is-next .public-team-photo-mark {
  right: -10px;
  bottom: -10px;
  width: 42px;
  height: 42px;
}

body.public-team-page .public-team-carousel-card.is-previous .public-team-photo-mark .lpm-icon,
body.public-team-page .public-team-carousel-card.is-next .public-team-photo-mark .lpm-icon {
  width: 20px;
  height: 20px;
}

body.public-team-page .public-team-carousel-card.is-previous .public-team-copy,
body.public-team-page .public-team-carousel-card.is-next .public-team-copy {
  padding: 16px 0 0;
  gap: 7px;
}

body.public-team-page .public-team-carousel-card.is-previous .public-team-copy > small,
body.public-team-page .public-team-carousel-card.is-next .public-team-copy > small {
  font-size: .66rem;
}

body.public-team-page .public-team-carousel-card.is-previous .public-team-copy > strong,
body.public-team-page .public-team-carousel-card.is-next .public-team-copy > strong {
  font-size: 1.2rem;
  line-height: 1.18;
}

body.public-team-page .public-team-carousel-card.is-previous .public-team-bio,
body.public-team-page .public-team-carousel-card.is-next .public-team-bio {
  font-size: .76rem;
  line-height: 1.45;
  -webkit-line-clamp: 3;
}

body.public-team-page .public-team-carousel-card.is-previous .public-team-details,
body.public-team-page .public-team-carousel-card.is-next .public-team-details,
body.public-team-page .public-team-carousel-card.is-previous .public-role-tags,
body.public-team-page .public-team-carousel-card.is-next .public-role-tags {
  display: none;
}

body.public-team-page .public-team-arrow {
  width: 54px;
  height: 54px;
}

body.public-team-page .public-team-arrow.previous {
  left: calc(50% - min(29vw, 430px));
}

body.public-team-page .public-team-arrow.next {
  right: calc(50% - min(29vw, 430px));
}

body.public-team-page .public-team-arrow .lpm-icon {
  width: 27px;
  height: 27px;
}

body.public-team-page .public-team-dots {
  margin-top: 6px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 14px;
}

body.public-team-page .public-team-dots button,
body.public-team-page .public-team-dots button.active {
  width: 10px;
  height: 10px;
}

body.public-team-page .public-team-carousel-hint {
  margin-top: 18px;
  gap: 10px;
  font-size: .84rem;
}

body.public-team-page .public-team-carousel-hint .lpm-icon {
  width: 17px;
  height: 17px;
}

body.public-team-page .public-team-values-card {
  margin-top: 24px;
  padding: 18px 28px 18px 20px;
  grid-template-columns: 56px minmax(0, 1fr) 230px;
  gap: 18px;
  border-radius: 14px;
}

body.public-team-page .public-team-values-card > span {
  width: 50px;
  height: 50px;
}

body.public-team-page .public-team-values-card > span .lpm-icon {
  width: 26px;
  height: 26px;
}

body.public-team-page .public-team-values-card h2 {
  margin-bottom: 4px;
  font-size: 1.08rem;
}

body.public-team-page .public-team-values-card p {
  font-size: .9rem;
  line-height: 1.42;
}

body.public-team-page .public-team-values-card img {
  max-height: 78px;
}

@media (max-width: 1180px) {
  body.public-team-page .public-team-showcase-header {
    grid-template-columns: 72px minmax(0, 1fr);
  }

  body.public-team-page .public-team-all-link {
    grid-column: 2;
    width: fit-content;
  }

  body.public-team-page .public-team-carousel-card,
  body.public-team-page .public-team-carousel-card.is-active {
    width: min(680px, 72vw);
  }

  body.public-team-page .public-team-carousel-card.is-previous {
    transform: translateX(-152%) scale(.82);
  }

  body.public-team-page .public-team-carousel-card.is-next {
    transform: translateX(52%) scale(.82);
  }

  body.public-team-page .public-team-arrow.previous { left: 6px; }
  body.public-team-page .public-team-arrow.next { right: 6px; }
}

@media (max-width: 760px) {
  body.public-team-page .public-team-showcase.reference-inner {
    width: min(100% - 20px, 560px);
    padding-top: 8px;
  }

  body.public-team-page .public-team-carousel-section {
    padding: 22px 16px 24px;
    border-radius: 20px;
  }

  body.public-team-page .public-team-showcase-header {
    grid-template-columns: 52px minmax(0, 1fr);
    gap: 13px;
    margin-bottom: 20px;
  }

  body.public-team-page .public-team-hero-icon {
    width: 52px;
    height: 52px;
  }

  body.public-team-page .public-team-hero-icon .lpm-icon {
    width: 28px;
    height: 28px;
  }

  body.public-team-page .public-team-showcase-header h1 {
    font-size: 2rem;
  }

  body.public-team-page .public-team-showcase-header p {
    font-size: .93rem;
    line-height: 1.45;
  }

  body.public-team-page .public-team-all-link {
    grid-column: 1 / -1;
    width: 100%;
    min-height: 46px;
    font-size: .86rem;
  }

  body.public-team-page .public-team-carousel-stage,
  body.public-team-page .public-team-carousel-track {
    min-height: auto;
  }

  body.public-team-page .public-team-carousel-card,
  body.public-team-page .public-team-carousel-card.is-active {
    position: relative;
    left: auto;
    width: 100%;
    min-height: 0;
    padding: 15px;
    grid-template-columns: 1fr;
    gap: 16px;
    transform: none;
  }

  body.public-team-page .public-team-carousel-card.is-previous,
  body.public-team-page .public-team-carousel-card.is-next,
  body.public-team-page .public-team-carousel-card.is-hidden {
    display: none;
  }

  body.public-team-page .public-team-media img,
  body.public-team-page .public-team-media .public-team-avatar,
  body.public-team-page .public-team-carousel-card.has-no-details .public-team-media img,
  body.public-team-page .public-team-carousel-card.has-no-details .public-team-media .public-team-avatar {
    min-height: 245px;
  }

  body.public-team-page .public-team-copy {
    padding: 0;
  }

  body.public-team-page .public-team-copy > strong {
    font-size: 1.72rem;
  }

  body.public-team-page .public-team-details > span {
    grid-template-columns: 40px minmax(0, 1fr);
    gap: 12px;
  }

  body.public-team-page .public-team-details i {
    width: 40px;
    height: 40px;
  }

  body.public-team-page .public-team-arrow {
    top: 128px;
    width: 42px;
    height: 42px;
  }

  body.public-team-page .public-team-arrow.previous { left: -5px; }
  body.public-team-page .public-team-arrow.next { right: -5px; }

  body.public-team-page .public-team-dots {
    margin-top: 14px;
    gap: 10px;
    overflow: visible;
  }

  body.public-team-page .public-team-dots button,
  body.public-team-page .public-team-dots button.active {
    flex: 0 0 auto;
    width: 12px;
    height: 12px;
  }

  body.public-team-page .public-team-values-card {
    grid-template-columns: 48px minmax(0, 1fr);
    padding: 16px;
  }

  body.public-team-page .public-team-values-card img {
    display: none;
  }
}

/* Administration > Membres : surcharge finale effective, aprÃ¨s toutes les rÃ¨gles partagÃ©es. */
@media (min-width: 921px) {
  body.admin-app[data-admin-page="membres"] {
    display: grid;
    grid-template-columns: 226px minmax(0, 1fr);
    min-height: 100vh;
    background: #fdfdff;
  }

  body.admin-app[data-admin-page="membres"] .ap-sidebar {
    width: auto;
    height: 100vh;
    padding: 38px 14px 20px;
    box-sizing: border-box;
    border-right: 1px solid #e7ebf1;
    background: #fff;
    box-shadow: 18px 0 42px rgba(36, 50, 80, .045);
  }

  body.admin-app[data-admin-page="membres"] .ap-sidebar-toggle,
  body.admin-app[data-admin-page="membres"] .ap-sidebar-account,
  body.admin-app[data-admin-page="membres"] .ap-nav-domain h2 {
    display: none;
  }

  body.admin-app[data-admin-page="membres"] .ap-main {
    padding: 34px 32px;
    background: #fbfcff;
  }

  body.admin-app[data-admin-page="membres"] .ap-head {
    min-height: 54px;
    margin: 0 0 44px;
    align-items: start;
  }

  body.admin-app[data-admin-page="membres"] .ap-head .ap-primary {
    min-height: 47px;
    height: 47px;
    padding: 0 20px;
    font-size: .88rem;
  }

  body.admin-app[data-admin-page="membres"] .ap-members-page {
    gap: 28px;
  }

  body.admin-app[data-admin-page="membres"] .ap-members-stats {
    gap: 26px;
  }

  body.admin-app[data-admin-page="membres"] .ap-members-kpi {
    min-height: 132px;
    height: 132px;
    padding: 18px 22px;
    grid-template-columns: 58px minmax(0, 1fr);
    gap: 14px;
    border-radius: 13px;
  }

  body.admin-app[data-admin-page="membres"] .ap-members-kpi > span {
    width: 56px;
    height: 56px;
  }

  body.admin-app[data-admin-page="membres"] .ap-members-kpi strong {
    font-size: 2rem;
  }

  body.admin-app[data-admin-page="membres"] .ap-members-kpi p {
    margin: 0 0 8px;
    font-size: .94rem;
  }

  body.admin-app[data-admin-page="membres"] .ap-members-kpi small {
    font-size: .86rem;
  }

  body.admin-app[data-admin-page="membres"] .ap-members-toolbar {
    grid-template-columns: minmax(320px, 1.7fr) repeat(3, minmax(145px, .72fr)) minmax(130px, .55fr);
    gap: 22px;
  }

  body.admin-app[data-admin-page="membres"] .ap-members-toolbar .lpm-search-field,
  body.admin-app[data-admin-page="membres"] .ap-members-toolbar select,
  body.admin-app[data-admin-page="membres"] .ap-members-toolbar button {
    min-height: 49px;
    height: 49px;
    font-size: .86rem;
  }

  body.admin-app[data-admin-page="membres"] .ap-members-table-card > header {
    padding: 0;
  }

  body.admin-app[data-admin-page="membres"] .ap-members-table-card > header h2 {
    display: none;
  }

  body.admin-app[data-admin-page="membres"] .ap-members-table th,
  body.admin-app[data-admin-page="membres"] .ap-members-table td {
    padding: 13px 16px;
    font-size: .86rem;
  }

  body.admin-app[data-admin-page="membres"] .ap-members-table tbody tr {
    height: 72px;
  }

  body.admin-app[data-admin-page="membres"] .ap-member-avatar,
  body.admin-app[data-admin-page="membres"] .ap-member-avatar img,
  body.admin-app[data-admin-page="membres"] .ap-member-avatar > span {
    width: 40px;
    height: 40px;
  }

  body.admin-app[data-admin-page="membres"] .ap-member-cell {
    grid-template-columns: 40px minmax(0, 1fr);
    gap: 14px;
  }

  body.admin-app[data-admin-page="membres"] .ap-member-actions > button,
  body.admin-app[data-admin-page="membres"] .ap-member-actions summary {
    width: 38px !important;
    height: 38px !important;
  }
}

/* Administration > Equipe : route active remapee sur la maquette Membres. */
@media (min-width: 921px) {
  body.admin-app[data-admin-page="equipe"] {
    display: grid;
    grid-template-columns: 226px minmax(0, 1fr);
    min-height: 100vh;
    background: #fdfdff;
  }

  body.admin-app[data-admin-page="equipe"] .ap-sidebar {
    width: auto;
    height: 100vh;
    padding: 38px 14px 20px;
    box-sizing: border-box;
    border-right: 1px solid #e7ebf1;
    background: #fff;
    box-shadow: 18px 0 42px rgba(36, 50, 80, .045);
  }

  body.admin-app[data-admin-page="equipe"] .ap-sidebar-toggle,
  body.admin-app[data-admin-page="equipe"] .ap-sidebar-account,
  body.admin-app[data-admin-page="equipe"] .ap-nav-domain h2 {
    display: none;
  }

  body.admin-app[data-admin-page="equipe"] .ap-main { padding: 34px 32px; background: #fbfcff; }
  body.admin-app[data-admin-page="equipe"] .ap-head { min-height: 54px; margin: 0 0 44px; align-items: start; }
  body.admin-app[data-admin-page="equipe"] .ap-head .ap-primary { min-height: 47px; height: 47px; padding: 0 20px; font-size: .88rem; }
  body.admin-app[data-admin-page="equipe"] .ap-members-page { gap: 28px; }
  body.admin-app[data-admin-page="equipe"] .ap-members-stats { gap: 26px; }
  body.admin-app[data-admin-page="equipe"] .ap-members-kpi { min-height: 132px; height: 132px; padding: 18px 22px; grid-template-columns: 58px minmax(0, 1fr); gap: 14px; border-radius: 13px; }
  body.admin-app[data-admin-page="equipe"] .ap-members-kpi > span { width: 56px; height: 56px; }
  body.admin-app[data-admin-page="equipe"] .ap-members-kpi strong { font-size: 2rem; }
  body.admin-app[data-admin-page="equipe"] .ap-members-kpi p { margin: 0 0 8px; font-size: .94rem; }
  body.admin-app[data-admin-page="equipe"] .ap-members-kpi small { font-size: .86rem; }
  body.admin-app[data-admin-page="equipe"] .ap-members-toolbar { grid-template-columns: minmax(320px, 1.7fr) repeat(3, minmax(145px, .72fr)) minmax(130px, .55fr); gap: 22px; }
  body.admin-app[data-admin-page="equipe"] .ap-members-toolbar .lpm-search-field,
  body.admin-app[data-admin-page="equipe"] .ap-members-toolbar select,
  body.admin-app[data-admin-page="equipe"] .ap-members-toolbar button { min-height: 49px; height: 49px; font-size: .86rem; }
  body.admin-app[data-admin-page="equipe"] .ap-members-table-card > header { padding: 0; }
  body.admin-app[data-admin-page="equipe"] .ap-members-table-card > header h2 { display: none; }
  body.admin-app[data-admin-page="equipe"] .ap-members-table th,
  body.admin-app[data-admin-page="equipe"] .ap-members-table td { padding: 13px 16px; font-size: .86rem; }
  body.admin-app[data-admin-page="equipe"] .ap-members-table tbody tr { height: 72px; }
  body.admin-app[data-admin-page="equipe"] .ap-member-avatar,
  body.admin-app[data-admin-page="equipe"] .ap-member-avatar img,
  body.admin-app[data-admin-page="equipe"] .ap-member-avatar > span { width: 40px; height: 40px; }
  body.admin-app[data-admin-page="equipe"] .ap-member-cell { grid-template-columns: 40px minmax(0, 1fr); gap: 14px; }
  body.admin-app[data-admin-page="equipe"] .ap-member-actions > button,
  body.admin-app[data-admin-page="equipe"] .ap-member-actions summary { width: 38px !important; height: 38px !important; }
}

/* Administration > Equipe : finitions maquette page Membres. */
body.admin-app[data-admin-page="equipe"] .ap-top {
  display: none !important;
}

body.admin-app[data-admin-page="equipe"] .ap-main {
  padding-top: 32px !important;
}

body.admin-app[data-admin-page="equipe"] .ap-head {
  margin: 0 0 28px !important;
  align-items: flex-start !important;
}

body.admin-app[data-admin-page="equipe"] .ap-head h1 {
  display: block !important;
  margin: 0 0 8px !important;
  min-height: 30px;
  color: #081b45 !important;
  font-size: 1.78rem !important;
  line-height: 1 !important;
  letter-spacing: 0 !important;
  -webkit-text-fill-color: currentColor !important;
}

body.admin-app[data-admin-page="equipe"] .ap-head h1 .lpm-title-accent {
  display: inline-block !important;
  color: inherit !important;
  font-style: normal !important;
}

body.admin-app[data-admin-page="equipe"] .ap-head h1::after {
  display: none !important;
}

body.admin-app[data-admin-page="equipe"] .ap-head p {
  max-width: none !important;
  color: #284164 !important;
  font-size: .9rem !important;
  font-weight: 700 !important;
}

body.admin-app[data-admin-page="equipe"] .ap-head .ap-primary {
  min-height: 38px !important;
  height: 38px !important;
  padding: 0 16px !important;
  border-radius: 7px !important;
  background: linear-gradient(100deg, #6c3bd8, #7d4be1) !important;
  box-shadow: 0 8px 16px rgba(109, 61, 214, .14) !important;
  font-size: .8rem !important;
}

body.admin-app[data-admin-page="equipe"] .ap-head .ap-primary .lpm-icon {
  width: 16px !important;
  height: 16px !important;
}

body.admin-app[data-admin-page="equipe"] .ap-members-page {
  gap: 18px !important;
}

body.admin-app[data-admin-page="equipe"] .ap-members-table-card > header {
  display: none !important;
}

/* Page publique Equipe : carrousel plus compact sans changer les donnees. */
body.public-team-page .public-team-showcase.reference-inner {
  padding-top: 18px;
}

body.public-team-page .public-team-carousel-section {
  padding-bottom: 22px;
}

body.public-team-page .public-team-showcase-header {
  margin-bottom: 24px;
}

body.public-team-page .public-team-carousel-stage,
body.public-team-page .public-team-carousel-track {
  min-height: 372px !important;
}

body.public-team-page .public-team-carousel-card,
body.public-team-page .public-team-carousel-card.is-active {
  width: min(575px, 46vw) !important;
  max-width: calc(100vw - 260px) !important;
  min-height: 330px !important;
  padding: 14px !important;
  grid-template-columns: minmax(190px, 38%) minmax(0, 1fr) !important;
  gap: 20px !important;
  border-radius: 15px !important;
  box-shadow: 0 14px 34px rgba(24, 38, 70, .085) !important;
}

body.public-team-page .public-team-carousel-card.is-active.has-no-details,
body.public-team-page .public-team-carousel-card.is-active.is-sparse {
  min-height: 292px !important;
  grid-template-columns: minmax(176px, 36%) minmax(0, 1fr) !important;
}

body.public-team-page .public-team-media,
body.public-team-page .public-team-media img,
body.public-team-page .public-team-media .public-team-avatar {
  border-radius: 12px !important;
}

body.public-team-page .public-team-media img,
body.public-team-page .public-team-media .public-team-avatar {
  min-height: 278px !important;
  max-height: 302px !important;
  object-fit: cover !important;
}

body.public-team-page .public-team-carousel-card.has-no-details .public-team-media img,
body.public-team-page .public-team-carousel-card.has-no-details .public-team-media .public-team-avatar,
body.public-team-page .public-team-carousel-card.is-sparse .public-team-media img,
body.public-team-page .public-team-carousel-card.is-sparse .public-team-media .public-team-avatar {
  min-height: 238px !important;
  max-height: 258px !important;
}

body.public-team-page .public-team-media .public-team-avatar {
  font-size: clamp(1.45rem, 2.1vw, 2rem) !important;
}

body.public-team-page .public-team-photo-mark {
  right: 8px !important;
  bottom: 8px !important;
  width: 40px !important;
  height: 40px !important;
  box-shadow: 0 8px 18px rgba(95, 67, 154, .16) !important;
}

body.public-team-page .public-team-photo-mark .lpm-icon {
  width: 19px !important;
  height: 19px !important;
}

body.public-team-page .public-team-copy {
  padding: 6px 4px 6px 0 !important;
  gap: 9px !important;
}

body.public-team-page .public-team-copy > small {
  font-size: .74rem !important;
  letter-spacing: .08em !important;
}

body.public-team-page .public-team-copy > small::after {
  width: 6px !important;
  height: 6px !important;
  margin-left: 7px !important;
}

body.public-team-page .public-team-copy > strong {
  font-size: clamp(1.62rem, 2vw, 1.96rem) !important;
  line-height: 1.05 !important;
}

body.public-team-page .public-team-bio {
  max-width: 315px !important;
  font-size: .9rem !important;
  line-height: 1.45 !important;
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 4;
}

body.public-team-page .public-team-details {
  gap: 10px !important;
  margin-top: 0 !important;
}

body.public-team-page .public-team-details > span {
  grid-template-columns: 34px minmax(0, 1fr) !important;
  gap: 10px !important;
}

body.public-team-page .public-team-details i {
  width: 34px !important;
  height: 34px !important;
}

body.public-team-page .public-team-details i .lpm-icon {
  width: 17px !important;
  height: 17px !important;
}

body.public-team-page .public-team-details b {
  font-size: .78rem !important;
}

body.public-team-page .public-team-details em {
  font-size: .78rem !important;
  line-height: 1.32 !important;
}

body.public-team-page .public-team-carousel-card.is-previous,
body.public-team-page .public-team-carousel-card.is-next {
  width: clamp(178px, 15vw, 225px) !important;
  min-height: 278px !important;
  padding: 12px !important;
  opacity: .62 !important;
  border-radius: 14px !important;
  box-shadow: 0 10px 24px rgba(32, 46, 75, .055) !important;
}

body.public-team-page .public-team-carousel-card.is-previous {
  transform: translateX(calc(-50% - min(24vw, 360px))) scale(.78) !important;
}

body.public-team-page .public-team-carousel-card.is-next {
  transform: translateX(calc(-50% + min(24vw, 360px))) scale(.78) !important;
}

body.public-team-page .public-team-carousel-card.is-previous .public-team-media,
body.public-team-page .public-team-carousel-card.is-next .public-team-media,
body.public-team-page .public-team-carousel-card.is-previous .public-team-media img,
body.public-team-page .public-team-carousel-card.is-next .public-team-media img,
body.public-team-page .public-team-carousel-card.is-previous .public-team-media .public-team-avatar,
body.public-team-page .public-team-carousel-card.is-next .public-team-media .public-team-avatar {
  min-height: 142px !important;
  max-height: 158px !important;
}

body.public-team-page .public-team-carousel-card.is-previous .public-team-copy,
body.public-team-page .public-team-carousel-card.is-next .public-team-copy {
  padding: 10px 0 0 !important;
  gap: 5px !important;
}

body.public-team-page .public-team-carousel-card.is-previous .public-team-copy > strong,
body.public-team-page .public-team-carousel-card.is-next .public-team-copy > strong {
  font-size: 1rem !important;
}

body.public-team-page .public-team-carousel-card.is-previous .public-team-bio,
body.public-team-page .public-team-carousel-card.is-next .public-team-bio {
  font-size: .7rem !important;
  -webkit-line-clamp: 2 !important;
}

body.public-team-page .public-team-arrow {
  width: 42px !important;
  height: 42px !important;
  box-shadow: 0 8px 18px rgba(20, 39, 75, .11) !important;
}

body.public-team-page .public-team-arrow.previous {
  left: calc(50% - min(25vw, 360px)) !important;
}

body.public-team-page .public-team-arrow.next {
  right: calc(50% - min(25vw, 360px)) !important;
}

body.public-team-page .public-team-arrow .lpm-icon {
  width: 21px !important;
  height: 21px !important;
}

body.public-team-page .public-team-dots {
  margin-top: -8px !important;
  gap: 9px !important;
}

body.public-team-page .public-team-dots button,
body.public-team-page .public-team-dots button.active {
  width: 8px !important;
  height: 8px !important;
}

body.public-team-page .public-team-carousel-hint {
  display: none !important;
}

body.public-team-page .public-team-values-card {
  margin-top: 14px !important;
}

@media (max-width: 1180px) {
  body.public-team-page .public-team-carousel-card,
  body.public-team-page .public-team-carousel-card.is-active {
    width: min(540px, 66vw) !important;
    max-width: calc(100vw - 140px) !important;
  }

  body.public-team-page .public-team-carousel-card.is-previous {
    transform: translateX(-132%) scale(.74) !important;
  }

  body.public-team-page .public-team-carousel-card.is-next {
    transform: translateX(32%) scale(.74) !important;
  }

  body.public-team-page .public-team-arrow.previous { left: 16px !important; }
  body.public-team-page .public-team-arrow.next { right: 16px !important; }
}

@media (max-width: 760px) {
  body.public-team-page .public-team-showcase.reference-inner {
    padding-top: 6px !important;
  }

  body.public-team-page .public-team-carousel-section {
    padding: 18px 14px 18px !important;
  }

  body.public-team-page .public-team-showcase-header {
    margin-bottom: 16px !important;
  }

  body.public-team-page .public-team-carousel-card,
  body.public-team-page .public-team-carousel-card.is-active {
    width: 100% !important;
    max-width: 100% !important;
    min-height: 0 !important;
    padding: 12px !important;
    gap: 12px !important;
  }

  body.public-team-page .public-team-media img,
  body.public-team-page .public-team-media .public-team-avatar,
  body.public-team-page .public-team-carousel-card.has-no-details .public-team-media img,
  body.public-team-page .public-team-carousel-card.has-no-details .public-team-media .public-team-avatar,
  body.public-team-page .public-team-carousel-card.is-sparse .public-team-media img,
  body.public-team-page .public-team-carousel-card.is-sparse .public-team-media .public-team-avatar {
    min-height: 172px !important;
    max-height: 204px !important;
  }

  body.public-team-page .public-team-copy {
    gap: 7px !important;
  }

  body.public-team-page .public-team-copy > strong {
    font-size: 1.42rem !important;
  }

  body.public-team-page .public-team-bio {
    max-width: none !important;
    font-size: .86rem !important;
    -webkit-line-clamp: 3 !important;
  }

  body.public-team-page .public-team-arrow {
    top: 98px !important;
    width: 36px !important;
    height: 36px !important;
  }

  body.public-team-page .public-team-arrow.previous { left: -2px !important; }
  body.public-team-page .public-team-arrow.next { right: -2px !important; }

  body.public-team-page .public-team-dots {
    margin-top: 8px !important;
    gap: 8px !important;
  }

  body.public-team-page .public-team-dots button,
  body.public-team-page .public-team-dots button.active {
    width: 8px !important;
    height: 8px !important;
  }

  body.public-team-page .public-team-values-card {
    margin-top: 12px !important;
  }
}

/* Page publique Equipe : cartes laterales en apercu discret. */
body.public-team-page .public-team-carousel-stage {
  overflow: hidden !important;
}

body.public-team-page .public-team-carousel-card.is-previous,
body.public-team-page .public-team-carousel-card.is-next {
  min-height: 0 !important;
  height: 230px !important;
  max-height: 230px !important;
  overflow: hidden !important;
  grid-template-columns: 1fr !important;
  align-content: stretch !important;
}

body.public-team-page .public-team-carousel-card.is-previous .public-team-media,
body.public-team-page .public-team-carousel-card.is-next .public-team-media,
body.public-team-page .public-team-carousel-card.is-previous .public-team-media img,
body.public-team-page .public-team-carousel-card.is-next .public-team-media img,
body.public-team-page .public-team-carousel-card.is-previous .public-team-media .public-team-avatar,
body.public-team-page .public-team-carousel-card.is-next .public-team-media .public-team-avatar {
  width: 100% !important;
  min-height: 152px !important;
  height: 152px !important;
  max-height: 152px !important;
}

body.public-team-page .public-team-carousel-card.is-previous .public-team-copy,
body.public-team-page .public-team-carousel-card.is-next .public-team-copy {
  display: grid !important;
  padding: 9px 2px 0 !important;
  gap: 4px !important;
  text-align: center !important;
}

body.public-team-page .public-team-carousel-card.is-previous .public-team-copy > small,
body.public-team-page .public-team-carousel-card.is-next .public-team-copy > small {
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  font-size: .62rem !important;
  letter-spacing: .03em !important;
}

body.public-team-page .public-team-carousel-card.is-previous .public-team-copy > small::after,
body.public-team-page .public-team-carousel-card.is-next .public-team-copy > small::after {
  display: none !important;
}

body.public-team-page .public-team-carousel-card.is-previous .public-team-copy > strong,
body.public-team-page .public-team-carousel-card.is-next .public-team-copy > strong {
  display: block !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  font-size: .88rem !important;
  line-height: 1.1 !important;
}

body.public-team-page .public-team-carousel-card.is-previous .public-team-bio,
body.public-team-page .public-team-carousel-card.is-next .public-team-bio {
  display: none !important;
}

body.public-team-page .public-team-values-card {
  position: relative;
  z-index: 2;
  margin-top: 18px !important;
}

@media (max-width: 760px) {
  body.public-team-page .public-team-carousel-stage {
    overflow: visible !important;
  }
}

/* Page publique Equipe : ajustement final largeur et textes du carrousel. */
body.public-team-page .public-team-carousel-card,
body.public-team-page .public-team-carousel-card.is-active {
  width: min(505px, 41vw) !important;
  max-width: calc(100vw - 330px) !important;
  grid-template-columns: 207px minmax(0, 1fr) !important;
  gap: 16px !important;
}

body.public-team-page .public-team-carousel-card.is-active.has-no-details,
body.public-team-page .public-team-carousel-card.is-active.is-sparse {
  grid-template-columns: 207px minmax(0, 1fr) !important;
}

body.public-team-page .public-team-copy {
  padding: 7px 2px 6px 0 !important;
  gap: 7px !important;
}

body.public-team-page .public-team-copy > small {
  font-size: .68rem !important;
  letter-spacing: .07em !important;
}

body.public-team-page .public-team-copy > strong {
  font-size: clamp(1.45rem, 1.75vw, 1.72rem) !important;
  line-height: 1.04 !important;
}

body.public-team-page .public-team-bio {
  max-width: 255px !important;
  font-size: .82rem !important;
  line-height: 1.38 !important;
  -webkit-line-clamp: 4 !important;
}

body.public-team-page .public-team-details {
  gap: 8px !important;
}

body.public-team-page .public-team-details > span {
  grid-template-columns: 30px minmax(0, 1fr) !important;
  gap: 8px !important;
}

body.public-team-page .public-team-details i {
  width: 30px !important;
  height: 30px !important;
}

body.public-team-page .public-team-details i .lpm-icon {
  width: 15px !important;
  height: 15px !important;
}

body.public-team-page .public-team-details b {
  font-size: .72rem !important;
}

body.public-team-page .public-team-details em {
  font-size: .72rem !important;
  line-height: 1.28 !important;
}

body.public-team-page .public-team-carousel-card.is-previous,
body.public-team-page .public-team-carousel-card.is-next {
  width: clamp(158px, 13vw, 195px) !important;
}

body.public-team-page .public-team-carousel-card.is-previous {
  transform: translateX(calc(-50% - min(21vw, 315px))) scale(.78) !important;
}

body.public-team-page .public-team-carousel-card.is-next {
  transform: translateX(calc(-50% + min(21vw, 315px))) scale(.78) !important;
}

body.public-team-page .public-team-arrow.previous {
  left: calc(50% - min(22vw, 315px)) !important;
}

body.public-team-page .public-team-arrow.next {
  right: calc(50% - min(22vw, 315px)) !important;
}

@media (max-width: 1180px) {
  body.public-team-page .public-team-carousel-card,
  body.public-team-page .public-team-carousel-card.is-active {
    width: min(500px, 64vw) !important;
    max-width: calc(100vw - 130px) !important;
    grid-template-columns: minmax(190px, 41%) minmax(0, 1fr) !important;
  }

  body.public-team-page .public-team-arrow.previous { left: 18px !important; }
  body.public-team-page .public-team-arrow.next { right: 18px !important; }
}

@media (max-width: 760px) {
  body.public-team-page .public-team-carousel-card,
  body.public-team-page .public-team-carousel-card.is-active {
    width: 100% !important;
    max-width: 100% !important;
    grid-template-columns: 1fr !important;
  }

  body.public-team-page .public-team-copy > small {
    font-size: .68rem !important;
  }

  body.public-team-page .public-team-copy > strong {
    font-size: 1.28rem !important;
  }

  body.public-team-page .public-team-bio {
    font-size: .8rem !important;
    line-height: 1.34 !important;
  }
}

/* Page publique Equipe : conserver la taille photo mobile validee. */
@media (max-width: 760px) {
  body.public-team-page .public-team-media img,
  body.public-team-page .public-team-media .public-team-avatar,
  body.public-team-page .public-team-carousel-card.has-no-details .public-team-media img,
  body.public-team-page .public-team-carousel-card.has-no-details .public-team-media .public-team-avatar,
  body.public-team-page .public-team-carousel-card.is-sparse .public-team-media img,
  body.public-team-page .public-team-carousel-card.is-sparse .public-team-media .public-team-avatar {
    min-height: 204px !important;
    max-height: 204px !important;
  }
}

/* Page publique Equipe : header sans CTA et bloc engagement allégé. */
body.public-team-page .public-team-showcase-header {
  width: min(720px, 100%) !important;
  margin-right: auto !important;
  margin-left: auto !important;
  grid-template-columns: 56px minmax(0, 1fr) !important;
  justify-content: center !important;
  text-align: center !important;
}

body.public-team-page .public-team-hero-icon {
  width: 56px !important;
  height: 56px !important;
  justify-self: end !important;
}

body.public-team-page .public-team-hero-icon .lpm-icon {
  width: 30px !important;
  height: 30px !important;
}

body.public-team-page .public-team-showcase-header > div {
  justify-self: start !important;
  text-align: left !important;
}

body.public-team-page .public-team-all-link {
  display: none !important;
}

body.public-team-page .public-team-values-card {
  min-height: 0 !important;
  height: auto !important;
  margin-top: 10px !important;
  padding: 10px 18px !important;
  grid-template-columns: 42px minmax(0, 1fr) 112px !important;
  gap: 12px !important;
  align-items: center !important;
  border-radius: 12px !important;
}

body.public-team-page .public-team-values-card > span {
  width: 42px !important;
  height: 42px !important;
}

body.public-team-page .public-team-values-card > span .lpm-icon {
  width: 21px !important;
  height: 21px !important;
}

body.public-team-page .public-team-values-card h2 {
  margin: 0 0 2px !important;
  font-size: 1.05rem !important;
  line-height: 1.12 !important;
}

body.public-team-page .public-team-values-card p {
  margin: 0 !important;
  font-size: .82rem !important;
  line-height: 1.3 !important;
}

body.public-team-page .public-team-values-card img {
  width: 112px !important;
  height: 56px !important;
  max-height: 56px !important;
  object-fit: cover !important;
  border-radius: 10px !important;
}

@media (max-width: 760px) {
  body.public-team-page .public-team-showcase-header {
    width: 100% !important;
    grid-template-columns: 46px minmax(0, 1fr) !important;
    gap: 10px !important;
    text-align: left !important;
  }

  body.public-team-page .public-team-hero-icon {
    width: 46px !important;
    height: 46px !important;
  }

  body.public-team-page .public-team-hero-icon .lpm-icon {
    width: 25px !important;
    height: 25px !important;
  }

  body.public-team-page .public-team-values-card {
    padding: 13px 14px !important;
    grid-template-columns: 38px minmax(0, 1fr) !important;
    gap: 11px !important;
    text-align: left !important;
  }

  body.public-team-page .public-team-values-card > span {
    width: 38px !important;
    height: 38px !important;
  }

  body.public-team-page .public-team-values-card h2 {
    font-size: 1rem !important;
  }

  body.public-team-page .public-team-values-card p {
    font-size: .8rem !important;
    line-height: 1.32 !important;
  }

  body.public-team-page .public-team-values-card img {
    display: none !important;
  }
}

/* Page publique Equipe : hero aligne sur la structure Les espaces. */
body.public-team-page .reference-page-hero {
  min-height: 315px !important;
  padding: 25px 52px 18px !important;
  grid-template-columns: 340px minmax(0, 1fr) !important;
  gap: 50px !important;
  align-items: center !important;
}

body.public-team-page .reference-page-hero > div {
  max-width: 340px !important;
  text-align: left !important;
}

body.public-team-page .reference-page-hero .reference-breadcrumb {
  margin: 0 0 18px !important;
  color: #18365e !important;
  font-size: .64rem !important;
  font-weight: 800 !important;
}

body.public-team-page .reference-page-hero h1 {
  margin: 0 0 14px !important;
  color: var(--public-navy) !important;
  font-size: 3.2rem !important;
  line-height: .98 !important;
}

body.public-team-page .reference-page-hero > div > strong {
  display: block !important;
  margin: 0 0 15px !important;
  color: var(--public-pink) !important;
  font-family: Georgia, "Times New Roman", serif !important;
  font-size: 1.15rem !important;
  font-style: italic !important;
  font-weight: 700 !important;
  line-height: 1.45 !important;
}

body.public-team-page .reference-page-hero p:not(.reference-breadcrumb) {
  max-width: 340px !important;
  margin: 0 !important;
  color: #17365e !important;
  font-size: .68rem !important;
  line-height: 1.7 !important;
}

body.public-team-page .reference-page-hero > img {
  width: 100% !important;
  height: 263px !important;
  min-height: 0 !important;
  padding: 0 !important;
  object-fit: cover !important;
  object-position: center !important;
  border-radius: 48% 52% 46% 54% / 55% 45% 55% 45% !important;
}

body.public-team-page .reference-page-hero + .reference-page-section,
body.public-team-page .public-team-carousel-section {
  padding-top: 10px !important;
}

@media (max-width: 920px) {
  body.public-team-page .reference-page-hero {
    grid-template-columns: 1fr !important;
    padding: 40px 34px 24px !important;
    gap: 25px !important;
  }

  body.public-team-page .reference-page-hero > div {
    max-width: none !important;
  }
}

@media (max-width: 760px) {
  body.public-team-page .reference-page-hero {
    padding: 34px 20px 20px !important;
  }

  body.public-team-page .reference-page-hero h1 {
    font-size: 2.5rem !important;
  }

  body.public-team-page .reference-page-hero > img {
    height: 210px !important;
  }
}

/* Page publique Equipe : direction visuelle maquette avec illustration douce. */
body.public-team-page .public-team-showcase {
  position: relative;
}

body.public-team-page .public-team-showcase::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background-image:
    radial-gradient(circle at 10% 16%, rgba(255, 210, 88, .22) 0 4px, transparent 5px),
    radial-gradient(circle at 27% 28%, rgba(127, 211, 171, .16) 0 4px, transparent 5px),
    radial-gradient(circle at 58% 18%, rgba(246, 101, 151, .12) 0 4px, transparent 5px),
    radial-gradient(circle at 86% 28%, rgba(127, 211, 171, .14) 0 4px, transparent 5px),
    radial-gradient(circle at 91% 64%, rgba(255, 210, 88, .18) 0 4px, transparent 5px);
}

body.public-team-page .reference-page-hero {
  min-height: 300px !important;
  padding: 28px 58px 12px !important;
  grid-template-columns: minmax(320px, 360px) minmax(360px, 1fr) !important;
  gap: 44px !important;
  overflow: visible !important;
}

body.public-team-page .reference-page-hero > div {
  align-self: center !important;
}

body.public-team-page .reference-page-hero h1 {
  font-size: 3.05rem !important;
}

body.public-team-page .reference-page-hero > div > strong {
  max-width: 330px !important;
}

body.public-team-page .public-team-illustration {
  position: relative;
  width: min(100%, 520px);
  height: 252px;
  justify-self: center;
  align-self: center;
  border-radius: 28px;
  background:
    radial-gradient(circle at 25% 76%, rgba(124, 211, 170, .2), transparent 26%),
    radial-gradient(circle at 79% 20%, rgba(255, 213, 102, .2), transparent 24%),
    linear-gradient(135deg, rgba(255, 243, 248, .88), rgba(244, 251, 247, .82));
  box-shadow: inset 0 0 0 1px rgba(227, 217, 246, .64), 0 18px 44px rgba(67, 58, 100, .07);
}

body.public-team-page .public-team-illustration::before,
body.public-team-page .public-team-illustration::after {
  content: "";
  position: absolute;
  border-radius: 999px;
  pointer-events: none;
}

body.public-team-page .public-team-illustration::before {
  width: 270px;
  height: 118px;
  right: 42px;
  bottom: 26px;
  background: rgba(255, 255, 255, .72);
  border: 1px solid rgba(218, 205, 243, .72);
}

body.public-team-page .public-team-illustration::after {
  width: 72px;
  height: 72px;
  left: 38px;
  top: 32px;
  background: rgba(238, 229, 255, .86);
}

body.public-team-page .team-blob,
body.public-team-page .team-figure,
body.public-team-page .team-chat {
  position: absolute;
  display: block;
}

body.public-team-page .team-blob {
  border-radius: 999px;
  opacity: .9;
}

body.public-team-page .team-blob-pink { width: 72px; height: 72px; right: 76px; top: 28px; background: #ffddea; }
body.public-team-page .team-blob-green { width: 92px; height: 44px; left: 82px; bottom: 36px; background: #dff5e8; }
body.public-team-page .team-blob-yellow { width: 38px; height: 38px; right: 34px; bottom: 74px; background: #fff0b8; }

body.public-team-page .team-figure {
  z-index: 2;
  width: 72px;
  height: 132px;
  bottom: 48px;
}

body.public-team-page .team-figure i,
body.public-team-page .team-figure b {
  position: absolute;
  display: block;
}

body.public-team-page .team-figure i {
  left: 50%;
  top: 0;
  width: 42px;
  height: 42px;
  transform: translateX(-50%);
  border: 4px solid #15345f;
  border-radius: 50%;
  background: #fff7df;
}

body.public-team-page .team-figure b {
  left: 50%;
  bottom: 0;
  width: 68px;
  height: 86px;
  transform: translateX(-50%);
  border: 4px solid #15345f;
  border-bottom: 0;
  border-radius: 32px 32px 10px 10px;
  background: #ffffff;
}

body.public-team-page .team-figure-left { left: 150px; }
body.public-team-page .team-figure-center { left: 224px; bottom: 58px; transform: scale(1.08); }
body.public-team-page .team-figure-right { left: 306px; }
body.public-team-page .team-figure-left b { background: #ffe7ef; }
body.public-team-page .team-figure-center b { background: #e8f7ee; }
body.public-team-page .team-figure-right b { background: #fff1bd; }

body.public-team-page .team-chat {
  z-index: 3;
  width: 56px;
  height: 36px;
  border: 3px solid #7e56e8;
  border-radius: 18px 18px 18px 6px;
  background: rgba(255, 255, 255, .86);
}

body.public-team-page .team-chat-left { left: 108px; top: 64px; }
body.public-team-page .team-chat-right { right: 112px; top: 92px; border-color: #f16394; transform: scaleX(-1); }

body.public-team-page .public-team-carousel-section {
  margin-top: 0 !important;
  padding-top: 8px !important;
}

body.public-team-page .public-team-final-note {
  max-width: 660px;
  margin: 18px auto 0;
  color: #4f5f78;
  font-size: .88rem;
  font-weight: 800;
  line-height: 1.55;
  text-align: center;
}

@media (max-width: 920px) {
  body.public-team-page .reference-page-hero {
    grid-template-columns: 1fr !important;
  }

  body.public-team-page .public-team-illustration {
    width: min(100%, 500px);
  }
}

@media (max-width: 760px) {
  body.public-team-page .reference-page-hero {
    padding-top: 26px !important;
  }

  body.public-team-page .reference-page-hero h1 {
    font-size: 2.5rem !important;
  }

  body.public-team-page .public-team-illustration {
    height: 178px;
    border-radius: 22px;
  }

  body.public-team-page .team-figure {
    bottom: 30px;
    transform: scale(.72);
    transform-origin: bottom center;
  }

  body.public-team-page .team-figure-left { left: 84px; }
  body.public-team-page .team-figure-center { left: 145px; bottom: 36px; transform: scale(.78); }
  body.public-team-page .team-figure-right { left: 212px; }
  body.public-team-page .team-chat-left { left: 42px; top: 42px; transform: scale(.72); }
  body.public-team-page .team-chat-right { right: 38px; top: 52px; transform: scaleX(-1) scale(.72); }
  body.public-team-page .public-team-final-note { margin-top: 14px; padding: 0 10px; font-size: .8rem; }
}

/* Page publique Equipe : illustration contenue dans son bloc. */
body.public-team-page .public-team-illustration {
  width: 520px !important;
  max-width: 100% !important;
  overflow: hidden !important;
}

body.public-team-page .public-team-illustration::before {
  right: 56px !important;
}

body.public-team-page .team-figure-left { left: 176px !important; }
body.public-team-page .team-figure-center { left: 252px !important; }
body.public-team-page .team-figure-right { left: 334px !important; }
body.public-team-page .team-chat-left { left: 118px !important; }
body.public-team-page .team-chat-right { right: 70px !important; }

@media (max-width: 760px) {
  body.public-team-page .public-team-illustration {
    width: 100% !important;
  }

  body.public-team-page .team-figure-left { left: 86px !important; }
  body.public-team-page .team-figure-center { left: 148px !important; }
  body.public-team-page .team-figure-right { left: 216px !important; }
  body.public-team-page .team-chat-left { left: 48px !important; }
  body.public-team-page .team-chat-right { right: 42px !important; }
}

/* Page publique Equipe : garder tous les personnages visibles dans l'illustration. */
body.public-team-page .team-figure-left { left: 152px !important; }
body.public-team-page .team-figure-center { left: 226px !important; }
body.public-team-page .team-figure-right { left: 304px !important; }
body.public-team-page .team-chat-right { right: 96px !important; }

/* Page publique Equipe : illustration calibree pour la colonne hero desktop. */
body.public-team-page .public-team-illustration::before {
  width: 210px !important;
  right: 54px !important;
}

body.public-team-page .team-blob-pink { right: 72px !important; }
body.public-team-page .team-blob-green { left: 84px !important; }
body.public-team-page .team-figure-left { left: 108px !important; }
body.public-team-page .team-figure-center { left: 176px !important; }
body.public-team-page .team-figure-right { left: 246px !important; }
body.public-team-page .team-chat-left { left: 94px !important; }
body.public-team-page .team-chat-right { right: 54px !important; }

@media (max-width: 760px) {
  body.public-team-page .team-figure-left { left: 86px !important; }
  body.public-team-page .team-figure-center { left: 148px !important; }
  body.public-team-page .team-figure-right { left: 216px !important; }
}

/* Page publique Equipe : illustration hero issue de la maquette, sans icone encadree. */
body.public-team-page .reference-page-hero > img.public-team-hero-illustration {
  width: min(100%, 610px) !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: 310px !important;
  padding: 0 !important;
  justify-self: end !important;
  object-fit: contain !important;
  object-position: center !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.public-team-page .public-team-illustration {
  display: none !important;
}

@media (max-width: 920px) {
  body.public-team-page .reference-page-hero > img.public-team-hero-illustration {
    width: min(100%, 560px) !important;
    justify-self: center !important;
  }
}

@media (max-width: 760px) {
  body.public-team-page .reference-page-hero > img.public-team-hero-illustration {
    width: 100% !important;
    max-height: 220px !important;
  }
}

/* Page publique Equipe : fondre la zone carrousel dans le fond general. */
body.public-team-page .public-team-carousel-section,
body.public-team-page .reference-page-hero + .reference-page-section.public-team-carousel-section {
  width: 100% !important;
  margin-top: 0 !important;
  padding: 0 0 28px !important;
  overflow: visible !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.public-team-page .public-team-carousel-root.reference-team-grid {
  width: min(100% - 72px, 1180px) !important;
  margin: 0 auto !important;
}

body.public-team-page .public-team-values-card {
  width: min(100% - 72px, 1318px) !important;
  margin: 6px auto 0 !important;
}

body.public-team-page .public-team-final-note {
  margin-top: 16px !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

@media (max-width: 920px) {
  body.public-team-page .public-team-carousel-section,
  body.public-team-page .reference-page-hero + .reference-page-section.public-team-carousel-section {
    padding-bottom: 26px !important;
  }

  body.public-team-page .public-team-carousel-root.reference-team-grid,
  body.public-team-page .public-team-values-card {
    width: min(100% - 44px, 680px) !important;
  }
}

@media (max-width: 760px) {
  body.public-team-page .public-team-carousel-section,
  body.public-team-page .reference-page-hero + .reference-page-section.public-team-carousel-section {
    padding-bottom: 24px !important;
  }

  body.public-team-page .public-team-carousel-root.reference-team-grid,
  body.public-team-page .public-team-values-card {
    width: min(100% - 30px, 390px) !important;
  }

  body.public-team-page .public-team-final-note {
    margin-top: 14px !important;
    padding-inline: 10px !important;
  }
}
