/**
 * SGP Certinfi Client Hub - Styles FO
 * Inspiré du référentiel STYLE BO, adaptation FO premium
 */

:root {
  --ch-primary: #00429e;
  --ch-primary-dark: #003078;
  --ch-primary-light: #2568c9;
  --ch-primary-soft: #e8f0fa;
  --ch-accent: #05a5aa;
  --ch-accent-soft: #e0f4f5;
  --ch-teal: #05a5aa;
  --ch-teal-soft: #e0f4f5;
  --ch-green: #2e7d32;
  --ch-green-soft: #e8f5e9;
  --ch-red: #c62828;
  --ch-red-soft: #ffebee;
  --ch-grey: #546e7a;
  --ch-grey-soft: #eceff1;
  --ch-border: #cfd8dc;
  --ch-text: #263238;
  --ch-text-muted: #607d8b;
  --ch-text-meta: #78909c;
  --ch-bg-panel: #fafbfc;
  --ch-card-radius: 10px;
  --ch-card-shadow: 0 2px 8px rgba(0,0,0,0.06);
  --ch-hero-shadow: 0 4px 16px rgba(0,0,0,0.08);
  --ch-badge-radius: 16px;
  --ch-gradient-premium: linear-gradient(135deg, #00429e 0%, #05a5aa 100%);
  --ch-badge-info-bg: #e8f1ff;
  --ch-badge-info-border: #c8dafc;
  --ch-badge-info-text: #0f4fa8;
  --ch-badge-positive-bg: #e3f8ec;
  --ch-badge-positive-border: #b9ebcb;
  --ch-badge-positive-text: #138a4c;
  --ch-badge-tech-bg: #e1f7f8;
  --ch-badge-tech-border: #b7ebee;
  --ch-badge-tech-text: #0b8a93;
  --ch-badge-warning-bg: #fff3dd;
  --ch-badge-warning-border: #f3d8a6;
  --ch-badge-warning-text: #9a640b;
  --ch-badge-danger-bg: #fde9ea;
  --ch-badge-danger-border: #f3c6cb;
  --ch-badge-danger-text: #b2363f;
  --ch-badge-neutral-bg: #edf2f5;
  --ch-badge-neutral-border: #d4dee4;
  --ch-badge-neutral-text: #5e7480;
  /* Ligne haute Hub : onglets + recherche + déconnexion */
  --ch-hub-bar-control-min-h: 44px;
  --ch-hub-bar-radius: 10px;
  --ch-hub-bar-gap: 0.75rem;
}

/* Module Hub intégré au site - largeur contenu max 1140px, centrée, autonome visuellement */
.certinfi-hub-module {
  position: relative;
  width: 100%;
  max-width: 1140px;
  margin-left: auto;
  margin-right: auto;
  padding: 2rem 1.5rem;
  background: transparent;
  min-height: 50vh;
  box-sizing: border-box;
}

.certinfi-hub-module--unauthorized {
  padding: 2rem 1.5rem;
  max-width: 560px;
  margin: 0 auto;
}

/* Barre d'onglets interne (pas de header autonome) */
.certinfi-hub-module-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  align-content: center;
  justify-content: space-between;
  gap: var(--ch-hub-bar-gap);
  padding: 1.25rem 1.5rem;
  background: #fff;
  box-shadow: var(--ch-card-shadow);
  box-sizing: border-box;
}

.certinfi-hub-tabs-main {
  display: flex;
  align-items: center;
  align-content: center;
  gap: 0.625rem;
  flex-wrap: wrap;
  min-width: 0;
}

.certinfi-hub-nav-link {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: var(--ch-hub-bar-control-min-h);
  padding: 0 1.25rem;
  font-size: 0.9375rem;
  font-weight: 500;
  line-height: 1.25;
  color: var(--ch-text-muted);
  background: #fff;
  border: 1px solid var(--ch-border);
  border-radius: var(--ch-hub-bar-radius);
  cursor: pointer;
  transition: all 0.22s ease;
  letter-spacing: 0.01em;
}

.certinfi-hub-nav-link:hover {
  color: var(--ch-primary);
  background: var(--ch-primary-soft);
  border-color: var(--ch-primary-light);
}

.certinfi-hub-nav-link.active {
  color: #fff;
  background: linear-gradient(135deg, var(--ch-primary) 0%, var(--ch-primary-dark) 100%);
  border-color: var(--ch-primary);
  font-weight: 600;
  box-shadow: 0 2px 10px rgba(4, 66, 158, 0.25);
}

.certinfi-hub-module-actions {
  display: flex;
  flex-direction: row;
  align-items: center;
  align-content: center;
  gap: var(--ch-hub-bar-gap);
  flex-wrap: nowrap;
  min-width: 0;
}

/* Bouton déconnexion : couleurs / hover type Access FO, dimensions alignées sur la ligne onglets */
.certinfi-client-hub-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: var(--ch-hub-bar-control-min-h);
  padding: 0 1.25rem;
  border-radius: var(--ch-hub-bar-radius);
  text-decoration: none;
  font-weight: 600;
  font-size: 0.9375rem;
  line-height: 1.25;
  cursor: pointer;
  border: 1px solid transparent;
  box-sizing: border-box;
  flex-shrink: 0;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}

.certinfi-client-hub-btn-outline {
  background: #fff;
  color: #0f2744;
  border: 1px solid #cbd5e1;
}

.certinfi-client-hub-btn-outline:hover {
  border-color: #94a3b8;
  background: #f8fafc;
  color: #0f2744;
}

.certinfi-hub-search-wrap {
  position: relative;
  display: flex;
  align-items: center;
  flex: 0 1 220px;
  min-width: 0;
  max-width: 100%;
}

.certinfi-hub-search-input {
  width: 100%;
  min-height: var(--ch-hub-bar-control-min-h);
  margin: 0;
  padding: 0 1rem;
  font-family: inherit;
  font-size: 0.9375rem;
  font-weight: 500;
  line-height: 1.25;
  color: var(--ch-text);
  border: 1px solid var(--ch-border);
  border-radius: var(--ch-hub-bar-radius);
  background: #fff;
  box-sizing: border-box;
  vertical-align: middle;
}

.certinfi-hub-search-input::placeholder {
  color: var(--ch-text-muted);
  opacity: 1;
}

.certinfi-hub-search-input:focus {
  outline: none;
  border-color: var(--ch-primary-light);
  box-shadow: 0 0 0 2px rgba(4, 66, 158, 0.15);
}

/* Desktop : une seule ligne (onglets + recherche + déconnexion), centrage vertical */
@media (min-width: 769px) {
  .certinfi-hub-module-bar {
    flex-wrap: nowrap;
    align-items: center;
  }

  .certinfi-hub-tabs-main {
    flex-wrap: nowrap;
    flex: 1 1 auto;
    min-width: 0;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
  }

  .certinfi-hub-module-actions {
    flex-shrink: 0;
    align-items: center;
  }

  .certinfi-hub-search-wrap {
    flex: 0 1 220px;
    max-width: 220px;
  }

  .certinfi-client-hub-btn-logout {
    width: auto;
  }
}

.certinfi-hub-search-results {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  margin-top: 4px;
  background: #fff;
  border: 1px solid var(--ch-border);
  border-radius: 6px;
  box-shadow: var(--ch-hero-shadow);
  max-height: 320px;
  overflow-y: auto;
  z-index: 200;
}

.certinfi-hub-search-results[aria-hidden="true"] {
  display: none;
}

.certinfi-hub-search-result-group {
  padding: 0.5rem 1rem;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--ch-text-meta);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.certinfi-hub-search-result-item {
  display: block;
  padding: 0.75rem 1rem;
  font-size: 0.9375rem;
  color: var(--ch-text);
  text-decoration: none;
  border-bottom: 1px solid var(--ch-grey-soft);
  cursor: pointer;
}

.certinfi-hub-search-result-item:hover {
  background: var(--ch-primary-soft);
}

.certinfi-hub-search-result-item:last-child {
  border-bottom: none;
}

/* Buttons */
.certinfi-hub-btn {
  display: inline-block;
  padding: 0.5rem 1rem;
  font-size: 0.875rem;
  font-weight: 500;
  text-decoration: none;
  border-radius: 6px;
  cursor: pointer;
  transition: background 0.2s, color 0.2s, border-color 0.2s;
  border: 1px solid transparent;
}

.certinfi-hub-btn-primary {
  background: var(--ch-primary);
  color: #fff;
  border-color: var(--ch-primary);
}

.certinfi-hub-btn-primary:hover {
  background: var(--ch-primary-dark);
  border-color: var(--ch-primary-dark);
  color: #fff;
}

.certinfi-hub-btn-outline {
  background: var(--ch-primary-soft);
  color: var(--ch-primary);
  border-color: var(--ch-primary-light);
}

.certinfi-hub-btn-outline:hover {
  background: var(--ch-primary);
  color: #fff;
  border-color: var(--ch-primary);
}

.certinfi-hub-btn-ghost {
  background: transparent;
  color: var(--ch-text-muted);
}

.certinfi-hub-btn-ghost:hover {
  background: var(--ch-grey-soft);
  color: var(--ch-text);
}

/* Contenu principal - full width */
.certinfi-hub-module .certinfi-hub-content {
  max-width: 100%;
  margin: 0;
  padding: 1.5rem;
  width: 100%;
  box-sizing: border-box;
}

.certinfi-hub-content {
  position: relative;
  min-height: 200px;
}

.certinfi-hub-loading {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 3rem;
  color: var(--ch-text-muted);
}

.certinfi-hub-spinner {
  display: inline-block;
  width: 32px;
  height: 32px;
  border: 3px solid var(--ch-grey-soft);
  border-top-color: var(--ch-primary);
  border-radius: 50%;
  animation: certinfi-hub-spin 0.8s linear infinite;
  margin-bottom: 1rem;
}

@keyframes certinfi-hub-spin {
  to { transform: rotate(360deg); }
}

.certinfi-hub-panels {
  display: flex;
  flex-direction: column;
  gap: 2.25rem;
}

/* Cards */
.certinfi-hub-card {
  background: #fff;
  border: 1px solid var(--ch-border);
  border-radius: var(--ch-card-radius);
  box-shadow: var(--ch-card-shadow);
  padding: 1.5rem;
}

.certinfi-hub-card-hero {
  background: linear-gradient(145deg, var(--ch-primary-soft) 0%, #fff 50%);
  border-left: 5px solid var(--ch-primary);
  box-shadow: var(--ch-hero-shadow);
  padding: 1.75rem 1.5rem;
}

.certinfi-hub-card-hero--home {
  padding: 1.9rem 1.75rem;
}

.certinfi-hub-home-hero {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1.5rem;
  flex-wrap: wrap;
}

.certinfi-hub-home-hero-copy {
  max-width: 42rem;
}

.certinfi-hub-home-kicker {
  margin: 0 0 0.4rem;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ch-primary-light);
}

.certinfi-hub-home-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
}

.certinfi-hub-home-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.5rem;
}

.certinfi-hub-card--summary {
  padding: 1.7rem;
}

.certinfi-hub-home-summary-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.certinfi-hub-home-summary-item {
  padding: 1rem 1.05rem;
  border: 1px solid #dce6ed;
  border-radius: 12px;
  background: linear-gradient(180deg, #f9fbfc 0%, #ffffff 100%);
}

.certinfi-hub-home-summary-label {
  display: block;
  margin: 0;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ch-text-meta);
}

.certinfi-hub-home-summary-value {
  display: block;
  margin-top: 0.6rem;
  font-size: 1.9rem;
  line-height: 1;
  color: var(--ch-primary);
}

.certinfi-hub-home-summary-help {
  margin: 0.6rem 0 0;
  font-size: 0.875rem;
  line-height: 1.5;
  color: var(--ch-text-muted);
}

.certinfi-hub-card-title {
  margin: 0 0 0.5rem 0;
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--ch-primary-dark);
}

.certinfi-hub-card-desc {
  margin: 0 0 1rem 0;
  font-size: 0.9375rem;
  color: var(--ch-text-muted);
  line-height: 1.5;
}

.certinfi-hub-card-desc-top {
  margin-top: 1rem;
}

.certinfi-hub-card-note {
  margin-top: 1rem;
  font-size: 0.8125rem;
}

.certinfi-hub-card-actions {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
  margin-top: 1rem;
}

.certinfi-hub-card-error {
  border-left: 4px solid var(--ch-red);
  max-width: 480px;
  margin: 2rem auto;
}

/* KPI grid - alignement premium */
.certinfi-hub-kpi-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 1.5rem;
}

.certinfi-hub-kpi-grid--compact {
  gap: 1rem;
}

.certinfi-hub-kpi-item {
  background: #fff;
  border: 1px solid var(--ch-border);
  border-radius: var(--ch-card-radius);
  padding: 1.5rem 1.25rem;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 0.625rem;
  min-height: 96px;
}

.certinfi-hub-kpi-value {
  font-size: 1.875rem;
  font-weight: 700;
  color: var(--ch-primary);
  line-height: 1;
  letter-spacing: -0.03em;
  min-height: 2.25rem;
  display: flex;
  align-items: center;
  justify-content: center;
}

.certinfi-hub-kpi-label {
  font-size: 0.8125rem;
  color: var(--ch-text-muted);
  line-height: 1.35;
  max-width: 100%;
}

/* Badges - système unifié FO */
.certinfi-hub-badge,
.certinfi-hub-badge-diffusion {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  padding: 0.42rem 0.78rem;
  font-size: 0.75rem;
  font-weight: 600;
  line-height: 1.1;
  border-radius: 999px;
  letter-spacing: 0.01em;
  border: 1px solid var(--ch-badge-border, transparent);
  background: var(--ch-badge-bg, var(--ch-badge-neutral-bg));
  color: var(--ch-badge-color, var(--ch-badge-neutral-text));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.4);
  vertical-align: middle;
}

.certinfi-badge-blue,
.certinfi-badge-info,
.certinfi-hub-badge-info {
  --ch-badge-bg: var(--ch-badge-info-bg);
  --ch-badge-border: var(--ch-badge-info-border);
  --ch-badge-color: var(--ch-badge-info-text);
}

.certinfi-badge-green,
.certinfi-badge-positive,
.certinfi-hub-badge-success {
  --ch-badge-bg: var(--ch-badge-positive-bg);
  --ch-badge-border: var(--ch-badge-positive-border);
  --ch-badge-color: var(--ch-badge-positive-text);
}

.certinfi-badge-teal,
.certinfi-badge-tech,
.certinfi-hub-badge-tech {
  --ch-badge-bg: var(--ch-badge-tech-bg);
  --ch-badge-border: var(--ch-badge-tech-border);
  --ch-badge-color: var(--ch-badge-tech-text);
}

.certinfi-badge-amber,
.certinfi-badge-warning,
.certinfi-hub-badge-warning {
  --ch-badge-bg: var(--ch-badge-warning-bg);
  --ch-badge-border: var(--ch-badge-warning-border);
  --ch-badge-color: var(--ch-badge-warning-text);
}

.certinfi-hub-badge-diffusion--scheduled {
  padding: 0.28rem 0.62rem;
  font-size: 0.68rem;
  letter-spacing: 0.015em;
  opacity: 0.95;
}

.certinfi-badge-red,
.certinfi-badge-danger,
.certinfi-hub-badge-danger {
  --ch-badge-bg: var(--ch-badge-danger-bg);
  --ch-badge-border: var(--ch-badge-danger-border);
  --ch-badge-color: var(--ch-badge-danger-text);
}

.certinfi-badge-grey,
.certinfi-badge-neutral,
.certinfi-hub-badge-neutral,
.certinfi-hub-badge-id {
  --ch-badge-bg: var(--ch-badge-neutral-bg);
  --ch-badge-border: var(--ch-badge-neutral-border);
  --ch-badge-color: var(--ch-badge-neutral-text);
}

/* Alerts */
.certinfi-hub-alerts {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.certinfi-hub-alert {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  padding: 1rem;
  background: var(--ch-accent-soft);
  border-left: 4px solid var(--ch-accent);
  border-radius: 0 6px 6px 0;
}

.certinfi-hub-alert-copy {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  flex: 1;
  min-width: 0;
}

.certinfi-hub-alert-title {
  font-size: 0.95rem;
  color: var(--ch-text);
}

.certinfi-hub-alert-message {
  flex: 1;
  font-size: 0.9375rem;
  color: var(--ch-text);
}

.certinfi-hub-alert-action {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--ch-accent);
  cursor: pointer;
}

.certinfi-hub-alert-action:hover {
  text-decoration: underline;
}

/* List / Table */
.certinfi-hub-list {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.certinfi-hub-list-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1rem;
  padding: 1rem;
  background: var(--ch-bg-panel);
  border: 1px solid var(--ch-border);
  border-radius: 6px;
}

.certinfi-hub-list-item-main {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.certinfi-hub-nurse-validation-panel {
  margin-bottom: 1.25rem;
  padding: 1rem;
  border: 1px solid var(--ch-border);
  border-radius: 8px;
  background: var(--ch-bg-panel);
}

.certinfi-hub-nurse-validation-panel .certinfi-hub-section-title {
  margin-bottom: 0.25rem;
}

.certinfi-hub-nurse-validation-item {
  align-items: flex-start;
}

.certinfi-hub-nurse-validation-item .certinfi-hub-card-actions {
  margin-top: 0;
}

.certinfi-hub-inline-link {
  color: var(--ch-primary);
  font-weight: 600;
  text-decoration: none;
}

.certinfi-hub-inline-link:hover {
  text-decoration: underline;
}

.certinfi-hub-list-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 1rem;
  margin-bottom: 1rem;
}

.certinfi-hub-filters-block {
  margin: 1rem 0;
}

.certinfi-hub-filters {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
  align-items: center;
}

.certinfi-hub-period-row {
  align-items: center;
  gap: 0.625rem;
}

.certinfi-hub-period-row-spaced {
  margin-top: 1.25rem;
}

.certinfi-hub-meta {
  font-size: 0.875rem;
  color: var(--ch-text-meta);
}

.certinfi-hub-invoice-item {
  align-items: stretch;
}

.certinfi-hub-invoice-main {
  flex: 1 1 640px;
  align-items: stretch;
  gap: 1rem;
}

.certinfi-hub-invoice-heading {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
}

.certinfi-hub-invoice-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.85rem;
  width: 100%;
}

.certinfi-hub-invoice-cell {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  min-width: 0;
}

.certinfi-hub-invoice-label {
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--ch-text-meta);
}

.certinfi-hub-invoice-value {
  font-size: 0.94rem;
  color: var(--ch-text);
  line-height: 1.45;
  word-break: break-word;
}

.certinfi-hub-invoice-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: flex-start;
  gap: 0.5rem;
  min-width: 220px;
}

.certinfi-hub-period-row label {
  font-size: 0.9375rem;
  font-weight: 500;
  color: var(--ch-text-muted);
  margin: 0;
}

.certinfi-hub-period-row select {
  height: 40px;
  min-height: 40px;
  padding: 0 1rem;
  font-size: 0.9375rem;
  vertical-align: middle;
}

.certinfi-hub-filters select,
.certinfi-hub-filters input[type="search"],
.certinfi-hub-filters .certinfi-hub-filter-input {
  height: 40px;
  padding: 0 1rem;
  font-size: 0.875rem;
  border-radius: 6px;
  box-sizing: border-box;
}

.certinfi-hub-filters .certinfi-hub-btn {
  height: 40px;
  min-height: 40px;
  padding: 0 1rem;
  font-size: 0.875rem;
  border-radius: 8px;
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.certinfi-hub-filters select {
  border: 1px solid var(--ch-border);
  background: #fff;
  min-width: 140px;
}

.certinfi-hub-filters input[type="search"],
.certinfi-hub-filters .certinfi-hub-filter-input {
  border: 1px solid var(--ch-border);
  background: #fff;
  min-width: 180px;
}

/* Chart - rendu GSC-like, compact et premium */
.certinfi-hub-chart-period {
  font-size: 0.8125rem;
  color: var(--ch-text-meta);
  margin: 0 0 0.75rem 0;
}

.certinfi-hub-chart-legend {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem 1.25rem;
  margin-bottom: 0.75rem;
  padding: 0.5rem 0;
}

.certinfi-hub-chart-legend-item {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.75rem;
  font-weight: 500;
  color: var(--ch-text-muted);
}

.certinfi-hub-chart-legend-item::before {
  content: '';
  width: 10px;
  height: 2px;
  border-radius: 1px;
  background: var(--ch-legend-color, var(--ch-grey));
}

.certinfi-hub-chart-legend-item--created {
  --ch-legend-color: #00429e;
}

.certinfi-hub-chart-legend-item--attributed {
  --ch-legend-color: #05a5aa;
}

.certinfi-hub-chart-legend-item--positive {
  --ch-legend-color: #2e7d32;
}

.certinfi-hub-chart-legend-item--negative {
  --ch-legend-color: #c62828;
}

.certinfi-hub-chart-wrap {
  position: relative;
  width: 100%;
  min-height: 280px;
  padding: 1rem 1rem;
  background: #fff;
  border-radius: 8px;
  border: 1px solid var(--ch-border);
  box-sizing: border-box;
}

.certinfi-hub-chart-canvas {
  display: block;
  max-width: 100%;
}

.certinfi-hub-chart-empty {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.95);
  border-radius: 10px;
  padding: 2rem;
}

.certinfi-hub-chart-empty p {
  margin: 0;
  font-size: 0.9375rem;
  color: var(--ch-text-muted);
}

.certinfi-hub-chart-empty-hint {
  margin-top: 0.5rem !important;
  font-size: 0.8125rem !important;
  color: var(--ch-text-meta) !important;
}

/* KPI stats - cohérence couleurs graphique, espacement compact */
.certinfi-hub-kpi-stats {
  margin-bottom: 1rem;
}

.certinfi-hub-kpi-stats .certinfi-hub-kpi-created .certinfi-hub-kpi-value { color: #00429e; }
.certinfi-hub-kpi-stats .certinfi-hub-kpi-attributed .certinfi-hub-kpi-value { color: #05a5aa; }
.certinfi-hub-kpi-stats .certinfi-hub-kpi-positive .certinfi-hub-kpi-value { color: #2e7d32; }
.certinfi-hub-kpi-stats .certinfi-hub-kpi-negative .certinfi-hub-kpi-value { color: #c62828; }

/* Sous-navigation Acteurs - dédiée et isolée de la nav principale */
.certinfi-hub-subtabs {
  display: flex;
  gap: 0.25rem;
  margin-bottom: 1.5rem;
  padding-bottom: 0;
  border-bottom: 1px solid var(--ch-border);
  margin-left: -0.25rem;
}

.certinfi-hub-subtab {
  padding: 0.875rem 1.5rem;
  font-size: 0.9375rem;
  font-weight: 500;
  color: var(--ch-text-muted);
  background: none;
  border: none;
  border-bottom: 3px solid transparent;
  cursor: pointer;
  margin-bottom: -1px;
  transition: color 0.22s, border-color 0.22s, background 0.22s;
  border-radius: 8px 8px 0 0;
}

.certinfi-hub-subtab:hover {
  color: var(--ch-primary);
  background: rgba(4, 66, 158, 0.04);
}

.certinfi-hub-subtab.active {
  color: var(--ch-primary);
  border-bottom-color: var(--ch-primary);
  font-weight: 600;
  background: rgba(4, 66, 158, 0.06);
}

/* Modal - au-dessus de tout le Hub */
.certinfi-hub-modal {
  position: fixed;
  inset: 0;
  z-index: 2147483000;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: clamp(5.25rem, 10vh, 7rem) 1rem 1.5rem;
  isolation: isolate;
  overflow-y: auto;
  overscroll-behavior: contain;
}

.certinfi-hub-modal[aria-hidden="true"] {
  display: none;
}

.certinfi-hub-modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.4);
  cursor: pointer;
}

.certinfi-hub-modal-content {
  position: relative;
  z-index: 1;
  background: #fff;
  border-radius: var(--ch-card-radius);
  box-shadow: var(--ch-hero-shadow);
  max-width: 560px;
  width: 100%;
  max-height: calc(100dvh - clamp(5.25rem, 10vh, 7rem) - 1.5rem);
  overflow-y: auto;
  padding: 1.5rem;
  margin: 0 auto;
  -webkit-overflow-scrolling: touch;
}

.certinfi-hub-modal-content .certinfi-hub-mission-edit {
  max-width: 100%;
}

.certinfi-hub-modal-close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.6rem 1.25rem;
  font-size: 0.9375rem;
  font-weight: 600;
  color: #fff;
  background: var(--ch-gradient-premium);
  border: none;
  border-radius: 8px;
  cursor: pointer;
  transition: opacity 0.2s, transform 0.2s;
  min-height: 44px;
  box-shadow: 0 2px 8px rgba(4, 66, 158, 0.25);
}

.certinfi-hub-modal-close:hover {
  opacity: 0.9;
  transform: translateY(-1px);
  color: #fff;
}

.certinfi-hub-modal-close-icon {
  font-size: 1.25rem;
  line-height: 1;
}

.certinfi-hub-modal-close-text {
  font-size: 0.875rem;
}

body.certinfi-hub-modal-open {
  overflow: hidden;
}

@media (max-width: 991px) {
  .certinfi-hub-modal {
    padding: clamp(4.75rem, 9vh, 6rem) 1rem 1.25rem;
  }

  .certinfi-hub-modal-content {
    max-height: calc(100dvh - clamp(4.75rem, 9vh, 6rem) - 1.25rem);
  }
}

@media (max-width: 767px) {
  .certinfi-hub-modal {
    padding: clamp(4.5rem, 8vh, 5.5rem) 0.75rem 1rem;
  }

  .certinfi-hub-modal-content {
    max-width: 100%;
    max-height: calc(100dvh - clamp(4.5rem, 8vh, 5.5rem) - 1rem);
    padding: 1.25rem;
  }

  .certinfi-hub-modal-close {
    top: 0.875rem;
    right: 0.875rem;
    padding: 0.55rem 1rem;
  }
}

.certinfi-hub-detail-dl {
  margin: 0;
  display: grid;
  gap: 0.5rem 1rem;
  grid-template-columns: auto 1fr;
}

.certinfi-hub-detail-dl dt {
  font-weight: 600;
  color: var(--ch-text-muted);
  font-size: 0.875rem;
}

.certinfi-hub-detail-dl dd {
  margin: 0;
}

.certinfi-hub-mission-reading {
  font-size: 0.875rem;
  color: var(--ch-teal);
  font-style: italic;
}

/* Alias visuels pour badges diffusion / état */
.certinfi-hub-badge-diffusion {
  font-style: normal;
}

/* Pagination */
.certinfi-hub-pagination {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--ch-border);
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
}

.certinfi-hub-pagination-inner {
  display: flex;
  gap: 0.25rem;
}

.certinfi-hub-pagination-btn {
  padding: 0.4rem 0.75rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--ch-text);
  background: #fff;
  border: 1px solid var(--ch-border);
  border-radius: 6px;
  cursor: pointer;
  transition: background 0.2s, border-color 0.2s;
}

.certinfi-hub-pagination-btn:hover {
  background: var(--ch-grey-soft);
  border-color: var(--ch-primary-light);
}

.certinfi-hub-pagination-btn.active {
  background: var(--ch-primary);
  color: #fff;
  border-color: var(--ch-primary);
}

.certinfi-hub-pagination-info {
  font-size: 0.8125rem;
  color: var(--ch-text-meta);
}

.certinfi-hub-geo-warning {
  padding: 0.75rem 1rem;
  background: var(--ch-accent-soft);
  border-left: 4px solid var(--ch-accent);
  border-radius: 0 6px 6px 0;
  margin: 1rem 0;
  font-size: 0.9375rem;
}

.certinfi-hub-detail-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.certinfi-hub-edit-form .certinfi-hub-edit-field {
  margin-bottom: 0.75rem;
}

.certinfi-hub-edit-form .certinfi-hub-edit-field label {
  display: block;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--ch-text-muted);
  margin-bottom: 0.25rem;
}

.certinfi-hub-edit-form .certinfi-hub-edit-field input,
.certinfi-hub-edit-form .certinfi-hub-edit-field textarea {
  width: 100%;
  padding: 0.5rem 0.75rem;
  font-size: 0.9375rem;
  border: 1px solid var(--ch-border);
  border-radius: 6px;
  box-sizing: border-box;
}

.certinfi-hub-edit-form .certinfi-hub-edit-field input:focus,
.certinfi-hub-edit-form .certinfi-hub-edit-field textarea:focus {
  outline: none;
  border-color: var(--ch-primary-light);
}

.certinfi-hub-edit-actions {
  margin-top: 1rem;
}

.certinfi-hub-mission-edit {
  margin-top: 1.5rem;
  padding-top: 1rem;
  border-top: 1px solid var(--ch-border);
}

.certinfi-hub-section-title {
  margin: 0 0 0.75rem 0;
  font-size: 1rem;
}

.certinfi-hub-update-success {
  padding: 1rem;
  margin-bottom: 1rem;
  background: var(--ch-green-soft);
  border-left: 4px solid var(--ch-green);
  border-radius: 0 6px 6px 0;
  color: var(--ch-green);
  font-weight: 600;
  font-size: 0.9375rem;
}

.certinfi-hub-responses-panel {
  margin: 1rem 0;
  padding-top: 1rem;
  border-top: 1px solid var(--ch-border);
}

.certinfi-hub-report-panel {
  margin: 1rem 0;
  padding-top: 1rem;
  border-top: 1px solid var(--ch-border);
}

.certinfi-hub-modal-intro {
  margin: 0 0 1rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
}

.certinfi-hub-modal-header {
  margin-bottom: 1.1rem;
  padding-right: 5.75rem;
}

.certinfi-hub-modal-header h3 {
  margin: 0 0 0.35rem;
  font-size: 1.35rem;
  color: var(--ch-primary-dark);
}

.certinfi-hub-modal-section {
  margin-top: 1.15rem;
  padding-top: 1rem;
  border-top: 1px solid var(--ch-border);
}

.certinfi-hub-modal-section--secondary {
  opacity: 0.96;
}

.certinfi-hub-modal-section-title {
  margin: 0 0 0.8rem;
  font-size: 1rem;
  color: var(--ch-primary-dark);
}

.certinfi-hub-modal-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.certinfi-hub-summary-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
}

.certinfi-hub-summary-grid--secondary {
  gap: 0.65rem;
}

.certinfi-hub-summary-item {
  padding: 0.9rem 0.95rem;
  border: 1px solid var(--ch-border);
  border-radius: 10px;
  background: linear-gradient(180deg, #fbfdff 0%, #f7fafc 100%);
  min-width: 0;
}

.certinfi-hub-summary-item--secondary {
  background: #fafbfc;
}

.certinfi-hub-summary-label {
  display: block;
  margin: 0;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--ch-text-meta);
}

.certinfi-hub-summary-value {
  margin-top: 0.45rem;
  min-width: 0;
  font-size: 0.94rem;
  line-height: 1.5;
  color: var(--ch-text);
  word-break: break-word;
}

.certinfi-hub-subscription-panel {
  margin-top: 1.25rem;
  padding-top: 1rem;
  border-top: 1px solid var(--ch-border);
}

.certinfi-hub-subscription-panel--empty {
  margin-top: 1rem;
}

.certinfi-hub-subscription-panel-title {
  margin: 0 0 0.75rem;
  font-size: 1rem;
  color: var(--ch-primary-dark);
}

.certinfi-hub-subscription-grid {
  display: grid;
  gap: 0.75rem;
}

.certinfi-hub-subscription-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 0.65rem 1rem;
  padding: 0.85rem 0.95rem;
  background: var(--ch-bg-panel);
  border: 1px solid var(--ch-border);
  border-radius: 10px;
}

.certinfi-hub-subscription-row-label {
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--ch-text-meta);
}

.certinfi-hub-subscription-row-value {
  min-width: 0;
  font-size: 0.9375rem;
  color: var(--ch-text);
  text-align: right;
}

.certinfi-hub-subscription-ref {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
  font-size: 0.85rem;
  word-break: break-all;
}

.certinfi-hub-report-panel h4,
.certinfi-hub-report-attachments h5 {
  margin: 0 0 0.5rem 0;
  font-size: 1rem;
}

.certinfi-hub-report-summary {
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
}

.certinfi-hub-report-summary-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  flex-wrap: wrap;
  padding: 0.75rem;
  background: var(--ch-bg-panel);
  border: 1px solid var(--ch-border);
  border-radius: 6px;
}

.certinfi-hub-report-summary-label {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--ch-text-muted);
}

.certinfi-hub-report-actions {
  margin-top: 0.875rem;
}

.certinfi-hub-report-attachments {
  margin-top: 1rem;
}

.certinfi-hub-report-attachments-list {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.certinfi-hub-report-attachment-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  flex-wrap: wrap;
  padding: 0.75rem;
  background: var(--ch-bg-panel);
  border: 1px solid var(--ch-border);
  border-radius: 6px;
}

.certinfi-hub-report-attachment-meta {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  min-width: 0;
}

.certinfi-hub-responses-panel h4 {
  margin: 0 0 0.5rem 0;
  font-size: 1rem;
}

.certinfi-hub-responses-list {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-top: 0.75rem;
}

.certinfi-hub-response-item {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem;
  padding: 0.75rem;
  background: var(--ch-bg-panel);
  border: 1px solid var(--ch-border);
  border-radius: 6px;
}

.certinfi-hub-response-winner {
  border-left: 4px solid var(--ch-green);
  background: var(--ch-green-soft);
}

.certinfi-hub-response-nurse {
  font-weight: 600;
}

.certinfi-hub-response-status {
  font-size: 0.875rem;
  color: var(--ch-text-meta);
}

.certinfi-hub-btn-sm {
  font-size: 0.8125rem;
  padding: 0.35rem 0.65rem;
}

.certinfi-hub-badge-id {
  font-weight: 700;
}

.certinfi-hub-geo-precision {
  font-size: 0.875rem;
  color: var(--ch-text-meta);
  margin: 0.5rem 0 0 0;
}

.certinfi-hub-subscription-mini {
  margin-top: 1rem;
  padding: 1rem;
  background: var(--ch-grey-soft);
  border: 1px solid var(--ch-border);
  border-radius: 8px;
}

.certinfi-hub-subscription-mini-title {
  margin: 0 0 0.5rem 0;
  font-size: 0.9375rem;
}

.certinfi-hub-subscription-mini-content {
  margin: 0;
  font-size: 0.875rem;
}

.certinfi-hub-subscription-mini-plan {
  margin-left: 0.5rem;
}

.certinfi-hub-subscription-mini-expiry {
  display: block;
  margin-top: 0.25rem;
  color: var(--ch-text-meta);
  font-size: 0.8125rem;
}

#certinfi-hub-panels[hidden],
.certinfi-hub-loading[hidden],
.certinfi-hub-pagination[hidden],
.certinfi-hub-modal[hidden] {
  display: none !important;
}

/* Mobile / Tablet */
@media (max-width: 991px) {
  .certinfi-hub-chart-wrap {
    min-height: 250px;
    padding: 0.875rem 0.875rem;
  }

  .certinfi-hub-module {
    max-width: none;
    padding: 1.25rem 1rem;
  }

  .certinfi-hub-module .certinfi-hub-content {
    padding: 1.25rem 1rem;
  }

  .certinfi-hub-module-bar {
    padding: 1rem 1rem;
  }
}

@media (max-width: 768px) {
  .certinfi-hub-home-grid,
  .certinfi-hub-home-summary-grid {
    grid-template-columns: 1fr;
  }

  .certinfi-hub-home-actions {
    width: 100%;
    flex-direction: column;
    align-items: stretch;
  }

  .certinfi-hub-home-actions .certinfi-hub-btn {
    width: 100%;
    justify-content: center;
  }

  .certinfi-hub-module {
    width: 100%;
    max-width: none;
    margin-left: 0;
    margin-right: 0;
    padding: 1rem 1rem;
    box-sizing: border-box;
  }

  .certinfi-hub-module--unauthorized {
    max-width: none;
    padding: 1rem 1rem;
  }

  .certinfi-hub-module .certinfi-hub-content {
    padding: 1rem 1rem;
  }

  .certinfi-hub-module-bar {
    flex-direction: column;
    align-items: stretch;
    padding: 1rem 1rem;
  }

  .certinfi-hub-panels {
    gap: 1.75rem;
  }

  .certinfi-hub-tabs-main {
    justify-content: center;
  }

  .certinfi-hub-module-actions {
    justify-content: center;
    flex-direction: column;
    align-items: stretch;
    align-content: stretch;
  }

  .certinfi-hub-search-wrap {
    flex: 1 1 auto;
    max-width: none;
  }

  .certinfi-client-hub-btn-logout {
    width: 100%;
    justify-content: center;
  }

  .certinfi-hub-search-input {
    width: 100%;
  }

  .certinfi-hub-kpi-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .certinfi-hub-chart-wrap {
    min-height: 220px;
    padding: 0.75rem 0.75rem;
  }

  .certinfi-hub-chart-legend {
    gap: 0.5rem 1rem;
    margin-bottom: 0.5rem;
  }

  .certinfi-hub-card {
    padding: 1rem 1rem;
  }

  .certinfi-hub-card-hero {
    padding: 1.25rem 1rem;
  }

  .certinfi-hub-card--summary {
    padding: 1.15rem 1rem;
  }

  .certinfi-hub-filters select,
  .certinfi-hub-filters input[type="search"],
  .certinfi-hub-filters .certinfi-hub-filter-input {
    min-width: 0;
  }

  .certinfi-hub-list-item {
    padding: 0.75rem 1rem;
  }

  .certinfi-hub-invoice-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .certinfi-hub-subscription-row {
    flex-direction: column;
    align-items: flex-start;
  }

  .certinfi-hub-subscription-row-value {
    text-align: left;
  }
}

/* Scope #certinfi-hub-app - overrides résistants au thème/Elementor */
#certinfi-hub-app .certinfi-hub-module-bar {
  box-shadow: none;
  border-bottom: none;
  align-items: center;
  align-content: center;
}

#certinfi-hub-app .certinfi-hub-tabs-main,
#certinfi-hub-app .certinfi-hub-module-actions {
  align-items: center;
  align-content: center;
}

@media (min-width: 769px) {
  #certinfi-hub-app .certinfi-hub-module-bar {
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
  }

  #certinfi-hub-app .certinfi-hub-module-actions {
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    width: auto !important;
    margin-top: 0 !important;
  }

  #certinfi-hub-app .certinfi-hub-search-wrap {
    flex: 0 1 220px !important;
    max-width: 220px !important;
    width: auto !important;
  }

  #certinfi-hub-app .certinfi-hub-search-input {
    width: 100% !important;
    max-width: none !important;
  }

  #certinfi-hub-app .certinfi-client-hub-btn-logout,
  #certinfi-hub-app a.certinfi-client-hub-btn {
    width: auto !important;
  }
}

#certinfi-hub-app button.certinfi-hub-nav-link {
  margin: 0;
  margin-bottom: 0;
}

#certinfi-hub-app .certinfi-hub-search-input {
  margin: 0;
  margin-bottom: 0;
}

#certinfi-hub-app .certinfi-client-hub-btn {
  margin: 0;
  margin-bottom: 0;
}

#certinfi-hub-app .certinfi-hub-panels {
  gap: 2.75rem;
}

#certinfi-hub-app .certinfi-hub-filters .certinfi-hub-btn {
  height: 40px;
  min-height: 40px;
  padding: 0 1rem;
  font-size: 0.875rem;
  border-radius: 8px;
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

@media (max-width: 768px) {
  #certinfi-hub-app .certinfi-hub-panels {
    gap: 1.75rem;
  }
}

/* Neutralisation thème base.css sur boutons Hub */
#certinfi-hub-app .certinfi-hub-btn,
#certinfi-hub-app .certinfi-hub-filters .certinfi-hub-btn,
#certinfi-hub-app button.certinfi-hub-btn {
  margin: 0;
  margin-bottom: 0;
  line-height: 1;
  vertical-align: middle;
  height: 40px;
  min-height: 40px;
  padding: 0 1rem;
  border-radius: 10px;
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

#certinfi-hub-app .certinfi-hub-filters {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap;
}

#certinfi-hub-app .certinfi-hub-filters select,
#certinfi-hub-app .certinfi-hub-filters input,
#certinfi-hub-app .certinfi-hub-filters button {
  height: 40px;
  min-height: 40px;
  margin: 0;
  margin-bottom: 0;
  box-sizing: border-box;
}

/* ========================================
   NEUTRALISATION PARENTS MOBILE – full width
   Cible uniquement les wrappers contenant #certinfi-hub-app
   ======================================== */

@media (max-width: 768px) {
  /* Elementor : colonne contenant le shortcode Hub → 100% largeur (override styles inline) */
  .elementor-column:has(#certinfi-hub-app) {
    width: 100% !important;
    max-width: 100% !important;
    flex-basis: 100% !important;
  }

  /* Elementor : widget shortcode contenant le Hub */
  .elementor-widget-shortcode:has(#certinfi-hub-app) {
    width: 100%;
    max-width: 100%;
  }

  /* Elementor : container contenant le Hub (évite max-width restrictive) */
  .elementor-container:has(#certinfi-hub-app) {
    max-width: 100%;
  }

  /* Page Hub dédiée : wrappers thème contenant le Hub */
  body.certinfi-hub-page .entry-content:has(#certinfi-hub-app),
  body.certinfi-hub-page .content-area:has(#certinfi-hub-app),
  body.certinfi-hub-page .site-content:has(#certinfi-hub-app),
  body.certinfi-hub-page .main-content:has(#certinfi-hub-app),
  body.certinfi-hub-page .aux-container:has(#certinfi-hub-app) {
    max-width: 100%;
    padding-left: 1rem;
    padding-right: 1rem;
    box-sizing: border-box;
  }
}

/* ========================================
   PATCH MOBILE RÉEL – full width, respirant
   Chaîne: .entry-main > .entry-content > .elementor > .e-con-full > .elementor-widget-html > .elementor-widget-container > #certinfi-hub-app
   ======================================== */

#certinfi-hub-app,
#certinfi-hub-app * {
  box-sizing: border-box;
}

@media (max-width: 767px) {
  /* 1) Ouverture maximale des wrappers immédiats autour du Hub */
  .aux-fold:has(#certinfi-hub-app) {
    padding-left: 10px !important;
    padding-right: 10px !important;
    box-sizing: border-box;
  }

  .entry-main:has(#certinfi-hub-app),
  .entry-content:has(#certinfi-hub-app),
  .elementor-widget-container:has(#certinfi-hub-app),
  .elementor-widget-html:has(#certinfi-hub-app) {
    width: 100%;
    max-width: none;
    min-width: 0;
    padding-left: 0;
    padding-right: 0;
    margin-left: 0;
    margin-right: 0;
    box-sizing: border-box;
  }

  /* 2) Hub lui-même en vrai full width mobile */
  #certinfi-hub-app.certinfi-hub-module {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border-radius: 0 !important;
    box-sizing: border-box;
  }

  #certinfi-hub-app .certinfi-hub-module-bar {
    gap: 0.75rem !important;
    padding: 0.625rem 0.5rem !important;
    margin: 0 !important;
    border-radius: 0 !important;
  }

  #certinfi-hub-app .certinfi-hub-content {
    padding: 0.625rem 0.5rem !important;
    margin: 0 !important;
    width: 100% !important;
    max-width: none !important;
    box-sizing: border-box;
  }

  /* 3) Cards full width mobile */
  #certinfi-hub-app .certinfi-hub-card {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0.75rem !important;
    border-color: #dbe5eb !important;
    border-radius: 10px !important;
    box-shadow: 0 1px 4px rgba(38, 50, 56, 0.05) !important;
    box-sizing: border-box;
  }

  #certinfi-hub-app .certinfi-hub-card + .certinfi-hub-card {
    margin-top: 1rem !important;
  }

  #certinfi-hub-app .certinfi-hub-card-hero {
    background: linear-gradient(145deg, #edf4ff 0%, #ffffff 58%) !important;
    border-color: #d7e2ef !important;
    border-left: 4px solid var(--ch-primary) !important;
    padding: 0.875rem 0.75rem !important;
    box-shadow: 0 2px 8px rgba(4, 66, 158, 0.08) !important;
  }

  #certinfi-hub-app .certinfi-hub-card-title {
    margin-bottom: 0.375rem !important;
    font-size: 1.125rem !important;
  }

  #certinfi-hub-app .certinfi-hub-card-desc {
    margin-bottom: 0.75rem !important;
    font-size: 0.9rem !important;
    line-height: 1.45 !important;
  }

  /* 4) Panels et espacements */
  #certinfi-hub-app .certinfi-hub-panels {
    display: flex !important;
    flex-direction: column !important;
    gap: 0.875rem !important;
    width: 100% !important;
  }

  /* 5) KPI : supprimer l'effet étroit */
  #certinfi-hub-app .certinfi-hub-kpi-grid {
    grid-template-columns: 1fr !important;
    gap: 0.625rem !important;
    width: 100% !important;
  }

  #certinfi-hub-app .certinfi-hub-kpi-item {
    min-width: 0 !important;
    width: 100% !important;
    min-height: 0 !important;
    padding: 0.875rem 0.75rem !important;
    background: #f8fafc !important;
    border-color: #e3ebf0 !important;
    border-radius: 10px !important;
    align-items: flex-start !important;
    text-align: left !important;
    gap: 0.375rem !important;
  }

  #certinfi-hub-app .certinfi-hub-kpi-value {
    min-height: 0;
    justify-content: flex-start;
    font-size: 1.625rem;
  }

  #certinfi-hub-app .certinfi-hub-kpi-label {
    font-size: 0.8125rem;
    line-height: 1.3;
  }

  /* 6) Filtres en colonne mobile */
  #certinfi-hub-app .certinfi-hub-filters {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 0.5rem !important;
  }

  #certinfi-hub-app .certinfi-hub-list-header {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 0.75rem !important;
    margin-bottom: 0.75rem !important;
  }

  #certinfi-hub-app .certinfi-hub-period-row {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 0.375rem !important;
  }

  #certinfi-hub-app .certinfi-hub-period-row label {
    font-size: 0.875rem;
  }

  #certinfi-hub-app .certinfi-hub-filters select,
  #certinfi-hub-app .certinfi-hub-filters input,
  #certinfi-hub-app .certinfi-hub-filters button,
  #certinfi-hub-app .certinfi-hub-filters .certinfi-hub-filter-input,
  #certinfi-hub-app .certinfi-hub-filters .certinfi-hub-btn {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    height: 42px !important;
    margin: 0 !important;
    box-sizing: border-box !important;
  }

  /* 7) Header nav mobile */
  #certinfi-hub-app .certinfi-hub-tabs-main {
    width: 100% !important;
    gap: 0.5rem !important;
    justify-content: flex-start !important;
  }

  #certinfi-hub-app .certinfi-hub-nav-link {
    min-height: 42px !important;
    padding: 0 0.875rem !important;
    font-size: 0.875rem !important;
    line-height: 1.25 !important;
    border-radius: 8px !important;
    box-shadow: none !important;
    text-align: center;
    box-sizing: border-box !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  #certinfi-hub-app .certinfi-hub-subtabs {
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 0.5rem !important;
    width: 100% !important;
  }

  #certinfi-hub-app .certinfi-hub-subtab {
    flex: 1 1 0 !important;
    min-width: 0 !important;
    padding: 0.75rem 0.875rem !important;
    text-align: center;
  }

  #certinfi-hub-app .certinfi-hub-module-actions {
    width: 100% !important;
    margin-top: 0.625rem !important;
    flex-direction: column !important;
    align-items: stretch !important;
    align-content: stretch !important;
    gap: 0.5rem !important;
  }

  #certinfi-hub-app .certinfi-hub-search-wrap,
  #certinfi-hub-app .certinfi-hub-search-input {
    width: 100% !important;
    max-width: none !important;
  }

  #certinfi-hub-app .certinfi-hub-search-wrap {
    flex: 1 1 auto !important;
  }

  #certinfi-hub-app .certinfi-hub-search-input {
    min-height: 42px !important;
    padding: 0 0.875rem !important;
    font-size: 0.875rem !important;
    line-height: 1.25 !important;
    border-radius: 8px !important;
    box-sizing: border-box !important;
  }

  #certinfi-hub-app .certinfi-client-hub-btn-logout,
  #certinfi-hub-app a.certinfi-client-hub-btn {
    min-height: 42px !important;
    padding: 0 0.875rem !important;
    font-size: 0.875rem !important;
    line-height: 1.25 !important;
    border-radius: 8px !important;
    box-sizing: border-box !important;
    width: 100% !important;
    justify-content: center !important;
  }

  /* 8) Activité récente et listes */
  #certinfi-hub-app .certinfi-hub-list {
    gap: 0 !important;
    width: 100% !important;
  }

  #certinfi-hub-app .certinfi-hub-list-item {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    width: 100% !important;
    max-width: none !important;
    gap: 0.625rem !important;
    padding: 0.875rem 0 !important;
    border: 0 !important;
    border-top: 1px solid #e3ebf0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-sizing: border-box !important;
  }

  #certinfi-hub-app .certinfi-hub-list > .certinfi-hub-list-item:first-child {
    border-top: 0 !important;
    padding-top: 0 !important;
  }

  #certinfi-hub-app .certinfi-hub-list > .certinfi-hub-list-item:last-child {
    padding-bottom: 0 !important;
  }

  #certinfi-hub-app .certinfi-hub-list-item-main {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 0.4rem !important;
    min-width: 0 !important;
    width: 100% !important;
  }

  #certinfi-hub-app .certinfi-hub-list-item-main > strong,
  #certinfi-hub-app .certinfi-hub-list-item-main > .certinfi-hub-alert-action {
    display: block;
    width: 100%;
    font-size: 0.975rem;
    line-height: 1.3;
    word-break: break-word;
  }

  #certinfi-hub-app .certinfi-hub-list-item .certinfi-hub-detail-link {
    width: 100% !important;
    justify-content: center !important;
    align-self: stretch !important;
    margin-top: 0.125rem;
  }

  #certinfi-hub-app .certinfi-hub-list-item .certinfi-hub-badge,
  #certinfi-hub-app .certinfi-hub-list-item .certinfi-hub-badge-diffusion {
    max-width: 100%;
    white-space: normal;
    text-align: left;
  }

  #certinfi-hub-app .certinfi-hub-invoice-grid {
    grid-template-columns: 1fr !important;
    gap: 0.65rem !important;
  }

  #certinfi-hub-app .certinfi-hub-invoice-actions {
    width: 100% !important;
    min-width: 0 !important;
    justify-content: stretch !important;
    align-items: stretch !important;
    flex-direction: column !important;
  }

  #certinfi-hub-app .certinfi-hub-invoice-actions .certinfi-hub-btn {
    width: 100% !important;
  }

  /* 9) Alertes */
  #certinfi-hub-app .certinfi-hub-alert {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 0.5rem !important;
    padding: 0.75rem !important;
    border-radius: 10px !important;
  }

  #certinfi-hub-app .certinfi-hub-chart-wrap {
    background: #fcfdff !important;
    border-color: #e3ebf0 !important;
    padding: 0.625rem !important;
    border-radius: 10px !important;
  }

  #certinfi-hub-app .certinfi-hub-chart-legend {
    gap: 0.375rem 0.75rem !important;
    margin-bottom: 0.5rem !important;
  }

  #certinfi-hub-app .certinfi-hub-pagination {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 0.625rem !important;
  }

  #certinfi-hub-app .certinfi-hub-pagination-inner {
    justify-content: center;
  }

  #certinfi-hub-app .certinfi-hub-pagination-btn {
    min-width: 2.5rem;
  }
}

/* Selects FO - style premium unifié, scoped au Hub */
#certinfi-hub-app select,
#certinfi-hub-app .certinfi-hub-filters select,
#certinfi-hub-app .certinfi-hub-period-row select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  height: 42px;
  min-height: 42px;
  padding: 0 2.75rem 0 0.9375rem;
  border: 1px solid var(--ch-border);
  border-radius: 10px;
  background-color: #fff;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.2 4.4 6 8l3.8-3.6' fill='none' stroke='%23607d8b' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.9375rem center;
  background-size: 12px 12px;
  box-shadow: 0 1px 2px rgba(38, 50, 56, 0.06);
  box-sizing: border-box;
  color: var(--ch-text);
  font-size: 0.9375rem;
  line-height: 1.2;
  vertical-align: middle;
  cursor: pointer;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

#certinfi-hub-app select::-ms-expand {
  display: none;
}

#certinfi-hub-app select:hover,
#certinfi-hub-app .certinfi-hub-filters select:hover,
#certinfi-hub-app .certinfi-hub-period-row select:hover {
  border-color: #b9c8ce;
  background-color: #fff;
}

#certinfi-hub-app select:focus,
#certinfi-hub-app .certinfi-hub-filters select:focus,
#certinfi-hub-app .certinfi-hub-period-row select:focus {
  outline: none;
  border-color: var(--ch-primary-light);
  box-shadow: 0 0 0 3px rgba(37, 104, 201, 0.14);
}

/* Alignement visuel des contrôles de filtres */
#certinfi-hub-app .certinfi-hub-filters {
  align-items: center;
}

#certinfi-hub-app .certinfi-hub-filters select,
#certinfi-hub-app .certinfi-hub-filters input[type="search"],
#certinfi-hub-app .certinfi-hub-filters .certinfi-hub-filter-input,
#certinfi-hub-app .certinfi-hub-filters .certinfi-hub-btn,
#certinfi-hub-app .certinfi-hub-period-row select {
  height: 42px;
  min-height: 42px;
}

@media (max-width: 767px) {
  #certinfi-hub-app select,
  #certinfi-hub-app .certinfi-hub-filters select,
  #certinfi-hub-app .certinfi-hub-period-row select {
    width: 100%;
    max-width: none;
    padding-right: 2.5rem;
    background-position: right 0.875rem center;
  }

  #certinfi-hub-app .certinfi-hub-modal-header {
    padding-right: 0;
  }

  #certinfi-hub-app .certinfi-hub-summary-grid {
    grid-template-columns: 1fr;
  }
}
