/* Extracted from the supplied Nucleascope CSS. Preserve cascade. See provenance/css-extraction.json. */

:root{
  /* ============================================
     NUCLEASCOPE DESIGN TOKENS — v1.0
     Variables existantes conservées (compatibilité)
     ============================================ */
  --bg: #F5F3EF;
  --surface: #FFFFFF;
  --text: #1A1A1A;
  --text-muted: #6B6B6B;
  --accent: #1565C0;
  --border: #E0DDD7;
  --public: #D32F2F;
  --private: #1565C0;
  --riv: #E65100;
  --riv-dot: #00B894;
  --cyclo: #FFC107;

  /* ============================================
     PALETTE PRIMAIRE (bleus Nucleascope)
     ============================================ */
  --color-primary: #1565C0;          /* Bleu Nucleascope principal */
  --color-primary-hover: #1976D2;    /* Hover bouton (teinte intermédiaire) */
  --color-primary-dark: #0D47A1;     /* États actifs */
  --color-primary-darker: #0D3B5C;   /* Titres, texte fort sur bleu pâle */
  --color-primary-night: #0D1B2A;    /* Bleu nuit, header */
  --color-primary-light: #3A5266;    /* Gris-bleu, texte secondaire */
  --color-primary-50: #F8FBFE;       /* Fond bleu quasi-blanc */
  --color-primary-100: #EAF3FA;      /* Fond sidebar */
  --color-primary-200: #D5E5F0;      /* Borders bleu pâle */
  --color-primary-300: #9EC2DC;      /* Border accent bleu */
  --color-primary-400: #BBDEFB;      /* Backgrounds décoratifs */
  --color-primary-500: #E3F2FD;      /* Highlights bleu pâle */

  /* ============================================
     COULEURS SÉMANTIQUES
     ============================================ */
  --color-success: #2E7D32;
  --color-success-dark: #1B5E20;
  --color-success-bg: #E8F5E9;
  --color-success-border: #43A047;

  --color-danger: #D32F2F;
  --color-danger-dark: #C62828;
  --color-danger-bright: #E53935;
  --color-danger-bg: #FFEBEE;

  --color-warning: #E65100;          /* Orange RIV */
  --color-warning-dark: #BF360C;
  --color-warning-bright: #FF6F00;
  --color-warning-bg: #FFF3E0;
  --color-warning-border: #FFE0B2;

  --color-info: #1565C0;
  --color-info-bg: #E3F2FD;

  /* ============================================
     COULEURS CATÉGORIELLES (publications, pills)
     ============================================ */
  --color-cat-purple: #6A1B9A;
  --color-cat-pink: #AD1457;
  --color-cat-teal: #00695C;
  --color-cat-brown: #5D4037;
  --color-cat-amber: #FFC107;
  --color-cat-amber-bg: #FFF8E1;

  /* ============================================
     NEUTRES & TEXTES
     ============================================ */
  --color-text-primary: #1A1A1A;
  --color-text-body: #2A2A2A;          /* Texte body éditorial (long-form articles) */
  --color-text-secondary: #3A5266;
  --color-text-soft: #546E7A;          /* Gris-bleu doux (modales, footers) */
  --color-text-muted: #6B6B6B;
  --color-text-subtle: #9E9E9E;
  --color-text-on-dark: #FFFFFF;

  --color-surface: #FFFFFF;
  --color-surface-alt: #F8FBFE;
  --color-bg: #F5F3EF;
  --color-overlay: rgba(13, 27, 42, .6);    /* Fond sombre des modales */

  --color-border: #E0DDD7;
  --color-border-light: #D5E5F0;
  --color-border-medium: #D0D7DE;
  --color-border-strong: #9EC2DC;
  --color-row-active: #EFF6FC;       /* Fond ligne sélectionnée (Settings) */
  --color-row-divider: #F0EDE7;      /* Border discret entre lignes */

  /* ============================================
     ESPACEMENTS (basés sur multiples de 2px)
     ============================================ */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 14px;       /* Padding standard des cartes */
  --space-5: 16px;
  --space-6: 20px;
  --space-7: 24px;
  --space-8: 32px;

  /* ============================================
     BORDER-RADIUS (4 niveaux)
     ============================================ */
  --radius-sm: 6px;      /* Boutons compacts, pills */
  --radius-md: 8px;      /* Cartes standard */
  --radius-lg: 10px;     /* Cartes larges */
  --radius-xl: 12px;     /* Modales, hero cards */
  --radius-2xl: 16px;    /* Cartes spéciales (Contact, signup) */
  --radius-full: 999px;  /* Pills arrondies */

  /* ============================================
     OMBRES
     ============================================ */
  --shadow-xs: 0 1px 3px rgba(0,0,0,.04);
  --shadow-sm: 0 1px 3px rgba(0,0,0,.08);
  --shadow-md: 0 3px 8px rgba(0,0,0,.08);
  --shadow-lg: 0 4px 14px rgba(0,0,0,.15);
  --shadow-xl: 0 20px 60px rgba(0,0,0,.3);
  --shadow-card: 0 4px 24px rgba(21,101,192,.08);    /* Ombre bleutée pour cartes */
  --shadow-btn: 0 3px 12px rgba(21,101,192,.28);     /* Ombre boutons primaires */
  --shadow-btn-hover: 0 6px 18px rgba(21,101,192,.28); /* Ombre boutons primaires au hover */
  --shadow-focus: 0 0 0 3px rgba(21,101,192,.15);
  --shadow-focus-strong: 0 0 0 3px rgba(21,101,192,.12);

  /* ============================================
     GRADIENTS (réutilisables)
     ============================================ */
  --gradient-primary: linear-gradient(135deg, #1565C0, #0D47A1);
  --gradient-primary-dark: linear-gradient(135deg, #1565C0, #0D3B5C);
  --gradient-soft: linear-gradient(135deg, #F8FBFE, #EFF6FC);

  /* ============================================
     TYPOGRAPHIE
     ============================================ */
  --font-family-sans: 'DM Sans', sans-serif;

  --font-size-xs: 0.72rem;     /* Labels sidebar, micro-text */
  --font-size-sm: 0.82rem;     /* Texte secondaire */
  --font-size-base: 0.92rem;   /* Corps de texte par défaut */
  --font-size-md: 0.95rem;     /* Texte mis en avant */
  --font-size-lg: 1rem;        /* Sous-titres */
  --font-size-xl: 1.1rem;      /* Petits titres */
  --font-size-2xl: 1.4rem;     /* Titres de section */

  --font-weight-normal: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;
  --font-weight-extrabold: 800;

  /* ============================================
     TRANSITIONS
     ============================================ */
  --transition-fast: .15s ease;
  --transition-base: .2s ease;
  --transition-slow: .3s ease;

  /* ============================================
     Z-INDEX
     ============================================ */
  --z-sidebar: 1000;
  --z-modal: 2000;
  --z-modal-strong: 99999;    /* Modales qui doivent passer au-dessus de tout */
  --z-toast: 3000;
}

*{margin:0;padding:0;box-sizing:border-box}

html,
body{width:100%;max-width:100%;overflow-x:hidden}

body{font-family:'DM Sans',sans-serif;background:var(--bg);color:var(--text);min-height:100vh;padding-left:120px;-webkit-font-smoothing:antialiased;width:100vw;max-width:100vw}

#nucleascope-wrap{width:100%;min-width:100%;max-width:none}

.sidebar{position:fixed;top:0;left:0;bottom:0;width:120px;background:#EAF3FA;display:flex;flex-direction:column;align-items:center;padding:14px 8px;gap:6px;z-index:1000;box-shadow:2px 0 8px rgba(0,0,0,.05);border-right:1px solid #D5E5F0;overflow-y:auto}

.sidebar-logo{width:104px;height:90px;border-radius:12px;background:#fff;display:flex;align-items:center;justify-content:center;margin-bottom:8px;padding:0;border:1px solid #D5E5F0;box-shadow:0 2px 6px rgba(0,0,0,.08);overflow:hidden;cursor:pointer}

.sidebar-logo img{width:100%;height:100%;object-fit:contain;padding:4px}

.sb-link{width:104px;height:90px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:#3A5266;text-decoration:none;border-radius:12px;transition:all .2s;cursor:pointer;font-family:'DM Sans',sans-serif;padding:8px 5px;text-align:center;position:relative;background:#fff;border:1px solid #D5E5F0;margin-bottom:2px}

.sb-link:hover{background:#D5E5F0;color:#0D3B5C}

.sb-link.active{background:#C7DCED;color:#0D3B5C;border-color:#9EC2DC;font-weight:600}

.sb-link.active::before{content:'';position:absolute;left:-10px;top:12px;bottom:12px;width:4px;background:#1565C0;border-radius:0 3px 3px 0}

.sb-icon{font-size:1.4rem;line-height:1}

.sb-label{font-size:.82rem;font-weight:500;line-height:1.2;color:#3A5266}

.sb-link.active .sb-label{color:#0D3B5C;font-weight:600}

.sb-badge-partners{position:relative;margin-top:2px;max-width:calc(100% - 2px);display:inline-flex;align-items:center;justify-content:center;gap:3px;padding:2px 6px;background:#EF9F27;color:#412402;border-radius:8px;font-size:.62rem;font-weight:500;letter-spacing:.01em;line-height:1.15;white-space:nowrap;border:1.5px solid #633806;font-family:'DM Sans',sans-serif;pointer-events:none}

.sb-badge-partners::before{content:'★';font-size:.62rem;margin-right:1px;line-height:1}


@media (max-width:640px){
body{padding-left:0;padding-bottom:66px}

.sidebar{top:auto;left:0;right:0;bottom:0;width:100%;height:66px;flex-direction:row;padding:4px;gap:2px;justify-content:space-around;border-right:none;border-top:1px solid #D5E5F0;overflow-x:auto}

.sidebar-logo{display:none}

.sb-link{width:auto;flex:1;min-width:54px;max-width:82px;height:56px;padding:4px;margin-bottom:0}

.sb-icon{font-size:1rem}

.sb-label{font-size:.67rem}

.sb-link.active::before{display:none}

.sb-badge-partners{position:absolute;margin-top:0;bottom:2px;right:2px;font-size:.45rem;padding:1px 3px;background:#F57C00;color:#fff;border:1px solid rgba(255,255,255,.6)}

.sb-badge-partners::before{font-size:.5rem}}

.page-section{display:none;width:100%}

.page-section.active{display:block}

.riv-subbar{display:flex;overflow:hidden;max-height:0;padding:0 14px;background:#FFF3E0;border-bottom:0 solid #FFE0B2;gap:6px;flex-wrap:wrap;align-items:center;font-size:.74rem;transition:max-height .3s ease,padding .3s ease,border-width .3s ease}

.riv-subbar.show{max-height:80px;padding:8px 14px;border-bottom-width:1px}

.riv-subbar .lblx{color:#E65100;font-weight:600;margin-right:4px}

.riv-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;background:#fff;border:1px solid #FFE0B2;border-radius:14px;cursor:pointer;color:#5B7489;font-size:.72rem}

.riv-chip input{margin:0;cursor:pointer}

.riv-chip:hover{background:#FFE0B2}

#map{height:1500px;width:100%;min-height:1500px}

.marker-dot{border-radius:50%;border:2px solid #fff;box-shadow:0 2px 5px rgba(0,0,0,.3)}

.leaflet-popup-content{font-family:'DM Sans',sans-serif;min-width:240px}

.leaflet-popup-content h3{font-size:1rem;color:#0D1B2A;margin-bottom:6px;font-family:'Playfair Display',serif;line-height:1.3}

.leaflet-popup-content .meta{font-size:.78rem;color:#5B7489;margin-bottom:3px}

.leaflet-popup-content .badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:.7rem;font-weight:600;margin-top:4px}

.leaflet-touch .leaflet-bar a,
.leaflet-bar a{
  width:30px;height:30px;line-height:30px;font-size:17px;font-weight:700;
  color:#0D3B5C;background:#fff;border-bottom:1px solid #E0DDD7
}

.leaflet-bar a:hover{background:#EAF3FA;color:#1565C0}

.leaflet-bar a:first-child{border-radius:8px 8px 0 0}

.leaflet-bar a:last-child{border-radius:0 0 8px 8px}

.leaflet-bar{box-shadow:0 2px 8px rgba(0,0,0,.15);border:none;border-radius:8px}

.map-pan-pad{
  position:absolute;bottom:24px;right:14px;z-index:1000;
  display:grid;
  grid-template-columns:40px 40px 40px;
  grid-template-rows:40px 40px 40px;
  gap:4px;
  pointer-events:none;
}

.map-pan-pad button{
  pointer-events:auto;
  width:40px;height:40px;
  background:#fff;color:#0D3B5C;
  border:1px solid #D5E5F0;border-radius:8px;
  font-size:18px;font-weight:700;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 2px 6px rgba(0,0,0,.12);
  font-family:inherit;
  transition:background .12s, transform .08s;
  -webkit-tap-highlight-color:transparent;
  user-select:none;
  touch-action:manipulation;
}

.map-pan-pad button:hover{background:var(--color-primary-100);color:var(--color-primary);border-color:var(--color-primary)}

.map-pan-pad button:active{background:var(--color-primary-200);transform:scale(.94)}

.map-pan-pad .pan-up{grid-column:2;grid-row:1}

.map-pan-pad .pan-left{grid-column:1;grid-row:2}

.map-pan-pad .pan-center{grid-column:2;grid-row:2;background:var(--color-surface-alt);font-size:14px;border-style:dashed}

.map-pan-pad .pan-right{grid-column:3;grid-row:2}

.map-pan-pad .pan-down{grid-column:2;grid-row:3}


@media (max-width:640px){
.map-pan-pad{bottom:14px;right:8px}

.leaflet-touch .leaflet-bar a,
.leaflet-bar a{width:28px;height:28px;line-height:28px;font-size:16px}}

#map{position:relative}

.login-btn{background:#1565C0;color:#fff;border:none;padding:7px 14px;border-radius:6px;font-size:.82rem;font-weight:600;cursor:pointer;box-shadow:0 2px 6px rgba(21,101,192,.2)}

.login-btn:hover{background:#1976D2}

sup a{
  text-decoration: none;
  color: var(--color-primary);
  font-weight: var(--font-weight-bold);
  padding: 0 2px;
}

sup a:hover{
  background: var(--color-primary-500);
  border-radius: 3px;
}

.page-copyright{
  margin-top: 0;
  padding: var(--space-6) var(--space-7);
  background: linear-gradient(135deg, var(--color-primary-500), var(--color-primary-400));
  color: var(--color-primary-darker);
  text-align: center;
  font-size: var(--font-size-sm);
  line-height: 1.5;
  border-radius: 0;
  font-family: var(--font-family-sans);
  letter-spacing: .02em;
  border-top: 1px solid #90CAF9;
}

.page-copyright strong{
  color: var(--color-primary-darker);
  font-weight: var(--font-weight-bold);
}

.page-copyright a{color:#1565C0;text-decoration:none}

.page-copyright a:hover{color:#0D3B5C;text-decoration:underline}

.popup-correct-hint{margin-top:10px;padding:8px 10px;background:#FFF8E1;border-left:3px solid #F9A825;border-radius:4px;font-size:.75rem;line-height:1.4;color:#5D4037}

.popup-correct-hint a{color:#E65100;font-weight:600;text-decoration:underline;cursor:pointer}

.popup-correct-hint a:hover{color:#BF360C}

:root{
  --right-col-width:320px;
}

.topbar-home{
  background:white;
  border-bottom:1px solid var(--border);
  padding:10px 24px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  height:56px;
  position:sticky;
  top:0;
  z-index:1000;
}

.topbar-home-title{
  font-family:'Playfair Display',Georgia,serif;
  font-size:22px;
  font-weight:700;
  color:#0D3B5C;
  display:flex;
  align-items:baseline;
  gap:10px;
  line-height:1;
}

.topbar-home-subtitle{
  font-family:'Inter','DM Sans',sans-serif;
  font-size:12px;
  font-weight:400;
  color:#6B6B6B;
  letter-spacing:.01em;
}

.topbar-home-actions{
  display:flex;
  align-items:center;
  gap:10px;
}

.topbar-home-actions .top-action-btn{
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:6px 11px;
  font-size:12px;
  font-weight:500;
  color:#0D3B5C;
  background:white;
  border:1px solid var(--border);
  border-radius:5px;
  cursor:pointer;
  text-decoration:none;
  font-family:inherit;
}

.topbar-home-actions .top-action-btn:hover{background:var(--color-surface-alt);}

.topbar-home-actions .top-action-btn.primary{
  background:#1565C0;
  color:white;
  border-color:#1565C0;
  font-weight:700;
}

.topbar-home-actions .top-action-btn.primary:hover{
  background:#0D47A1;
  border-color:#0D47A1;
}

.topbar-home-actions .top-action-btn.b2b-btn{
  background:linear-gradient(135deg, #E65100 0%, #FF9800 100%);
  color:#fff;
  border:1px solid #BF360C;
  font-weight:700;
  padding:7px 14px;
  font-size:12px;
  letter-spacing:.01em;
  box-shadow:0 2px 8px rgba(230,81,0,.25);
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:6px;
}

.topbar-home-actions .top-action-btn.b2b-btn:hover{
  background:linear-gradient(135deg, #BF360C 0%, #E65100 100%);
  border-color:#BF360C;
  box-shadow:0 4px 12px rgba(230,81,0,.4);
  transform:translateY(-1px);
}

.topbar-home-actions .top-action-btn.b2b-btn .b2b-icon{
  font-size:13px;
  line-height:1;
}

.topbar-home-actions .top-action-btn.b2b-btn .b2b-text{
  white-space:nowrap;
}

.topbar-home-actions .top-action-btn.b2b-btn .b2b-text-short{display:none}

@media (max-width:900px){
.topbar-home-actions .top-action-btn.b2b-btn .b2b-text-long{display:none}

.topbar-home-actions .top-action-btn.b2b-btn .b2b-text-short{display:inline}}

@media (max-width:560px){
.topbar-home-actions .top-action-btn.b2b-btn .b2b-text-short{display:none}

.topbar-home-actions .top-action-btn.b2b-btn{padding:6px 10px}}

#page-home .hero-banner-v2{
  position:relative;
  min-height:170px;
  background-color:#0E3B73;
  background-image:
    linear-gradient(90deg, rgba(10,42,69,.88) 0%, rgba(13,59,92,.62) 42%, rgba(13,59,92,.18) 100%),
    url('../images/banner-home.webp');
  background-size:cover, cover;
  background-position:center center;
  background-repeat:no-repeat;
  color:white;
  display:flex;
  align-items:center;
  padding:24px 0;
  overflow:hidden;
  border-bottom:1px solid #07203a;
  margin:0 -16px 0 -16px;
}

#page-home .hero-banner-v2::before{
  content:'';
  position:absolute;
  inset:0;

  background:linear-gradient(90deg,
    rgba(14,59,115,.78) 0%,
    rgba(14,59,115,.72) 25%,
    rgba(14,59,115,.60) 45%,
    rgba(14,59,115,.40) 60%,
    rgba(14,59,115,.20) 75%,
    rgba(14,59,115,.08) 88%,
    rgba(14,59,115,0) 100%);
  pointer-events:none;
}

#page-home .hero-banner-v2-content{
  position:relative;
  z-index:2;
  max-width:1400px;
  width:100%;
  margin-left:auto;
  margin-right:auto;
  padding-left:28px;
  padding-right:28px;
  box-sizing:border-box;
}

#page-home .hero-banner-v2-title{
  font-family:'Playfair Display',Georgia,serif;
  font-size:30px;
  font-weight:700;
  line-height:1.2;
  margin:0 0 8px 0;
  color:white;

  text-shadow:0 2px 8px rgba(0,0,0,.55), 0 1px 3px rgba(0,0,0,.7);
}

#page-home .hero-banner-v2-subtitle{
  font-size:17px;
  font-weight:500;
  opacity:1;
  max-width:720px;
  color:white;
  text-shadow:0 2px 6px rgba(0,0,0,.6), 0 1px 2px rgba(0,0,0,.7);
  margin:0;
}

#page-home .home-quick-tiles{
  margin:16px auto 12px;
  padding:0 16px;
  max-width:1400px;
  box-sizing:border-box;
}

#page-home .home-quick-tiles .hqt-list{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  justify-content:center;
  align-items:stretch;
}

#page-home .home-quick-tiles .hqt-tile{
  position:relative;
  display:flex;
  align-items:center;
  gap:12px;
  padding:12px 14px;
  background:#fff;
  border:1px solid #E5EEF5;
  border-radius:14px;
  cursor:pointer;
  text-decoration:none;
  color:inherit;
  box-shadow:0 1px 3px rgba(13,59,92,.06);
  transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease;
  min-height:60px;
  /* Taille fixe contrôlée : ~260px par tuile, ni étirement ni écrasement */
  flex:0 0 260px;
  width:260px;
  max-width:100%;
  box-sizing:border-box;
}

#page-home .home-quick-tiles .hqt-tile:hover{
  transform:translateY(-2px);
  box-shadow:0 8px 18px rgba(13,59,92,.12);
  border-color:#C5D5E2;
}

#page-home .home-quick-tiles .hqt-tile-icon{
  flex-shrink:0;
  width:42px;
  height:42px;
  border-radius:12px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:22px;
  line-height:1;
  background:var(--hqt-bg, #E3F2FD);
  color:var(--hqt-fg, #1565C0);
}

#page-home .home-quick-tiles .hqt-tile-icon img{
  width:30px;
  height:30px;
  object-fit:contain;
  border-radius:6px;
}

#page-home .home-quick-tiles .hqt-tile-text{
  flex:1;
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:2px;
}

#page-home .home-quick-tiles .hqt-tile-label{
  font-size:14px;
  font-weight:700;
  line-height:1.25;
  color:var(--hqt-fg, #1565C0);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

#page-home .home-quick-tiles .hqt-tile-sub{
  font-size:12px;
  font-weight:500;
  line-height:1.3;
  color:#5A6B7B;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

#page-home .home-quick-tiles .hqt-tile-arrow{
  flex-shrink:0;
  width:28px;
  height:28px;
  border-radius:50%;
  background:#F0F4F8;
  color:#5A6B7B;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:13px;
  font-weight:700;
  transition:background .15s ease, color .15s ease;
}

#page-home .home-quick-tiles .hqt-tile:hover .hqt-tile-arrow{
  background:var(--hqt-fg, #1565C0);
  color:#fff;
}

@media (max-width:900px){
#page-home .home-quick-tiles{padding:0 12px;}

#page-home .home-quick-tiles .hqt-tile{
    flex:0 0 240px;
    width:240px;
  }}

@media (max-width:600px){
#page-home .home-quick-tiles{padding:0 10px;}

#page-home .home-quick-tiles .hqt-list{gap:8px;}

#page-home .home-quick-tiles .hqt-tile{
    flex:1 1 100%;
    width:auto;
    padding:10px 12px;
    min-height:54px;
  }

#page-home .home-quick-tiles .hqt-tile-icon{
    width:38px;
    height:38px;
    font-size:20px;
  }

#page-home .home-quick-tiles .hqt-tile-label{font-size:13px;}

#page-home .home-quick-tiles .hqt-tile-sub{font-size:11.5px;}}

#page-home .map-toolbar{
  background:white;
  border:1px solid var(--border);
  border-radius:0;
  padding:12px 16px;
  margin:0;
  display:flex;
  align-items:center;
  gap:18px;
  flex-wrap:wrap;
  border-bottom:none;
}

#page-home .map-toolbar .mt-counter{
  display:flex;
  align-items:baseline;
  gap:6px;
}

#page-home .map-toolbar .mt-num{
  font-family:'DM Sans','Inter',sans-serif;
  font-size:24px;
  font-weight:600;
  color:var(--color-primary-darker);
}

#page-home .map-toolbar .mt-label{
  font-size:15px;
  color:var(--color-text-muted);
  font-weight:500;
}

#page-home .map-toolbar .mt-dot{
  display:inline-block;
  width:10px;height:10px;
  border-radius:50%;
  margin-right:4px;
}

#page-home .map-toolbar .mt-sep{
  width:1px;
  height:28px;
  background:var(--border);
}

#page-home .map-toolbar .mt-select{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:17px;
  color:var(--color-text-muted);
}

#page-home .map-toolbar .mt-select select{
  padding:6px 28px 6px 12px;
  font-size:17px;
  border:1px solid var(--color-border);
  border-radius:5px;
  background:var(--color-surface);
  font-family:inherit;
  cursor:pointer;
}

#page-home .map-toolbar .mt-legend{
  display:flex;
  gap:14px;
  align-items:center;
  font-size:17px;
}

#page-home .map-toolbar .mt-legend label{
  display:inline-flex;
  align-items:center;
  gap:5px;
  cursor:pointer;
  margin:0;
}

#page-home .map-toolbar .mt-legend input[type=checkbox]{margin:0;}

#page-home .map-toolbar .mt-cta-group{
  margin-left:auto;
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}

#page-home .map-toolbar .mt-cta{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:9px 15px;
  font-size:15px;
  font-weight:600;
  border-radius:5px;
  cursor:pointer;
  text-decoration:none;
  white-space:nowrap;
  border:1px solid var(--color-border);
  transition:all .15s;
  font-family:inherit;
}

#page-home .map-toolbar .mt-cta.dispo{
  background:#E8F5E9;
  color:#2E5D33;
  border-color:#C8E6C9;
}

#page-home .map-toolbar .mt-cta.dispo:hover{
  background:#D4EBD6;
  color:#1F4322;
  border-color:#A5D6A7;
}

#page-home .map-toolbar .mt-cta.recrute{
  background:#E8F5E9;
  color:#2E5D33;
  border-color:#C8E6C9;
}

#page-home .map-toolbar .mt-cta.recrute:hover{
  background:#D4EBD6;
  color:#1F4322;
  border-color:#A5D6A7;
}

#page-home .map-toolbar .mt-cta.update{
  background:var(--color-surface);
  color:var(--color-primary-darker);
}

#page-home .map-toolbar .mt-cta.update:hover{
  background:var(--color-surface-alt);
  border-color:var(--color-primary-darker);
}

#page-home .width-controls{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:6px;
  padding:0 2px;
  margin-bottom:6px;
  font-size:11px;
  color:var(--color-text-muted);
}

#page-home .width-controls .width-btn{
  width:24px; height:24px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:var(--color-surface);
  border:1px solid var(--color-border);
  border-radius:4px;
  font-size:14px;
  font-weight:600;
  color:var(--color-primary-darker);
  cursor:pointer;
  user-select:none;
  transition:all .12s;
  padding:0;
  font-family:inherit;
}

#page-home .width-controls .width-btn:hover:not(:disabled){
  background:var(--color-primary-100);
  border-color:var(--color-primary-darker);
}

#page-home .width-controls .width-btn:disabled{
  opacity:.35;
  cursor:not-allowed;
}

#page-home .width-controls .width-display{
  font-size:11px;
  color:var(--color-text-muted);
  min-width:48px;
  text-align:center;
  font-variant-numeric:tabular-nums;
}

#page-home .map-grid-v2{
  display:grid;
  grid-template-columns:1fr var(--right-col-width);
  gap:14px;
  transition:grid-template-columns .25s ease;
  margin-top:0;
}

#page-home .map-area-v2{
  background:var(--color-surface);
  border:1px solid var(--color-border);
  border-radius:0;
  position:relative;
  overflow:hidden;
  min-height:854px;
}

#page-home .map-area-v2 #map{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}

#page-home .right-sidebar-v2{
  display:flex;
  flex-direction:column;
  gap:12px;
}

#page-home .rs-card{
  background:var(--color-surface);
  border:1px solid var(--color-border);
  border-radius:8px;
  padding:14px;
}

#page-home .rs-card-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:10px;
  padding-bottom:8px;
  border-bottom:1px solid var(--color-border);
}

#page-home .rs-card-title{
  font-size:14px;
  font-weight:600;
  color:var(--color-primary-darker);
  display:flex;
  align-items:center;
  gap:6px;
}

#page-home .rs-card-link{
  font-size:11px;
  color:var(--color-primary);
  text-decoration:none;
  font-weight:500;
  cursor:pointer;
}

#page-home .rs-card-link:hover{text-decoration:underline;}

#page-home .rs-item{
  padding:8px 0;
  border-bottom:1px solid var(--color-border);
  cursor:pointer;
}

#page-home .rs-item:last-child{border-bottom:0;}

#page-home .rs-item:hover{background:var(--color-surface-alt);margin:0 -14px;padding:8px 14px;}

#page-home .rs-tag{
  display:inline-block;
  font-size:10px;
  font-weight:600;
  padding:1px 7px;
  border-radius:9px;
  background:var(--color-primary-500);
  color:var(--color-primary-dark);
  margin-bottom:4px;
}

#page-home .rs-title{
  font-size:13px;
  font-weight:600;
  color:var(--color-text-primary);
  margin-bottom:2px;
  line-height:1.3;
}

#page-home .rs-meta{
  font-size:11px;
  color:var(--color-text-muted);
}


@media (max-width:1000px){
#page-home .map-grid-v2{
    grid-template-columns:1fr !important;
  }

#page-home .map-area-v2{
    min-height:618px;
  }

#page-home .right-sidebar-v2{
    width:100%;
    max-width:100%;
  }

#page-home .width-controls{display:none;}}

@media (max-width:600px){
#page-home .map-toolbar{padding:10px 12px;gap:10px;}

#page-home .map-toolbar .mt-cta-group{margin-left:0;width:100%;justify-content:center;}

.topbar-home{padding:8px 14px;}

.topbar-home-title{font-size:18px;}

.topbar-home-subtitle{display:none;}}

:root{
  /* Fonds — alignés sur le système global */
  --thera-c-bg:        var(--color-bg);                /* gris-beige neutre */
  --thera-c-bg-alt:    var(--color-primary-100);       /* #EAF3FA bleu pâle pour encarts moléculaires */

  /* Textes — alignés sur le système global */
  --thera-c-ink:       var(--color-primary-night);     /* #0D1B2A bleu nuit */
  --thera-c-ink-soft:  var(--color-text-secondary);    /* #3A5266 */

  /* Accents — l'ancien doré devient bleu primary */
  --thera-c-accent:    var(--color-primary);           /* #1565C0 */
  --thera-c-accent-dk: var(--color-primary-darker);    /* #0D3B5C */

  /* Bleus — déjà équivalents au système global */
  --thera-c-blue:      var(--color-primary-dark);      /* #0D47A1 */
  --thera-c-blue-soft: var(--color-primary-100);       /* #EAF3FA (proche de #E3EAF5) */

  /* Bordures — alignées sur le système global */
  --thera-c-line:      var(--color-border);            /* #E0DDD7 */
  --thera-c-line-soft: var(--color-border-light);      /* #D5E5F0 */

  /* États sémantiques — équivalents existants */
  --thera-c-good:      var(--color-success-dark);      /* #1B5E20 */
  --thera-c-warn:      var(--color-warning);           /* #E65100 */
  --thera-c-info:      var(--color-primary);           /* #1565C0 */
  --thera-c-purple:    var(--color-cat-purple);        /* #6A1B9A */

  /* Ombres et géométrie spécifiques (non modifiés) */
  --thera-shadow-1:    0 1px 2px rgba(14,30,54,.05), 0 2px 8px rgba(14,30,54,.04);
  --thera-shadow-2:    0 4px 14px rgba(14,30,54,.08), 0 12px 30px rgba(14,30,54,.06);
  --thera-r:           4px;
  --thera-max-w:       1240px;
}

.sb-link[data-p="contact"] .sb-icon{
  font-size: 1.8rem;
}

/* NOTE: the thera-subtabs row (Vue globale / Recommandations / ...
   / Partner Intelligence) stays visible in fullwidth mode by design,
   so the user can navigate to other sub-tabs without exiting the
   secure area via the EXIT button. */

/* ============================================================
   MOBILE FIXES v1 — 16/05/2026
   1. Sidebar mobile : alignement vertical uniforme des labels
   2. Connexion en icône ronde sur mobile (était hors écran)
   3. Tuiles Offres/Recherche : badge en haut à droite (était au milieu)
   4. Filtres Recrutement : dropdowns pays + profession + chips contrats
   ============================================================ */

/* ---- Fix 1 : Sidebar mobile alignement vertical ---- */
@media (max-width:640px){
.sb-link{
    justify-content:flex-start !important;
    padding-top:6px !important;
  }

.sb-link .sb-icon{
    height:18px;
    display:flex;
    align-items:center;
    justify-content:center;
    line-height:1;
  }

.sb-link .sb-label{
    height:24px;
    display:flex;
    align-items:flex-start;
    justify-content:center;
    line-height:1.1;
    overflow:hidden;
    text-align:center;
  }}


/* ---- Fix 2 : Bouton Connexion compact en icône ronde sur mobile ---- */
@media (max-width:640px){
.topbar-home{padding:8px 10px !important;}

.topbar-home-actions{gap:6px !important;}

.topbar-home-actions .top-action-btn[onclick*="openAboutModal"]{
    padding:6px 9px !important;
    min-width:34px;
    min-height:30px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
  }

.topbar-home-actions .top-action-btn[onclick*="openAboutModal"] [data-i18n="about"]{
    display:none;
  }

.topbar-home-actions .login-btn{
    width:36px;
    height:36px;
    padding:0 !important;
    border-radius:50% !important;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    font-size:1rem;
    box-shadow:0 2px 8px rgba(21,101,192,.35) !important;
  }

.topbar-home-actions .login-btn [data-i18n="login"]{display:none;}}


/* ============================================================
   MOBILE FIXES v2 — 16/05/2026
   5. Hero "Un portail au service" : titre plus petit + bandeau moins haut
   6. Tuiles Offres/Recherche : 1 par ligne sur mobile (au lieu de 2)
   ============================================================ */

/* ---- Fix 5 : Hero home plus compact sur mobile ---- */
@media (max-width:640px){
#page-home .hero-banner-v2{
    min-height:auto !important;
    padding:18px 0 !important;
  }

#page-home .hero-banner-v2-content{
    max-width:100% !important;
    padding-left:18px !important;
    padding-right:18px !important;
  }

#page-home .hero-banner-v2-title{
    font-size:20px !important;
    line-height:1.25 !important;
    margin:0 0 6px 0 !important;
  }

#page-home .hero-banner-v2-subtitle{
    font-size:14.5px !important;
    line-height:1.4 !important;
  }}


/* ============================================================
   MOBILE FIXES v3 — 16/05/2026
   7. Sidebar mobile : police réduite, hauteur uniforme, plus de troncature
   8. Publications mobile : 2 dropdowns au lieu de 10 chips de domaine
   9. Calendrier publications mobile : grille 3×4 avec cercles de compte
   ============================================================ */

/* ---- Fix 7 : Sidebar mobile labels lisibles sans troncature ---- */
@media (max-width:640px){
.sb-link{
    flex:1 0 auto !important;
    min-width:64px !important;
    max-width:74px !important;
    height:58px !important;
    padding:4px 2px !important;
  }

.sb-link .sb-icon{
    font-size:.95rem !important;
    height:16px !important;
  }

.sb-link .sb-label{
    font-size:.64rem !important;
    line-height:1.1 !important;
    height:26px !important;
    word-break:keep-all;
    hyphens:none;
  }

body{padding-bottom:64px !important;}

.sidebar{height:64px !important;}}


/* ============================================================
   DESKTOP FIXES v1 — 16/05/2026
   10. Topbar reste visible en haut sur desktop quand on scrolle
       (position:sticky échouait à cause de overflow-x:hidden sur body)
   ============================================================ */
@media (min-width:641px){
.topbar-home{
    position:fixed !important;
    top:0;
    left:120px;            /* compense la sidebar fixed */
    right:0;
    width:auto;
    z-index:1000;
    box-shadow:0 1px 4px rgba(0,0,0,.04);
  }

#nucleascope-wrap{
    padding-top:56px;
  }}

.leaflet-marker-icon.nm-riv .marker-dot{ border:1px solid #000; box-shadow:none; }

:root{
  --home-map-window-height: 1068px; /* 854px + ~25% */
}

body #page-home .home-content-wrap{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
}

body #page-home .map-grid-v2{
  align-items:stretch !important;
  min-height:var(--home-map-window-height) !important;
}

body #page-home .map-area-v2{
  min-height:var(--home-map-window-height) !important;
  height:var(--home-map-window-height) !important;
}

body #page-home .map-area-v2 #map{
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  min-height:0 !important;
}

body #page-home .right-sidebar-v2{
  min-height:var(--home-map-window-height) !important;
}

body .page-copyright{
  padding:10px 24px 22px !important;
  min-height:0 !important;
  margin-top:0 !important;
  font-size:12px !important;
  line-height:1.35 !important;
}

body .page-copyright > div:first-child{
  margin:0 auto 6px !important;
  max-width:560px !important;
}

body .page-copyright > div:last-child{
  margin-top:2px !important;
  font-size:11px !important;
}


/* Tablet / smaller desktop: still keep a taller window but avoid excessive scrolling. */
@media (max-width:1000px){
:root{ --home-map-window-height: 772px; }

body #page-home .right-sidebar-v2{min-height:0 !important;}}


/* Mobile: keep it usable and do not create a huge vertical block. */
@media (max-width:640px){
:root{ --home-map-window-height: 620px; }

body .page-copyright{
    padding:8px 14px 14px !important;
  }}
