:root {
  --brand-primary: #9e2430; --brand-primary-dark: #7b1824; --brand-secondary: #236f94; --brand-accent: #31b4d5;
  --si-red: var(--brand-primary); --si-red-dark: var(--brand-primary-dark); --si-blue: var(--brand-secondary); --si-cyan: var(--brand-accent);
  --si-dark: #20262d; --si-slate: #53606c; --si-bg: #eef3f7; --si-line: #dbe4ea;
  --si-white: #fff; --si-success: #2f866b; --si-warning: #a86d16; --radius: 14px;
  --shadow: 0 14px 40px rgba(23, 38, 49, .09); --sidebar: 258px;
}

/* Operational sessions, reports and learner priorities */
.page-actions,
.table-actions,
.learner-card-actions,
.learning-sequence-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .65rem;
}

.table-actions form { margin: 0; }
.metric-card-status { font-size: 1.3rem !important; }
.campaign-detail-shell progress { width: min(10rem, 100%); }

.operations-columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
  gap: 1.25rem;
  margin-top: 1.25rem;
}

.operations-heading { align-items: center; }
.operations-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1rem;
}
.operations-filter { flex: 1 1 auto; margin: 0; }
.operations-expand-actions { display: flex; gap: .4rem; flex: 0 0 auto; }
.operations-overview {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .75rem;
  padding: .85rem 1rem;
  background: #fff;
  border: 1px solid var(--si-line);
  border-radius: var(--radius);
  box-shadow: 0 8px 24px rgba(23, 38, 49, .05);
}
.operations-overview span {
  display: flex;
  align-items: baseline;
  gap: .4rem;
  color: var(--si-slate);
  white-space: nowrap;
}
.operations-overview strong { color: var(--si-dark); font-size: 1.2rem; }
.operations-column { display: grid; align-content: start; gap: .75rem; min-width: 0; }
.operations-column-heading { padding: 0 .15rem .15rem; }
.operations-column-heading p,
.operations-column-heading h2 { margin: 0; }
.operations-column-heading h2 { margin-top: .2rem; font-size: 1.25rem; }

.operation-category {
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--si-line);
  border-radius: var(--radius);
  box-shadow: 0 8px 24px rgba(23, 38, 49, .05);
}
.operation-category[open] { box-shadow: var(--shadow); }
.operation-category summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: .8rem;
  min-height: 5.7rem;
  padding: 1rem 1.1rem;
  cursor: pointer;
  list-style: none;
}
.operation-category summary::-webkit-details-marker { display: none; }
.operation-category summary:hover { background: #f8fafb; }
.operation-category summary:focus-visible { outline: 3px solid rgba(35, 111, 148, .3); outline-offset: -3px; }
.operation-category summary > span { display: grid; gap: .16rem; min-width: 0; }
.operation-category summary small {
  color: var(--brand-primary);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.operation-category summary strong { overflow: hidden; font-size: 1rem; text-overflow: ellipsis; }
.operation-category summary em { color: var(--si-slate); font-size: .82rem; font-style: normal; }
.operation-category summary b {
  display: inline-grid;
  place-items: center;
  min-width: 2rem;
  height: 2rem;
  padding: 0 .45rem;
  color: var(--si-slate);
  background: #eef3f7;
  border-radius: 999px;
}
.operation-category-alert summary b { color: #7b4d0c; background: #fff1d6; }
.operation-category summary::after {
  content: "+";
  display: grid;
  place-items: center;
  width: 1.8rem;
  height: 1.8rem;
  color: var(--brand-secondary);
  font-size: 1.35rem;
  font-weight: 500;
  background: #edf5f9;
  border-radius: 50%;
}
.operation-category[open] summary::after { content: "−"; }
.operation-category-body { padding: .1rem 1.1rem 1rem; border-top: 1px solid var(--si-line); }
.operation-category-body.operations-list { max-height: 32rem; overflow-y: auto; overscroll-behavior: contain; }
.operation-category-body .empty-state { margin: .9rem 0 0; }
.operation-technical-status { padding-top: 1rem; }
.operation-technical-status p { margin: 0 0 .65rem; }
.operation-footer-link { justify-content: center !important; color: var(--brand-secondary) !important; font-weight: 700; }

.operations-list { display: grid; gap: .5rem; }
.operations-list > a,
.operations-list > article {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: .85rem 0;
  border-bottom: 1px solid var(--si-line);
  color: inherit;
  text-decoration: none;
}
.operations-list > a:hover strong { color: var(--brand-primary); }
.operations-list > :last-child { border-bottom: 0; }
.operations-list span { display: grid; gap: .2rem; }
.operations-list small { color: var(--si-slate); }

.report-filters {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .9rem;
  margin-bottom: 1rem;
}
.report-filters p { margin: 0; }
.report-filters label { display: block; margin-bottom: .35rem; font-weight: 700; }
.report-filters input,
.report-filters select { width: 100%; }
.report-filter-actions { display: flex; align-items: end; gap: .5rem; }

.learner-search {
  display: flex;
  gap: .6rem;
  margin: 0 0 1.5rem;
}
.learner-search input { flex: 1 1 22rem; }
.learner-section { margin-top: 2rem; }
.learner-course-grid { align-items: stretch; }
.learner-course-card { display: flex; flex-direction: column; gap: .75rem; }
.learner-course-card h3,
.learner-course-card p { margin: 0; }
.learner-card-top,
.learner-progress-copy,
.learning-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
}
.learner-card-top > span:last-child,
.learner-course-card > small { color: var(--si-slate); }
.learner-course-card progress { width: 100%; }
.learner-card-actions { margin-top: auto; }
.learner-help-link { font-size: .92rem; }
.learning-toolbar {
  margin-bottom: 1rem;
  padding-bottom: .8rem;
  border-bottom: 1px solid var(--si-line);
  color: var(--si-slate);
}
.learning-page-actions {
  flex-wrap: wrap;
  justify-content: space-between;
  gap: .8rem;
}

@media (max-width: 900px) {
  .operations-columns,
  .report-filters { grid-template-columns: 1fr 1fr; }
  .operations-overview { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 620px) {
  .operations-columns,
  .report-filters { grid-template-columns: 1fr; }
  .operations-toolbar { align-items: stretch; flex-direction: column; }
  .operations-expand-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .operations-overview { grid-template-columns: 1fr 1fr; }
  .operations-overview span { white-space: normal; }
  .operation-category summary { min-height: auto; padding: .9rem; }
  .operation-category-body.operations-list { max-height: 24rem; }
  .learner-search,
  .learner-card-top,
  .learning-toolbar { align-items: stretch; flex-direction: column; }
  .page-actions { width: 100%; }
  .page-actions .button { flex: 1 1 auto; }
}
[hidden] { display:none !important; }

/* Portail de pilotage SERVINFO */
.sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
.ui-icon { display:inline-block; width:1.15rem; height:1.15rem; flex:0 0 auto; vertical-align:-.18em; }
.nav-item .ui-icon { width:1.08rem; height:1.08rem; opacity:.92; }
.button .ui-icon { width:1rem; height:1rem; margin-right:.25rem; }
.icon-button .ui-icon { width:1.35rem; height:1.35rem; }
.nav-item-muted { color:rgba(255,255,255,.62); font-size:.9rem; }
.portal-shell { width:min(1480px,100%); margin:0 auto; }
.portal-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:2rem; margin:0 0 1.5rem; }
.portal-heading h1 { margin:.1rem 0 .35rem; font-size:clamp(2rem,4vw,3rem); line-height:1.08; letter-spacing:-.035em; }
.portal-heading p:last-child { max-width:760px; margin:0; color:var(--si-slate); }
.portal-heading-compact { align-items:flex-start; max-width:920px; }
.button-small { min-height:38px; padding:.55rem .8rem; font-size:.84rem; }
.button-light { color:var(--si-dark); background:white; }
.button-outline-light { color:white; background:transparent; border:1px solid rgba(255,255,255,.5); }
.portal-kpi-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; margin-bottom:1.25rem; }
.portal-kpi { display:flex; align-items:center; gap:1rem; min-height:132px; padding:1.15rem 1.25rem; background:white; border:1px solid var(--si-line); border-radius:16px; box-shadow:0 7px 24px rgba(24,42,54,.06); }
.portal-kpi-icon { display:grid; place-items:center; flex:0 0 48px; width:48px; height:48px; border-radius:14px; font-size:1.15rem; font-weight:800; }
.portal-kpi div { min-width:0; }.portal-kpi small,.portal-kpi span { display:block; color:var(--si-slate); font-size:.78rem; }.portal-kpi strong { display:block; margin:.12rem 0; font-size:1.9rem; line-height:1.1; }
.portal-kpi .portal-kpi-icon { display:grid; place-items:center; }
.portal-kpi .portal-kpi-icon-red,.portal-technical-icon.portal-kpi-icon-red { color:#8e202c; background:#f9e8ea; }.portal-kpi .portal-kpi-icon-blue,.portal-technical-icon.portal-kpi-icon-blue { color:#1e6586; background:#e7f3f8; }.portal-kpi .portal-kpi-icon-cyan,.portal-technical-icon.portal-kpi-icon-cyan { color:#137e8f; background:#e4f6f7; }.portal-kpi .portal-kpi-icon-green,.portal-technical-icon.portal-kpi-icon-green { color:#23745d; background:#e5f4ee; }.portal-kpi .portal-kpi-icon-amber,.portal-technical-icon.portal-kpi-icon-amber { color:#9a6114; background:#fff0d6; }
.portal-kpi-icon .ui-icon { width:22px; height:22px; }
.portal-kpi-grid-compact { margin-top:1.2rem; }.portal-kpi-grid-compact .portal-kpi { min-height:116px; }
.portal-panel,.portal-alert-panel { margin-bottom:1.25rem; padding:1.25rem; background:white; border:1px solid var(--si-line); border-radius:16px; box-shadow:0 8px 28px rgba(24,42,54,.06); }
.portal-alert-panel { background:linear-gradient(135deg,#fff,#fff8ee); border-color:#ead8bc; }
.portal-section-title { display:flex; align-items:flex-end; justify-content:space-between; gap:1rem; margin-bottom:1rem; }.portal-section-title h2 { margin:.1rem 0; font-size:1.3rem; }.portal-section-title > span { color:var(--si-slate); font-size:.82rem; }
.portal-attention-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.7rem; }
.portal-attention-item { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:.75rem; padding:.85rem; color:var(--si-dark); background:white; border:1px solid #eadfcd; border-radius:12px; text-decoration:none; }.portal-attention-item:hover { border-color:#cfa75f; box-shadow:0 6px 18px rgba(91,65,20,.08); }.portal-attention-item span:nth-child(2) { display:grid; }.portal-attention-item small { color:var(--si-slate); }
.status-dot { width:10px; height:10px; border-radius:50%; }.status-dot-good { background:#35a17f; }.status-dot-warning { background:#d08a28; }.status-dot-critical { background:#c4414f; }
.portal-dashboard-grid,.portal-detail-grid { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(320px,.85fr); gap:1.25rem; align-items:start; }.portal-panel-wide { min-width:0; }
.portal-client-list { display:grid; }.portal-client-row { display:grid; grid-template-columns:auto minmax(220px,1fr) 120px auto auto; align-items:center; gap:1rem; min-height:76px; padding:.75rem .35rem; color:var(--si-dark); border-bottom:1px solid var(--si-line); text-decoration:none; }.portal-client-row:last-child { border-bottom:0; }.portal-client-row:hover { padding-left:.65rem; padding-right:.65rem; background:#f7fafb; border-radius:10px; }
.portal-client-row-detailed { grid-template-columns:auto minmax(230px,1fr) 90px 90px 115px auto auto auto; }
.portal-client-avatar { display:grid; place-items:center; width:44px; height:44px; color:white; background:linear-gradient(135deg,var(--si-blue),var(--si-red)); border-radius:12px; font-size:.78rem; font-weight:800; letter-spacing:.04em; }.portal-client-avatar-large { width:66px; height:66px; border:1px solid rgba(255,255,255,.25); font-size:1.05rem; }
.portal-client-identity { display:grid; min-width:0; }.portal-client-identity strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.portal-client-identity small,.portal-client-contract small,.portal-mini-stat small { color:var(--si-slate); }.portal-client-contract { display:grid; }.portal-client-contract strong { font-size:.86rem; }.portal-mini-stat { display:grid; }.portal-mini-stat strong { font-size:.92rem; }
.portal-row-arrow { display:grid; place-items:center; color:#82909a; }.portal-row-arrow .ui-icon { width:1.15rem; height:1.15rem; }.status-chip { display:inline-flex; align-items:center; justify-content:center; width:max-content; padding:.3rem .58rem; border-radius:999px; font-size:.69rem; font-weight:800; white-space:nowrap; }.status-chip-good { color:#246851; background:#e2f3ed; }.status-chip-warning { color:#815411; background:#fff0d6; }.status-chip-critical { color:#8a2631; background:#f9e5e8; }.status-chip-neutral { color:#53606c; background:#edf2f5; }.status-chip-brand { color:#5933a5; background:#eee7fc; }
.portal-timeline { display:grid; }.portal-timeline article { position:relative; display:grid; grid-template-columns:auto 1fr; gap:.75rem; padding:0 0 1rem; }.portal-timeline article:not(:last-child)::before { content:""; position:absolute; left:5px; top:13px; bottom:0; width:1px; background:var(--si-line); }.portal-timeline-dot { position:relative; z-index:1; width:11px; height:11px; margin-top:.35rem; background:var(--si-blue); border:3px solid white; border-radius:50%; box-shadow:0 0 0 1px var(--si-blue); }.portal-timeline p,.portal-timeline small { margin:.08rem 0; color:var(--si-slate); font-size:.78rem; }
.portal-technical-panel { background:linear-gradient(135deg,#fff,#f7fafc); }
.portal-technical-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.85rem; }
.portal-technical-card { display:flex; align-items:center; gap:1rem; min-height:94px; padding:1rem; background:white; border:1px solid var(--si-line); border-radius:13px; }
.portal-technical-icon { display:grid; place-items:center; flex:0 0 46px; width:46px; height:46px; border-radius:13px; }
.portal-technical-icon .ui-icon { width:22px; height:22px; }
.portal-technical-card > div { display:grid; min-width:0; }.portal-technical-card small,.portal-technical-card > div span { color:var(--si-slate); font-size:.76rem; }.portal-technical-card strong { margin:.05rem 0; font-size:1.18rem; }.portal-technical-card > .status-chip { margin-left:auto; }
.portal-toolbar { display:flex; align-items:flex-end; gap:1rem; margin-bottom:1rem; padding:1rem; background:white; border:1px solid var(--si-line); border-radius:14px; }.portal-toolbar > label:not(.portal-search) { display:grid; gap:.3rem; color:var(--si-slate); font-size:.76rem; font-weight:700; }.portal-toolbar select { min-width:190px; min-height:44px; padding:.55rem .7rem; border:1px solid #bcc9d1; border-radius:9px; background:white; }.portal-search { position:relative; flex:1; }.portal-search input { width:100%; min-height:46px; padding:.65rem 3rem .65rem .85rem; border:1px solid #bcc9d1; border-radius:10px; }.portal-search button { position:absolute; right:.25rem; top:.25rem; display:grid; place-items:center; width:38px; height:38px; color:var(--si-blue); background:#eef5f8; border:0; border-radius:8px; cursor:pointer; }.portal-search button .ui-icon { width:1.1rem; height:1.1rem; }
.portal-client-catalog { padding-top:.7rem; }.portal-list-summary { display:flex; justify-content:space-between; padding:.35rem .35rem .8rem; color:var(--si-slate); font-size:.82rem; }.portal-list-summary strong { color:var(--si-dark); }.portal-pagination { display:flex; align-items:center; justify-content:center; gap:1.2rem; padding-top:1rem; border-top:1px solid var(--si-line); }.portal-pagination a { font-weight:700; }
.portal-breadcrumb { display:flex; flex-wrap:wrap; gap:.45rem; margin-bottom:1rem; color:var(--si-slate); font-size:.82rem; }.portal-breadcrumb a { color:var(--si-blue); text-decoration:none; }.portal-breadcrumb strong { color:var(--si-dark); }
.portal-client-hero { display:flex; align-items:center; justify-content:space-between; gap:2rem; padding:1.55rem 1.7rem; color:white; background:linear-gradient(125deg,#172832,var(--si-blue) 70%,var(--si-red)); border-radius:18px; box-shadow:0 14px 36px rgba(24,42,54,.16); }.portal-client-hero-main { display:flex; align-items:center; gap:1rem; }.portal-client-hero h1 { margin:.25rem 0 0; font-size:clamp(1.7rem,4vw,2.5rem); }.portal-client-hero p { margin:0; color:rgba(255,255,255,.72); }.portal-hero-meta { display:flex; flex-wrap:wrap; gap:.4rem; }.portal-hero-actions { display:flex; flex-wrap:wrap; gap:.6rem; }
.portal-tabs { position:sticky; z-index:10; top:74px; display:flex; gap:.25rem; margin:1rem 0 1.25rem; padding:.35rem; overflow-x:auto; background:rgba(244,247,249,.96); border:1px solid var(--si-line); border-radius:12px; backdrop-filter:blur(10px); }.portal-tabs a { padding:.55rem .75rem; color:var(--si-slate); border-radius:8px; text-decoration:none; font-size:.8rem; font-weight:700; white-space:nowrap; }.portal-tabs a:hover { color:var(--si-blue); background:white; }
#vue-ensemble,#contrat,#presentation,#formations,#utilisateurs,#historique { scroll-margin-top:140px; }
.portal-data-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; margin:0; }.portal-data-grid div { padding-bottom:.7rem; border-bottom:1px solid #edf1f3; }.portal-data-grid dt { color:var(--si-slate); font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.04em; }.portal-data-grid dd { margin:.22rem 0 0; font-weight:700; }.portal-data-wide { grid-column:1/-1; }.portal-internal-note { margin-top:1rem; padding:.85rem 1rem; background:#fff8e9; border-left:4px solid #d89b36; border-radius:8px; }.portal-internal-note p { margin:.25rem 0 0; color:#6b5431; }
.portal-contract-head,.portal-seat-meter > div { display:flex; align-items:center; justify-content:space-between; gap:1rem; }.portal-contract-head div { display:grid; }.portal-contract-head small { color:var(--si-slate); }.portal-contract-head strong { font-size:1.1rem; }.portal-contract-dates { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:.65rem; margin:1.3rem 0 .55rem; color:var(--si-slate); font-size:.74rem; }.portal-contract-track { height:8px; overflow:hidden; background:#e6edf1; border-radius:99px; }.portal-contract-track span { display:block; height:100%; background:linear-gradient(90deg,var(--si-blue),var(--si-cyan)); }.portal-contract-remaining { margin:.35rem 0 1.1rem; color:var(--si-slate); text-align:center; font-size:.84rem; }.portal-seat-meter { padding:1rem; background:#f4f8fa; border-radius:11px; }.portal-seat-meter progress { width:100%; height:10px; margin:.65rem 0 .2rem; accent-color:var(--si-blue); }.portal-seat-meter small { color:var(--si-slate); }.portal-rights { display:flex; flex-wrap:wrap; gap:.5rem; margin-top:.85rem; }.portal-rights span { padding:.38rem .6rem; color:#89949b; background:#f0f3f5; border-radius:8px; font-size:.74rem; font-weight:700; text-decoration:line-through; }.portal-rights span.is-enabled { color:#246851; background:#e2f3ed; text-decoration:none; }
.portal-brand-layout { display:grid; grid-template-columns:minmax(320px,1fr) minmax(280px,.8fr); gap:1.5rem; align-items:center; }.portal-brand-preview { --preview-primary:#9e2430; --preview-secondary:#236f94; --preview-accent:#31b4d5; overflow:hidden; min-height:245px; padding:1rem; background:#edf2f5; border:1px solid var(--si-line); border-radius:14px; box-shadow:0 14px 30px rgba(24,42,54,.1); }.portal-brand-preview::before { content:""; display:block; height:6px; margin:-1rem -1rem 1rem; background:linear-gradient(90deg,var(--preview-secondary),var(--preview-accent),var(--preview-primary)); }.portal-brand-preview-top { display:flex; align-items:center; gap:.7rem; padding:.7rem; background:white; border-radius:10px; }.portal-brand-preview-top img { width:84px; height:42px; object-fit:contain; }.portal-brand-preview-top div { display:grid; border-left:1px solid var(--si-line); padding-left:.7rem; }.portal-brand-preview-top small { color:var(--si-slate); font-size:.68rem; }.portal-brand-monogram { display:grid; place-items:center; width:46px; height:46px; color:white; background:linear-gradient(135deg,var(--preview-primary),var(--preview-secondary)); border-radius:11px; font-weight:800; }.portal-brand-preview-content { display:grid; grid-template-columns:repeat(3,1fr); gap:.55rem; margin:1rem 0; }.portal-brand-preview-content span { height:72px; background:white; border-radius:9px; border-top:4px solid var(--preview-primary); }.portal-brand-preview-content span:nth-child(2) { border-color:var(--preview-secondary); }.portal-brand-preview-content span:nth-child(3) { border-color:var(--preview-accent); }.portal-brand-preview-support { padding:.6rem .75rem; color:white; background:linear-gradient(100deg,var(--preview-secondary),var(--preview-primary)); border-radius:9px; font-size:.72rem; }.portal-brand-preview-support strong { float:right; }.portal-brand-status h3 { margin:.7rem 0 .25rem; font-size:1.35rem; }.portal-brand-status p { color:var(--si-slate); }
.portal-table-wrap { overflow-x:auto; }.portal-table { min-width:780px; }.portal-table th { padding:.7rem; background:#f3f6f8; }.portal-table td { padding:.75rem; vertical-align:middle; }.portal-table small { color:var(--si-slate); }.portal-inline-progress { display:inline-block; width:76px; height:6px; margin-right:.35rem; overflow:hidden; background:#e4eaee; border-radius:99px; }.portal-inline-progress span { display:block; height:100%; background:var(--si-blue); }
.portal-course-access-intro { max-width:900px; margin:-.2rem 0 1rem; color:var(--si-slate); font-size:.86rem; }.portal-course-access-form { display:grid; gap:1rem; }.portal-course-access-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.7rem; }.portal-course-access-item { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:.8rem; min-height:72px; padding:.8rem .9rem; background:#fff8f8; border:1px solid #efd8dc; border-radius:12px; cursor:pointer; }.portal-course-access-item:has(input:checked) { background:#f5fbf8; border-color:#cfe8de; }.portal-course-access-copy { display:grid; min-width:0; }.portal-course-access-copy strong { line-height:1.25; }.portal-course-access-copy small { color:var(--si-slate); font-size:.75rem; }.portal-course-access-status-allowed { display:none; }.portal-course-access-item input:checked ~ .portal-course-access-status-allowed { display:inline-flex; }.portal-course-access-item input:checked ~ .portal-course-access-status-blocked { display:none; }.portal-course-access-actions { display:flex; justify-content:flex-end; padding-top:.2rem; }
.portal-member-list { display:grid; }.portal-member-list article { display:grid; grid-template-columns:auto auto minmax(0,1fr) auto auto; align-items:center; gap:.7rem; padding:.65rem 0; border-bottom:1px solid var(--si-line); }.portal-member-list article:last-child { border:0; }.portal-checkbox-placeholder { width:20px; }.portal-member-avatar { display:grid; place-items:center; width:36px; height:36px; color:var(--si-blue); background:#e7f3f8; border-radius:50%; font-weight:800; }.portal-member-list article div { display:grid; min-width:0; }.portal-member-list small { overflow:hidden; color:var(--si-slate); font-size:.75rem; text-overflow:ellipsis; white-space:nowrap; }
.portal-form-shell { max-width:1120px; }.portal-form-card { padding:1.5rem; }.portal-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.1rem 1.3rem; }.portal-field { display:flex; flex-direction:column; gap:.35rem; min-width:0; }.portal-field > label { color:#33414b; font-size:.78rem; font-weight:800; }.portal-field-wide { grid-column:1/-1; }.portal-input { width:100%; min-height:46px; padding:.68rem .78rem; color:var(--si-dark); background:white; border:1px solid #b9c6ce; border-radius:9px; }.portal-input:focus { border-color:var(--si-blue); outline:3px solid color-mix(in srgb,var(--si-cyan) 30%,transparent); }.portal-field textarea.portal-input { min-height:105px; resize:vertical; }.portal-field input[type=color] { min-height:50px; padding:.25rem; }.portal-field input[type=file] { padding:.55rem; }.portal-field-check { justify-content:flex-end; min-height:54px; padding:.7rem .85rem; background:#f4f7f9; border:1px solid var(--si-line); border-radius:9px; }.portal-field-check label { display:flex; align-items:center; gap:.65rem; cursor:pointer; }.portal-checkbox { width:20px; height:20px; accent-color:var(--si-red); }.portal-help { color:var(--si-slate); font-size:.72rem; }.portal-form-actions { display:flex; justify-content:flex-end; gap:.7rem; margin-top:1.5rem; padding-top:1rem; border-top:1px solid var(--si-line); }.portal-create-form { display:grid; gap:1.2rem; }.portal-form-section-heading { display:flex; align-items:center; gap:.8rem; margin-bottom:1.2rem; }.portal-form-section-heading > span { display:grid; place-items:center; width:38px; height:38px; color:white; background:var(--si-blue); border-radius:11px; font-weight:800; }.portal-form-section-heading h2,.portal-form-section-heading p { margin:0; }.portal-form-section-heading p { color:var(--si-slate); font-size:.82rem; }.portal-form-actions-sticky { position:sticky; z-index:8; bottom:12px; margin:0; padding:1rem; background:rgba(255,255,255,.96); border:1px solid var(--si-line); border-radius:13px; box-shadow:0 10px 30px rgba(24,42,54,.12); backdrop-filter:blur(10px); }

@media (max-width:1200px) {
  .portal-kpi-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .portal-attention-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .portal-client-row-detailed { grid-template-columns:auto minmax(220px,1fr) 80px 90px auto auto; }
  .portal-client-row-detailed .portal-mini-stat:nth-of-type(3),.portal-client-row-detailed .status-chip-neutral { display:none; }
}
@media (max-width:900px) {
  .portal-dashboard-grid,.portal-detail-grid,.portal-brand-layout { grid-template-columns:1fr; }
  .portal-client-hero { align-items:flex-start; flex-direction:column; }.portal-hero-actions { width:100%; }.portal-hero-actions .button { flex:1; }
  .portal-tabs { top:66px; }
  .portal-client-row { grid-template-columns:auto minmax(0,1fr) auto; }.portal-client-row .portal-client-contract,.portal-client-row > .status-chip { display:none; }
  .portal-client-row-detailed { grid-template-columns:auto minmax(0,1fr) auto; }.portal-client-row-detailed .portal-mini-stat { display:none; }.portal-client-row-detailed > .status-chip { display:none; }
  .portal-course-access-list { grid-template-columns:1fr; }
}
@media (max-width:700px) {
  .portal-heading { align-items:flex-start; flex-direction:column; gap:1rem; }.portal-heading .button { width:100%; }
  .portal-kpi-grid,.portal-attention-grid,.portal-form-grid,.portal-technical-grid { grid-template-columns:1fr; }.portal-field-wide { grid-column:auto; }
  .portal-kpi { min-height:100px; }.portal-toolbar { align-items:stretch; flex-direction:column; }.portal-toolbar select { width:100%; }.portal-search { width:100%; }
  .portal-client-hero { padding:1.15rem; }.portal-client-hero-main { align-items:flex-start; }.portal-client-avatar-large { width:52px; height:52px; }.portal-hero-actions { flex-direction:column; }.portal-client-row { gap:.65rem; }
  .portal-data-grid { grid-template-columns:1fr; }.portal-data-wide { grid-column:auto; }.portal-contract-dates { grid-template-columns:1fr; }.portal-contract-dates > span:last-child { text-align:right; }
  .portal-brand-preview-content { grid-template-columns:1fr; }.portal-brand-preview-content span { height:42px; }.portal-brand-preview-support strong { float:none; display:block; }
  .portal-form-actions { flex-direction:column-reverse; }.portal-form-actions .button { width:100%; }
  .portal-course-access-item { grid-template-columns:auto minmax(0,1fr); }.portal-course-access-item > .status-chip { grid-column:2; }.portal-course-access-actions .button { width:100%; }
  .portal-member-list article { grid-template-columns:auto auto minmax(0,1fr); align-items:start; }.portal-member-list article > .status-chip,.portal-member-list article > .button { grid-column:3; justify-self:start; }.portal-checkbox-placeholder { display:none; }
}
* { box-sizing: border-box; }
html { color-scheme: light; }
body { margin: 0; color: var(--si-dark); background: #f4f7f9; font-family: Arial, Helvetica, sans-serif; line-height: 1.55; }
a { color: var(--si-blue); } button, input, select, textarea { font: inherit; }
.skip-link { position: fixed; z-index: 1000; left: 1rem; top: -5rem; padding: .75rem 1rem; color: white; background: var(--si-dark); border-radius: 8px; }
.skip-link:focus { top: 1rem; } :focus-visible { outline: 3px solid var(--si-cyan); outline-offset: 3px; }
.topbar { position: fixed; inset: 0 0 auto 0; z-index: 30; min-height: 74px; display: flex; align-items: center; gap: 1rem; padding: .55rem 1.25rem; background: rgba(255,255,255,.96); border-bottom: 1px solid var(--si-line); backdrop-filter: blur(12px); }
.brand { display: flex; align-items: center; gap: .75rem; color: var(--si-dark); text-decoration: none; }
.brand img { width: 118px; height: 52px; object-fit: contain; }
.brand-copy { display: grid; padding-left: .75rem; border-left: 1px solid var(--si-line); }.brand small { color: var(--si-slate); font-size: .72rem; }
.brand-monogram { display:inline-grid; place-items:center; flex:0 0 auto; width:52px; height:52px; padding:0; color:white; background:linear-gradient(135deg,var(--si-red),var(--si-blue)); border:0; border-radius:13px; font-size:1rem; font-weight:800; letter-spacing:.05em; box-shadow:0 8px 20px rgba(23,38,49,.16); }
.topbar-actions { margin-left: auto; display: flex; align-items: center; gap: 1rem; }.tenant-pill { padding: .45rem .75rem; color: var(--si-blue); background: #e9f5fa; border-radius: 999px; font-size: .82rem; font-weight: 700; }
.user-menu { position: relative; }.user-menu summary { cursor: pointer; font-weight: 700; }.user-menu-panel { position: absolute; right: 0; top: 2rem; width: 220px; display: grid; gap: .25rem; padding: .65rem; background: white; border: 1px solid var(--si-line); border-radius: 12px; box-shadow: var(--shadow); }.user-menu-panel a,.user-menu-panel button { display: block; width: 100%; padding: .55rem; text-align: left; color: var(--si-dark); background: none; border: 0; text-decoration: none; cursor:pointer; }
.sidebar { position: fixed; z-index: 20; left: 0; top: 74px; bottom: 0; width: var(--sidebar); display: flex; flex-direction: column; padding: 1.2rem .85rem; overflow-y: auto; color: white; background: linear-gradient(165deg, #172129 0%, #243640 72%, #26313a 100%); }
.sidebar nav { display: grid; gap: .28rem; }.nav-item { display: flex; gap: .8rem; align-items: center; padding: .72rem .8rem; color: rgba(255,255,255,.86); border-radius: 10px; text-decoration: none; font-weight: 700; }.nav-item:hover,.nav-item:focus { color:white; background:rgba(255,255,255,.1); }.nav-label { margin: 1.1rem .8rem .3rem; color: rgba(255,255,255,.48); font-size: .68rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.sidebar-support { margin-top: auto; display: grid; gap: .35rem; padding: 1rem; background: linear-gradient(135deg,var(--si-blue),var(--si-red)); border: 1px solid rgba(255,255,255,.12); border-radius: 12px; }.sidebar-support span { color: rgba(255,255,255,.78); font-size:.82rem; }.sidebar-support a { color:white; font-weight:700; font-size:.84rem; }
.main-content { min-height: 100vh; padding: 106px 32px 48px calc(var(--sidebar) + 32px); }.messages { display:grid; gap:.5rem; margin-bottom:1rem; }.alert { padding:.85rem 1rem; border-radius:10px; background:#e8f3f8; }.alert-error { color:#791923; background:#fbeaec; }.alert-success { color:#1f654f; background:#e3f4ee; }
.page-heading { display:flex; justify-content:space-between; gap:2rem; align-items:flex-end; margin:0 auto 1.6rem; max-width:1440px; }.page-heading h1 { margin:.1rem 0; font-size:clamp(1.8rem,4vw,2.6rem); line-height:1.15; }.page-heading p:last-child { margin:.35rem 0 0; color:var(--si-slate); }.eyebrow { margin:0 0 .35rem; color:var(--si-red); font-size:.72rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }.eyebrow-light { color:#aeeaf6; }
.button { display:inline-flex; justify-content:center; align-items:center; min-height:44px; padding:.7rem 1rem; border:0; border-radius:9px; font-weight:800; text-decoration:none; cursor:pointer; }.button-primary { color:white; background:linear-gradient(135deg,var(--si-red),var(--si-red-dark)); box-shadow:0 8px 22px rgba(32,38,45,.18); }.button-primary:hover { background:var(--si-red-dark); }.button-secondary { color:var(--si-dark); background:#edf2f5; }.button-block { width:100%; }
.metric-grid { max-width:1440px; margin:0 auto 1.4rem; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; }.metric-card { position:relative; overflow:hidden; min-height:150px; padding:1.15rem; background:white; border:1px solid var(--si-line); border-radius:var(--radius); box-shadow:0 6px 18px rgba(32,38,45,.04); }.metric-card span,.metric-card small { display:block; color:var(--si-slate); }.metric-card strong { display:block; margin:.35rem 0; font-size:2rem; }.metric-card-accent::after { content:""; position:absolute; width:110px; height:110px; right:-35px; bottom:-35px; border-radius:50%; background:rgba(49,180,213,.15); }
.panel,.section-block { max-width:1440px; margin:0 auto 1.4rem; padding:1.3rem; background:white; border:1px solid var(--si-line); border-radius:var(--radius); box-shadow:var(--shadow); }.section-title { display:flex; justify-content:space-between; align-items:flex-end; gap:1rem; margin-bottom:1rem; }.section-title h2 { margin:.1rem 0; font-size:1.35rem; }.dashboard-hero { max-width:1440px; margin:0 auto 1.4rem; display:flex; justify-content:space-between; align-items:center; gap:2rem; padding:1.7rem 2rem; color:white; background:linear-gradient(120deg,#1c333f 0%,var(--si-blue) 58%,var(--si-red) 120%); border-radius:18px; box-shadow:var(--shadow); }.dashboard-hero h2 { margin:.2rem 0; font-size:clamp(1.5rem,4vw,2.25rem); }.dashboard-hero p { max-width:720px; color:rgba(255,255,255,.78); }.hero-stat { min-width:150px; text-align:center; }.hero-stat strong { display:block; font-size:3rem; }.hero-stat span { color:rgba(255,255,255,.8); }
.course-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }.course-card { overflow:hidden; background:white; border:1px solid var(--si-line); border-radius:14px; }.course-card-accent { height:7px; background:linear-gradient(90deg,var(--si-blue),var(--si-cyan),var(--si-red)); }.course-card-body { padding:1.1rem; }.course-card h3 { margin:.6rem 0 .25rem; }.course-card p { color:var(--si-slate); }.badge { display:inline-flex; padding:.28rem .55rem; color:var(--si-slate); background:#edf2f5; border-radius:999px; font-size:.72rem; font-weight:800; }.badge-blue { color:#195d7d; background:#e3f3f9; }.progress-row { display:flex; align-items:center; gap:.75rem; margin:1rem 0; }.progress { flex:1; height:8px; overflow:hidden; background:#e6edf1; border-radius:999px; }.progress span { display:block; height:100%; background:linear-gradient(90deg,var(--si-blue),var(--si-cyan)); border-radius:inherit; }.compact-list { display:grid; }.compact-list a { display:flex; justify-content:space-between; gap:1rem; padding:.9rem 0; color:var(--si-dark); border-bottom:1px solid var(--si-line); text-decoration:none; }.compact-list span:first-child { display:grid; }.compact-list small { color:var(--si-slate); }
.responsive-table { overflow-x:auto; }table { width:100%; border-collapse:collapse; }th,td { padding:.8rem; text-align:left; border-bottom:1px solid var(--si-line); }th { color:var(--si-slate); font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; }.empty-state { grid-column:1/-1; padding:2rem; text-align:center; color:var(--si-slate); background:#f5f8fa; border-radius:12px; }
.auth-layout { min-height:100vh; display:grid; grid-template-columns:minmax(320px,1.05fr) minmax(380px,.95fr); }.auth-brand { display:flex; flex-direction:column; justify-content:center; padding:clamp(2rem,7vw,7rem); color:white; background:linear-gradient(145deg,#172129,var(--si-blue) 64%,var(--si-red)); }.auth-brand img { width:190px; max-height:112px; object-fit:contain; padding:.7rem; background:rgba(255,255,255,.92); border-radius:12px; }.auth-brand .auth-monogram { width:92px; height:92px; font-size:1.65rem; border:1px solid rgba(255,255,255,.35); }.auth-brand-name { margin-top:.8rem; font-size:1.12rem; }.auth-brand h1 { max-width:680px; margin:.7rem 0; font-size:clamp(2rem,5vw,4rem); line-height:1.05; }.auth-brand p,.auth-brand li { color:rgba(255,255,255,.8); }.auth-card { align-self:center; width:min(480px,calc(100% - 2rem)); margin:auto; padding:2rem; background:white; border:1px solid var(--si-line); border-radius:18px; box-shadow:var(--shadow); }.auth-card h2 { margin:.2rem 0; font-size:2rem; }.muted { color:var(--si-slate); }.form-stack { display:grid; gap:1rem; margin:1.4rem 0 1rem; }.field { display:grid; gap:.35rem; }.field label { font-weight:700; }.field input,.field select,.field textarea { width:100%; min-height:46px; padding:.7rem .8rem; border:1px solid #bfcbd3; border-radius:8px; background:white; }.field-error { color:var(--si-red); }.text-link { display:inline-block; margin:.35rem 0; font-weight:700; }.auth-help { margin-top:1.4rem; padding-top:1rem; color:var(--si-slate); border-top:1px solid var(--si-line); }.icon-button { min-width:44px; min-height:44px; border:1px solid var(--si-line); border-radius:9px; background:#eef3f7; cursor:pointer; }.nav-toggle { display:none; }.prose { max-width:900px; }.prose h1 { font-size:2.3rem; }.prose h2 { margin-top:1.5rem; }
.page-shell { max-width:1440px; margin:0 auto; }.page-shell > section { margin:0 0 1.4rem; padding:1.2rem; background:white; border:1px solid var(--si-line); border-radius:var(--radius); }.card-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }.card { padding:1.1rem; background:white; border:1px solid var(--si-line); border-radius:12px; box-shadow:0 6px 18px rgba(32,38,45,.05); }.card h3 { margin-top:0; }.card .button { margin-top:.7rem; }
.learning-shell { max-width:1440px; margin:0 auto; display:grid; grid-template-columns:minmax(230px,300px) minmax(0,1fr); gap:1.3rem; align-items:start; }.learning-nav,.learning-page { padding:1.3rem; background:white; border:1px solid var(--si-line); border-radius:var(--radius); box-shadow:var(--shadow); }.learning-nav { position:sticky; top:94px; }.learning-nav progress { width:100%; height:10px; accent-color:var(--si-blue); }.learning-nav h2 { margin-top:1.4rem; font-size:1rem; }.learning-nav ol { margin:0; padding-left:1.3rem; }.learning-nav a { display:block; padding:.5rem; border-radius:8px; }.learning-nav a[aria-current=page] { color:white; background:var(--si-blue); text-decoration:none; }.learning-page h1 { margin-top:0; font-size:clamp(1.8rem,4vw,2.7rem); }.content-block { margin:1rem 0; }.content-block--rich_text { color:var(--si-slate); font-size:1.05rem; }.content-block--quiz { padding:1rem; background:#eef6fa; border-left:4px solid var(--si-cyan); border-radius:9px; }.learning-page img,.learning-page video { max-width:100%; height:auto; border-radius:10px; }.quiz-shell { max-width:900px; }.quiz-shell fieldset { margin:1rem 0; }.quiz-shell legend { padding:.35rem; font-weight:800; }.quiz-shell label { display:block; margin:.5rem 0; }.quiz-shell textarea,.quiz-shell input[type=text],.quiz-shell input[type=number] { max-width:100%; padding:.6rem; border:1px solid #bfcbd3; border-radius:7px; }
.learning-progress-label,.learning-page-meta { display:flex; justify-content:space-between; align-items:center; gap:1rem; color:var(--si-slate); font-size:.82rem; }.learning-nav ol { list-style:none; padding:0; }.learning-nav li { margin:.18rem 0; }.learning-nav a { display:flex; justify-content:space-between; align-items:center; gap:.65rem; color:var(--si-dark); text-decoration:none; }.learning-nav li.is-complete a { color:var(--si-success); }.learning-nav li.is-complete a[aria-current=page] { color:white; }.page-check { display:inline-grid; place-items:center; min-width:22px; height:22px; color:white; background:var(--si-success); border-radius:50%; font-size:.72rem; }.badge-success { color:#236b56; background:#dff2eb; }.learning-page { overflow:hidden; }.learning-page-meta { margin:-.2rem 0 .55rem; }.learning-page > h1 { max-width:820px; margin-bottom:1.5rem; }.content-block--title h2 { margin:1.8rem 0 .5rem; color:var(--si-dark); font-size:clamp(1.35rem,3vw,2rem); }.content-block--rich_text h2,.content-block--rich_text h3 { color:var(--si-dark); }.content-block--rich_text li { margin:.48rem 0; }.content-block--rich_text blockquote { margin:1.2rem 0; padding:1rem 1.2rem; color:var(--si-dark); background:#f4f7f9; border-left:4px solid var(--si-blue); border-radius:0 10px 10px 0; font-size:1.08rem; }.content-block--rich_text table { margin:1rem 0; border:1px solid var(--si-line); }.content-block--rich_text th { color:white; background:var(--si-blue); }.content-block--rich_text tr:last-child td { border-bottom:0; }.content-block--info,.content-block--warning { padding:1rem 1.1rem; border-radius:11px; }.content-block--info { color:#174f67; background:#e9f5fa; border-left:4px solid var(--si-cyan); }.content-block--warning { color:#6f4810; background:#fff4df; border-left:4px solid #d69a37; }.content-block--info p,.content-block--warning p { margin:.25rem 0; }.content-block--quiz { padding:1.25rem; }.content-block--quiz strong { font-size:1.12rem; }.content-block--quiz p { color:var(--si-slate); }.external-video-frame { position:relative; overflow:hidden; width:100%; aspect-ratio:16/9; background:#111; border-radius:12px; box-shadow:0 12px 30px rgba(23,38,49,.16); }.external-video-frame iframe { position:absolute; inset:0; width:100%; height:100%; border:0; }.video-caption { margin:.55rem 0 0; color:var(--si-slate); font-size:.9rem; }.learning-page-actions { display:flex; justify-content:flex-end; margin-top:2rem; padding-top:1.2rem; border-top:1px solid var(--si-line); }.completion-confirmation { color:var(--si-success); font-weight:800; }.page-validation-hint { margin:0; padding:.75rem 1rem; color:#195d7d; background:#e3f3f9; border-radius:9px; }.quiz-result-shell { max-width:760px; }.quiz-result-shell .result-card { margin-bottom:1rem; }.result-score { margin:.2rem 0; color:var(--si-blue); font-size:clamp(2.5rem,8vw,4rem); font-weight:800; line-height:1; }
@media (max-width: 1050px) { .metric-grid { grid-template-columns:repeat(2,1fr); }.course-grid,.card-grid { grid-template-columns:repeat(2,1fr); }.brand small,.tenant-pill { display:none; } }
@media (max-width: 760px) {
  .nav-toggle { display:inline-grid; place-items:center; }.brand img { width:92px; }.brand-copy { display:none; }.brand .brand-monogram { width:44px; height:44px; }.topbar { min-height:66px; padding:.45rem .75rem; }.sidebar { top:66px; transform:translateX(-105%); transition:transform .2s ease; }.nav-open .sidebar { transform:none; }.main-content { padding:88px 14px 32px; }.page-heading { align-items:flex-start; flex-direction:column; }.metric-grid,.course-grid,.card-grid { grid-template-columns:1fr; }.learning-shell { grid-template-columns:1fr; }.learning-nav { position:static; }.learning-page { padding:1.05rem; }.learning-page-actions { justify-content:stretch; }.learning-page-actions form,.learning-page-actions .button { width:100%; }.content-block--rich_text table { min-width:620px; }.content-block--rich_text { overflow-x:auto; }.dashboard-hero { align-items:flex-start; flex-direction:column; padding:1.3rem; }.hero-stat { text-align:left; }.auth-layout { grid-template-columns:1fr; }.auth-brand { min-height:330px; padding:2rem 1.3rem; }.auth-brand h1 { font-size:2rem; }.auth-card { margin:-36px auto 2rem; position:relative; padding:1.35rem; }.responsive-table table,.responsive-table thead,.responsive-table tbody,.responsive-table tr,.responsive-table th,.responsive-table td { display:block; }.responsive-table thead { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }.responsive-table tr { margin-bottom:.8rem; padding:.5rem; border:1px solid var(--si-line); border-radius:10px; }.responsive-table td { display:grid; grid-template-columns:115px 1fr; gap:.5rem; border:0; padding:.45rem; }.responsive-table td::before { content:attr(data-label); color:var(--si-slate); font-size:.72rem; font-weight:800; text-transform:uppercase; }
}
.portal-search button { right:.1rem; top:.1rem; width:44px; height:44px; }
.organization-switcher select { max-width:260px; min-height:44px; padding:.5rem .7rem; border:1px solid var(--si-line); border-radius:9px; background:white; }
.form-card input:not([type="checkbox"]):not([type="radio"]),.form-card select,.form-card textarea { box-sizing:border-box; width:100%; max-width:100%; min-height:44px; }
.form-card select[multiple] { min-height:12rem; }
.nav-overlay { display:none; }
@media (max-width:760px) {
  .organization-switcher select { width:min(42vw,210px); }
  .nav-overlay { position:fixed; z-index:19; inset:66px 0 0; display:block; visibility:hidden; opacity:0; border:0; background:rgba(10,20,28,.52); transition:opacity .2s ease,visibility .2s ease; }
  .nav-open .nav-overlay { visibility:visible; opacity:1; }
  .nav-open { overflow:hidden; }
}

/* Gestion intégrée des formations */
.course-management-shell .page-heading { max-width:none; }
.course-management-shell .course-card { display:flex; flex-direction:column; min-height:300px; }
.course-card-status,.course-badges,.course-card-actions,.course-management-actions,.builder-heading-actions,.version-actions { display:flex; flex-wrap:wrap; align-items:center; gap:.65rem; }
.course-card-status { justify-content:space-between; }
.course-card-actions { justify-content:space-between; margin-top:auto; padding-top:.8rem; border-top:1px solid var(--si-line); }
.course-card-actions .button { margin-top:0; }
.button-ghost { color:var(--si-blue); background:white; border:1px solid #cbd9e1; box-shadow:0 4px 12px rgba(24,42,54,.05); }
.button-ghost:hover,.button-secondary:hover { color:var(--si-blue); background:#e7f3f8; }
.course-management-shell .button { transition:transform .16s ease,box-shadow .16s ease,background .16s ease; }
.course-management-shell .button:hover { transform:translateY(-1px); box-shadow:0 7px 18px rgba(24,42,54,.12); }
.course-catalog-heading { position:relative; overflow:hidden; align-items:center; padding:1.35rem 1.5rem; background:linear-gradient(120deg,#fff 0%,#f5fafc 70%,#fff2f3 100%); border:1px solid var(--si-line); border-radius:17px; box-shadow:0 10px 30px rgba(24,42,54,.07); }
.course-catalog-heading::before { content:""; position:absolute; inset:0 auto 0 0; width:6px; background:linear-gradient(var(--si-blue),var(--si-cyan),var(--si-red)); }
.course-catalog-heading h1 { letter-spacing:-.035em; }
.course-catalog-tabs { display:flex; gap:.55rem; margin:0 0 1.2rem; padding:.4rem; overflow-x:auto; background:#e8eef2; border:1px solid #d6e0e6; border-radius:13px; }
.course-catalog-tabs a { display:flex; align-items:center; gap:.65rem; min-height:46px; padding:.65rem .9rem; color:#43525d; border:1px solid transparent; border-radius:10px; text-decoration:none; font-weight:800; white-space:nowrap; }
.course-catalog-tabs a strong { display:inline-grid; place-items:center; min-width:25px; height:25px; padding:0 .4rem; color:var(--si-slate); background:rgba(255,255,255,.72); border-radius:999px; font-size:.74rem; }
.course-catalog-tabs a:hover { color:var(--si-blue); background:rgba(255,255,255,.72); }
.course-catalog-tabs a[aria-current=page] { color:white; background:linear-gradient(135deg,var(--si-blue),#195b79); border-color:#174f69; box-shadow:0 7px 18px rgba(35,111,148,.22); }
.course-catalog-tabs a[aria-current=page] strong { color:var(--si-blue); background:white; }
.course-catalog-filter { display:flex; align-items:center; gap:.75rem; margin-bottom:1.2rem; padding:1rem; background:white; border:1px solid var(--si-line); border-radius:13px; box-shadow:0 6px 18px rgba(24,42,54,.05); }
.course-catalog-filter label { color:#33414b; font-size:.82rem; font-weight:800; }
.course-catalog-filter select { min-width:min(360px,40vw); min-height:44px; padding:.6rem .75rem; background:white; border:1px solid #b9c8d1; border-radius:9px; }
.course-catalog-filter .button { min-height:44px; }
.course-catalog-grid { background:transparent!important; border:0!important; box-shadow:none!important; padding:0!important; }
.course-management-shell .course-card { position:relative; overflow:hidden; transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease; }
.course-management-shell .course-card::before { content:""; position:absolute; inset:0 0 auto; height:5px; background:linear-gradient(90deg,var(--si-blue),var(--si-cyan),var(--si-red)); }
.course-management-shell .course-card:hover { transform:translateY(-3px); border-color:#bdd3df; box-shadow:0 14px 32px rgba(24,42,54,.12); }
.course-card-title { margin:.9rem 0 .35rem; font-size:1.28rem; line-height:1.25; }
.course-card-title a { display:flex; justify-content:space-between; gap:1rem; color:var(--si-dark); text-decoration:none; }
.course-card-title a span { color:var(--si-blue); transition:transform .16s ease; }
.course-card-title a:hover { color:var(--si-blue); }
.course-card-title a:hover span { transform:translateX(3px); }
.course-card-owner strong { color:var(--si-dark); }
.course-empty-state { min-height:150px; display:grid; place-items:center; }
.course-pagination .button { margin:0; }
.course-management-hero { display:flex; align-items:flex-start; justify-content:space-between; gap:2rem; margin-bottom:1.4rem; padding:1.6rem; color:white; background:linear-gradient(125deg,#172832,var(--si-blue) 72%,var(--si-red)); border-radius:18px; box-shadow:var(--shadow); }
.course-management-hero h1 { max-width:900px; margin:.1rem 0; font-size:clamp(2rem,5vw,3.15rem); line-height:1.08; }
.course-management-hero .lead { margin:.5rem 0 1rem; color:rgba(255,255,255,.78); }
.course-management-hero .eyebrow { color:#bdeefa; }
.course-management-hero .badge { color:white; background:rgba(255,255,255,.16); }
.course-management-actions { justify-content:flex-end; }
.course-management-actions form,.builder-heading-actions form,.version-actions form,.builder-item-heading form,.builder-tree li form,.builder-block-toolbar form,.quiz-question-card header form,.quiz-choice-list form { display:inline-flex; margin:0; }
.button-danger { color:#8a2631; background:#f9e5e8; border:1px solid #efc8ce; }
.button-danger:hover { color:white; background:#a52937; }
.course-overview-grid { display:grid!important; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; padding:0!important; background:transparent!important; border:0!important; box-shadow:none!important; }
.course-overview-grid .card { display:grid; gap:.2rem; min-height:105px; align-content:center; }
.metric-label { color:var(--si-slate); font-size:.74rem; font-weight:800; text-transform:uppercase; letter-spacing:.05em; }
.course-overview-grid strong { font-size:1.12rem; }
.course-breadcrumb { align-items:center; }
.course-breadcrumb .button { margin-right:.25rem; }
.course-section-heading { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:1rem; margin-bottom:1.15rem; padding-bottom:1rem; border-bottom:1px solid var(--si-line); }
.course-section-heading h2,.course-section-heading p { margin:.08rem 0; }
.course-section-heading h2 { font-size:clamp(1.35rem,3vw,1.75rem); letter-spacing:-.02em; }
.course-section-heading > div > p:last-child { max-width:760px; color:var(--si-slate); font-size:.86rem; }
.course-section-number { display:grid; place-items:center; min-width:62px; height:42px; padding:0 .65rem; color:white; background:linear-gradient(135deg,var(--si-blue),var(--si-red)); border-radius:11px; font-size:.66rem; font-weight:900; letter-spacing:.06em; }
.course-section-count { padding:.42rem .65rem; color:#246851; background:#e2f3ed; border-radius:999px; font-size:.76rem; white-space:nowrap; }
.course-access-notice { margin:-.15rem 0 1rem; padding:.75rem .9rem; color:#195d7d; background:#e8f5fa; border-left:4px solid var(--si-cyan); border-radius:8px; font-size:.84rem; }
.course-client-access-form { display:grid; gap:1rem; }
.course-client-access-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; }
.course-client-access-item { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:.8rem; min-height:78px; padding:.8rem .9rem; background:#fff8f8; border:1px solid #efd6da; border-radius:12px; cursor:pointer; transition:border-color .15s ease,background .15s ease,transform .15s ease; }
.course-client-access-item:hover { transform:translateY(-1px); border-color:#dcb9c0; }
.course-client-access-item:has(input:checked) { background:#f3fbf7; border-color:#c5e4d7; }
.course-client-access-item:has(input:disabled) { cursor:default; opacity:.78; }
.course-client-access-identity { display:flex; align-items:center; gap:.7rem; min-width:0; }
.course-client-access-identity > span:last-child { display:grid; min-width:0; }
.course-client-access-identity strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.course-client-access-identity small { color:var(--si-slate); font-size:.75rem; }
.course-client-status-allowed { display:none; }
.course-client-access-item input:checked ~ .course-client-status-allowed { display:inline-flex; }
.course-client-access-item input:checked ~ .course-client-status-blocked { display:none; }
.course-access-footer { display:flex; align-items:center; justify-content:space-between; gap:1.2rem; padding-top:.2rem; }
.course-access-footer p { max-width:780px; margin:0; color:var(--si-slate); font-size:.8rem; }
.version-list { display:grid; gap:.75rem; }
.version-card { display:flex; align-items:center; justify-content:space-between; gap:1.5rem; padding:1rem; border:1px solid var(--si-line); border-radius:12px; }
.version-card h3 { margin:.45rem 0 .15rem; }
.version-card p { margin:0; color:var(--si-slate); font-size:.86rem; }
.version-actions { justify-content:flex-end; }
.preview-banner { display:flex; justify-content:space-between; align-items:center; gap:1rem; margin-bottom:1rem; padding:.75rem 1rem; color:white; background:#1c333f; border-radius:11px; }
.preview-shell { max-width:none; }
.learning-shell.learning-shell-compact { grid-template-columns:minmax(0,1fr); }
.course-navigation { display:grid; grid-template-columns:auto minmax(0,1fr) 140px auto; align-items:center; gap:1rem; padding:1rem; background:var(--si-white); border:1px solid var(--si-line); border-radius:var(--radius); box-shadow:var(--shadow); }
.course-navigation-title { min-width:0; display:grid; gap:.2rem; }
.course-navigation-title span,.course-navigation-title small { color:var(--si-slate); font-size:.75rem; }
.course-navigation-title strong { color:var(--si-dark); font-size:.95rem; overflow-wrap:anywhere; }
.course-navigation .button { padding:.7rem .8rem; font-size:.8rem; text-align:center; }
.course-navigation [aria-disabled=true] { opacity:.45; cursor:default; }
.course-navigation-progress { display:grid; gap:.35rem; font-size:.8rem; }
.course-navigation progress { width:100%; height:8px; accent-color:var(--si-red); }
#validation-page { scroll-margin-top:90px; }
@media (max-width:1100px) {
  .course-navigation { grid-template-columns:auto minmax(0,1fr) auto; gap:.7rem; }
  .course-navigation-progress { grid-column:2; grid-row:2; }
  .course-navigation-previous,.course-navigation-next { grid-row:1 / 3; }
  .course-navigation-next { grid-column:3; }
}
@media (max-width:560px) {
  .course-navigation { grid-template-columns:1fr 1fr; padding:.8rem; }
  .course-navigation-title { grid-column:1 / -1; grid-row:1; }
  .course-navigation-progress { grid-column:1 / -1; grid-row:2; }
  .course-navigation-previous { grid-column:1; grid-row:3; }
  .course-navigation-next { grid-column:2; grid-row:3; }
  .course-navigation .button { display:block; }
}
.portal-field-wide { grid-column:1/-1; }
.portal-field input:not([type=checkbox]):not([type=radio]),.portal-field select,.portal-field textarea { width:100%; max-width:100%; min-height:44px; padding:.65rem .75rem; border:1px solid #bfcbd3; border-radius:8px; background:white; }
.portal-field small,.field small { color:var(--si-slate); }
.portal-form-actions { display:flex; justify-content:flex-end; gap:.7rem; margin-top:1.2rem; padding-top:1rem; border-top:1px solid var(--si-line); }
.builder-heading { align-items:flex-start; }
.builder-heading-actions { justify-content:flex-end; }
.builder-mobile-warning { display:none; margin-bottom:1rem; padding:.85rem 1rem; color:#6f4810; background:#fff4df; border-radius:10px; }
.builder-desktop { display:grid; grid-template-columns:minmax(310px,390px) minmax(0,1fr); gap:1.2rem; align-items:start; }
.builder-tree { position:sticky; top:94px; max-height:calc(100vh - 114px); padding:1rem; overflow:auto; background:white; border:1px solid var(--si-line); border-radius:14px; box-shadow:var(--shadow); }
.builder-panel-title,.builder-item-heading,.builder-page > header,.builder-block-toolbar,.builder-resource-list article,.quiz-question-card > header,.danger-zone { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; }
.builder-panel-title h2,.builder-tree-module h3,.builder-page h2 { margin:.1rem 0; }
.builder-tree-module,.builder-resource-panel { margin-top:1rem; padding-top:1rem; border-top:1px solid var(--si-line); }
.builder-item-heading > div,.builder-tree li > span,.builder-block-toolbar > span,.quiz-question-card > header > div:last-child,.quiz-choice-list > li > span:last-child { display:flex; flex-wrap:wrap; align-items:center; gap:.55rem; }
.builder-tree ol { display:grid; gap:.2rem; padding:0; list-style:none; }
.builder-tree li { display:flex; align-items:center; justify-content:space-between; gap:.5rem; padding:.35rem .45rem; background:#f5f8fa; border-radius:7px; font-size:.82rem; }
.builder-tree li > a { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.builder-tree li > span { justify-content:flex-end; font-size:.73rem; }
.text-button { padding:0; color:var(--si-blue); background:none; border:0; cursor:pointer; font-weight:700; }
.text-button-danger { color:#a52937; }
.builder-add-form { margin-top:.75rem; padding:.65rem; background:#f6f9fa; border:1px solid var(--si-line); border-radius:9px; }
.builder-add-form summary { cursor:pointer; font-weight:800; }
.builder-add-form form { display:grid; gap:.65rem; margin-top:.7rem; }
.builder-add-form p { display:grid; gap:.25rem; margin:0; }
.builder-add-form input:not([type=checkbox]):not([type=radio]),.builder-add-form select,.builder-add-form textarea { width:100%; min-height:40px; padding:.5rem; border:1px solid #bfcbd3; border-radius:7px; }
.builder-resource-list { display:grid; gap:.4rem; }
.builder-resource-list article { padding:.55rem 0; border-bottom:1px solid var(--si-line); font-size:.8rem; }
.builder-resource-list article > div { display:grid; min-width:0; }
.builder-resource-list strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.builder-resource-list small { color:var(--si-slate); }
.builder-canvas { display:grid; gap:1rem; min-width:0; }
.page-shell > .builder-canvas { margin:0; padding:0; background:transparent; border:0; box-shadow:none; }
.builder-page { scroll-margin-top:100px; }
.builder-page > header { margin:-.15rem 0 1rem; padding-bottom:.8rem; border-bottom:1px solid var(--si-line); }
.builder-block { margin:.7rem 0; padding:.85rem; background:#f7f9fa; border:1px solid #e4eaee; border-left:4px solid var(--si-cyan); border-radius:9px; }
.builder-block-toolbar { align-items:center; margin-bottom:.45rem; }
.builder-block-content { max-height:280px; overflow:auto; }
.builder-block small { display:block; color:var(--si-slate); }
.builder-add-form summary { display:flex; align-items:center; gap:.4rem; }
.builder-add-form summary .ui-icon { width:1rem; height:1rem; }
.builder-add-form-primary { margin:.8rem 0 1rem; color:#174f67; background:#eaf5f9; border-color:#b8dce8; }
.builder-icon-action { display:inline-grid; place-items:center; flex:0 0 auto; width:36px; height:36px; padding:0; color:#256e91; background:#eef5f8; border:1px solid #cadbe4; border-radius:9px; text-decoration:none; cursor:pointer; }
.builder-icon-action:hover { color:white; background:var(--si-blue); border-color:var(--si-blue); }
.builder-icon-action .ui-icon { width:1.05rem; height:1.05rem; }
.builder-icon-action-danger { color:#a12633; background:#fff3f4; border-color:#eccbd0; }
.builder-icon-action-danger:hover { color:white; background:var(--si-red); border-color:var(--si-red); }
.builder-block-list { display:grid; gap:.7rem; }
.builder-block-list .builder-block { margin:0; transition:opacity .15s ease,transform .15s ease,box-shadow .15s ease; }
.builder-block.is-dragging { opacity:.55; transform:scale(.995); box-shadow:0 16px 30px rgba(24,42,54,.16); }
.builder-block-identity { display:flex; align-items:center; gap:.55rem; min-width:0; }
.builder-drag-handle { display:inline-grid; place-items:center; width:34px; height:34px; padding:0; color:#65747d; background:white; border:1px solid #cbd7de; border-radius:8px; cursor:grab; touch-action:none; }
.builder-drag-handle:active { cursor:grabbing; }
.builder-drag-handle:focus-visible,.builder-icon-action:focus-visible { outline:3px solid color-mix(in srgb,var(--si-cyan) 38%,transparent); outline-offset:2px; }
.builder-drag-handle .ui-icon { width:1.05rem; height:1.05rem; }
.builder-reorder-status:not(.sr-only) { margin:.65rem 0 0; }

.block-assistant { display:grid; gap:1rem; }
.block-assistant-presets { display:grid; grid-template-columns:repeat(auto-fit,minmax(105px,1fr)); gap:.55rem; }
.block-assistant-presets button { display:grid; place-items:center; gap:.35rem; min-height:76px; padding:.65rem .45rem; color:#394a55; background:#f5f8fa; border:1px solid #d5e0e6; border-radius:11px; cursor:pointer; font-size:.76rem; font-weight:800; }
.block-assistant-presets button:hover,.block-assistant-presets button.is-active { color:#175d7d; background:#e7f4f9; border-color:#68b6cf; box-shadow:0 0 0 2px rgba(49,180,213,.12); }
.block-assistant-presets button[data-block-preset=EXTERNAL_VIDEO] { color:#9e2430; }
.block-assistant-presets button[data-block-preset=EXTERNAL_VIDEO].is-active { color:#8b1420; background:#fff0f1; border-color:#df8c96; }
.block-assistant-presets .ui-icon { width:1.45rem; height:1.45rem; }
.block-assistant-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.block-assistant-grid-compact { grid-template-columns:minmax(0,1fr) minmax(120px,.25fr); }
.block-assistant-panel { display:grid; gap:.85rem; padding:1rem; background:#f7f9fa; border:1px solid #dce5ea; border-radius:12px; }
.block-assistant-panel .field { margin:0; }
.block-assistant-panel input:not([type=checkbox]):not([type=radio]),.block-assistant-panel select,.block-assistant-panel textarea,.block-assistant-grid input,.block-assistant-grid select { width:100%; min-height:44px; padding:.65rem .72rem; background:white; border:1px solid #bfcbd3; border-radius:8px; }
.block-assistant-panel textarea { resize:vertical; }
.block-assistant-panel small { color:var(--si-slate); }
.block-assistant-heading { display:flex; align-items:center; gap:.75rem; }
.block-assistant-heading > div { display:grid; gap:.1rem; }
.block-assistant-heading small { color:var(--si-slate); }
.block-assistant-heading-icon { display:grid; place-items:center; flex:0 0 42px; width:42px; height:42px; color:#1c6b8e; background:#e4f3f8; border-radius:11px; }
.block-assistant-heading-icon-youtube { color:white; background:#c62635; }
.block-assistant-heading-icon .ui-icon { width:1.35rem; height:1.35rem; }
.block-assistant-check { display:flex; align-items:center; gap:.65rem; font-weight:700; cursor:pointer; }
.block-assistant-check input { width:20px; height:20px; accent-color:var(--si-blue); }
.block-assistant-repeat { display:grid; gap:.7rem; }
.block-assistant-repeat > article { display:grid; gap:.65rem; padding:.85rem; background:white; border:1px solid #d8e2e7; border-radius:10px; }
.block-assistant-repeat > article > header { display:flex; align-items:center; justify-content:space-between; gap:.75rem; }
.block-assistant-repeat > [data-repeat-add] { justify-self:start; }
.block-assistant-subpanel { display:grid; gap:.85rem; padding-top:.85rem; border-top:1px solid #d7e2e7; }
.block-assistant-or { display:flex; align-items:center; gap:.7rem; color:var(--si-slate); font-size:.72rem; font-weight:900; text-transform:uppercase; }
.block-assistant-or::before,.block-assistant-or::after { content:""; flex:1; height:1px; background:#d5e0e6; }
.video-url-preview { display:grid; gap:.5rem; max-width:720px; }
.video-url-preview p { margin:0; }
.video-preview-success { color:#28705a; font-weight:800; }

.lms-rich-editor { overflow:hidden; background:white; border:1px solid #bfcbd3; border-radius:10px; }
.lms-rich-editor:not(.is-rich-mode) { overflow:visible; background:transparent; border:0; border-radius:0; }
.lms-rich-editor:not(.is-rich-mode) .lms-rich-toolbar,.lms-rich-editor:not(.is-rich-mode) .lms-rich-surface { display:none; }
.lms-rich-editor:not(.is-rich-mode) > textarea { height:90px; min-height:90px; }
.lms-rich-editor.is-rich-mode > textarea { display:none; }
.lms-rich-toolbar { display:flex; flex-wrap:wrap; align-items:center; gap:.25rem; padding:.45rem; background:#eef3f6; border-bottom:1px solid #ccd8df; }
.lms-rich-toolbar button,.lms-rich-toolbar select { display:inline-grid; place-items:center; width:auto!important; min-width:35px!important; min-height:34px!important; padding:.35rem .48rem!important; color:#2f414c; background:white!important; border:1px solid #c7d2d9!important; border-radius:6px!important; cursor:pointer; font-size:.82rem; }
.lms-rich-toolbar select { min-width:116px!important; }
.lms-rich-toolbar button:hover { color:white; background:var(--si-blue)!important; border-color:var(--si-blue)!important; }
.lms-toolbar-separator { align-self:stretch; width:1px; margin:.15rem .2rem; background:#c6d1d8; }
.lms-rich-surface { min-height:280px; padding:1rem; outline:0; line-height:1.6; }
.lms-rich-surface:focus { box-shadow:inset 0 0 0 3px rgba(49,180,213,.18); }
.lms-rich-surface > :first-child { margin-top:0; }
.lms-rich-surface table { width:100%; border-collapse:collapse; }
.lms-rich-surface th,.lms-rich-surface td { padding:.5rem; border:1px solid #bfcbd3; }
.quiz-question-list { display:grid; gap:1rem; }
.quiz-question-card { padding:1rem; border:1px solid var(--si-line); border-radius:12px; }
.quiz-question-card h2 { margin:.25rem 0; font-size:1.15rem; }
.quiz-question-card header p { margin:.1rem 0; color:var(--si-slate); font-size:.82rem; }
.quiz-choice-list { display:grid; gap:.4rem; padding:0; list-style:none; }
.quiz-choice-list li { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:.65rem; align-items:center; padding:.6rem .7rem; background:#f5f7f8; border-radius:8px; }
.quiz-choice-list li.is-correct { color:#246851; background:#e7f5ef; }
.quiz-choice-list li > div { display:grid; }
.quiz-choice-list small { color:var(--si-slate); }
.quiz-choice-list .quiz-correct-label { color:#246851; font-weight:800; }
.quiz-preview-actions { display:flex; flex-wrap:wrap; align-items:center; gap:.65rem; }
.quiz-preview-actions form { display:inline-flex; margin:0; }
.quiz-expected-answer { margin-top:.8rem; padding:.8rem .9rem; color:#234f42; background:#eef8f4; border-left:4px solid var(--si-success); border-radius:8px; }
.quiz-expected-answer p { margin:.25rem 0 0; }
.danger-zone { align-items:center; border-color:#efc8ce!important; background:#fff8f8!important; }
.danger-zone h2,.danger-zone p { margin:.1rem 0; }

@media (max-width:1100px) {
  .course-overview-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .builder-desktop { grid-template-columns:minmax(280px,330px) minmax(0,1fr); }
}
@media (max-width:880px) {
  .builder-mobile-warning { display:block; }
  .builder-desktop { display:block; }
  .builder-tree { position:static; max-height:none; margin-bottom:1rem; }
  .course-management-hero,.version-card { align-items:flex-start; flex-direction:column; }
  .version-actions,.course-management-actions { justify-content:flex-start; }
  .course-client-access-list { grid-template-columns:1fr; }
}
@media (max-width:760px) {
  .block-assistant-presets { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .block-assistant-grid,.block-assistant-grid-compact { grid-template-columns:1fr; }
  .lms-rich-toolbar { position:sticky; top:0; z-index:2; }
  .course-overview-grid { grid-template-columns:1fr; }
  .builder-heading-actions,.course-management-actions,.version-actions { width:100%; }
  .builder-heading-actions .button,.builder-heading-actions form,.builder-heading-actions form .button,.course-management-actions .button,.course-management-actions form,.course-management-actions form .button { width:100%; }
  .preview-banner,.builder-page > header,.builder-panel-title,.quiz-question-card > header,.danger-zone { align-items:flex-start; flex-direction:column; }
  .quiz-choice-list li { grid-template-columns:auto minmax(0,1fr); }
  .quiz-choice-list li > span:last-child { grid-column:2; }
  .quiz-preview-actions,.quiz-preview-actions .button,.quiz-preview-actions form,.quiz-preview-actions form .button { width:100%; }
  .course-catalog-heading { padding:1.2rem; }
  .course-catalog-tabs a { flex:0 0 auto; }
  .course-catalog-filter { align-items:stretch; flex-direction:column; }
  .course-catalog-filter select,.course-catalog-filter .button { width:100%; min-width:0; }
  .course-section-heading { grid-template-columns:auto minmax(0,1fr); align-items:start; }
  .course-section-heading > .course-section-count { grid-column:2; }
  .course-access-footer { align-items:stretch; flex-direction:column; }
  .course-access-footer .button { width:100%; }
  .course-client-access-item { grid-template-columns:auto minmax(0,1fr); }
  .course-client-access-item > .course-client-status { grid-column:2; }
}

/* Expérience pédagogique premium */
.pedagogy-kicker { display:block; margin-bottom:.35rem; color:var(--si-red); font-size:.68rem; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.pedagogy-diagram { margin:1.5rem 0; padding:1.4rem; color:white; background:linear-gradient(135deg,#162a35 0%,#235f7d 72%,#7f2530 130%); border-radius:18px; box-shadow:0 18px 38px rgba(23,38,49,.16); }
.pedagogy-diagram figcaption { display:grid; gap:.18rem; max-width:780px; margin-bottom:1.2rem; }.pedagogy-diagram figcaption strong { font-size:clamp(1.3rem,3vw,1.8rem); }.pedagogy-diagram figcaption > span:last-child { color:rgba(255,255,255,.76); }
.pedagogy-diagram .pedagogy-kicker { color:#9ee9f6; }.pedagogy-diagram-flow { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:.75rem; margin:0; padding:0; list-style:none; }
.pedagogy-diagram-flow li { position:relative; display:grid; align-content:start; min-height:160px; padding:1rem; background:rgba(255,255,255,.11); border:1px solid rgba(255,255,255,.19); border-radius:13px; backdrop-filter:blur(6px); }
.pedagogy-diagram-flow li:not(:last-child)::after { content:"›"; position:absolute; z-index:2; right:-.62rem; top:50%; display:grid; place-items:center; width:1.2rem; height:1.2rem; color:#16313f; background:#a9ebf6; border-radius:50%; font-size:1rem; font-weight:900; transform:translateY(-50%); }
.pedagogy-step-number { display:grid; place-items:center; width:34px; height:34px; margin-bottom:.75rem; color:#173a4c; background:#a9ebf6; border-radius:9px; font-size:.7rem; font-weight:900; }.pedagogy-diagram-flow strong { display:block; line-height:1.25; }.pedagogy-diagram-flow p { margin:.4rem 0 0; color:rgba(255,255,255,.76); font-size:.84rem; line-height:1.45; }
.pedagogy-diagram-conclusion { margin:1rem 0 0; padding:.8rem 1rem; color:white; background:rgba(0,0,0,.17); border-left:4px solid #a9ebf6; border-radius:8px; font-weight:700; }
.pedagogy-activity { position:relative; overflow:hidden; margin:1.5rem 0; padding:1.35rem; background:linear-gradient(145deg,#fff 0%,#f4fafc 100%); border:1px solid #cbdde6; border-radius:18px; box-shadow:0 14px 34px rgba(24,42,54,.09); }.pedagogy-activity::before { content:""; position:absolute; inset:0 auto 0 0; width:5px; background:linear-gradient(var(--si-blue),var(--si-cyan),var(--si-red)); }.pedagogy-activity.is-complete::after { content:"Activité explorée ✓"; position:absolute; right:1rem; top:1rem; padding:.28rem .55rem; color:#246851; background:#e2f3ed; border-radius:99px; font-size:.68rem; font-weight:900; }
.pedagogy-activity header { max-width:820px; }.pedagogy-activity h2 { margin:.1rem 0; font-size:clamp(1.25rem,3vw,1.7rem); }.pedagogy-activity header p { margin:.35rem 0 1rem; color:var(--si-slate); }.pedagogy-prompt { margin:.8rem 0; color:var(--si-dark); font-size:1.06rem; font-weight:800; }
.pedagogy-choice-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.65rem; }.pedagogy-choice-grid button { display:flex; align-items:center; gap:.75rem; min-height:66px; padding:.8rem .9rem; color:var(--si-dark); background:white; border:1px solid #c8d5dc; border-radius:11px; text-align:left; cursor:pointer; transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease; }.pedagogy-choice-grid button:hover { transform:translateY(-1px); border-color:var(--si-blue); box-shadow:0 7px 16px rgba(24,42,54,.08); }.pedagogy-choice-grid button > span { display:grid; place-items:center; flex:0 0 30px; height:30px; color:var(--si-blue); background:#e7f3f8; border-radius:8px; font-weight:900; }.pedagogy-choice-grid button.is-correct { color:#1f654f; background:#effaf5; border-color:#61a991; }.pedagogy-choice-grid button.is-incorrect { color:#7c2730; background:#fff5f6; border-color:#dba5ab; }
.pedagogy-feedback { display:grid; gap:.15rem; margin-top:.85rem; padding:.85rem 1rem; border-radius:10px; }.pedagogy-feedback.is-correct { color:#1f654f; background:#e3f4ee; }.pedagogy-feedback.is-incorrect { color:#7c2730; background:#fbeaec; }.pedagogy-feedback span { font-size:.9rem; }
.pedagogy-reveal-progress { margin:.5rem 0 .8rem; color:var(--si-slate); font-size:.78rem; font-weight:800; }.pedagogy-reveal-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.65rem; }.pedagogy-reveal-grid details { overflow:hidden; background:white; border:1px solid #cfdae0; border-radius:11px; }.pedagogy-reveal-grid details.is-visited { border-color:#77b5c9; }.pedagogy-reveal-grid summary { display:flex; align-items:center; gap:.7rem; min-height:62px; padding:.8rem; cursor:pointer; font-weight:800; list-style:none; }.pedagogy-reveal-grid summary::-webkit-details-marker { display:none; }.pedagogy-reveal-grid summary::after { content:"+"; margin-left:auto; color:var(--si-blue); font-size:1.2rem; }.pedagogy-reveal-grid details[open] summary::after { content:"−"; }.pedagogy-reveal-grid summary span { color:var(--si-red); font-size:.68rem; }.pedagogy-reveal-grid p { margin:0; padding:0 .9rem .9rem; color:var(--si-slate); }
.quiz-experience-header { margin-bottom:1rem; padding:1.1rem 1.2rem; color:white; background:linear-gradient(125deg,#172832,var(--si-blue) 74%,var(--si-red)); border-radius:16px; box-shadow:var(--shadow); }.quiz-experience-header .eyebrow { color:#aeeaf6; }.quiz-experience-header h1 { margin:.1rem 0; }.quiz-experience-meta { display:flex; align-items:center; gap:.8rem; margin-top:.8rem; }.quiz-experience-meta progress { flex:1; height:10px; accent-color:var(--si-cyan); }.quiz-experience-meta span { font-size:.8rem; font-weight:800; }
.quiz-question-card { padding:1.3rem; border:1px solid var(--si-line); border-radius:14px; box-shadow:0 8px 24px rgba(24,42,54,.06); }.quiz-question-card legend { max-width:850px; font-size:1.12rem; line-height:1.45; }.quiz-points { display:inline-flex; margin-left:.4rem; padding:.18rem .4rem; color:var(--si-blue); background:#e7f3f8; border-radius:99px; font-size:.68rem; vertical-align:middle; }.quiz-choice-option { display:flex!important; align-items:flex-start; gap:.7rem; margin:.55rem 0!important; padding:.75rem .85rem; background:#f7f9fa; border:1px solid #e0e7eb; border-radius:10px; cursor:pointer; }.quiz-choice-option:has(input:checked) { color:#174f67; background:#e9f5fa; border-color:#77b5c9; }.quiz-choice-option input { margin-top:.25rem; accent-color:var(--si-blue); }.quiz-question-help { margin:.3rem 0 .8rem; color:var(--si-slate); font-size:.82rem; }.quiz-ranking-list,.quiz-matching-list { display:grid; gap:.65rem; }.quiz-ranking-row,.quiz-matching-row { display:grid; grid-template-columns:minmax(0,1fr) minmax(150px,.4fr); align-items:center; gap:.8rem; padding:.75rem; background:#f7f9fa; border-radius:10px; }.quiz-ranking-row select,.quiz-matching-row select { width:100%; min-height:42px; padding:.5rem; background:white; border:1px solid #bfcbd3; border-radius:8px; }.quiz-question-warning { margin:.75rem 0 0; color:#8a2631; font-weight:800; }.quiz-question-needs-answer { border-color:#c4414f; box-shadow:0 0 0 3px rgba(196,65,79,.12); }.quiz-navigation { display:flex; align-items:center; justify-content:space-between; gap:.75rem; margin-top:1rem; }.quiz-navigation-right { display:flex; gap:.65rem; margin-left:auto; }
.quiz-correction-list { display:grid; gap:.8rem; }.quiz-correction-card { padding:1rem 1.1rem; border-left:5px solid #b8c7cf; }.quiz-correction-card.is-correct { border-left-color:var(--si-success); }.quiz-correction-card.is-incorrect { border-left-color:var(--si-red); }.quiz-correction-card h3 { margin:.25rem 0 .55rem; font-size:1.02rem; }.quiz-answer-comparison { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.65rem; margin:.7rem 0; }.quiz-answer-comparison div { padding:.7rem .8rem; background:#f5f8fa; border-radius:9px; }.quiz-answer-comparison small { display:block; color:var(--si-slate); font-weight:800; }.quiz-answer-comparison p { margin:.2rem 0; }

@media (max-width:760px) {
  .pedagogy-choice-grid,.pedagogy-reveal-grid,.quiz-answer-comparison { grid-template-columns:1fr; }
  .pedagogy-diagram-flow { grid-template-columns:1fr; }.pedagogy-diagram-flow li { min-height:0; }.pedagogy-diagram-flow li:not(:last-child)::after { right:50%; top:auto; bottom:-.62rem; transform:translateX(50%) rotate(90deg); }
  .pedagogy-activity.is-complete::after { position:static; display:inline-flex; margin-bottom:.6rem; }
  .quiz-ranking-row,.quiz-matching-row { grid-template-columns:1fr; }.quiz-navigation { align-items:stretch; flex-direction:column; }.quiz-navigation-right,.quiz-navigation .button { width:100%; }.quiz-navigation-right { flex-direction:column; }
}

.content-block--image figure { margin:1.35rem 0; overflow:hidden; background:#f4f7f9; border:1px solid var(--si-line); border-radius:14px; box-shadow:0 12px 30px rgba(23,38,49,.1); }
.content-block--image img { display:block; width:100%; height:auto; aspect-ratio:16/9; object-fit:cover; }
.content-block--image figcaption { padding:.75rem 1rem; color:var(--si-slate); font-size:.9rem; }
.video-source { margin:.25rem 0 0; font-size:.85rem; }
.quiz-question-image { margin: 1rem 0 1.5rem; min-width: 0; }
.quiz-question-image img { display: block; width: 100%; max-width: 900px; height: auto; border: 1px solid #cddde5; border-radius: 12px; }
.quiz-question-image figcaption { margin-top: .5rem; font-size: .875rem; color: #526574; }
.quiz-question-image details { margin-top: .5rem; font-size: .9rem; }
.quiz-question-image summary { cursor: pointer; color: #236f94; }
