.family-page {
    min-height: 80vh;
    padding: 42px 20px 78px;
    background:
        radial-gradient(circle at 4% 0%, rgba(108, 77, 246, .15), transparent 30%),
        radial-gradient(circle at 98% 12%, rgba(34, 168, 119, .12), transparent 27%),
        #f7f8fc;
}
.family-container { width: min(1160px, 100%); margin: 0 auto; }
.family-hero, .family-panel, .family-card {
    background: #fff;
    border: 1px solid #e2e6ef;
    border-radius: 22px;
    box-shadow: 0 18px 48px rgba(34, 38, 52, .07);
}
.family-hero { display: grid; grid-template-columns: 1.25fr .75fr; gap: 22px; padding: 29px; margin-bottom: 22px; }
.family-hero h1 { margin: 14px 0 10px; color: #222738; font-size: clamp(36px, 5vw, 56px); line-height: 1.05; }
.family-hero p, .family-muted { color: #697185; line-height: 1.65; }
.family-badge { display: inline-flex; padding: 7px 11px; color: #563fc2; font-size: 11px; font-weight: 950; text-transform: uppercase; letter-spacing: .06em; background: #eeeafd; border-radius: 999px; }
.family-hero-side { padding: 22px; color: #fff; background: linear-gradient(145deg, #30206f, #6c4df6); border-radius: 18px; }
.family-hero-side h2 { color: #fff; margin: 12px 0 8px; }
.family-hero-side p { color: rgba(255,255,255,.82); }
.family-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.family-button, .family-actions button {
    display: inline-flex; min-height: 44px; align-items: center; justify-content: center;
    padding: 0 16px; color: #fff; font: inherit; font-size: 13px; font-weight: 900;
    text-decoration: none; background: #6548df; border: 0; border-radius: 11px; cursor: pointer;
}
.family-button:hover, .family-actions button:hover { color: #fff; text-decoration: none; background: #5237c6; }
.family-button.secondary { color: #4f4381; background: #eeeafd; }
.family-button.danger, .family-actions button.danger { background: #b53a47; }
.family-actions form { margin: 0; }
.family-panel { padding: 25px; margin-top: 20px; }
.family-panel-head { display: flex; justify-content: space-between; gap: 18px; align-items: start; margin-bottom: 18px; }
.family-panel h2, .family-card h3 { margin: 0 0 7px; color: #2d3345; }
.family-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 17px; }
.family-card { padding: 21px; box-shadow: none; }
.family-card-top { display: flex; justify-content: space-between; gap: 12px; align-items: start; }
.family-plan { display: inline-flex; padding: 6px 10px; font-size: 10px; font-weight: 950; border-radius: 999px; color: #176548; background: #e1f5eb; }
.family-plan.free { color: #6b5a2b; background: #fff4cf; }
.family-stats { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 10px; margin: 17px 0; }
.family-stat { padding: 13px; background: #f7f8fc; border: 1px solid #e7eaf1; border-radius: 13px; }
.family-stat strong { display: block; color: #30364a; font-size: 19px; }
.family-stat span { color: #777e90; font-size: 11px; }
.family-code-box { display: grid; grid-template-columns: 1fr auto; gap: 12px; align-items: center; padding: 18px; background: #f1eeff; border: 1px dashed #a894fa; border-radius: 16px; }
.family-code { color: #4f35ba; font-size: clamp(22px, 4vw, 34px); font-weight: 950; letter-spacing: .06em; }
.family-form { display: grid; gap: 16px; }
.family-field { display: grid; gap: 7px; }
.family-field label { color: #30364a; font-size: 13px; font-weight: 900; }
.family-input { width: 100%; min-height: 50px; padding: 0 15px; font: inherit; border: 1px solid #dfe3ec; border-radius: 12px; background: #fafbfe; }
.family-input:focus { outline: 0; border-color: #6c4df6; box-shadow: 0 0 0 4px rgba(108,77,246,.11); }
.family-alert { padding: 14px 16px; margin-bottom: 16px; border-radius: 12px; color: #8e2b34; background: #fff0f1; border: 1px solid #f0c8cc; }
.family-notice { padding: 14px 16px; margin-bottom: 16px; border-radius: 12px; color: #176548; background: #eef9f4; border: 1px solid #cfeadd; }
.family-table-wrap { overflow-x: auto; }
.family-table { width: 100%; border-collapse: collapse; }
.family-table th, .family-table td { padding: 13px; text-align: left; border-bottom: 1px solid #e8eaf0; vertical-align: top; }
.family-table th { color: #4d5568; font-size: 12px; background: #f7f8fc; }
.family-table td { color: #626a7d; font-size: 13px; }
.family-progress { height: 9px; overflow: hidden; background: #e8eaf0; border-radius: 999px; }
.family-progress span { display: block; height: 100%; background: #6548df; border-radius: inherit; }
.family-list { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.family-list-item { padding: 16px; background: #f8f9fc; border: 1px solid #e4e7ef; border-radius: 14px; }
.family-list-item strong { color: #31374a; }
.family-empty { padding: 28px; text-align: center; color: #747b8d; background: #f8f9fc; border: 1px dashed #d5d9e3; border-radius: 16px; }
.family-security { padding: 17px; color: #405049; background: #eef9f4; border: 1px solid #d1ebdf; border-radius: 15px; }
.family-security strong { display: block; color: #176548; margin-bottom: 5px; }
.family-dashboard-card { margin: 22px 0; padding: 22px; background: linear-gradient(145deg, #eef9f4, #fff); border: 1px solid #cfe9dd; border-radius: 20px; }
.family-dashboard-card h2 { margin: 12px 0 8px; color: #244137; }
.family-dashboard-card p { margin: 0; color: #617067; line-height: 1.65; }
@media (max-width: 880px) { .family-hero, .family-grid { grid-template-columns: 1fr; } }
@media (max-width: 680px) {
    .family-page { padding: 28px 14px 58px; }
    .family-hero, .family-panel { padding: 21px; }
    .family-stats { grid-template-columns: 1fr; }
    .family-code-box { grid-template-columns: 1fr; }
    .family-actions { display: grid; }
    .family-actions a, .family-actions button, .family-actions form { width: 100%; }
}

/* ÉTAPE 22 — Paiement Premium familial */
.family-payment-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin-top:18px; }
.family-payment-box { padding:18px; background:#f8f9fc; border:1px solid #e3e7ef; border-radius:16px; }
.family-payment-box strong { display:block; margin-bottom:5px; color:#30364a; }
.family-payment-status { display:inline-flex; padding:6px 10px; color:#6b5a2b; font-size:11px; font-weight:950; background:#fff4cf; border-radius:999px; }
.family-payment-status.active, .family-payment-status.trialing { color:#176548; background:#e1f5eb; }
.family-payment-status.past_due { color:#8b5425; background:#fff0df; }
.family-payment-history { display:grid; gap:10px; margin:16px 0 0; padding:0; list-style:none; }
.family-payment-history li { display:grid; grid-template-columns:1fr auto; gap:15px; padding:14px; background:#f8f9fc; border:1px solid #e4e7ef; border-radius:13px; }
.family-payment-history small { color:#777e90; }
.family-payment-loader { width:42px; height:42px; margin:20px auto; border:4px solid #e2def7; border-top-color:#6548df; border-radius:50%; animation:family-spin .8s linear infinite; }
.family-payment-success.is-success .family-payment-loader { display:none; }
@keyframes family-spin { to { transform:rotate(360deg); } }
.payment-diagnostic-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin-top:20px; }
.payment-diagnostic-item { display:flex; justify-content:space-between; gap:15px; padding:16px; background:#f8f9fc; border:1px solid #e3e7ef; border-radius:14px; }
.payment-diagnostic-ok { color:#176548; font-weight:900; }
.payment-diagnostic-bad { color:#a23642; font-weight:900; }
@media (max-width:700px){ .family-payment-grid,.payment-diagnostic-grid{grid-template-columns:1fr;} .family-payment-history li{grid-template-columns:1fr;} }

/* CLASSMIRROR_FAMILY_V14B_CSS_BEGIN */
.cm-fv14b-add-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
}
.cm-fv14b-add-button {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.cm-fv14b-count {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  padding: 7px 11px;
  border: 1px solid #e2e4ec;
  border-radius: 12px;
  background: #f7f8fb;
  color: #4e5364;
  font-size: 12px;
  font-weight: 800;
}
.cm-fv14b-status {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  margin-left: 8px;
  padding: 4px 8px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 900;
  line-height: 1.2;
  vertical-align: middle;
}
.cm-fv14b-status.is-active {
  color: #176340;
  background: #e8f8ef;
  border: 1px solid #c8edd8;
}
.cm-fv14b-status.is-pending {
  color: #77530c;
  background: #fff6dc;
  border: 1px solid #efd991;
}
.cm-fv14b-guide {
  overflow: hidden;
}
.cm-fv14b-guide-head,
.cm-fv14b-link-guide {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.cm-fv14b-kicker {
  display: inline-flex;
  padding: 5px 9px;
  border-radius: 999px;
  background: #efecff;
  color: #563bd0;
  font-size: 11px;
  font-weight: 900;
}
.cm-fv14b-guide h2 {
  margin: 8px 0 0;
}
.cm-fv14b-steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-top: 15px;
}
.cm-fv14b-steps > div {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 11px;
  border: 1px solid #e8e5f3;
  border-radius: 13px;
  background: #fbfaff;
}
.cm-fv14b-steps b,
.cm-fv14b-mini-flow span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 29px;
  width: 29px;
  height: 29px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 900;
}
.cm-fv14b-steps b {
  color: #fff;
  background: #6c4df6;
}
.cm-fv14b-steps span {
  color: #3e4354;
  font-size: 12px;
  font-weight: 800;
}
.cm-fv14b-link-guide {
  margin: 15px 0;
  padding: 14px;
  border: 1px solid #e5e2f1;
  border-radius: 14px;
  background: #fafaff;
}
.cm-fv14b-link-guide > div:first-child {
  display: grid;
  gap: 7px;
}
.cm-fv14b-mini-flow {
  display: flex;
  align-items: center;
  gap: 7px;
}
.cm-fv14b-mini-flow span {
  color: #74798a;
  background: #fff;
  border: 1px solid #dfe1e9;
}
.cm-fv14b-mini-flow span.done {
  color: #176340;
  background: #e8f8ef;
  border-color: #c8edd8;
}
.cm-fv14b-mini-flow span.current {
  color: #fff;
  background: #6c4df6;
  border-color: #6c4df6;
}
html[dir="rtl"] .cm-fv14b-status {
  margin-left: 0;
  margin-right: 8px;
}
html[dir="rtl"] .cm-fv14b-guide-head,
html[dir="rtl"] .cm-fv14b-link-guide {
  direction: rtl;
}
@media (max-width: 760px) {
  .cm-fv14b-guide-head,
  .cm-fv14b-link-guide {
    align-items: stretch;
    flex-direction: column;
  }
  .cm-fv14b-steps {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 520px) {
  .cm-fv14b-add-row,
  .cm-fv14b-add-button,
  .cm-fv14b-count {
    width: 100%;
  }
  .cm-fv14b-count {
    justify-content: center;
  }
}
/* CLASSMIRROR_FAMILY_V14B_CSS_END */

/* CLASSMIRROR_FAMILY_V15_CSS_BEGIN */
.cm-fv15-unlink-form {
  margin: 0;
}
.cm-fv15-unlink-button {
  background: #fff2f3;
  color: #9e2f3d;
  border: 1px solid #efc7cd;
}
.cm-fv15-unlink-button:hover,
.cm-fv15-unlink-button:focus-visible {
  background: #b53a47;
  color: #fff;
  border-color: #b53a47;
}
html[dir="rtl"] .cm-fv15-unlink-button {
  direction: rtl;
}
@media (max-width: 620px) {
  .cm-fv15-unlink-form,
  .cm-fv15-unlink-button {
    width: 100%;
  }
}
/* CLASSMIRROR_FAMILY_V15_CSS_END */

/* CLASSMIRROR_FAMILY_V16_CSS_BEGIN */
.cm-fv16-summary {
  width: 100%;
  margin: 4px 0 2px;
  padding: 14px;
  background: #fbfcff;
  border: 1px solid #e3e7ef;
  border-radius: 15px;
}
.cm-fv16-summary-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 11px;
}
.cm-fv16-summary-head > strong {
  margin: 0;
  color: #303748;
  font-size: 13px;
}
.cm-fv16-weekly-link {
  color: #5a43c6;
  font-size: 12px;
  font-weight: 850;
  text-decoration: none;
}
.cm-fv16-weekly-link:hover {
  text-decoration: underline;
}
.cm-fv16-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
}
.cm-fv16-item {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  min-width: 0;
  padding: 10px;
  background: #fff;
  border: 1px solid #e8ebf2;
  border-radius: 12px;
}
.cm-fv16-icon {
  flex: 0 0 auto;
  line-height: 1.4;
}
.cm-fv16-item > div {
  min-width: 0;
}
.cm-fv16-item small {
  display: block;
  margin-bottom: 3px;
  color: #777f91;
  font-size: 10px;
  font-weight: 850;
  text-transform: uppercase;
  letter-spacing: .03em;
}
.cm-fv16-value,
.cm-fv16-alert-link {
  display: inline;
  color: #303748;
  font-size: 12px;
  font-weight: 850;
  line-height: 1.4;
}
.cm-fv16-alert-link {
  color: #4f3db0;
  text-decoration: none;
}
.cm-fv16-alert-link:hover {
  text-decoration: underline;
}
.cm-fv16-progress {
  display: inline-flex;
  margin-left: 6px;
  padding: 2px 6px;
  color: #176340;
  font-size: 10px;
  font-weight: 900;
  background: #e8f8ef;
  border-radius: 999px;
}
.cm-fv16-muted {
  color: #7b8292;
  font-size: 12px;
}
html[dir="rtl"] .cm-fv16-summary,
html[dir="rtl"] .cm-fv16-item {
  direction: rtl;
}
html[dir="rtl"] .cm-fv16-progress {
  margin-right: 6px;
  margin-left: 0;
}
@media (max-width: 760px) {
  .cm-fv16-grid {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 520px) {
  .cm-fv16-summary-head {
    align-items: flex-start;
    flex-direction: column;
  }
  .cm-fv16-weekly-link {
    width: 100%;
  }
}
/* CLASSMIRROR_FAMILY_V16_CSS_END */\n\n/* CLASSMIRROR_FAMILY_V17_CSS_BEGIN */
.cm-fv17-actions {
  width: 100%;
  margin: 8px 0 2px;
  padding-top: 11px;
  border-top: 1px solid #eceef4;
}
.cm-fv17-label {
  display: block;
  margin-bottom: 8px;
  color: #777f91;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.cm-fv17-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}
.cm-fv17-form {
  margin: 0;
  min-width: 0;
}
.cm-fv17-action {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;
  width: 100%;
  min-height: 39px;
  padding: 8px 10px;
  color: #3f4658;
  font: inherit;
  font-size: 11px;
  font-weight: 850;
  line-height: 1.25;
  text-align: start;
  text-decoration: none;
  background: #f7f8fb;
  border: 1px solid #e1e5ed;
  border-radius: 10px;
  cursor: pointer;
}
.cm-fv17-action:hover,
.cm-fv17-action:focus-visible {
  color: #4e39b5;
  background: #f0edff;
  border-color: #d5cdfb;
  text-decoration: none;
}
.cm-fv17-button {
  appearance: none;
}
html[dir="rtl"] .cm-fv17-actions,
html[dir="rtl"] .cm-fv17-action {
  direction: rtl;
}
@media (max-width: 520px) {
  .cm-fv17-grid {
    grid-template-columns: 1fr;
  }
}
/* CLASSMIRROR_FAMILY_V17_CSS_END */\n

/* CLASSMIRROR_FAMILY_V18_CSS_BEGIN */
.cm-fv18-shell { margin-bottom: 22px; }
.cm-fv18-hero {
  display:flex; align-items:flex-start; justify-content:space-between; gap:20px;
  padding:22px; background:linear-gradient(145deg,#f2f0ff,#fff);
  border:1px solid #ded9fb; border-radius:20px;
}
.cm-fv18-back { display:inline-flex; margin-bottom:10px; color:#5b47c8; font-size:12px; font-weight:850; text-decoration:none; }
.cm-fv18-kicker { display:inline-flex; padding:4px 8px; color:#5b47c8; font-size:10px; font-weight:950; background:#ece8ff; border-radius:999px; }
.cm-fv18-hero h1 { margin:8px 0 6px; color:#2d3345; font-size:clamp(24px,3vw,34px); }
.cm-fv18-hero p { max-width:720px; margin:0; color:#6d7486; line-height:1.6; }
.cm-fv18-weekly {
  flex:0 0 auto; display:inline-flex; align-items:center; min-height:40px; padding:0 12px;
  color:#4e3bb1; font-size:12px; font-weight:900; text-decoration:none;
  background:#fff; border:1px solid #d9d2fb; border-radius:11px;
}
.cm-fv18-overview { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin-top:12px; }
.cm-fv18-stat { display:flex; align-items:flex-start; gap:10px; min-width:0; padding:14px; background:#fff; border:1px solid #e5e8ef; border-radius:14px; }
.cm-fv18-stat > span { font-size:20px; }
.cm-fv18-stat div { min-width:0; }
.cm-fv18-stat small,.cm-fv18-results small { display:block; color:#7a8292; font-size:10px; font-weight:900; text-transform:uppercase; letter-spacing:.04em; }
.cm-fv18-stat strong { display:block; margin-top:3px; color:#303748; font-size:20px; }
.cm-fv18-stat em { display:block; margin-top:2px; overflow:hidden; color:#7b8292; font-size:11px; font-style:normal; text-overflow:ellipsis; white-space:nowrap; }
.cm-fv18-results { display:flex; align-items:center; gap:18px; margin-top:10px; padding:12px 14px; background:#f8f9fc; border:1px solid #e5e8ef; border-radius:13px; }
.cm-fv18-results > div strong { display:block; margin-top:2px; color:#303748; }
.cm-fv18-results > a { margin-left:auto; color:#5843be; font-size:12px; font-weight:900; text-decoration:none; }
.cm-fv18-detail-title { scroll-margin-top:18px; margin-top:18px; padding:0 2px 9px; color:#555e72; font-size:11px; font-weight:950; text-transform:uppercase; letter-spacing:.05em; border-bottom:1px solid #e6e8ee; }
html[dir="rtl"] .cm-fv18-shell,
html[dir="rtl"] .cm-fv18-hero,
html[dir="rtl"] .cm-fv18-stat,
html[dir="rtl"] .cm-fv18-results { direction:rtl; }
html[dir="rtl"] .cm-fv18-results > a { margin-right:auto; margin-left:0; }
@media (max-width:900px) { .cm-fv18-overview { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:620px) {
  .cm-fv18-hero { flex-direction:column; }
  .cm-fv18-weekly { width:100%; justify-content:center; }
  .cm-fv18-overview { grid-template-columns:1fr; }
  .cm-fv18-results { align-items:stretch; flex-direction:column; gap:10px; }
  .cm-fv18-results > a,html[dir="rtl"] .cm-fv18-results > a { margin:0; }
}
/* CLASSMIRROR_FAMILY_V18_CSS_END */

/* CLASSMIRROR_FAMILY_V17C_DASHBOARD_CSS_BEGIN */
.cm-fv17c-children-panel{padding:22px!important;border:1px solid #e4e7ef;border-radius:22px;background:#f7f8fb}
.cm-fv17c-children-panel>h2{margin:0 0 16px;color:#293044;font-size:20px;letter-spacing:-.02em}
.cm-fv17c-children-panel .learning-path-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:18px}
.cm-fv17c-child-card{position:relative;display:flex!important;flex-direction:column;gap:15px;min-width:0;padding:20px!important;overflow:hidden;background:#fff!important;border:1px solid #dfe3ec!important;border-radius:18px!important;box-shadow:0 8px 28px rgba(28,35,58,.06)}
.cm-fv17c-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.cm-fv17c-identity{display:flex;align-items:center;gap:11px;min-width:0}
.cm-fv17c-avatar{flex:0 0 40px;display:grid;place-items:center;width:40px;height:40px;color:#fff;font-size:16px;font-weight:950;background:linear-gradient(145deg,#6857d9,#4d3aac);border-radius:12px}
.cm-fv17c-name{display:block;overflow:hidden;color:#252c3e;font-size:16px;font-weight:950;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}
.cm-fv17c-meta{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px;color:#7a8192;font-size:11px}
.cm-fv17c-premium{color:#5a45b8;font-weight:850}
.cm-fv17c-status{flex:0 0 auto;margin:0!important;padding:5px 8px!important;font-size:10px!important}
.cm-fv17c-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.cm-fv17c-metric{display:flex;align-items:flex-start;gap:7px;min-width:0;padding:10px;background:#f8f9fc;border:1px solid #e8eaf1;border-radius:11px}
.cm-fv17c-icon{flex:0 0 auto;font-size:15px}
.cm-fv17c-metric div{min-width:0}
.cm-fv17c-metric small{display:block;overflow:hidden;color:#858b9a;font-size:9px;font-weight:850;letter-spacing:.02em;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}
.cm-fv17c-metric strong{display:block;margin-top:2px;overflow:hidden;color:#303649;font-size:15px;font-weight:950;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}
.cm-fv17c-metric em{display:block;margin-top:2px;overflow:hidden;color:#959aa8;font-size:9px;font-style:normal;text-overflow:ellipsis;white-space:nowrap}
.cm-fv17c-signal-value{font-size:11px!important}
.cm-fv17c-focus{padding:13px 14px;background:linear-gradient(145deg,#fbfaff,#f5f3ff);border:1px solid #e2ddfb;border-radius:13px}
.cm-fv17c-focus-head{display:flex;align-items:center;justify-content:space-between;gap:10px;color:#777d8e;font-size:9px;font-weight:900;letter-spacing:.04em;text-transform:uppercase}
.cm-fv17c-focus-head b{color:#5944ba;font-size:11px}
.cm-fv17c-focus-title{display:block;margin-top:7px;color:#303649;font-size:13px;font-weight:900;line-height:1.35}
.cm-fv17c-focus-title.is-good{color:#45745d}
.cm-fv17c-progress{height:6px;margin-top:9px;overflow:hidden;background:#e7e4f2;border-radius:999px}
.cm-fv17c-progress>span{display:block;height:100%;background:linear-gradient(90deg,#6955d4,#8d7ae6);border-radius:inherit}
.cm-fv17c-goal-line{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:11px;padding-top:10px;color:#656c7d;font-size:11px;border-top:1px solid #e5e1f4}
.cm-fv17c-goal-line span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cm-fv17c-goal-line b{flex:0 0 auto;color:#5944ba}
.cm-fv17c-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.cm-fv17c-action-form{display:contents;margin:0}
.cm-fv17c-action{appearance:none;display:flex;align-items:center;justify-content:center;gap:6px;min-width:0;min-height:42px;padding:8px 7px;color:#3f4659;font:inherit;font-size:10px;font-weight:900;line-height:1.15;text-align:center;text-decoration:none;background:#fff;border:1px solid #dfe3ec;border-radius:10px;cursor:pointer}
.cm-fv17c-action:hover,.cm-fv17c-action:focus-visible{color:#533fba;background:#f4f1ff;border-color:#d3cbfa;text-decoration:none}
.cm-fv17c-action span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cm-fv17c-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:12px;border-top:1px solid #eceef3}
.cm-fv17c-premium-link{color:#5944ba;font-size:10px;font-weight:900;text-decoration:none}
.cm-fv17c-unlink{margin:0!important}
.cm-fv17c-unlink-button{padding:0;color:#a14d56;font:inherit;font-size:9px;font-weight:800;background:transparent;border:0;cursor:pointer}
.cm-fv17c-unlink-button:hover{text-decoration:underline}
html[dir="rtl"] .cm-fv17c-child-card,html[dir="rtl"] .cm-fv17c-head,html[dir="rtl"] .cm-fv17c-metric,html[dir="rtl"] .cm-fv17c-focus,html[dir="rtl"] .cm-fv17c-footer{direction:rtl}
@media (max-width:760px){.cm-fv17c-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.cm-fv17c-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:480px){.cm-fv17c-children-panel{padding:14px!important}.cm-fv17c-child-card{padding:15px!important}.cm-fv17c-head{align-items:stretch;flex-direction:column}.cm-fv17c-status{align-self:flex-start}.cm-fv17c-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.cm-fv17c-footer{align-items:flex-start;flex-direction:column}}
/* CLASSMIRROR_FAMILY_V17C_DASHBOARD_CSS_END */

/* CLASSMIRROR_FAMILY_V19_REVISION_CENTER_CSS_BEGIN */
.cm-fv19-center{margin:18px 0 22px;padding:20px;background:#fff;border:1px solid #e1e5ed;border-radius:18px;box-shadow:0 8px 28px rgba(28,35,58,.05)}
.cm-fv19-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}
.cm-fv19-kicker{display:inline-flex;padding:4px 8px;color:#5a45b8;font-size:10px;font-weight:950;background:#f0edff;border-radius:999px}
.cm-fv19-head h2{margin:7px 0 4px;color:#293044;font-size:20px}
.cm-fv19-head p{max-width:700px;margin:0;color:#767e8f;font-size:12px;line-height:1.55}
.cm-fv19-count{flex:0 0 auto;min-width:74px;padding:9px 11px;text-align:center;background:#f7f8fb;border:1px solid #e6e9ef;border-radius:12px}
.cm-fv19-count strong{display:block;color:#3b4254;font-size:18px}.cm-fv19-count span{color:#878d9c;font-size:9px;font-weight:800}
.cm-fv19-priority,.cm-fv19-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:14px;padding:13px 14px;background:linear-gradient(145deg,#f8f6ff,#fcfcff);border:1px solid #dfd9fb;border-radius:13px}
.cm-fv19-priority>div{min-width:0}.cm-fv19-priority small{display:block;color:#827a9e;font-size:9px;font-weight:900;text-transform:uppercase}
.cm-fv19-priority strong{display:block;margin-top:4px;overflow:hidden;color:#333a4e;font-size:12px;text-overflow:ellipsis;white-space:nowrap}
.cm-fv19-priority>div>span{display:inline-block;margin-top:4px;color:#5b47bd;font-size:10px;font-weight:900}
.cm-fv19-priority form,.cm-fv19-toolbar form{flex:0 0 auto;margin:0}
.cm-fv19-primary{min-height:38px;padding:0 12px;color:#fff;font:inherit;font-size:10px;font-weight:900;background:#5c48be;border:0;border-radius:10px;cursor:pointer}
.cm-fv19-difficulty-note{display:flex;align-items:flex-start;gap:9px;margin-top:10px;padding:10px 12px;color:#6c6250;background:#fffaf0;border:1px solid #f0e3c6;border-radius:11px}
.cm-fv19-difficulty-note strong{display:block;font-size:11px}.cm-fv19-difficulty-note small{display:block;margin-top:2px;color:#918671;font-size:9px;line-height:1.4}
.cm-fv19-list{display:grid;gap:8px;margin-top:14px}.cm-fv19-item{padding:11px 12px;background:#f9fafc;border:1px solid #e7e9ef;border-radius:11px}
.cm-fv19-item-main{display:flex;align-items:flex-start;gap:9px}.cm-fv19-item-main>div{min-width:0}
.cm-fv19-item-main strong{display:block;overflow:hidden;color:#343a4d;font-size:11px;font-weight:900;text-overflow:ellipsis;white-space:nowrap}
.cm-fv19-meta{display:flex;flex-wrap:wrap;gap:7px;margin-top:5px;color:#858b99;font-size:9px}.cm-fv19-status{font-weight:850}
.cm-fv19-empty{display:flex;align-items:flex-start;gap:11px;margin-top:14px;padding:16px;color:#707789;background:#f8f9fb;border:1px dashed #d9dde6;border-radius:12px}
.cm-fv19-empty strong{color:#4b5263;font-size:11px}.cm-fv19-empty p{margin:3px 0 0;font-size:10px}
html[dir="rtl"] .cm-fv19-center,html[dir="rtl"] .cm-fv19-head,html[dir="rtl"] .cm-fv19-priority,html[dir="rtl"] .cm-fv19-toolbar,html[dir="rtl"] .cm-fv19-item-main{direction:rtl}
@media (max-width:620px){.cm-fv19-head,.cm-fv19-priority,.cm-fv19-toolbar{align-items:stretch;flex-direction:column}.cm-fv19-count{align-self:flex-start}.cm-fv19-priority form,.cm-fv19-toolbar form,.cm-fv19-primary{width:100%}}
/* CLASSMIRROR_FAMILY_V19_REVISION_CENTER_CSS_END */

/* CLASSMIRROR_FAMILY_V20_GLOBAL_SUMMARY_CSS_BEGIN */
.cm-fv20-summary{margin:20px 0;padding:22px;background:#fff;border:1px solid #e1e5ed;border-radius:20px;box-shadow:0 10px 34px rgba(28,35,58,.05)}
.cm-fv20-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}
.cm-fv20-kicker{display:inline-flex;padding:4px 8px;color:#5b47bd;font-size:9px;font-weight:950;letter-spacing:.04em;text-transform:uppercase;background:#f1eeff;border-radius:999px}
.cm-fv20-head h2{margin:7px 0 4px;color:#293044;font-size:21px;letter-spacing:-.02em}
.cm-fv20-head p{margin:0;color:#7c8393;font-size:11px}
.cm-fv20-plan{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;padding:7px 10px;color:#686f80;font-size:9px;font-weight:900;text-decoration:none;background:#f7f8fa;border:1px solid #e5e8ee;border-radius:999px}
.cm-fv20-plan.is-active{color:#4f3eaa;background:#f2efff;border-color:#ddd5ff}
.cm-fv20-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:17px}
.cm-fv20-stat{display:flex;align-items:center;gap:10px;min-width:0;padding:13px;background:#f8f9fb;border:1px solid #e8eaf0;border-radius:13px}
.cm-fv20-stat-icon{flex:0 0 auto;display:grid;place-items:center;width:31px;height:31px;background:#fff;border:1px solid #e4e7ee;border-radius:9px}
.cm-fv20-stat div{min-width:0}
.cm-fv20-stat strong{display:block;color:#303649;font-size:18px;line-height:1}
.cm-fv20-stat div span{display:block;margin-top:4px;overflow:hidden;color:#838998;font-size:9px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}
.cm-fv20-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.cm-fv20-action{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:0 12px;color:#444b5f;font-size:10px;font-weight:900;text-decoration:none;background:#fff;border:1px solid #dfe3eb;border-radius:10px}
.cm-fv20-action.primary{color:#fff;background:#5c48be;border-color:#5c48be}
.cm-fv20-action:hover{text-decoration:none;filter:brightness(.98)}
html[dir="rtl"] .cm-fv20-summary,html[dir="rtl"] .cm-fv20-head,html[dir="rtl"] .cm-fv20-stat,html[dir="rtl"] .cm-fv20-actions{direction:rtl}
@media (max-width:760px){.cm-fv20-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.cm-fv20-summary{padding:16px}.cm-fv20-head{align-items:stretch;flex-direction:column}.cm-fv20-plan{align-self:flex-start}.cm-fv20-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.cm-fv20-actions{display:grid;grid-template-columns:1fr}.cm-fv20-action{width:100%}}
/* CLASSMIRROR_FAMILY_V20_GLOBAL_SUMMARY_CSS_END */

/* CLASSMIRROR_FAMILY_V21_CLEAN_DASHBOARD_CSS_BEGIN */
.cm-fv21-alert-zone{margin:16px 0 0}
.cm-fv21-alert-zone .cm-fv13{margin:0;padding:16px;border:1px solid #e3e6ed;border-radius:16px;box-shadow:none;background:#fff}
.cm-fv21-alert-zone .cm-fv13-kicker{display:none}
.cm-fv21-alert-zone .cm-fv13-head{margin-bottom:10px}
.cm-fv21-alert-zone .cm-fv13-head h2{margin:0;font-size:14px}
.cm-fv21-alert-zone .cm-fv13-list{gap:7px}
.cm-fv21-alert-zone .cm-fv13-item{padding:9px 10px;border-radius:10px}
.cm-fv21-footer-tools{display:flex;align-items:center;justify-content:flex-end;gap:7px;margin:12px 2px 4px;color:#a0a5b0;font-size:9px}
.cm-fv21-foot-link{color:#747b8a;font-size:9px;font-weight:800;text-decoration:none}
.cm-fv21-foot-link:hover{color:#5543b1;text-decoration:underline}
.learning-choice-container>.learning-path-notice.invited{margin-top:14px!important;padding:10px 12px!important;border-radius:10px!important;opacity:.82}
.learning-choice-container>.learning-path-notice.invited strong{font-size:10px}
.learning-choice-container>.learning-path-notice.invited p{margin-top:3px;font-size:9px}
html[dir="rtl"] .cm-fv21-alert-zone,html[dir="rtl"] .cm-fv21-footer-tools{direction:rtl}
@media (max-width:560px){.cm-fv21-footer-tools{align-items:flex-start;flex-direction:column}.cm-fv21-footer-tools>span{display:none}}
/* CLASSMIRROR_FAMILY_V21_CLEAN_DASHBOARD_CSS_END */

/* CLASSMIRROR_FAMILY_V24_SPACIOUS_DASHBOARD_CSS_BEGIN */

/* FAMILY V24 - synthèse plus lisible, sans toucher à la logique V20/V21 */
.cm-fv20-summary.cm-fv24-spacious{
  margin:28px 0 34px;
  padding:30px;
  border-radius:24px;
  box-shadow:0 14px 40px rgba(28,35,58,.07);
}

.cm-fv24-spacious .cm-fv20-head{
  gap:24px;
  margin-bottom:4px;
}

.cm-fv24-spacious .cm-fv20-kicker{
  padding:6px 11px;
  font-size:10px;
}

.cm-fv24-spacious .cm-fv20-head h2{
  margin:9px 0 6px;
  font-size:26px;
  line-height:1.15;
}

.cm-fv24-spacious .cm-fv20-head p{
  max-width:720px;
  font-size:13px;
  line-height:1.55;
}

.cm-fv24-spacious .cm-fv20-plan{
  min-height:38px;
  padding:0 14px;
  font-size:11px;
  border-radius:999px;
}

.cm-fv24-spacious .cm-fv20-stats{
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:16px;
  margin-top:24px;
}

.cm-fv24-spacious .cm-fv20-stat{
  min-height:112px;
  gap:15px;
  padding:20px 18px;
  border-radius:18px;
}

.cm-fv24-spacious .cm-fv20-stat-icon{
  width:54px;
  height:54px;
  font-size:30px;
  line-height:1;
  border-radius:15px;
  box-shadow:0 4px 12px rgba(31,40,70,.05);
}

.cm-fv24-spacious .cm-fv20-stat strong{
  font-size:28px;
  line-height:1;
}

.cm-fv24-spacious .cm-fv20-stat div span{
  margin-top:8px;
  overflow:visible;
  font-size:12px;
  line-height:1.25;
  text-overflow:clip;
  white-space:normal;
}

.cm-fv24-spacious .cm-fv20-actions{
  gap:12px;
  margin-top:22px;
}

.cm-fv24-spacious .cm-fv20-action{
  min-height:48px;
  padding:0 18px;
  font-size:13px;
  border-radius:13px;
}

.cm-fv24-spacious + .cm-fv17c-children-panel,
.cm-fv24-spacious ~ .cm-fv17c-children-panel{
  margin-top:26px;
}

html[dir="rtl"] .cm-fv24-spacious .cm-fv20-head,
html[dir="rtl"] .cm-fv24-spacious .cm-fv20-stat,
html[dir="rtl"] .cm-fv24-spacious .cm-fv20-actions{
  direction:rtl;
}

@media (max-width:900px){
  .cm-fv20-summary.cm-fv24-spacious{
    padding:24px;
  }

  .cm-fv24-spacious .cm-fv20-stats{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
  }

  .cm-fv24-spacious .cm-fv20-stat{
    min-height:104px;
  }
}

@media (max-width:560px){
  .cm-fv20-summary.cm-fv24-spacious{
    margin:20px 0 26px;
    padding:19px;
    border-radius:20px;
  }

  .cm-fv24-spacious .cm-fv20-head{
    gap:14px;
  }

  .cm-fv24-spacious .cm-fv20-head h2{
    font-size:23px;
  }

  .cm-fv24-spacious .cm-fv20-head p{
    font-size:12px;
  }

  .cm-fv24-spacious .cm-fv20-stats{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
    margin-top:18px;
  }

  .cm-fv24-spacious .cm-fv20-stat{
    min-height:104px;
    align-items:flex-start;
    flex-direction:column;
    gap:10px;
    padding:14px;
  }

  .cm-fv24-spacious .cm-fv20-stat-icon{
    width:48px;
    height:48px;
    font-size:27px;
    border-radius:13px;
  }

  .cm-fv24-spacious .cm-fv20-stat strong{
    font-size:25px;
  }

  .cm-fv24-spacious .cm-fv20-stat div span{
    margin-top:6px;
    font-size:11px;
  }

  .cm-fv24-spacious .cm-fv20-actions{
    display:grid;
    grid-template-columns:1fr;
    gap:10px;
    margin-top:18px;
  }

  .cm-fv24-spacious .cm-fv20-action{
    min-height:48px;
    width:100%;
    font-size:13px;
  }
}

/* CLASSMIRROR_FAMILY_V24_SPACIOUS_DASHBOARD_CSS_END */

/* CLASSMIRROR_FAMILY_V25_SPACIOUS_CHILD_CARD_CSS_BEGIN */

/* FAMILY V25 - carte enfant plus confortable sans changer les données */
.cm-fv17c-children-panel{
  padding:30px!important;
  border-radius:24px!important;
}

.cm-fv17c-children-panel>h2{
  margin:0 0 22px!important;
  font-size:24px!important;
  line-height:1.2;
}

.cm-fv17c-children-panel .learning-path-grid{
  gap:22px!important;
}

.cm-fv17c-child-card.cm-fv25-spacious-child-card{
  gap:22px!important;
  padding:28px!important;
  border-radius:22px!important;
  box-shadow:0 12px 34px rgba(28,35,58,.08)!important;
}

.cm-fv25-spacious-child-card .cm-fv17c-head{
  gap:18px;
}

.cm-fv25-spacious-child-card .cm-fv17c-identity{
  gap:15px;
}

.cm-fv25-spacious-child-card .cm-fv17c-avatar{
  flex-basis:58px;
  width:58px;
  height:58px;
  font-size:23px;
  border-radius:17px;
}

.cm-fv25-spacious-child-card .cm-fv17c-name{
  font-size:21px;
  line-height:1.15;
}

.cm-fv25-spacious-child-card .cm-fv17c-meta{
  gap:7px;
  margin-top:8px;
  font-size:12px;
}

.cm-fv25-spacious-child-card .cm-fv17c-status{
  padding:7px 11px!important;
  font-size:11px!important;
}

.cm-fv25-spacious-child-card .cm-fv17c-metrics{
  gap:12px;
}

.cm-fv25-spacious-child-card .cm-fv17c-metric{
  min-height:92px;
  gap:10px;
  padding:15px;
  border-radius:14px;
}

.cm-fv25-spacious-child-card .cm-fv17c-icon{
  font-size:24px;
  line-height:1;
}

.cm-fv25-spacious-child-card .cm-fv17c-metric small{
  font-size:10px;
  line-height:1.2;
}

.cm-fv25-spacious-child-card .cm-fv17c-metric strong{
  margin-top:5px;
  font-size:21px;
  line-height:1.05;
}

.cm-fv25-spacious-child-card .cm-fv17c-metric em{
  margin-top:5px;
  font-size:10px;
}

.cm-fv25-spacious-child-card .cm-fv17c-signal-value{
  font-size:14px!important;
}

.cm-fv25-spacious-child-card .cm-fv17c-focus{
  padding:19px 20px;
  border-radius:16px;
}

.cm-fv25-spacious-child-card .cm-fv17c-focus-head{
  font-size:10px;
}

.cm-fv25-spacious-child-card .cm-fv17c-focus-head b{
  font-size:13px;
}

.cm-fv25-spacious-child-card .cm-fv17c-focus-title{
  margin-top:9px;
  font-size:16px;
  line-height:1.4;
}

.cm-fv25-spacious-child-card .cm-fv17c-progress{
  height:9px;
  margin-top:12px;
}

.cm-fv25-spacious-child-card .cm-fv17c-goal-line{
  gap:14px;
  margin-top:14px;
  padding-top:13px;
  font-size:12px;
}

.cm-fv25-spacious-child-card .cm-fv17c-actions{
  gap:11px;
}

.cm-fv25-spacious-child-card .cm-fv17c-action{
  min-height:52px;
  gap:8px;
  padding:10px 10px;
  font-size:12px;
  border-radius:13px;
}

.cm-fv25-spacious-child-card .cm-fv17c-action>span:first-child{
  font-size:20px;
  line-height:1;
}

.cm-fv25-spacious-child-card .cm-fv17c-footer{
  gap:16px;
  padding-top:16px;
}

.cm-fv25-spacious-child-card .cm-fv17c-premium-link{
  font-size:11px;
}

.cm-fv25-spacious-child-card .cm-fv17c-unlink-button{
  font-size:10px;
}

html[dir="rtl"] .cm-fv25-spacious-child-card,
html[dir="rtl"] .cm-fv25-spacious-child-card .cm-fv17c-head,
html[dir="rtl"] .cm-fv25-spacious-child-card .cm-fv17c-metric,
html[dir="rtl"] .cm-fv25-spacious-child-card .cm-fv17c-focus,
html[dir="rtl"] .cm-fv25-spacious-child-card .cm-fv17c-footer{
  direction:rtl;
}

@media (max-width:900px){
  .cm-fv17c-children-panel{
    padding:24px!important;
  }

  .cm-fv17c-child-card.cm-fv25-spacious-child-card{
    padding:22px!important;
  }

  .cm-fv25-spacious-child-card .cm-fv17c-metrics{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .cm-fv25-spacious-child-card .cm-fv17c-actions{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media (max-width:560px){
  .cm-fv17c-children-panel{
    padding:17px!important;
    border-radius:20px!important;
  }

  .cm-fv17c-children-panel>h2{
    margin-bottom:16px!important;
    font-size:22px!important;
  }

  .cm-fv17c-child-card.cm-fv25-spacious-child-card{
    gap:18px!important;
    padding:18px!important;
    border-radius:18px!important;
  }

  .cm-fv25-spacious-child-card .cm-fv17c-head{
    align-items:stretch;
    flex-direction:column;
  }

  .cm-fv25-spacious-child-card .cm-fv17c-status{
    align-self:flex-start;
  }

  .cm-fv25-spacious-child-card .cm-fv17c-avatar{
    flex-basis:52px;
    width:52px;
    height:52px;
    font-size:21px;
  }

  .cm-fv25-spacious-child-card .cm-fv17c-name{
    font-size:19px;
  }

  .cm-fv25-spacious-child-card .cm-fv17c-metrics{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:9px;
  }

  .cm-fv25-spacious-child-card .cm-fv17c-metric{
    min-height:88px;
    padding:12px;
  }

  .cm-fv25-spacious-child-card .cm-fv17c-icon{
    font-size:22px;
  }

  .cm-fv25-spacious-child-card .cm-fv17c-metric strong{
    font-size:19px;
  }

  .cm-fv25-spacious-child-card .cm-fv17c-actions{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:9px;
  }

  .cm-fv25-spacious-child-card .cm-fv17c-action{
    min-height:50px;
    font-size:11px;
  }

  .cm-fv25-spacious-child-card .cm-fv17c-footer{
    align-items:flex-start;
    flex-direction:column;
  }
}

@media (max-width:380px){
  .cm-fv25-spacious-child-card .cm-fv17c-actions{
    grid-template-columns:1fr;
  }
}

/* CLASSMIRROR_FAMILY_V25_SPACIOUS_CHILD_CARD_CSS_END */
