/* ─────────────────────────────────────────────────────────────────────
   parent.css — Design system dashboards parents (Sprint S2 2026-07-31)
   Extrait de client_shell.html + toutes les inline styles des templates
   parent (dashboard, enfants, trajets, packs, factures, notifications,
   profil). Mobile-first. Réutilise les tokens --tk-* de main.css.

   Scoping : la plupart des règles sont scopées à .client-workspace-shell
   pour ne pas polluer les autres pages. Le shell est monté sur toutes
   les pages qui étendent client_shell.html.
   ───────────────────────────────────────────────────────────────────── */

/* ── Background page parent ─────────────────────────────────────────── */
body.client-shell-page {
  background: linear-gradient(180deg, #EDF5FC 0%, #F4F9FE 32%, #F9FCFF 68%, #FFFFFF 100%);
  overflow-x: hidden;
}
body.client-shell-page::before {
  content: "";
  position: fixed;
  inset: 0;
  background:
    radial-gradient(circle at 5% 12%, rgba(48,137,197,.07) 0%, transparent 32%),
    radial-gradient(circle at 92% 6%,  rgba(249,193,59,.05) 0%, transparent 24%),
    radial-gradient(circle at 78% 88%, rgba(16,188,105,.05) 0%, transparent 28%);
  pointer-events: none;
  z-index: -1;
}
body.client-shell-page > main {
  width: 100%;
  max-width: 1920px;
  margin-left: auto; margin-right: auto;
  padding: 0 16px;
  box-sizing: border-box;
  background: transparent !important;
  box-shadow: none;
  border: 0;
}

/* ── Design tokens locaux + alias legacy ──────────────────────────── */
.client-workspace-shell {
  --tk-sh-card:   0 2px 8px rgba(13,34,55,.05), 0 8px 28px rgba(13,34,55,.08);
  --tk-sh-hover:  0 6px 20px rgba(13,34,55,.08), 0 22px 52px rgba(13,34,55,.13);
  --tk-sh-blue:   0 8px 28px rgba(48,137,197,.22);
  --tk-sh-yellow: 0 8px 28px rgba(249,193,59,.30);
  --tk-sh-green:  0 8px 28px rgba(16,188,105,.24);
  --client-ink:   var(--tk-navy);
  --client-muted: var(--tk-muted);
  --client-line:  var(--tk-border);
  --client-blue:  var(--tk-blue);
  --client-green: var(--tk-green);
  --client-soft:  var(--tk-blue-50);
  --client-warm:  #fff8ef;
  background: transparent !important;
}
.client-workspace-shell,
.client-dash-grid,
.client-workspace-main { max-width: 100%; min-width: 0; }

/* ── Layout grid ──────────────────────────────────────────────────── */
.client-workspace-shell .client-dash-grid {
  display: grid;
  grid-template-columns: 290px minmax(0, 1fr);
  gap: 24px;
  align-items: start;
}

/* ── Cards base ───────────────────────────────────────────────────── */
.client-workspace-shell .client-side-card,
.client-workspace-shell .client-page-hero,
.client-workspace-shell .client-content-card,
.client-workspace-shell .client-summary-card {
  border: 1px solid var(--tk-border);
  border-radius: 22px;
  background: #fff;
  box-shadow: var(--tk-sh-card);
}

/* ── Sidebar sticky (desktop) ────────────────────────────────────── */
.client-workspace-shell .client-side-card {
  position: sticky;
  top: 24px;
  overflow: hidden;
}
.client-workspace-shell .client-side-top {
  padding: 1.4rem 1.4rem 1rem;
  background: linear-gradient(135deg, #0D2237 0%, #1E6FA8 100%);
  color: #fff;
  position: relative;
  overflow: hidden;
}
.client-workspace-shell .client-side-top::after {
  content: "";
  position: absolute;
  top: -30px; right: -20px;
  width: 110px; height: 110px;
  border-radius: 50%;
  background: rgba(249,193,59,.12);
  pointer-events: none;
}
.client-workspace-shell .client-side-nav { padding: 1rem; }
.client-workspace-shell .client-side-link {
  display: flex; align-items: center;
  gap: .75rem;
  padding: .9rem 1rem;
  border-radius: 14px;
  color: var(--tk-navy);
  text-decoration: none;
  font-weight: 700;
  margin-bottom: .4rem;
  min-height: 48px;
  transition: background .18s ease, color .18s ease, transform .18s ease;
}
.client-workspace-shell .client-side-link:hover,
.client-workspace-shell .client-side-link.is-active {
  background: var(--tk-blue-50);
  color: var(--tk-blue-d);
  transform: translateX(3px);
}
.client-workspace-shell .client-side-link.is-active {
  border-left: 3px solid var(--tk-blue);
  padding-left: calc(1rem - 3px);
}
.client-workspace-shell .client-side-summary { padding: 0 1rem 1rem; }
.client-workspace-shell .client-mini-card {
  border: 1px solid var(--tk-border);
  border-radius: 16px;
  padding: .9rem 1rem;
  background: linear-gradient(180deg, #fff 0%, var(--tk-blue-50) 100%);
  margin-bottom: .8rem;
}

/* ── Utility bar (bienvenue + van) ─────────────────────────────── */
.client-workspace-shell .client-utility-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  padding: .9rem 1.2rem;
  border: 1px solid var(--tk-border);
  border-radius: 20px;
  background:
    radial-gradient(circle at top left, rgba(48,137,197,.09), transparent 30%),
    linear-gradient(135deg, #ffffff 0%, #f8fbff 55%, #EDF5FC 100%);
  margin-bottom: 18px;
}
.client-workspace-shell .client-utility-copy {
  display: flex; align-items: center;
  justify-content: space-between;
  gap: 1rem; width: 100%;
}
.client-workspace-shell .client-utility-visual {
  display: flex; align-items: flex-end;
  justify-content: flex-end;
  min-width: min(260px, 34vw);
}
.client-workspace-shell .client-utility-van {
  width: min(180px, 28vw);
  max-width: 180px;
  height: auto;
  object-fit: contain;
  filter: drop-shadow(0 12px 20px rgba(48,137,197,.18));
}

/* ── Page hero ─────────────────────────────────────────────────── */
.client-workspace-shell .client-page-hero {
  padding: 1.6rem;
  margin-bottom: 1.25rem;
  background:
    radial-gradient(circle at top right, rgba(48,137,197,.08), transparent 32%),
    linear-gradient(180deg, rgba(237,245,252,.92) 0%, rgba(244,249,254,.78) 100%);
  border: none;
  box-shadow: none;
}
.client-workspace-shell .client-page-hero-top {
  display: flex; justify-content: space-between;
  align-items: flex-start; gap: 18px;
}
.client-workspace-shell .client-back-link {
  display: inline-flex; align-items: center;
  gap: .45rem;
  margin-bottom: .9rem;
  color: var(--tk-muted);
  text-decoration: none;
  font-weight: 700;
  font-size: .9rem;
  min-height: 44px;
  transition: color .15s;
}
.client-workspace-shell .client-back-link:hover { color: var(--tk-blue); }
.client-workspace-shell .client-page-kicker {
  display: inline-flex; align-items: center;
  gap: .55rem;
  padding: .4rem .9rem;
  border-radius: 999px;
  background: rgba(48, 137, 197, 0.10);
  border: 1px solid rgba(48, 137, 197, 0.20);
  color: var(--tk-blue-d);
  font-family: 'Raleway', sans-serif;
  font-size: .75rem;
  font-weight: 800;
  letter-spacing: .11em;
  text-transform: uppercase;
  margin-bottom: .85rem;
}
.client-workspace-shell .client-page-title {
  margin: 0 0 .55rem;
  font-family: 'Space Grotesk', 'Inter', sans-serif;
  font-size: clamp(1.55rem, 5.5vw, 2.45rem);
  font-weight: 700;
  line-height: 1.06;
  letter-spacing: -.035em;
  background: linear-gradient(135deg, var(--tk-navy) 0%, var(--tk-blue) 42%, var(--tk-navy) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
}
.client-workspace-shell .client-page-title::after {
  content: "";
  display: block;
  width: 56px; height: 4px;
  margin-top: 10px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--tk-blue) 0%, var(--tk-yellow) 100%);
  box-shadow: 0 6px 18px rgba(249,193,59,.30);
  -webkit-text-fill-color: initial;
}
.client-workspace-shell .client-page-intro {
  max-width: 760px;
  margin: 0;
  color: var(--tk-muted);
  font-size: clamp(.9rem, 2.6vw, .98rem);
  line-height: 1.7;
  text-align: justify;
  hyphens: none;
}

/* ── Page action buttons ──────────────────────────────────────── */
.client-workspace-shell .client-page-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(220px, 1fr));
  gap: .75rem;
  width: min(100%, 760px);
}
.client-workspace-shell .client-action-btn {
  min-height: 66px;
  border-radius: 18px;
  font-weight: 700;
  font-size: 1rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  border: 2px solid transparent;
  text-decoration: none;
  padding: .5rem 1rem;
  transition: transform .18s ease, box-shadow .18s ease, opacity .18s ease;
}
.client-workspace-shell .client-action-btn:hover { transform: translateY(-2px); }
.client-workspace-shell .client-action-btn.client-action-mobility {
  background: linear-gradient(135deg, var(--tk-green) 0%, var(--tk-green-d) 100%);
  color: #fff;
  box-shadow: var(--tk-sh-green);
}
.client-workspace-shell .client-action-btn.client-action-taxi {
  background: rgba(48, 137, 197, 0.08);
  border-color: var(--tk-blue);
  color: var(--tk-blue-d);
}
.client-workspace-shell .client-action-btn.client-action-family {
  background: #fff;
  border-color: var(--tk-navy);
  color: var(--tk-navy);
}
.client-workspace-shell .client-action-btn.client-action-analytics {
  background: #f8fafc;
  border-color: rgba(48, 137, 197, 0.28);
  color: var(--tk-muted);
}
.client-workspace-shell .client-action-btn.is-disabled {
  opacity: .45;
  pointer-events: none;
  box-shadow: none;
}

/* ── Summary grid (KPI stats) ─────────────────────────────────── */
.client-workspace-shell .client-summary-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  margin-bottom: 1.2rem;
}
.client-workspace-shell .client-summary-card {
  padding: 1rem 1.1rem;
  background:
    radial-gradient(circle at top right, rgba(48,137,197,.06), transparent 34%),
    linear-gradient(180deg, #ffffff 0%, var(--tk-blue-50) 100%);
}
.client-workspace-shell .client-summary-label {
  color: var(--tk-muted);
  font-size: .88rem;
  margin-bottom: .3rem;
}
.client-workspace-shell .client-summary-value {
  color: var(--tk-navy);
  font-size: clamp(1.5rem, 5vw, 1.8rem);
  font-weight: 800;
  line-height: 1;
}
.client-workspace-shell .client-summary-help {
  margin-top: .45rem;
  color: var(--tk-muted);
  font-size: .82rem;
}

/* ── Content card ────────────────────────────────────────────── */
.client-workspace-shell .client-content-card { padding: 1.35rem; }
.client-workspace-shell .client-content-card-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 1.1rem;
}
.client-workspace-shell .client-content-card-header h2 {
  margin: 0 0 .2rem;
  color: var(--tk-navy);
  font-size: 1.15rem;
  font-weight: 800;
  letter-spacing: -.02em;
}
.client-workspace-shell .client-content-card-header p {
  margin: 0;
  color: var(--tk-muted);
  font-size: .95rem;
  text-align: justify;
  hyphens: none;
}
.client-workspace-shell .client-card-actions {
  display: flex; gap: .65rem; flex-wrap: wrap;
}

/* ── Paragraphes contenu (justify — règle DA TouKidou) ────────── */
.client-workspace-shell .client-content-card p,
.client-workspace-shell .client-side-card p,
.client-workspace-shell .client-mini-card p {
  text-align: justify;
  hyphens: none;
}

/* ── 2026-09-11 (Sam) : newsletter footer masquee sur pages compte ─
   L'inscription newsletter n'a pas de sens sur les pages compte
   (dashboard, packs, trips, factures, profil, etc.). Elle reste sur
   les pages marketing/landing publiques. Detection via body class. */
body.client-shell-page .footer-newsletter,
body.client-dashboard-page .footer-newsletter { display: none; }

/* ── Filter pills ────────────────────────────────────────────── */
.client-workspace-shell .client-filter-pills {
  display: flex; flex-wrap: wrap;
  gap: .75rem; margin-bottom: 1rem;
}
.client-workspace-shell .client-filter-link {
  display: inline-flex; align-items: center;
  gap: .45rem;
  padding: .65rem 1rem;
  border-radius: 999px;
  border: 1px solid var(--tk-border);
  background: #fff;
  color: var(--tk-navy);
  font-weight: 700;
  text-decoration: none;
  font-size: .88rem;
  min-height: 40px;
  transition: all .15s;
}
.client-workspace-shell .client-filter-link:hover,
.client-workspace-shell .client-filter-link.is-active {
  background: var(--tk-blue-50);
  border-color: rgba(48, 137, 197, 0.22);
  color: var(--tk-blue-d);
}

/* ── Empty state ────────────────────────────────────────────── */
.client-workspace-shell .client-empty-state {
  border: 1px dashed rgba(48, 137, 197, 0.22);
  border-radius: 18px;
  padding: 1.4rem 1.2rem;
  background: rgba(48, 137, 197, 0.03);
  color: var(--tk-muted);
  font-size: .95rem;
  text-align: center;
}
.client-workspace-shell .client-empty-state p { text-align: justify; hyphens: none; }

/* ── Pagination ────────────────────────────────────────────── */
.client-workspace-shell .client-pagination {
  display: flex; justify-content: center;
  gap: .75rem; align-items: center;
  margin-top: 1rem;
  flex-wrap: wrap;
}

/* ── Responsive tablet (< 1200px) ────────────────────────── */
@media (max-width: 1199px) {
  .client-workspace-shell .client-dash-grid { grid-template-columns: 1fr; }
  .client-workspace-shell .client-side-card { position: static; }
  .client-workspace-shell .client-page-hero-top,
  .client-workspace-shell .client-utility-bar { flex-direction: column; align-items: flex-start; }
  .client-workspace-shell .client-page-actions,
  .client-workspace-shell .client-summary-grid { width: 100%; grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ── Responsive mobile (< 768px) ──────────────────────────── */
@media (max-width: 767px) {
  body.client-shell-page > main { padding-left: 8px; padding-right: 8px; }
  .client-workspace-shell .client-utility-bar { padding: .8rem .9rem; border-radius: 16px; }
  .client-workspace-shell .client-utility-copy { flex-direction: column; align-items: flex-start; }
  .client-workspace-shell .client-utility-visual { width: 100%; min-width: 0; justify-content: flex-end; }
  .client-workspace-shell .client-utility-van { width: min(180px, 56vw); }
  .client-workspace-shell .client-page-hero { padding: 1.1rem 1rem; border-radius: 16px; margin-bottom: 1rem; }
  /* 2026-09-11 (Sam) : hero actions sur 1 ligne (grille 2 colonnes)
     au lieu d'empiles verticalement. Font compact pour tenir. */
  .client-workspace-shell .client-page-actions {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: .5rem;
    width: 100%;
  }
  .client-workspace-shell .client-action-btn {
    min-height: 44px;
    font-size: .82rem;
    padding: .5rem .55rem;
    border-radius: 12px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  /* 2026-09-11 (Sam) : vignettes summary (Actifs / En attente / Voyages
     dispo / Refuses) toutes sur UNE ligne mobile (grille 4 colonnes).
     Design vignette info compacte inspire de sites pro (Notion / Linear). */
  .client-workspace-shell .client-summary-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: .5rem;
  }
  .client-workspace-shell .client-summary-card {
    padding: .55rem .4rem;
    border-radius: 12px;
    text-align: center;
  }
  .client-workspace-shell .client-summary-label {
    font-size: .65rem;
    line-height: 1.15;
    letter-spacing: .01em;
    margin-bottom: .2rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .client-workspace-shell .client-summary-value {
    font-size: 1.35rem;
    line-height: 1;
    margin: .1rem 0;
  }
  .client-workspace-shell .client-summary-help {
    display: none;
  }
  .client-workspace-shell .client-content-card { padding: 1rem; border-radius: 16px; }
  .client-workspace-shell .client-content-card-header { flex-direction: column; align-items: flex-start; gap: .5rem; }
  .client-workspace-shell .client-side-card { border-radius: 16px; overflow: hidden; }
  /* 2026-09-11 (Sam) : filtres trajets sur UNE seule ligne meme sur
     petit ecran. Grille 4 cellules egales + font compact + no wrap.
     L'icone est masquee sur mobile pour maximiser la place du texte. */
  .client-workspace-shell .client-filter-pills {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: .35rem;
    flex-wrap: nowrap;
    width: 100%;
  }
  .client-workspace-shell .client-filter-link {
    padding: .45rem .35rem;
    font-size: .72rem;
    min-height: 36px;
    gap: .2rem;
    justify-content: center;
    text-align: center;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .client-workspace-shell .client-filter-link i {
    display: none;
  }

  /* Nav mobile hamburger */
  .client-nav-toggle {
    display: flex; align-items: center; justify-content: space-between;
    width: 100%; padding: .9rem 1.2rem;
    background: linear-gradient(135deg, #0D2237 0%, #1E6FA8 100%);
    color: #fff; font-weight: 700; font-size: .95rem;
    border: none; cursor: pointer;
    min-height: 48px;
  }
  .client-nav-toggle .toggle-arrow { transition: transform .25s ease; font-size: 1.1rem; }
  .client-nav-toggle.is-open .toggle-arrow { transform: rotate(180deg); }
  .client-side-nav-collapse { display: none; }
  .client-side-nav-collapse.is-open { display: block; }
}
@media (min-width: 768px) {
  .client-nav-toggle { display: none; }
  .client-side-nav-collapse { display: block !important; }
}

/* ─────────────────────────────────────────────────────────────────
   Utilitaires réutilisables pour toutes les pages dashboards parent
   (à venir : styles pour dashboard.html, add_child.html, invoices.html,
   trips_list.html, etc. extraits progressivement au fil de S2)
   ───────────────────────────────────────────────────────────────── */


/* ═══════════════════════════════════════════════════════════════
   PAGE-SPECIFIC STYLES extraits des <style> inline des templates
   qui étendent accounts/client_shell.html (Sprint S2 2026-07-31).
   Chaque section est scopée par body.<page>-page.
   ═══════════════════════════════════════════════════════════════ */


/* ─────────── child_list.html → body.child-list-page ─────────── */
body.child-list-page .child-grid {

  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 18px;
}
body.child-list-page .child-card {

  border: 1px solid var(--tk-border);
  border-radius: 20px;
  background: #fff;
  box-shadow: var(--tk-sh-card);
  overflow: hidden;
  transition: transform .18s ease, box-shadow .18s ease;
  display: flex;
  flex-direction: column;
}
body.child-list-page .child-card:hover {

  transform: translateY(-3px);
  box-shadow: var(--tk-sh-hover);
}
body.child-list-page .child-card-top {

  padding: 1.5rem 1.25rem 1rem;
  background: linear-gradient(135deg, rgba(13,34,55,.04) 0%, rgba(48,137,197,.07) 100%);
  border-bottom: 1px solid var(--tk-border);
  text-align: center;
}
body.child-list-page .child-avatar {

  width: 72px; height: 72px;
  border-radius: 50%;
  border: 3px solid rgba(48,137,197,.22);
  object-fit: cover;
  margin-bottom: .85rem;
  box-shadow: 0 6px 18px rgba(48,137,197,.15);
}
body.child-list-page .child-name {

  font-weight: 800;
  font-size: 1.05rem;
  color: var(--tk-navy);
  margin: 0 0 .25rem;
}
body.child-list-page .child-age {

  font-size: .82rem;
  color: var(--tk-muted);
}
body.child-list-page .child-card-body {

  padding: 1rem 1.25rem;
  flex: 1;
}
body.child-list-page .child-info-row {

  display: flex;
  align-items: flex-start;
  gap: .6rem;
  font-size: .83rem;
  color: var(--tk-muted);
  margin-bottom: .55rem;
}
body.child-list-page .child-info-row i {
 flex-shrink: 0; margin-top: .1rem; color: var(--tk-blue); }
body.child-list-page .child-card-actions {

  display: flex;
  gap: .5rem;
  padding: 0 1.25rem 1.25rem;
}
body.child-list-page .child-btn {

  flex: 1;
  display: inline-flex; align-items: center; justify-content: center; gap: .35rem;
  padding: .55rem .75rem;
  border-radius: 12px;
  font-size: .82rem; font-weight: 700;
  text-decoration: none;
  transition: all .15s;
  border: none;
}
body.child-list-page .child-btn-detail {
 background: var(--tk-blue-50); color: var(--tk-blue-d); border: 1px solid rgba(48,137,197,.2); }
body.child-list-page .child-btn-edit {
 background: rgba(249,193,59,.12); color: var(--tk-yellow-d); border: 1px solid rgba(249,193,59,.28); }
body.child-list-page .child-btn-del {
 background: rgba(220,53,69,.07); color: #dc3545; border: 1px solid rgba(220,53,69,.2); cursor: pointer; }
body.child-list-page .child-btn:hover {
 filter: brightness(.94); transform: translateY(-1px); }


/* ─────────── child_detail.html → body.child-detail-page ─────────── */
body.child-detail-page .cd-profile {

  display: flex;
  align-items: center;
  gap: 1.5rem;
  padding: 1.5rem;
  background: linear-gradient(135deg, rgba(13,34,55,.04), rgba(48,137,197,.07));
  border-radius: 18px;
  border: 1px solid var(--tk-border);
  margin-bottom: 1.25rem;
}
body.child-detail-page .cd-avatar {

  width: 86px; height: 86px;
  border-radius: 50%;
  border: 3px solid rgba(48,137,197,.25);
  object-fit: cover;
  flex-shrink: 0;
  box-shadow: 0 8px 24px rgba(48,137,197,.15);
}
body.child-detail-page .cd-profile-name {

  font-family: 'Space Grotesk', sans-serif;
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--tk-navy);
  margin: 0 0 .25rem;
}
body.child-detail-page .cd-profile-sub {

  font-size: .88rem;
  color: var(--tk-muted);
}
body.child-detail-page .cd-nav {

  display: flex;
  align-items: center;
  gap: .65rem;
}
body.child-detail-page .cd-nav-btn {

  display: inline-flex; align-items: center; justify-content: center;
  width: 38px; height: 38px;
  border-radius: 12px;
  border: 1px solid var(--tk-border);
  background: #fff;
  color: var(--tk-navy);
  text-decoration: none;
  font-size: .9rem;
  transition: all .15s;
}
body.child-detail-page .cd-nav-btn:hover {
 background: var(--tk-blue-50); border-color: rgba(48,137,197,.25); color: var(--tk-blue-d); }
body.child-detail-page .cd-nav-label {
 font-size: .78rem; color: var(--tk-muted); white-space: nowrap; }
body.child-detail-page .cd-section-label {

  font-size: .67rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--tk-muted);
  margin: 1.4rem 0 .75rem;
}
body.child-detail-page .cd-section-label:first-child {
 margin-top: 0; }
body.child-detail-page .cd-section-title {

  display: flex;
  align-items: center;
  gap: .6rem;
  font-size: .78rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .09em;
  padding: .55rem .9rem;
  border-radius: 12px;
  margin-bottom: .85rem;
}
body.child-detail-page .cd-section-general {
 background: rgba(48,137,197,.08); color: var(--tk-blue-d); }
body.child-detail-page .cd-section-transport {
 background: rgba(16,188,105,.08); color: var(--tk-green-d); }
body.child-detail-page .cd-section-health {
 background: rgba(249,193,59,.10); color: var(--tk-yellow-d); }
body.child-detail-page .cd-section-security {
 background: rgba(220,53,69,.07);  color: #dc3545; }
body.child-detail-page .cd-info-grid {

  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: .85rem;
  margin-bottom: .5rem;
}
body.child-detail-page .cd-info-item {

  padding: .75rem 1rem;
  border: 1px solid var(--tk-border);
  border-radius: 14px;
  background: rgba(248,251,255,.8);
}
body.child-detail-page .cd-info-label {

  font-size: .73rem;
  font-weight: 700;
  color: var(--tk-muted);
  text-transform: uppercase;
  letter-spacing: .07em;
  margin-bottom: .25rem;
}
body.child-detail-page .cd-info-value {

  font-size: .9rem;
  font-weight: 600;
  color: var(--tk-navy);
}
body.child-detail-page .cd-contact-card {

  display: flex;
  align-items: flex-start;
  gap: .9rem;
  padding: 1rem 1.1rem;
  border: 1px solid var(--tk-border);
  border-radius: 16px;
  background: #fff;
  margin-bottom: .75rem;
}
body.child-detail-page .cd-contact-icon {

  width: 40px; height: 40px;
  border-radius: 12px;
  display: flex; align-items: center; justify-content: center;
  font-size: 1rem;
  flex-shrink: 0;
}
body.child-detail-page .cd-contact-primary {
 background: rgba(220,53,69,.1); color: #dc3545; }
body.child-detail-page .cd-contact-secondary {
 background: rgba(92,115,138,.1); color: var(--tk-muted); }
body.child-detail-page .cd-contact-name {
 font-weight: 700; font-size: .92rem; color: var(--tk-navy); margin-bottom: .2rem; }
body.child-detail-page .cd-contact-detail {
 font-size: .82rem; color: var(--tk-muted); }


/* ─────────── child_trips.html → body.child-trips-page ─────────── */
body.child-trips-page .ct-trip-link {

  display: grid;
  grid-template-columns: 44px 1fr auto auto;
  gap: 1rem;
  align-items: center;
  padding: .9rem 1rem;
  border: 1px solid var(--tk-border);
  border-radius: 16px;
  background: #fff;
  text-decoration: none;
  margin-bottom: .6rem;
  transition: box-shadow .15s, transform .15s;
}
body.child-trips-page .ct-trip-link:hover {
 box-shadow: var(--tk-sh-hover); transform: translateY(-1px); }
body.child-trips-page .ct-trip-icon {

  width: 44px; height: 44px; border-radius: 14px;
  display: flex; align-items: center; justify-content: center;
  font-size: 1.1rem; flex-shrink: 0;
}
body.child-trips-page .ct-trip-icon-morning {
 background: rgba(48,137,197,.1); color: var(--tk-blue-d); }
body.child-trips-page .ct-trip-icon-evening {
 background: rgba(249,193,59,.12); color: var(--tk-yellow-d); }
body.child-trips-page .ct-trip-main {
 min-width: 0; }
body.child-trips-page .ct-trip-title {
 font-weight: 700; color: var(--tk-navy); font-size: .92rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
body.child-trips-page .ct-trip-sub {
 font-size: .79rem; color: var(--tk-muted); margin-top: .15rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
body.child-trips-page .ct-trip-meta {
 flex-shrink: 0; text-align: right; }
body.child-trips-page .ct-trip-ref {
 font-size: .72rem; color: var(--tk-muted); text-transform: uppercase; letter-spacing: .06em; }
body.child-trips-page .ct-trip-code {
 font-size: .82rem; font-weight: 700; color: #374151; font-family: monospace; }
body.child-trips-page .ct-arrow {
 flex-shrink: 0; color: #9ca3af; }
body.child-trips-page .ct-sort-pills {
 display: flex; gap: .6rem; }
body.child-trips-page .ct-sort-pill {

  display: inline-flex; align-items: center; gap: .35rem;
  padding: .5rem .9rem; border-radius: 999px;
  font-size: .82rem; font-weight: 700;
  text-decoration: none; border: 1px solid var(--tk-border); background: #fff; color: var(--tk-navy);
  transition: all .15s;
}
body.child-trips-page .ct-sort-pill.is-active, body.child-trips-page .ct-sort-pill:hover {
 background: var(--tk-blue-50); border-color: rgba(48,137,197,.22); color: var(--tk-blue-d); }
@media (max-width: 479px) { body.child-trips-page .ct-trip-link { grid-template-columns: 40px 1fr auto; } body.child-trips-page .ct-trip-meta { display: none; }
}


/* ─────────── trips_list.html → body.trips-list-page ─────────── */
body.trips-list-page .trips-list-page .trip-card-clickable {

    cursor: pointer;
    transition: background-color .2s ease, box-shadow .2s ease;
  }
body.trips-list-page .trips-list-page .trip-card-clickable:hover {

    box-shadow: 0 10px 18px rgba(31, 132, 198, 0.12);
  }


/* ─────────── travel_packs_overview.html → body.packs-overview-page ─────────── */
body.packs-overview-page .po-row {

  display: grid;
  grid-template-columns: 44px 1fr auto auto;
  gap: 1rem;
  align-items: center;
  padding: .9rem 1rem;
  border: 1px solid var(--tk-border);
  border-radius: 16px;
  background: #fff;
  text-decoration: none;
  margin-bottom: .6rem;
  transition: box-shadow .15s, transform .15s;
}
body.packs-overview-page .po-row:hover {
 box-shadow: var(--tk-sh-hover); transform: translateY(-1px); }
body.packs-overview-page .po-row-icon {

  width: 44px; height: 44px; border-radius: 14px;
  display: flex; align-items: center; justify-content: center;
  font-size: 1.1rem; flex-shrink: 0;
}
body.packs-overview-page .po-icon-active {
 background: rgba(16,188,105,.1);  color: var(--tk-green-d); }
body.packs-overview-page .po-icon-pending {
 background: rgba(249,193,59,.12); color: var(--tk-yellow-d); }
body.packs-overview-page .po-icon-past {
 background: rgba(92,115,138,.1);  color: var(--tk-muted); }
body.packs-overview-page .po-icon-refused {
 background: rgba(220,53,69,.08);  color: #dc3545; }
body.packs-overview-page .po-main {
 min-width: 0; }
body.packs-overview-page .po-title {
 font-weight: 700; color: var(--tk-navy); font-size: .92rem; }
body.packs-overview-page .po-sub {
 font-size: .79rem; color: var(--tk-muted); margin-top: .15rem; }
body.packs-overview-page .po-trips {
 font-size: .88rem; font-weight: 700; color: var(--tk-navy); flex-shrink: 0; text-align: right; }
body.packs-overview-page .po-trips-label {
 font-size: .7rem; color: var(--tk-muted); font-weight: 500; }
body.packs-overview-page .po-badge {

  display: inline-flex; align-items: center;
  padding: .28rem .75rem; border-radius: 999px;
  font-size: .78rem; font-weight: 700; white-space: nowrap; flex-shrink: 0;
}
body.packs-overview-page .po-badge-active {
 background: rgba(16,188,105,.12); color: var(--tk-green-d); }
body.packs-overview-page .po-badge-pending {
 background: rgba(249,193,59,.14); color: var(--tk-yellow-d); }
body.packs-overview-page .po-badge-past {
 background: rgba(92,115,138,.1);  color: var(--tk-muted); }
body.packs-overview-page .po-badge-refused {
 background: rgba(220,53,69,.1);   color: #dc3545; }
body.packs-overview-page .po-arrow {
 flex-shrink: 0; color: #9ca3af; }
@media (max-width: 560px) { body.packs-overview-page .po-row { grid-template-columns: 40px 1fr auto; } body.packs-overview-page .po-trips { display: none; }
}


/* ─────────── travel_pack_detail.html → body.pack-detail-page ─────────── */
body.pack-detail-page .tpd-kpi-grid {

  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: .75rem;
  margin-bottom: 1.25rem;
}
body.pack-detail-page .tpd-kpi {
 padding: .85rem 1rem; border-radius: 16px; text-align: center; border: 1px solid; }
body.pack-detail-page .tpd-kpi-green {
 background: rgba(16,188,105,.06); border-color: rgba(16,188,105,.18); }
body.pack-detail-page .tpd-kpi-blue {
 background: rgba(48,137,197,.06); border-color: rgba(48,137,197,.18); }
body.pack-detail-page .tpd-kpi-num {
 font-size: 1.55rem; font-weight: 800; }
body.pack-detail-page .tpd-kpi-lbl {
 font-size: .72rem; color: var(--tk-muted); margin-top: .15rem; font-weight: 500; }
body.pack-detail-page .tpd-section-label {

  font-size: .7rem; font-weight: 800; text-transform: uppercase; letter-spacing: .09em;
  color: #9ca3af; margin: 1.25rem 0 .75rem;
  display: flex; align-items: center; gap: .5rem;
}
body.pack-detail-page .tpd-section-label::after {
 content: ""; flex: 1; height: 1px; background: var(--tk-border); }
body.pack-detail-page .tpd-section-label.blue {
 color: var(--tk-blue-d); }
body.pack-detail-page .tpd-section-label.green {
 color: var(--tk-green-d); }
body.pack-detail-page .tpd-list-row {

  display: flex; justify-content: space-between; align-items: center;
  padding: .75rem 1rem;
  border: 1px solid var(--tk-border);
  border-radius: 14px;
  background: rgba(248,251,255,.8);
  margin-bottom: .5rem;
  font-size: .88rem;
}
body.pack-detail-page .tpd-list-row-left {
 display: flex; flex-direction: column; gap: .1rem; }
body.pack-detail-page .tpd-list-row-name {
 font-weight: 700; color: var(--tk-navy); }
body.pack-detail-page .tpd-list-row-date {
 font-size: .78rem; color: var(--tk-muted); }
body.pack-detail-page .tpd-list-row-right {
 display: flex; align-items: center; gap: .65rem; flex-shrink: 0; }
body.pack-detail-page .tpd-status-badge {

  display: inline-flex; align-items: center;
  padding: .22rem .65rem; border-radius: 999px;
  font-size: .75rem; font-weight: 700;
}
@media (max-width: 560px) { body.pack-detail-page .tpd-kpi-grid { grid-template-columns: 1fr 1fr; } }


/* ─────────── travel_pack_purchase.html → body.pack-purchase-page ─────────── */
body.pack-purchase-page .pack-option-card {

  border-radius: 20px;
  border: 2px solid rgba(20,33,61,.10);
  padding: 1.5rem;
  background: #fff;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
  cursor: default;
  position: relative;
  overflow: hidden;
  height: 100%;
  display: flex;
  flex-direction: column;
}
body.pack-purchase-page .pack-option-card.is-popular {

  border-color: #1E6FA8;
  background: linear-gradient(180deg, #eef6ff 0%, #fff 60%);
}
body.pack-purchase-page .pack-option-card .pack-popular-badge {

  position: absolute;
  top: 14px;
  right: 14px;
  background: #1E6FA8;
  color: #fff;
  border-radius: 999px;
  padding: .22rem .75rem;
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .04em;
}
body.pack-purchase-page .pack-option-card .pack-size {

  font-size: 2.8rem;
  font-weight: 800;
  color: #0D2237;
  line-height: 1;
}
body.pack-purchase-page .pack-option-card .pack-unit {

  font-size: .95rem;
  color: #5C738A;
  font-weight: 500;
}
body.pack-purchase-page .pack-option-card .pack-price {

  font-size: 1.55rem;
  font-weight: 700;
  color: #0D2237;
}
body.pack-purchase-page .pack-option-card .pack-total {

  font-size: .88rem;
  color: #5C738A;
}
body.pack-purchase-page .pack-option-card .pack-features {

  flex: 1;
  list-style: none;
  padding: 0;
  margin: 0 0 1.25rem;
}
body.pack-purchase-page .pack-option-card .pack-features li {

  display: flex;
  align-items: center;
  gap: .45rem;
  font-size: .9rem;
  color: #5C738A;
  margin-bottom: .45rem;
}


/* ─────────── invoices.html → body.invoices-page ─────────── */
body.invoices-page .inv-table {
 width: 100%; border-collapse: collapse; }
body.invoices-page .inv-table thead th {

  font-size: .73rem; font-weight: 800; text-transform: uppercase;
  letter-spacing: .08em; color: var(--tk-muted);
  padding: .55rem .9rem; border-bottom: 2px solid var(--tk-border);
  background: rgba(237,245,252,.5);
}
body.invoices-page .inv-table tbody tr {
 transition: background .13s; }
body.invoices-page .inv-table tbody tr:hover {
 background: rgba(237,245,252,.6); }
body.invoices-page .inv-table tbody td {
 padding: .85rem .9rem; border-bottom: 1px solid var(--tk-border); vertical-align: middle; }
body.invoices-page .inv-table tbody tr:last-child td {
 border-bottom: none; }
body.invoices-page .inv-kind-badge {

  display: inline-flex; align-items: center; gap: .3rem;
  padding: .2rem .65rem; border-radius: 999px;
  font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .07em;
  background: rgba(48,137,197,.1); color: var(--tk-blue-d);
}
body.invoices-page .inv-title {
 font-weight: 700; color: var(--tk-navy); font-size: .9rem; }
body.invoices-page .inv-desc {
 font-size: .8rem; color: var(--tk-muted); margin-top: .15rem; }
body.invoices-page .inv-total {
 font-weight: 800; color: var(--tk-navy); }
body.invoices-page .inv-action-row {

  display: flex;
  flex-wrap: nowrap;
  gap: .5rem;
  align-items: center;
  justify-content: flex-end;
}
body.invoices-page .inv-actions-bar {

  display: flex;
  gap: .65rem;
  flex-wrap: wrap;
  margin-bottom: 1.1rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--tk-border);
  align-items: center;
}
@media (max-width: 420px) { body.invoices-page .inv-actions-bar .btn { font-size: .72rem; padding: .3rem .5rem; } body.invoices-page .inv-action-row .btn { font-size: .72rem; padding: .28rem .4rem; } body.invoices-page .inv-action-row .btn .me-1 { display: none; }
}


/* ─────────── notifications.html → body.notifications-page ─────────── */
body.notifications-page .notif-trip-row {

  display: flex;
  align-items: center;
  gap: 1rem;
  padding: .85rem 0;
  border-bottom: 1px solid var(--tk-border);
}
body.notifications-page .notif-trip-row:last-child {
 border-bottom: none; }
body.notifications-page .notif-icon-wrap {

  flex-shrink: 0;
  width: 40px; height: 40px;
  border-radius: 12px;
  display: flex; align-items: center; justify-content: center;
  font-size: 1rem;
}
body.notifications-page .notif-icon-completed {
 background: rgba(16,188,105,.12); color: var(--tk-green-d); }
body.notifications-page .notif-icon-in_progress {
 background: rgba(48,137,197,.12); color: var(--tk-blue-d); }
body.notifications-page .notif-icon-scheduled {
 background: rgba(249,193,59,.12); color: var(--tk-yellow-d); }
body.notifications-page .notif-icon-cancelled {
 background: rgba(220,53,69,.1);   color: #dc3545; }
body.notifications-page .notif-icon-default {
 background: rgba(92,115,138,.1);  color: var(--tk-muted); }
body.notifications-page .notif-body {
 flex: 1; min-width: 0; }
body.notifications-page .notif-body-title {
 font-weight: 700; font-size: .9rem; color: var(--tk-navy); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
body.notifications-page .notif-body-sub {
 font-size: .82rem; color: var(--tk-muted); margin-top: .1rem; }
body.notifications-page .notif-date {
 flex-shrink: 0; font-size: .8rem; color: var(--tk-muted); text-align: right; }
body.notifications-page .status-badge {

  display: inline-flex; align-items: center; gap: .3rem;
  padding: .22rem .65rem; border-radius: 999px; font-size: .73rem; font-weight: 700;
}
body.notifications-page .status-completed {
 background: rgba(16,188,105,.12); color: var(--tk-green-d); }
body.notifications-page .status-in_progress {
 background: rgba(48,137,197,.12); color: var(--tk-blue-d); }
body.notifications-page .status-scheduled {
 background: rgba(249,193,59,.14); color: var(--tk-yellow-d); }
body.notifications-page .status-cancelled {
 background: rgba(220,53,69,.1); color: #dc3545; }


/* ─────────── travel_pack_reserve.html → body.travel-pack-reserve-page ─────────── */
body.travel-pack-reserve-page .pack-stat-box {
  padding: .9rem 1rem;
  border-radius: 14px;
  border: 1px solid rgba(20,33,61,.08);
  background: #f8fbff;
}
body.travel-pack-reserve-page .trip-mode-card {
  border-radius: 14px;
  border: 2px solid rgba(20,33,61,.10);
  padding: 1rem .75rem;
  text-align: center;
  cursor: pointer;
  transition: border-color .15s, background .15s;
}
body.travel-pack-reserve-page .trip-mode-card:hover,
body.travel-pack-reserve-page .trip-mode-card.is-selected {
  border-color: #1E6FA8;
  background: #eef6ff;
}


/* ─────────────────────────────────────────────────────────────────────
   Mobile polish global pour toutes les pages parent-shell.
   S'applique sur tous les body.<X>-page enfants de body.client-shell-page.
   ───────────────────────────────────────────────────────────────────── */

@media (max-width: 767px) { body.travel-pack-reserve-page /* Grilles trop denses en mobile → mono-colonne ou colonnes plus étroites */
  body.child-list-page .child-grid, body.travel-pack-reserve-page body.notifications-page .notif-list {
    grid-template-columns: 1fr;
    gap: 12px;
  } body.travel-pack-reserve-page body.packs-overview-page .pack-card-grid, body.travel-pack-reserve-page body.invoices-page .invoice-grid {
    grid-template-columns: 1fr;
    gap: 12px;
  } body.travel-pack-reserve-page /* Cards page-hero et content-card resserrées */
  body.client-shell-page .client-content-card { padding: 1rem !important; } body.travel-pack-reserve-page body.client-shell-page .client-content-card > * + * { margin-top: .75rem; } body.travel-pack-reserve-page /* Boutons dans grilles d'actions → hauteur touch */
  body.child-list-page .child-btn, body.travel-pack-reserve-page body.packs-overview-page .pack-btn { min-height: 44px; } body.travel-pack-reserve-page /* Tableaux factures → scroll horizontal si nécessaire */
  body.invoices-page table {
    display: block; overflow-x: auto; -webkit-overflow-scrolling: touch;
  }
}


/* ═══════════════════════════════════════════════════════════════
   STANDALONE PARENT PAGES CSS extraits (Sprint S2 2026-07-31)
   Pages qui étendent base.html directement (pas client_shell).
   Chaque section est scopée par body.<page>-page.
   ═══════════════════════════════════════════════════════════════ */


/* ─────────── add_child.html → body.add-child-page ─────────── */
body.add-child-page body {
 background: linear-gradient(160deg,#EDF5FC 0%,#F4F9FE 40%,#F9FCFF 70%,#fff 100%) !important; }
body.add-child-page /* ── Shell ──────────────────────────────────────────── */
.wiz-shell {

  min-height: 80vh;
  display: flex; align-items: flex-start; justify-content: center;
  padding: 2.5rem 1rem 3rem;
}
body.add-child-page .wiz-card {

  width: 100%; max-width: 680px;
  background: rgba(255,255,255,.93);
  border: 1px solid rgba(48,137,197,.12);
  border-radius: 28px;
  box-shadow: 0 24px 60px rgba(13,34,55,.1);
  overflow: hidden;
}
body.add-child-page /* ── Header ─────────────────────────────────────────── */
.wiz-header {

  padding: 1.6rem 2rem 1.25rem;
  background:
    radial-gradient(circle at top left,rgba(48,137,197,.1),transparent 40%),
    radial-gradient(circle at bottom right,rgba(16,188,105,.07),transparent 35%),
    rgba(255,255,255,.5);
  border-bottom: 1px solid rgba(48,137,197,.09);
}
body.add-child-page .wiz-header-icon {

  width: 54px; height: 54px; border-radius: 17px;
  background: linear-gradient(135deg,#0D2237,#1E6FA8);
  display: flex; align-items: center; justify-content: center;
  color: #fff; font-size: 1.4rem;
  margin: 0 auto .9rem;
  box-shadow: 0 10px 24px rgba(30,111,168,.28);
}
body.add-child-page .wiz-eyebrow {

  font-size: .68rem; font-weight: 800; text-transform: uppercase;
  letter-spacing: .1em; color: #1E6FA8; text-align: center; margin-bottom: .25rem;
}
body.add-child-page .wiz-header h1 {

  font-size: 1.25rem; font-weight: 800; color: #0D2237;
  text-align: center; margin: 0;
}
body.add-child-page /* ── Steps progress ──────────────────────────────────── */
.wiz-steps {

  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  padding: 1rem 2rem .75rem;
  border-bottom: 1px solid rgba(48,137,197,.09);
}
body.add-child-page .wiz-step-item {

  display: flex; flex-direction: column; align-items: center;
  gap: .3rem; min-width: 64px;
}
body.add-child-page .wiz-step-dot {

  width: 32px; height: 32px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: .78rem; font-weight: 800;
  border: 2px solid rgba(48,137,197,.22);
  background: #fff; color: #9ca3af;
  transition: all .2s;
}
body.add-child-page .wiz-step-dot.is-done {
 background: rgba(16,188,105,.12); border-color: rgba(16,188,105,.35); color: #0C9A55; }
body.add-child-page .wiz-step-dot.is-active {
 background: #1E6FA8; border-color: #1E6FA8; color: #fff; box-shadow: 0 4px 12px rgba(30,111,168,.3); }
body.add-child-page .wiz-step-label {
 font-size: .65rem; font-weight: 700; color: #9ca3af; letter-spacing: .04em; text-align: center; white-space: nowrap; }
body.add-child-page .wiz-step-label.is-active {
 color: #1E6FA8; }
body.add-child-page .wiz-step-connector {
 flex: 1; height: 2px; background: rgba(48,137,197,.12); max-width: 40px; margin-bottom: 1.2rem; }
body.add-child-page .wiz-step-connector.is-done {
 background: rgba(16,188,105,.3); }
body.add-child-page /* ── Body ────────────────────────────────────────────── */
.wiz-body {
 padding: 1.5rem 2rem; }
body.add-child-page /* ── Alert banner ────────────────────────────────────── */
.wiz-info-banner {

  display: flex; align-items: flex-start; gap: .75rem;
  padding: .75rem 1rem; border-radius: 14px;
  font-size: .85rem; margin-bottom: 1.25rem;
}
body.add-child-page .wiz-info-banner.is-inst {
 background: rgba(48,137,197,.07); border: 1px solid rgba(48,137,197,.18); color: #0D2237; }
body.add-child-page .wiz-info-banner.is-parent {
 background: rgba(16,188,105,.07); border: 1px solid rgba(16,188,105,.2); color: #0D2237; }
body.add-child-page .wiz-info-banner.is-warn {
 background: rgba(249,193,59,.08); border: 1px solid rgba(249,193,59,.28); color: #0D2237; }
body.add-child-page .wiz-info-banner.is-light {
 background: rgba(92,115,138,.06); border: 1px solid rgba(92,115,138,.15); color: #0D2237; }
body.add-child-page .wiz-info-banner-icon {
 flex-shrink: 0; font-size: 1.1rem; margin-top: .05rem; }
body.add-child-page /* ── Fieldset ────────────────────────────────────────── */
fieldset.step {
 border: none; padding: 0; margin: 0; }
body.add-child-page fieldset.step legend {

  font-size: .78rem; font-weight: 800; text-transform: uppercase;
  letter-spacing: .09em; color: #5C738A;
  margin-bottom: 1rem; padding: 0;
  float: none; width: 100%;
  display: flex; align-items: center; gap: .5rem;
}
body.add-child-page fieldset.step legend::after {

  content: ""; flex: 1; height: 1px; background: rgba(48,137,197,.12);
}
body.add-child-page /* ── Form fields ─────────────────────────────────────── */
.wiz-body .form-label {

  font-size: .79rem; font-weight: 700; color: #5C738A;
  text-transform: uppercase; letter-spacing: .06em; margin-bottom: .35rem;
}
body.add-child-page .wiz-body .form-control, body.add-child-page .wiz-body .form-select {

  border-radius: 12px;
  border: 1px solid rgba(48,137,197,.2);
  font-size: .9rem;
  padding: .6rem .9rem;
  transition: border-color .15s, box-shadow .15s;
}
body.add-child-page .wiz-body .form-control:focus, body.add-child-page .wiz-body .form-select:focus {

  border-color: #3089C5;
  box-shadow: 0 0 0 3px rgba(48,137,197,.12);
}
body.add-child-page .wiz-body textarea.form-control {
 border-radius: 14px; }
body.add-child-page /* ── Nav buttons ─────────────────────────────────────── */
.wiz-nav {

  display: flex; justify-content: space-between; align-items: center;
  gap: .75rem; margin-top: 1.5rem;
  padding-top: 1rem; border-top: 1px solid rgba(48,137,197,.09);
}
body.add-child-page .wiz-btn-prev {

  display: inline-flex; align-items: center; gap: .4rem;
  padding: .6rem 1.1rem; border-radius: 12px;
  font-size: .88rem; font-weight: 700;
  background: rgba(92,115,138,.08); color: #5C738A;
  border: 1px solid rgba(92,115,138,.18);
  cursor: pointer; transition: all .15s;
}
body.add-child-page .wiz-btn-prev:hover {
 background: rgba(92,115,138,.14); }
body.add-child-page .wiz-btn-next {

  display: inline-flex; align-items: center; gap: .4rem;
  padding: .6rem 1.25rem; border-radius: 12px;
  font-size: .88rem; font-weight: 700;
  background: linear-gradient(135deg,#1E6FA8,#3089C5); color: #fff;
  border: none; cursor: pointer;
  box-shadow: 0 6px 18px rgba(48,137,197,.25);
  transition: all .15s;
}
body.add-child-page .wiz-btn-next:hover {
 opacity: .92; transform: translateY(-1px); }
body.add-child-page .wiz-btn-submit {

  display: inline-flex; align-items: center; gap: .4rem;
  padding: .68rem 1.5rem; border-radius: 12px;
  font-size: .92rem; font-weight: 700;
  background: linear-gradient(135deg,#0C9A55,#10BC69); color: #fff;
  border: none; cursor: pointer;
  box-shadow: 0 6px 18px rgba(16,188,105,.28);
  transition: all .15s;
}
body.add-child-page .wiz-btn-submit:hover {
 opacity: .92; transform: translateY(-1px); }


/* ─────────── edit_child.html → body.edit-child-page ─────────── */
body.edit-child-page body {
 background: linear-gradient(160deg,#EDF5FC 0%,#F4F9FE 40%,#F9FCFF 70%,#fff 100%) !important; }
body.edit-child-page .wiz-shell {
 min-height:80vh; display:flex; align-items:flex-start; justify-content:center; padding:2.5rem 1rem 3rem; }
body.edit-child-page .wiz-card {
 width:100%; max-width:680px; background:rgba(255,255,255,.93); border:1px solid rgba(48,137,197,.12); border-radius:28px; box-shadow:0 24px 60px rgba(13,34,55,.1); overflow:hidden; }
body.edit-child-page .wiz-header {
 padding:1.6rem 2rem 1.25rem; background: radial-gradient(circle at top left,rgba(48,137,197,.1),transparent 40%), radial-gradient(circle at bottom right,rgba(249,193,59,.07),transparent 35%), rgba(255,255,255,.5); border-bottom:1px solid rgba(48,137,197,.09); }
body.edit-child-page .wiz-header-icon {
 width:54px; height:54px; border-radius:17px; background:linear-gradient(135deg,#0D2237,#1E6FA8); display:flex; align-items:center; justify-content:center; color:#fff; font-size:1.4rem; margin:0 auto .9rem; box-shadow:0 10px 24px rgba(30,111,168,.28); }
body.edit-child-page .wiz-eyebrow {
 font-size:.68rem; font-weight:800; text-transform:uppercase; letter-spacing:.1em; color:#1E6FA8; text-align:center; margin-bottom:.25rem; }
body.edit-child-page .wiz-header h1 {
 font-size:1.25rem; font-weight:800; color:#0D2237; text-align:center; margin:0; }
body.edit-child-page .wiz-steps {
 display:flex; align-items:center; justify-content:center; gap:0; padding:1rem 2rem .75rem; border-bottom:1px solid rgba(48,137,197,.09); }
body.edit-child-page .wiz-step-item {
 display:flex; flex-direction:column; align-items:center; gap:.3rem; min-width:64px; }
body.edit-child-page .wiz-step-dot {
 width:32px; height:32px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:.78rem; font-weight:800; border:2px solid rgba(48,137,197,.22); background:#fff; color:#9ca3af; transition:all .2s; }
body.edit-child-page .wiz-step-dot.is-done {
 background:rgba(16,188,105,.12); border-color:rgba(16,188,105,.35); color:#0C9A55; }
body.edit-child-page .wiz-step-dot.is-active {
 background:#1E6FA8; border-color:#1E6FA8; color:#fff; box-shadow:0 4px 12px rgba(30,111,168,.3); }
body.edit-child-page .wiz-step-label {
 font-size:.65rem; font-weight:700; color:#9ca3af; letter-spacing:.04em; text-align:center; white-space:nowrap; }
body.edit-child-page .wiz-step-label.is-active {
 color:#1E6FA8; }
body.edit-child-page .wiz-step-connector {
 flex:1; height:2px; background:rgba(48,137,197,.12); max-width:40px; margin-bottom:1.2rem; }
body.edit-child-page .wiz-step-connector.is-done {
 background:rgba(16,188,105,.3); }
body.edit-child-page .wiz-body {
 padding:1.5rem 2rem; }
body.edit-child-page .wiz-info-banner {
 display:flex; align-items:flex-start; gap:.75rem; padding:.75rem 1rem; border-radius:14px; font-size:.85rem; margin-bottom:1.25rem; }
body.edit-child-page .wiz-info-banner.is-inst {
 background:rgba(48,137,197,.07); border:1px solid rgba(48,137,197,.18); color:#0D2237; }
body.edit-child-page .wiz-info-banner.is-warn {
 background:rgba(249,193,59,.08); border:1px solid rgba(249,193,59,.28); color:#0D2237; }
body.edit-child-page .wiz-info-banner.is-light {
 background:rgba(92,115,138,.06); border:1px solid rgba(92,115,138,.15); color:#0D2237; }
body.edit-child-page .wiz-info-banner-icon {
 flex-shrink:0; font-size:1.1rem; margin-top:.05rem; }
body.edit-child-page fieldset.step {
 border:none; padding:0; margin:0; }
body.edit-child-page fieldset.step legend {
 font-size:.78rem; font-weight:800; text-transform:uppercase; letter-spacing:.09em; color:#5C738A; margin-bottom:1rem; padding:0; float:none; width:100%; display:flex; align-items:center; gap:.5rem; }
body.edit-child-page fieldset.step legend::after {
 content:""; flex:1; height:1px; background:rgba(48,137,197,.12); }
body.edit-child-page .wiz-body .form-label {
 font-size:.79rem; font-weight:700; color:#5C738A; text-transform:uppercase; letter-spacing:.06em; margin-bottom:.35rem; }
body.edit-child-page .wiz-body .form-control, body.edit-child-page .wiz-body .form-select {
 border-radius:12px; border:1px solid rgba(48,137,197,.2); font-size:.9rem; padding:.6rem .9rem; transition:border-color .15s,box-shadow .15s; }
body.edit-child-page .wiz-body .form-control:focus, body.edit-child-page .wiz-body .form-select:focus {
 border-color:#3089C5; box-shadow:0 0 0 3px rgba(48,137,197,.12); }
body.edit-child-page .wiz-body textarea.form-control {
 border-radius:14px; }
body.edit-child-page .wiz-nav {
 display:flex; justify-content:space-between; align-items:center; gap:.75rem; margin-top:1.5rem; padding-top:1rem; border-top:1px solid rgba(48,137,197,.09); }
body.edit-child-page .wiz-btn-prev {
 display:inline-flex; align-items:center; gap:.4rem; padding:.6rem 1.1rem; border-radius:12px; font-size:.88rem; font-weight:700; background:rgba(92,115,138,.08); color:#5C738A; border:1px solid rgba(92,115,138,.18); cursor:pointer; transition:all .15s; }
body.edit-child-page .wiz-btn-prev:hover {
 background:rgba(92,115,138,.14); }
body.edit-child-page .wiz-btn-next {
 display:inline-flex; align-items:center; gap:.4rem; padding:.6rem 1.25rem; border-radius:12px; font-size:.88rem; font-weight:700; background:linear-gradient(135deg,#1E6FA8,#3089C5); color:#fff; border:none; cursor:pointer; box-shadow:0 6px 18px rgba(48,137,197,.25); transition:all .15s; }
body.edit-child-page .wiz-btn-next:hover {
 opacity:.92; transform:translateY(-1px); }
body.edit-child-page .wiz-btn-submit {
 display:inline-flex; align-items:center; gap:.4rem; padding:.68rem 1.5rem; border-radius:12px; font-size:.92rem; font-weight:700; background:linear-gradient(135deg,#0C9A55,#10BC69); color:#fff; border:none; cursor:pointer; box-shadow:0 6px 18px rgba(16,188,105,.28); transition:all .15s; }
body.edit-child-page .wiz-btn-submit:hover {
 opacity:.92; transform:translateY(-1px); }
body.edit-child-page .wiz-btn-cancel {
 display:inline-flex; align-items:center; gap:.35rem; padding:.58rem 1rem; border-radius:12px; font-size:.85rem; font-weight:700; background:transparent; color:#5C738A; border:1px solid rgba(92,115,138,.18); cursor:pointer; text-decoration:none; transition:all .15s; }
body.edit-child-page .wiz-btn-cancel:hover {
 background:rgba(92,115,138,.06); }


/* ─────────── child_profile.html → body.child-profile-page ─────────── */
body.child-profile-page body {
background:linear-gradient(160deg,#f5f8fd 0%,#f8fbff 60%,#f0fdf4 100%)!important}
body.child-profile-page .cp-shell {
max-width:780px;margin:2.5rem auto 4rem;padding:0 1rem}
body.child-profile-page .cp-header-card {
background:linear-gradient(135deg,#0D2237,#1E6FA8);border-radius:20px;padding:2rem 2.25rem 1.75rem;color:#fff;margin-bottom:1.25rem;display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap}
body.child-profile-page .cp-avatar {
width:80px;height:80px;border-radius:50%;border:3px solid rgba(255,255,255,.3);object-fit:cover;flex-shrink:0}
body.child-profile-page .cp-avatar-fallback {
width:80px;height:80px;border-radius:50%;background:rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;font-size:2rem;color:#fff;font-weight:800;flex-shrink:0;border:3px solid rgba(255,255,255,.3)}
body.child-profile-page .cp-header-info {
flex:1;min-width:180px}
body.child-profile-page .cp-header-eyebrow {
font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.12em;color:rgba(255,255,255,.55);margin-bottom:.35rem}
body.child-profile-page .cp-header-name {
font-size:1.35rem;font-weight:800;margin:0 0 .25rem}
body.child-profile-page .cp-header-age {
font-size:.86rem;color:rgba(255,255,255,.72)}
body.child-profile-page .cp-header-actions {
display:flex;gap:.6rem;flex-wrap:wrap;margin-left:auto}
body.child-profile-page .cp-card {
background:#fff;border:1px solid rgba(48,137,197,.12);border-radius:20px;box-shadow:0 8px 32px rgba(13,34,55,.07);padding:1.75rem 2rem;margin-bottom:1.25rem}
body.child-profile-page .cp-card-header {
display:flex;align-items:center;gap:.5rem;margin-bottom:1.1rem;padding-bottom:.75rem;border-bottom:1px solid rgba(92,115,138,.1)}
body.child-profile-page .cp-card-header h2 {
font-size:.95rem;font-weight:800;color:#0D2237;margin:0}
body.child-profile-page .cp-card-header i {
color:#1E6FA8;font-size:.9rem}
body.child-profile-page .cp-info-grid {
display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.8rem}
body.child-profile-page .cp-info-item {
padding:.8rem 1rem;border:1px solid rgba(48,137,197,.11);border-radius:13px;background:rgba(248,251,255,.8)}
body.child-profile-page .cp-info-label {
font-size:.7rem;font-weight:700;color:#5C738A;text-transform:uppercase;letter-spacing:.07em;margin-bottom:.25rem}
body.child-profile-page .cp-info-value {
font-size:.9rem;font-weight:600;color:#0D2237}
body.child-profile-page .cp-warn {
display:flex;align-items:flex-start;gap:.65rem;padding:.8rem 1rem;background:rgba(249,193,59,.08);border:1px solid rgba(249,193,59,.28);border-radius:12px;font-size:.84rem;color:#374151;margin-bottom:1.25rem}
body.child-profile-page .cp-warn i {
color:#d97706;flex-shrink:0;margin-top:.05rem}
body.child-profile-page .cp-row {
display:flex;justify-content:space-between;align-items:center;padding:.7rem 1rem;border:1px solid rgba(48,137,197,.1);border-radius:13px;background:rgba(248,251,255,.8);margin-bottom:.5rem}
body.child-profile-page .cp-row-left {
display:flex;flex-direction:column;gap:.1rem}
body.child-profile-page .cp-row-name {
font-size:.88rem;font-weight:700;color:#0D2237}
body.child-profile-page .cp-row-date {
font-size:.78rem;color:#5C738A}
body.child-profile-page .cp-badge {
display:inline-flex;align-items:center;padding:.22rem .65rem;border-radius:999px;font-size:.74rem;font-weight:700}
body.child-profile-page .cp-empty {
text-align:center;padding:2rem 1rem;color:#9ca3af;font-size:.88rem}
body.child-profile-page .cp-empty i {
font-size:2rem;display:block;margin-bottom:.65rem;opacity:.35}
body.child-profile-page .cp-btn-action {
display:inline-flex;align-items:center;gap:.4rem;padding:.55rem 1rem;border-radius:12px;font-size:.85rem;font-weight:700;text-decoration:none;cursor:pointer;border:none;transition:opacity .13s}
body.child-profile-page .cp-btn-primary {
background:linear-gradient(135deg,#1E6FA8,#3089C5);color:#fff;box-shadow:0 4px 12px rgba(48,137,197,.22)}
body.child-profile-page .cp-btn-primary:hover {
opacity:.88;color:#fff}
body.child-profile-page .cp-btn-secondary {
border:1.5px solid rgba(92,115,138,.2);color:#374151;background:#fff}
body.child-profile-page .cp-btn-warn {
border:1.5px solid rgba(249,193,59,.4);color:#92400e;background:rgba(249,193,59,.08)}
body.child-profile-page .cp-btn-back {
border:1.5px solid rgba(92,115,138,.2);color:#374151;background:#fff}
@media(max-width:600px) { body.child-profile-page .cp-header-card {flex-direction:column;text-align:center} body.child-profile-page .cp-header-actions {margin-left:0;justify-content:center} body.child-profile-page .cp-info-grid {grid-template-columns:1fr}}


/* ─────────── trip_detail.html → body.trip-detail-page ─────────── */
body.trip-detail-page > main {

    width: 100%;
    max-width: 1920px;
    margin-left: auto;
    margin-right: auto;
    padding: 0 16px;
    box-sizing: border-box;
  }
body.trip-detail-page .trip-detail-shell {

    width: 100%;
    max-width: 1680px;
    margin: 0 auto;
  }
body.trip-detail-page .trip-detail-shell .card {

    width: 100%;
    max-width: none !important;
  }
body.trip-detail-page .trip-detail-header-card {

    overflow: hidden;
    border-radius: 28px;
    border: none;
    box-shadow: none;
    background: transparent;
  }
body.trip-detail-page .trip-detail-grid {

    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
  }
body.trip-detail-page .trip-detail-section {

    height: 100%;
    border-radius: 24px;
    border: 1px solid rgba(31, 132, 198, 0.12);
    background: linear-gradient(180deg, rgba(249, 252, 255, 0.98), rgba(255, 255, 255, 1));
  }
body.trip-detail-page .trip-detail-section .card-body {

    padding: 1.4rem 1.5rem;
  }
body.trip-detail-page .trip-detail-kicker {

    display: inline-flex;
    align-items: center;
    gap: .45rem;
    padding: .35rem .85rem;
    border-radius: 999px;
    background: rgba(46, 103, 255, 0.09);
    color: #2454d1;
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
  }
body.trip-detail-page .trip-identity-row {

    display: flex;
    align-items: center;
    gap: 1rem;
    margin-top: 1rem;
  }
body.trip-detail-page .trip-identity-photo-btn {

    padding: 0;
    border: none;
    background: transparent;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 12px 24px rgba(16, 45, 82, 0.16);
    cursor: zoom-in;
  }
body.trip-detail-page .trip-identity-photo-btn img {

    width: 92px;
    height: 92px;
    object-fit: cover;
    display: block;
  }
body.trip-detail-page .trip-detail-list {

    display: grid;
    gap: .8rem;
    margin: 0;
  }
body.trip-detail-page .trip-detail-item {

    display: grid;
    gap: .2rem;
    padding: .8rem .95rem;
    border-radius: 18px;
    background: rgba(245, 249, 255, 0.9);
  }
body.trip-detail-page .trip-detail-item-label {

    font-size: .8rem;
    font-weight: 700;
    color: #6b7894;
    text-transform: uppercase;
    letter-spacing: .04em;
  }
body.trip-detail-page .trip-detail-item-value {

    font-size: 1rem;
    color: #1b2740;
    word-break: break-word;
  }
body.trip-detail-page .trip-detail-notes {

    padding: 1rem 1.1rem;
    border-radius: 20px;
    background: rgba(255, 248, 236, 0.95);
    color: #5c4620;
  }
body.trip-detail-page .trip-photo-modal .modal-content {

    background: rgba(9, 14, 25, 0.94);
    border: none;
    border-radius: 0;
  }
body.trip-detail-page .trip-photo-modal .modal-header, body.trip-detail-page .trip-photo-modal .modal-footer {

    border: none;
  }
body.trip-detail-page .trip-photo-modal .btn-close {

    filter: invert(1);
  }
body.trip-detail-page .trip-photo-modal img {

    max-width: 100%;
    max-height: 76vh;
    border-radius: 24px;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.35);
  }
@media (max-width: 991.98px) { body.trip-detail-page > main {
      padding: 0 8px;
    } body.trip-detail-page .trip-detail-grid {
      grid-template-columns: 1fr;
    }
  }


/* ─────────── parent_profile.html → body.parent-profile-page ─────────── */
body.institution-dashboard-page {
 background: linear-gradient(160deg,#f5f8fd 0%,#f8fbff 60%,#f0fdf4 100%); }
body.institution-dashboard-page > main {
 background: transparent !important; box-shadow: none; border: 0; }
body.parent-profile-page .profile-shell {

    max-width: 1100px;
    margin: 0 auto;
    padding: 1.5rem 1rem 3rem;
}
body.parent-profile-page /* Breadcrumb */
.app-breadcrumb {

    display: flex;
    align-items: center;
    gap: .4rem;
    font-size: .8rem;
    color: #5C738A;
    margin-bottom: 1.25rem;
    flex-wrap: wrap;
}
body.parent-profile-page .app-breadcrumb a {
 color: #1E6FA8; text-decoration: none; }
body.parent-profile-page .app-breadcrumb a:hover {
 text-decoration: underline; }
body.parent-profile-page .app-breadcrumb .sep {
 color: #d1d5db; }
body.parent-profile-page /* Layout */
.profile-grid {

    display: grid;
    grid-template-columns: 260px 1fr;
    gap: 1.25rem;
    align-items: start;
}
@media (max-width: 767px) { body.parent-profile-page .profile-grid { grid-template-columns: 1fr; } }
body.parent-profile-page /* Cards */
.profile-card {

    background: #fff;
    border: 1px solid rgba(48,137,197,.12);
    border-radius: 20px;
    padding: 1.4rem;
    box-shadow: 0 8px 28px rgba(13,34,55,.07);
}
body.parent-profile-page /* Avatar */
.profile-avatar-wrap {

    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .75rem;
    padding-bottom: 1.1rem;
    border-bottom: 1px solid rgba(48,137,197,.09);
    margin-bottom: 1rem;
}
body.parent-profile-page .profile-avatar {

    width: 88px; height: 88px;
    border-radius: 50%;
    object-fit: cover;
    border: 3px solid rgba(48,137,197,.2);
    box-shadow: 0 4px 16px rgba(30,111,168,.12);
}
body.parent-profile-page .profile-name {
 font-size: 1rem; font-weight: 700; color: #0D2237; text-align: center; }
body.parent-profile-page .profile-email {
 font-size: .78rem; color: #5C738A; text-align: center; margin-top: .1rem; }
body.parent-profile-page /* Sidebar nav */
.profile-sidenav {
 display: flex; flex-direction: column; gap: .3rem; }
body.parent-profile-page .profile-sidenav a {

    display: flex; align-items: center; gap: .65rem;
    padding: .55rem .85rem;
    border-radius: 12px;
    font-size: .875rem; font-weight: 600;
    color: #374151;
    text-decoration: none;
    transition: background .15s, color .15s;
}
body.parent-profile-page .profile-sidenav a:hover {
 background: rgba(48,137,197,.07); color: #1E6FA8; }
body.parent-profile-page .profile-sidenav a.is-active {
 background: rgba(48,137,197,.09); color: #1E6FA8; }
body.parent-profile-page .profile-sidenav .divider {
 height: 1px; background: rgba(48,137,197,.08); margin: .4rem 0; }
body.parent-profile-page /* Children pills */
.child-pill {

    display: flex; align-items: center; gap: .5rem;
    padding: .45rem .85rem;
    border-radius: 12px;
    font-size: .83rem; font-weight: 600;
    color: #374151; text-decoration: none;
    transition: background .15s;
}
body.parent-profile-page .child-pill:hover {
 background: rgba(48,137,197,.07); }
body.parent-profile-page .child-pill.is-active {
 background: rgba(48,137,197,.12); color: #1E6FA8; }
body.parent-profile-page .child-pill img {
 width: 26px; height: 26px; border-radius: 50%; object-fit: cover; }
body.parent-profile-page /* Section headings */
.section-heading {

    font-size: .7rem; font-weight: 700; text-transform: uppercase;
    letter-spacing: .8px; color: #5C738A; margin-bottom: .75rem;
}
body.parent-profile-page /* Info rows */
.info-row {

    display: flex; justify-content: space-between; align-items: baseline;
    padding: .65rem 0;
    border-bottom: 1px solid rgba(92,115,138,.1);
    font-size: .875rem;
    gap: 1rem;
}
body.parent-profile-page .info-row:last-child {
 border-bottom: none; }
body.parent-profile-page .info-label {
 color: #5C738A; flex-shrink: 0; }
body.parent-profile-page .info-value {
 color: #0D2237; font-weight: 600; text-align: right; }
body.parent-profile-page /* Tab buttons */
.profile-tabs {
 display: flex; gap: .5rem; margin-bottom: 1.25rem; flex-wrap: wrap; }
body.parent-profile-page .profile-tab {

    padding: .45rem 1rem; border-radius: 10px; border: none;
    font-size: .83rem; font-weight: 600; cursor: pointer;
    background: rgba(92,115,138,.08); color: #5C738A;
    transition: background .15s, color .15s;
}
body.parent-profile-page .profile-tab.is-active {
 background: #1E6FA8; color: #fff; }
body.parent-profile-page /* Child header */
.child-header {

    display: flex; align-items: center; gap: 1rem;
    padding-bottom: 1rem; border-bottom: 1px solid rgba(48,137,197,.09); margin-bottom: 1.25rem;
}
body.parent-profile-page .child-header img {
 width: 64px; height: 64px; border-radius: 50%; object-fit: cover; border: 2px solid rgba(48,137,197,.2); }
body.parent-profile-page .child-header .child-title {
 font-size: 1.1rem; font-weight: 700; color: #0D2237; }
body.parent-profile-page .child-header .child-sub {
 font-size: .8rem; color: #5C738A; margin-top: .15rem; }
body.parent-profile-page /* Tag badges */
.info-tag {
 display: inline-block; padding: .2rem .6rem; border-radius: 8px; font-size: .75rem; font-weight: 600; }
body.parent-profile-page .info-tag-blue {
 background: rgba(48,137,197,.12); color: #1E6FA8; }
body.parent-profile-page .info-tag-green {
 background: rgba(16,188,105,.1); color: #0C9A55; }
body.parent-profile-page .info-tag-red {
 background: rgba(220,53,69,.1); color: #dc3545; }
body.parent-profile-page /* Navigation arrows */
.child-nav {
 display: flex; justify-content: space-between; margin-top: 1.25rem; padding-top: 1rem; border-top: 1px solid rgba(48,137,197,.09); }
body.parent-profile-page /* TK action buttons */
.ppk-btn {
 display:inline-flex;align-items:center;gap:.35rem;padding:.45rem .9rem;border-radius:10px;font-size:.82rem;font-weight:700;cursor:pointer;text-decoration:none;border:1.5px solid transparent;transition:opacity .13s,background .13s; }
body.parent-profile-page .ppk-btn:hover {
 opacity:.88; }
body.parent-profile-page .ppk-btn-primary {
 background:linear-gradient(135deg,#1E6FA8,#3089C5);color:#fff;border-color:transparent;box-shadow:0 4px 12px rgba(48,137,197,.22); }
body.parent-profile-page .ppk-btn-primary:hover {
 color:#fff; }
body.parent-profile-page .ppk-btn-outline {
 background:#fff;color:#1E6FA8;border-color:rgba(48,137,197,.3); }
body.parent-profile-page .ppk-btn-outline:hover {
 background:rgba(48,137,197,.06);color:#1E6FA8; }
body.parent-profile-page .ppk-btn-secondary {
 background:#fff;color:#374151;border-color:rgba(92,115,138,.2); }
body.parent-profile-page .ppk-btn-secondary:hover {
 background:rgba(92,115,138,.06);color:#374151; }
body.parent-profile-page .ppk-btn-secondary.disabled, body.parent-profile-page .ppk-btn-secondary[disabled] {
 opacity:.45;pointer-events:none; }
body.parent-profile-page .ppk-btn-danger {
 background:#fff;color:#dc3545;border-color:rgba(220,53,69,.25); }
body.parent-profile-page .ppk-btn-danger:hover {
 background:rgba(220,53,69,.05);color:#dc3545; }
body.parent-profile-page .ppk-btn-full {
 width:100%;justify-content:center; }
