/* Cockpit DSE unique et adaptatif */
[data-administration-droits] [hidden] { display: none !important; }
.droits-filtres { display: flex; flex-wrap: wrap; align-items: end; gap: 12px; margin: 16px 0; }
.droits-filtres label { display: grid; gap: 6px; flex: 1 1 180px; min-width: 0; }
.droits-filtres input, .droits-filtres select { width: 100%; min-width: 0; padding: 9px; border: 1px solid var(--line); border-radius: 8px; font: inherit; }
.droits-tableau { overflow-x: auto; }
.droits-tableau table { width: 100%; }
[data-groupe-droits] > summary { cursor: pointer; padding: 8px 0; }
.droits-compteur, [data-desactives-groupe] { display: inline-block; margin-left: 12px; font-size: .85rem; }
.droits-compteur { color: #166534; font-weight: 600; }
[data-desactives-groupe] { color: #991b1b; }
.droits-etat { display: inline-block; border-radius: 6px; padding: 3px 8px; font-size: .8rem; font-weight: 600; margin: 4px; }
[data-etat-droit="actif"] .droits-etat, .droits-etat[data-etat-droit="actif"] { color: #166534; background: #dcfce7; }
[data-etat-droit="inactif"] .droits-etat, .droits-etat[data-etat-droit="inactif"] { color: #991b1b; background: #fee2e2; }
[data-ligne-droit][data-etat-droit="actif"] > td { background: #f0fdf4; }
[data-ligne-droit][data-etat-droit="inactif"] > td { background: #fff1f2; }
[data-ligne-droit] input[type="checkbox"] { accent-color: #166534; }
.droits-legende { font-size: .85rem; }
.dse-icon { width: 20px; height: 20px; flex: 0 0 auto; vertical-align: middle; }
body:not(.dse-public) {
  --accent: #0860ed;
  --bg: #f2f5fa;
  --nav: #0c223e;
  --shadow: 0 3px 16px rgba(16, 36, 62, .04);
  /* Theme tokens: distinct defaults, ready for a future SharePoint-backed cockpit palette. */
  --cockpit-nav-admin-bg: #174667;
  --cockpit-nav-site-bg: #0a2c4d;
  --cockpit-nav-global-bg: #123956;
  --cockpit-nav-tickets-bg: #1d3f5f;
  --cockpit-nav-journal-bg: #1a4a52;
  --cockpit-nav-projets-bg: #2a3f66;
  --cockpit-nav-catalogue-bg: #4a2f5e;
  --cockpit-nav-boutique-bg: #5e3a1f;
  --cockpit-nav-group-border: rgba(206, 226, 245, .2);
}
body:not(.dse-public) .app-shell { grid-template-columns: 224px minmax(0, 1fr); }
body:not(.dse-public) .topbar { gap: 20px; }
.topbar-actions { flex-wrap: wrap; justify-content: flex-end; }
.cockpit-version { display: inline-flex; align-items: center; flex-wrap: wrap; gap: 6px; font-size: .75rem; color: var(--muted); }
.cockpit-version > [role="status"]:empty { display: none; }
.cockpit-version > [role="status"] { max-width: 240px; }
body:not(.dse-public) .cockpit-version .btn { min-height: 28px; padding: 4px 8px; font-size: .75rem; }
body:not(.dse-public) .brand { color: var(--text); text-decoration: none; font-size: .95rem; }
.brand small, .cockpit-profil small { display: block; color: var(--muted); font-weight: 400; font-size: .75rem; margin-top: 3px; }
body:not(.dse-public) .brand-mark { background: #07576b; }
.cockpit-recherche-globale { display: flex; align-items: center; gap: 8px; margin-left: auto; background: var(--bg); border: 1px solid var(--line); border-radius: 8px; padding: 8px 12px; color: var(--muted); max-width: 340px; }
.cockpit-recherche-globale input { width: 100%; min-width: 0; border: 0; background: transparent; font: inherit; font-size: .85rem; color: var(--text); }
.cockpit-profil { position: relative; }
.cockpit-profil summary { display: flex; align-items: center; gap: 10px; cursor: pointer; font-size: .85rem; list-style: none; }
.cockpit-profil summary::-webkit-details-marker { display: none; }
.cockpit-avatar { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: var(--nav); color: white; font-weight: 700; }
.cockpit-profil > a { position: absolute; right: 0; top: 48px; background: white; border: 1px solid var(--line); box-shadow: var(--shadow); padding: 14px; border-radius: 10px; white-space: nowrap; color: var(--text); }
body:not(.dse-public) .sidebar { display: flex; flex-direction: column; gap: 24px; padding: 18px 12px; }
body:not(.dse-public) .nav-link { font-size: .9rem; gap: 12px; }
body:not(.dse-public) .nav-link.active { background: var(--accent); box-shadow: 0 4px 14px #0860ed33; }
.cockpit-sidebar-bas { margin-top: auto; display: grid; gap: 16px; }
.cockpit-sidebar-bas button { border: 0; background: transparent; font: inherit; cursor: pointer; text-align: left; width: 100%; }
.cockpit-sidebar-bas small { border-top: 1px solid #ffffff33; padding: 16px 10px 0; color: #c6d4e6; font-size: .75rem; }
body:not(.dse-public) .cockpit-menu-reduit { grid-template-columns: 76px minmax(0, 1fr); }
.cockpit-menu-reduit .nav-link > span, .cockpit-menu-reduit .cockpit-sidebar-bas small { display: none; }
.cockpit-menu-reduit .nav-link { justify-content: center; }
.cockpit-menu-reduit .nav-public-choix { position: absolute; left: 76px; background: var(--nav); width: 220px; z-index: 25; }
.cockpit-menu-reduit .nav-public-choix .nav-link > span { display: block; }
body:not(.dse-public) .btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; text-decoration: none; font-size: .85rem; min-height: 38px; }
body:not(.dse-public) a:focus-visible, body:not(.dse-public) button:focus-visible, body:not(.dse-public) summary:focus-visible { outline: 3px solid #529cff; outline-offset: 3px; }
.cockpit-compteurs { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; }
.cockpit-compteur { height: 100%; display: flex; gap: 14px; align-items: center; text-decoration: none; color: var(--text); padding: 16px; }
.cockpit-compteur.selectionne { background: #edf4ff; border-color: #a6c9ff; }
.cockpit-compteur-icone { width: 44px; height: 44px; display: grid; place-items: center; background: #e9f0fb; color: var(--accent); border-radius: 50%; flex: 0 0 auto; }
.cockpit-compteur strong { display: block; font-size: 1.8rem; line-height: 1.15; }
.cockpit-compteur span span { display: block; font-size: .9rem; margin-top: 4px; }
.cockpit-compteur small { color: var(--muted); font-size: .75rem; }
.cockpit-sites-synthese { display: grid; grid-template-columns: 1.1fr 1fr; gap: 16px; }
.cockpit-sites-synthese h2 { display: flex; align-items: center; gap: 10px; font-size: .95rem; }
.cockpit-sites-synthese h2 svg { color: var(--accent); }
.cockpit-sites-synthese p { font-size: .85rem; }
.cockpit-moyenne { margin: 16px 0; color: var(--nav); }
.cockpit-moyenne .cockpit-mini-jauge { display: flex; gap: 18px; }
.cockpit-moyenne small { font-size: 1.4rem; font-weight: 700; }
.cockpit-moyenne .cockpit-jauge { height: 10px; }
.cockpit-sites-raccourcis { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
.cockpit-mes-sites .cockpit-filtres { grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)); gap: 12px; padding: 14px; box-shadow: none; }
.cockpit-mes-sites .cockpit-recherche { grid-column: auto; }
.cockpit-mes-sites .cockpit-champ > span { font-size: .75rem; color: var(--muted); }
.cockpit-mode-affichage { display: flex; gap: 6px; align-self: end; }
.cockpit-mode-affichage [aria-pressed="true"] { background: var(--accent); color: white; }
.cockpit-mes-sites .cockpit-tableau table { border-collapse: separate; border-spacing: 0 8px; background: transparent; }
.cockpit-mes-sites .cockpit-tableau th { text-transform: none; letter-spacing: 0; border: 0; }
.cockpit-mes-sites .cockpit-tableau td { background: white; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); font-size: .85rem; padding: 14px 10px; }
.cockpit-mes-sites .cockpit-tableau td:first-child { border-left: 4px solid var(--line); border-radius: 10px 0 0 10px; }
.cockpit-mes-sites .cockpit-tableau td:last-child { border-right: 1px solid var(--line); border-radius: 0 10px 10px 0; }
.cockpit-site-identite { display: flex; align-items: center; gap: 12px; }
.cockpit-site-avatar { width: 44px; height: 44px; border-radius: 10px; background: #edf2f8; display: grid; place-items: center; font-weight: 700; color: var(--nav); flex: 0 0 auto; }
.cockpit-mes-sites .cockpit-actions { margin: 0; }
.cockpit-mes-sites .icon-btn { color: var(--muted); padding: 5px; }
.cockpit-resultats-sites { margin: 0; font-size: .8rem; }
.cockpit-vue-cartes table, .cockpit-vue-cartes tbody { display: block; }
.cockpit-vue-cartes thead { display: none; }
.cockpit-vue-cartes tbody { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px; }
.cockpit-mes-sites .cockpit-vue-cartes tr { display: flex; flex-direction: column; background: white; padding: 14px; border: 1px solid var(--line); border-radius: 12px; }
.cockpit-mes-sites .cockpit-vue-cartes td { display: block; border: 0; padding: 6px 0; }
.cockpit-mes-sites .cockpit-vue-cartes td:first-child, .cockpit-mes-sites .cockpit-vue-cartes td:last-child { border: 0; border-radius: 0; }
.cockpit-vue-cartes td[data-label]:not(:first-child)::before { content: attr(data-label) " : "; color: var(--muted); font-size: .8rem; }
@media (max-width: 1100px) {
  .topbar-actions .status { font-size: .75rem; }
  .cockpit-recherche-globale { max-width: 250px; }
  .cockpit-mes-sites .cockpit-tableau:not(.cockpit-vue-cartes) table { min-width: 760px; }
}
@media (max-width: 760px) {
  body:not(.dse-public) .app-shell, body:not(.dse-public) .cockpit-menu-reduit { grid-template-columns: 1fr; grid-template-rows: auto auto auto; }
  body:not(.dse-public) .topbar { height: auto; min-height: 72px; flex-wrap: wrap; padding: 12px 16px; gap: 12px; }
  .cockpit-recherche-globale { order: 3; max-width: none; width: 100%; margin: 0; }
  .topbar-actions { margin-left: auto; }
  .topbar-actions .status, .cockpit-profil summary > span:last-child { display: none; }
  body:not(.dse-public) .sidebar { padding: 8px; min-height: 0; gap: 0; }
  .cockpit-sidebar-bas { display: none; }
  .cockpit-menu-reduit .nav-link > span { display: inline; }
  .cockpit-sites-synthese { grid-template-columns: 1fr; }
  .cockpit-compteurs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cockpit-compteur { padding: 12px; gap: 10px; }
  .cockpit-compteur-icone { width: 32px; height: 32px; }
  .cockpit-compteur strong { font-size: 1.4rem; }
  .cockpit-mes-sites .cockpit-tableau:not(.cockpit-vue-cartes) table { min-width: 0; }
  .cockpit-mes-sites .cockpit-tableau tr { border: 1px solid var(--line); border-radius: 12px; background: white; margin-bottom: 10px; padding: 12px; }
  .cockpit-mes-sites .cockpit-tableau td, .cockpit-mes-sites .cockpit-tableau td:first-child, .cockpit-mes-sites .cockpit-tableau td:last-child { border: 0; border-radius: 0; padding: 5px 0; }
  .cockpit-mes-sites td:first-child::before { content: none; }
  .cockpit-vue-cartes tbody { grid-template-columns: minmax(0, 1fr); }
  .cockpit-site-identite strong { overflow-wrap: anywhere; }
}
.cockpit { display: grid; gap: 1.25rem; }
.cockpit h2 { margin: .25rem 0; font-size: 1.15rem; }
.cockpit-entete { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .75rem; }
.cockpit-resume { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1rem; }
.cockpit-resume .card h2 { font-size: .95rem; color: var(--muted, #5b6b7f); text-transform: uppercase; letter-spacing: .04em; }
.cockpit-cartes { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 1rem; }
.cockpit-carte { display: flex; flex-direction: column; gap: .35rem; text-decoration: none; color: inherit; transition: transform .15s ease, box-shadow .15s ease; }
.cockpit-carte:hover, .cockpit-carte:focus-visible { transform: translateY(-2px); box-shadow: 0 8px 22px rgba(16, 36, 62, .12); }
.cockpit-carte-icone { font-size: 1.6rem; }
.cockpit-badge { display: inline-block; padding: .15rem .6rem; border-radius: 999px; font-size: .8rem; font-weight: 600; background: #e8edf3; color: var(--nav, #10243e); }
.cockpit-badge.actif { background: #dff5ec; color: #0d7a52; }
.cockpit-badge.situation { background: #fff3d6; color: #8a5a00; }
.cockpit-jauge { height: .7rem; border-radius: 999px; background: #e8edf3; overflow: hidden; }
.cockpit-jauge span { display: block; height: 100%; background: var(--progression-couleur, currentColor); border-radius: inherit; }
.cockpit-pliant { min-width: 0; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; }
.cockpit-pliant > summary { cursor: pointer; list-style: none; padding: 1rem; font-weight: 600; }
.cockpit-pliant > summary::-webkit-details-marker { display: none; }
.cockpit-pliant > summary::before { content: "▶"; display: inline-block; margin-right: .6rem; }
.cockpit-pliant[open] > summary::before { content: "▼"; }
.cockpit-pliant > summary:focus-visible { outline: 2px solid currentColor; outline-offset: -3px; }
.cockpit-pliant-contenu { padding: 0 1rem 1rem; }
.cockpit-progression > summary, .cockpit-progression-resume {
  border-inline-start: 6px solid var(--progression-couleur, var(--line, transparent));
  background: color-mix(in srgb, var(--progression-couleur, transparent) 12%, transparent);
}
.cockpit-progression-libelle { display: inline-block; margin-inline-start: .6rem; font-size: .85em; font-weight: 400; }
.cockpit-etapes { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.cockpit-etape { display: flex; gap: .75rem; align-items: flex-start; padding: .65rem .85rem; border-radius: 10px; background: #fff; border: 1px solid #e3e8ef; }
.cockpit-etape p { margin: .25rem 0 0; }
.cockpit-etape.attention { border-color: #f0c36d; background: #fffaf0; }
.cockpit-etape.termine { border-color: #bfe8d6; }
.cockpit-etape.active { outline: 2px solid var(--accent, #19a974); }
.cockpit-picto { font-size: 1.15rem; line-height: 1.4; }
.cockpit-alerte { color: #8a5a00; margin: .35rem 0; }
.cockpit-actions { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; }
.cockpit-site { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.cockpit-fil { display: flex; flex-wrap: wrap; gap: .4rem; list-style: none; margin: 0; padding: 0; }
.cockpit-fil a { display: inline-block; padding: .3rem .7rem; border-radius: 999px; background: #eef2f6; color: inherit; text-decoration: none; font-size: .85rem; }
.cockpit-fil li.active a { background: var(--accent, #19a974); color: #fff; }
.cockpit-formulaire { display: grid; gap: .9rem; }
.cockpit-champ { display: grid; gap: .3rem; }
.cockpit-champ input, .cockpit-champ textarea { width: 100%; padding: .55rem .7rem; border: 1px solid #cfd8e3; border-radius: 8px; font: inherit; box-sizing: border-box; }
.cockpit-champ input[type="color"] { width: 4rem; height: 2.5rem; padding: .15rem; }
.cockpit-connexion { max-width: 560px; margin: 2rem auto; text-align: center; }
.cockpit-connexion .cockpit-actions { justify-content: center; }
@media (max-width: 640px) {
  .cockpit-cartes { grid-template-columns: 1fr 1fr; }
  .cockpit-entete { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 400px) { .cockpit-cartes { grid-template-columns: 1fr; } }

/* Mes sites : liste filtrable pour un grand nombre de sites */
.cockpit-filtres { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: .75rem; align-items: end; }
.cockpit-filtres .cockpit-recherche { grid-column: 1 / -1; }
.cockpit-champ select { width: 100%; padding: .5rem .6rem; border: 1px solid #cfd8e3; border-radius: 8px; font: inherit; background: #fff; }
.cockpit-tableau { overflow-x: auto; }
.cockpit-tableau table { width: 100%; border-collapse: collapse; background: #fff; border-radius: 10px; overflow: hidden; }
.cockpit-tableau th, .cockpit-tableau td { padding: .6rem .75rem; text-align: left; border-bottom: 1px solid #e3e8ef; vertical-align: middle; }
.cockpit-tableau th { font-size: .8rem; text-transform: uppercase; letter-spacing: .04em; color: var(--muted, #5b6b7f); }
.cockpit-mini-jauge { display: inline-flex; align-items: center; gap: .4rem; min-width: 7rem; }
.cockpit-mini-jauge .cockpit-jauge { flex: 1; height: .45rem; }
.cockpit-pagination { display: flex; gap: .75rem; align-items: center; justify-content: center; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
@media (max-width: 700px) {
  .cockpit-tableau thead { display: none; }
  .cockpit-tableau tr { display: grid; gap: .3rem; padding: .6rem 0; border-bottom: 1px solid #e3e8ef; }
  .cockpit-tableau td { border: 0; padding: .15rem .75rem; }
  .cockpit-tableau td[data-label]::before { content: attr(data-label) " : "; color: var(--muted, #5b6b7f); font-size: .85rem; }
}

/* Ecriture : apercu, resultat, administration */
.cockpit-actions { display: flex; flex-wrap: wrap; gap: .5rem; margin: .75rem 0; }
.cockpit-edition .form-field { display: flex; flex-direction: column; gap: .25rem; margin-bottom: .75rem; }
.cockpit-edition input, .cockpit-edition textarea { width: 100%; padding: .5rem; border: 1px solid var(--border, #d0d7de); border-radius: 6px; font: inherit; }
.cockpit-diff { width: 100%; border-collapse: collapse; margin: .5rem 0; }
.cockpit-diff th, .cockpit-diff td { border: 1px solid var(--border, #d0d7de); padding: .5rem; text-align: left; vertical-align: top; white-space: pre-wrap; }
.cockpit-diff td.avant { background: #fff5f5; }
.cockpit-diff td.apres { background: #f0fff4; }
.cockpit-resultat.ok { border-left: 4px solid #2da44e; }
.cockpit-resultat.erreur { border-left: 4px solid #cf222e; }
.cockpit-admin { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1rem; }
.cockpit-liste { list-style: none; padding: 0; margin: 0; display: grid; gap: .4rem; }
.cockpit-form-inline { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; margin: .2rem 0; }
.cockpit-table { width: 100%; border-collapse: collapse; }
.cockpit-table th, .cockpit-table td { padding: .5rem; border-bottom: 1px solid var(--border, #d0d7de); text-align: left; vertical-align: top; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
@media (max-width: 700px) { .cockpit-table thead { display: none; } .cockpit-table td { display: block; border: 0; } .cockpit-table tr { display: block; border-bottom: 1px solid var(--border, #d0d7de); } }
.cockpit-statut-dialogue {
  width: min(520px, calc(100% - 32px));
  max-height: calc(100vh - 32px);
  overflow: auto;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 24px;
  color: var(--text);
}
.cockpit-statut-dialogue::backdrop { background: rgba(6, 22, 38, .58); }
.cockpit-statut-dialogue form { display: grid; gap: 16px; margin-bottom: 16px; }
.cockpit-statut-dialogue label { display: grid; gap: 8px; }
.cockpit-statut-dialogue select { padding: 10px; font: inherit; width: 100%; }

body:not(.dse-public) #app-header { position: sticky; top: 0; z-index: 30; }
.cockpit-mes-sites [data-resultat-statut]:empty { display: none; }
.cockpit-mes-sites .cockpit-filtres .cockpit-recherche { grid-column: auto; }
@media (max-width: 760px) {
  .cockpit-mes-sites .cockpit-tableau thead { display: none; }
  .cockpit-mes-sites .cockpit-tableau tr { display: grid; }
  .cockpit-mes-sites .cockpit-tableau td:first-child::before { content: none; }
  .cockpit-mes-sites .cockpit-tableau td[data-label]:not(:first-child)::before { content: attr(data-label) " : "; color: var(--muted); font-size: .85rem; }
}

/* Constructeur DSE */
.cockpit-medias [hidden] { display: none !important; }
.cockpit-media-fichier { display: grid; place-items: center; gap: 10px; padding: 20px; min-height: 120px; background: var(--bg); border-radius: 10px; }
.cockpit-media-fichier small { color: var(--muted); }
.cockpit-site-selection { padding: 12px 0; border-top: 1px solid #ffffff33; margin-top: 10px; }
.cockpit-site-selection > small { display: block; text-transform: uppercase; font-size: .65rem; color: #adbed5; padding: 0 10px 8px; letter-spacing: .06em; }
.cockpit-site-selection > a { display: flex; align-items: center; gap: 10px; padding: 12px 10px; border: 1px solid #ffffff33; background: #ffffff0c; color: white; border-radius: 10px; text-decoration: none; }
.cockpit-site-selection strong { font-size: .8rem; }
.cockpit-site-selection small { display: block; font-size: .7rem; margin-top: 4px; }
.cockpit-site-selection span { min-width: 0; overflow-wrap: anywhere; }
.cockpit-menu-reduit .cockpit-site-selection > small, .cockpit-menu-reduit .cockpit-site-selection a span { display: none; }
.cockpit-menu-reduit .cockpit-site-selection a { justify-content: center; }
.cockpit-site-banniere { display: flex; align-items: center; gap: 24px; background: linear-gradient(115deg, #10243e, #174660); color: white; box-shadow: none; padding: 28px; min-height: 180px; }
.cockpit-site-monogramme { display: grid; place-items: center; width: 84px; height: 84px; background: #ffffff18; border: 1px solid #ffffff33; border-radius: 18px; font-size: 2rem; font-weight: 750; flex: 0 0 auto; }
.cockpit-site-identification { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.cockpit-site-identification h1 { margin: 0; font-size: 1.6rem; }
.cockpit-site-identification p { margin: 8px 0; font-size: .9rem; color: #dfebf8; }
.cockpit-site-banniere .cockpit-public-site { align-self: start; border: 1px solid #ffffff66; background: #ffffff14; color: white; white-space: nowrap; }
.cockpit-site-metriques { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; }
.cockpit-site-metrique { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; padding: 16px; }
.cockpit-site-metrique h2 { font-size: .85rem; margin: 0; }
.cockpit-site-metrique .metric { margin: 0; font-size: 1.7rem; }
.cockpit-metrique-icone { display: grid; place-items: center; background: #edf4ff; color: var(--accent); width: 36px; height: 36px; border-radius: 10px; }
.cockpit-site-metrique p { margin: 0; font-size: .8rem; }
.cockpit-metrique-etat { font-size: .95rem; }
.cockpit-site-metrique .cockpit-jauge { width: 100%; color: var(--nav); }
.cockpit-site-metrique .cockpit-lien-texte { margin-top: auto; }
.cockpit-lien-texte { display: inline-flex; align-items: center; gap: 8px; color: var(--accent); text-decoration: none; font-size: .8rem; font-weight: 600; padding: 6px 0; }
.cockpit-site-pilotage { display: grid; grid-template-columns: 1.2fr 1fr; gap: 16px; align-items: start; }
.cockpit-site-pilotage h2 { display: flex; align-items: center; gap: 10px; font-size: 1rem; }
.cockpit-site-pilotage h2 svg { color: var(--accent); }
.cockpit-site-prochaines ol { padding: 0; list-style: none; margin: 16px 0 0; counter-reset: prochaine; }
.cockpit-site-prochaines li { display: flex; align-items: center; gap: 12px; padding: 14px 0; border-top: 1px solid var(--line); counter-increment: prochaine; }
.cockpit-site-prochaines li::before { content: counter(prochaine); display: grid; place-items: center; background: #edf4ff; color: var(--accent); width: 30px; height: 30px; border-radius: 50%; flex: 0 0 auto; font-weight: 700; }
.cockpit-site-prochaines li > div { flex: 1; min-width: 0; }
.cockpit-site-prochaines li strong { font-size: .9rem; }
.cockpit-site-prochaines p { font-size: .8rem; margin: 6px 0; }
.cockpit-site-detail { display: grid; gap: 16px; }
.cockpit-site-infos { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 12px 20px; font-size: .85rem; }
.cockpit-site-infos dt { color: var(--muted); }
.cockpit-site-infos dd { margin: 0; overflow-wrap: anywhere; }
.cockpit-site-structure { display: flex; flex-wrap: wrap; gap: 12px; margin: 16px 0; }
.cockpit-site-raccourcis { display: flex; gap: 12px; flex-wrap: wrap; }
.cockpit-site-raccourcis .cockpit-cartes { width: 100%; margin-top: 12px; }
#progression-site { scroll-margin-top: 90px; }
@media (max-width: 760px) {
  .cockpit-site-banniere { flex-wrap: wrap; padding: 18px; gap: 16px; }
  .cockpit-site-identification h1 { font-size: 1.25rem; }
  .cockpit-site-monogramme { width: 52px; height: 52px; font-size: 1.2rem; }
  .cockpit-site-banniere .cockpit-public-site { width: 100%; }
  .cockpit-site-metriques { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cockpit-site-pilotage { grid-template-columns: minmax(0, 1fr); }
  .cockpit-site-prochaines li { flex-wrap: wrap; }
  .cockpit-site-prochaines li .btn { margin-left: 42px; }
  .cockpit-site-selection { padding: 0; margin: 0; border: 0; }
  .cockpit-site-selection > small { display: none; }
  .cockpit-site-selection > a { padding: 6px 10px; }
  .cockpit-menu-reduit .cockpit-site-selection a span { display: block; }
}
.constructeur-onglets { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0; }
.constructeur-grille { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 16px; }
.constructeur-carte header, .constructeur-editeur-entete { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; }
.constructeur-carte label { display: grid; gap: 4px; margin: 8px 0; }
.constructeur-boutons { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.constructeur-creer { display: flex; flex-wrap: wrap; align-items: end; gap: 12px; }
.constructeur-creer label { display: grid; gap: 4px; flex: 1 1 260px; }
.constructeur-badge--actif { background: #d9f5e6; color: #0b6b3a; }
.constructeur-badge--brouillon { background: #fff2cc; color: #7a5a00; }
.constructeur-badge--inactif { background: #eceff3; color: #555; }
.constructeur-type { font-size: .75rem; text-transform: uppercase; letter-spacing: .05em; color: var(--muted, #667); margin-right: 6px; }
.constructeur-arbre, .constructeur-arbre ul { list-style: none; padding-left: 0; margin: 0; }
.constructeur-arbre ul { padding-left: 18px; border-left: 2px solid var(--line, #dde); margin: 6px 0 6px 6px; }
.constructeur-noeud { margin: 6px 0; }
.constructeur-noeud-entete { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; padding: 6px 8px; border: 1px solid var(--line, #dde); border-radius: 8px; background: rgba(0,0,0,.02); }
.constructeur-outils { display: inline-flex; flex-wrap: wrap; gap: 4px; margin-left: auto; }
.btn-mini { padding: 2px 8px; font-size: .8rem; min-height: 0; }
.constructeur-ajout { display: flex; flex-wrap: wrap; gap: 6px; margin: 6px 0 6px 18px; }
.constructeur-ajout select, .constructeur-ajout input, .constructeur-outils select { padding: 4px 6px; font: inherit; font-size: .85rem; }
.constructeur-apercus-cadres { display: flex; flex-wrap: wrap; gap: 16px; align-items: flex-start; }
.constructeur-apercus-cadres figure { margin: 0; display: grid; gap: 6px; }
.constructeur-apercus-cadres figure:first-child { flex: 1 1 520px; }
.constructeur-apercu { border: 1px solid var(--line, #dde); border-radius: 8px; background: #fff; height: 520px; }
.constructeur-apercu--ordinateur { width: 100%; }
.constructeur-apercu--mobile { width: 375px; max-width: 100%; }
.constructeur-medias { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 12px; }
.constructeur-media { margin: 0; display: grid; gap: 6px; border: 1px solid var(--line, #dde); border-radius: 8px; padding: 8px; }
.constructeur-media img, .constructeur-logo img { width: 100%; height: 110px; object-fit: contain; background: #f6f7f9; border-radius: 6px; }
.constructeur-logo img { width: 220px; }
.constructeur-medias--mini { display: flex; gap: 4px; flex-wrap: wrap; }
.constructeur-medias--mini img { width: 48px; height: 48px; object-fit: contain; background: #f6f7f9; border-radius: 4px; }
.constructeur-dialogue form label { display: grid; gap: 6px; }
.constructeur-dialogue input, .constructeur-dialogue textarea { padding: 8px; font: inherit; width: 100%; }
.constructeur-design-zone { display: grid; gap: 16px; align-items: start; }
.constructeur--plein-ecran { position: fixed; inset: 0; z-index: 1000; overflow: auto; background: var(--bg, #f5f6fa); padding: 12px; }
.constructeur--plein-ecran > .cockpit-site-titre { display: none; }
.constructeur-barre-visuelle { position: sticky; top: -12px; z-index: 2; padding: 12px; background: var(--surface, #fff); border-bottom: 1px solid var(--line, #dde); display: flex; gap: 12px; align-items: center; justify-content: space-between; flex-wrap: wrap; }
/* Atelier : Design a gauche, apercu au centre, Structure a droite ; chaque cote se replie en bandeau. */
.constructeur-espace-visuel { display: grid; grid-template-columns: minmax(280px, 340px) minmax(0, 1fr) minmax(280px, 360px); gap: 12px; align-items: start; }
.constructeur-espace-visuel > aside { grid-row: 1; max-height: calc(100vh - 90px); overflow: auto; position: sticky; top: 64px; padding: 10px; display: grid; gap: 8px; align-content: start; }
.constructeur-espace-visuel > .constructeur-cote--design { grid-column: 1; }
.constructeur-espace-visuel > .constructeur-cote--structure { grid-column: 3; }
.constructeur-espace-visuel > .constructeur-design-zone { grid-column: 2; grid-row: 1; min-width: 0; grid-template-columns: minmax(0, 1fr); }
.constructeur-espace--design-replie { grid-template-columns: 44px minmax(0, 1fr) minmax(280px, 360px); }
.constructeur-espace--structure-replie { grid-template-columns: minmax(280px, 340px) minmax(0, 1fr) 44px; }
.constructeur-espace--design-replie.constructeur-espace--structure-replie { grid-template-columns: 44px minmax(0, 1fr) 44px; }
.constructeur-cote-entete { display: flex; align-items: center; justify-content: space-between; gap: 6px; padding-bottom: 6px; border-bottom: 2px solid var(--line, #dde); }
.constructeur-cote--structure .constructeur-cote-entete { flex-direction: row-reverse; }
.constructeur-cote-titre { font-size: .95rem; }
.constructeur-cote-bascule { width: 30px; height: 30px; flex: none; border: 1px solid var(--line, #d0d7e2); border-radius: 8px; background: #eef4ff; color: #3b5bdb; font-size: 1.1rem; font-weight: 800; line-height: 1; cursor: pointer; }
.constructeur-cote-bascule:hover { background: #dbe6ff; }
.constructeur-cote-corps { display: grid; gap: 8px; align-content: start; min-width: 0; }
.constructeur-cote--design [data-c-panneau]:not(:empty) ~ .constructeur-cote-vide { display: none; }
.constructeur-espace--design-replie > .constructeur-cote--design,
.constructeur-espace--structure-replie > .constructeur-cote--structure { padding: 6px 4px; overflow: hidden; cursor: default; }
.constructeur-espace--design-replie > .constructeur-cote--design .constructeur-cote-corps,
.constructeur-espace--structure-replie > .constructeur-cote--structure .constructeur-cote-corps { display: none; }
.constructeur-espace--design-replie > .constructeur-cote--design .constructeur-cote-entete,
.constructeur-espace--structure-replie > .constructeur-cote--structure .constructeur-cote-entete { flex-direction: column; border: 0; padding: 0; }
.constructeur-espace--design-replie > .constructeur-cote--design .constructeur-cote-titre,
.constructeur-espace--structure-replie > .constructeur-cote--structure .constructeur-cote-titre { writing-mode: vertical-rl; white-space: nowrap; margin-top: 8px; }
.constructeur-espace--design-replie > .constructeur-cote--design .constructeur-cote-bascule,
.constructeur-espace--structure-replie > .constructeur-cote--structure .constructeur-cote-bascule { transform: rotate(180deg); }
.constructeur-espace-visuel .constructeur-apercus { min-width: 0; padding: 8px; }
.constructeur-editeur .constructeur-noeud > .constructeur-ajout { display: none; }
.constructeur-editeur .constructeur-noeud:has(> .constructeur-noeud-entete.constructeur-selection) > .constructeur-ajout,
.constructeur-editeur .constructeur-noeud > .constructeur-ajout:focus-within { display: flex; }
.constructeur-editeur .constructeur-editeur-entete h3 { margin: 2px 0; font-size: 1.05rem; }
.constructeur-boutons--compacts { gap: 4px; }
.constructeur-outils-barre { align-items: center; margin-top: 0; }
.constructeur-appareils { display: inline-flex; align-items: center; gap: 4px; padding: 4px 6px; border: 2px solid #c7d7fe; border-radius: 12px; background: #eef4ff; }
.constructeur-groupe-titre { font-size: .72rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: #3b5bdb; padding: 0 6px 0 4px; }
.constructeur-groupe { display: inline-flex; align-items: center; gap: 4px; }
.constructeur-voir { padding: 3px 8px; border: 1px solid #cbd5e1; border-radius: 8px; background: #f8fafc; }
.constructeur-voir .constructeur-groupe-titre { color: #475569; }
.constructeur-voir label { display: inline-flex; align-items: center; gap: 4px; margin: 0 4px; font-size: .82rem; font-weight: 600; cursor: pointer; white-space: nowrap; }
.constructeur-voir input { margin: 0; accent-color: #3b5bdb; }
.constructeur-separateur { align-self: stretch; width: 2px; min-height: 28px; margin: 0 6px; border-radius: 2px; background: var(--line, #d0d7e2); }
@media (max-width: 760px) { .constructeur-separateur { display: none; } }
.constructeur-editeur [data-c-panneau]:empty { display: none; }
.constructeur-editeur .design-panneau { position: static; max-height: none; overflow: visible; border: 2px solid var(--couleur-primaire, #7c3aed); }
.constructeur-volet { border: 1px solid var(--line, #dde); border-radius: 8px; background: var(--surface, #fff); }
.constructeur-volet > summary { cursor: pointer; padding: 8px 10px; font-weight: 600; list-style: none; display: flex; gap: 6px; align-items: center; }
.constructeur-volet > summary::-webkit-details-marker { display: none; }
.constructeur-volet > summary::before { content: "▸"; transition: transform .15s; }
.constructeur-volet[open] > summary::before { transform: rotate(90deg); }
.constructeur-volet[open] > summary { border-bottom: 1px solid var(--line, #dde); }
.constructeur-volet > :not(summary) { margin: 8px 10px; }
.constructeur-editeur .constructeur-noeud { margin: 3px 0; }
.constructeur-editeur .constructeur-noeud-entete { gap: 4px; padding: 4px 6px; font-size: .88rem; cursor: pointer; }
.constructeur-editeur .constructeur-noeud-entete:hover { background: rgba(124, 58, 237, .06); }
.constructeur-noeud-entete[draggable="true"] { cursor: grab; }
.constructeur-noeud-entete.dse-depot-dans { outline: 2px dashed #16a34a; background: rgba(22,163,74,.1); }
.constructeur-noeud-entete.dse-depot-avant { box-shadow: inset 0 3px 0 #16a34a; }
.constructeur-noeud-entete.dse-depot-apres { box-shadow: inset 0 -3px 0 #16a34a; }
.constructeur-editeur .constructeur-noeud-entete .constructeur-outils { display: none; flex-basis: 100%; margin-left: 0; }
.constructeur-editeur .constructeur-noeud-entete:hover .constructeur-outils,
.constructeur-editeur .constructeur-noeud-entete:focus-within .constructeur-outils,
.constructeur-editeur .constructeur-noeud-entete.constructeur-selection .constructeur-outils { display: inline-flex; }
.constructeur-noeud-detail { flex-basis: 100%; font-size: .75rem; }
.constructeur-editeur .constructeur-arbre ul { padding-left: 10px; margin: 3px 0 3px 8px; }
.constructeur-editeur .constructeur-ajout { font-size: .85rem; }
.constructeur-replier { border: 0; background: none; padding: 0 2px; cursor: pointer; font-size: .9rem; line-height: 1; color: var(--muted, #667); transition: transform .15s; }
.constructeur-noeud--replie > .constructeur-noeud-entete .constructeur-replier { transform: rotate(-90deg); }
.constructeur-noeud--replie > ul, .constructeur-noeud--replie > .constructeur-ajout { display: none; }
.constructeur-type--section { color: #2b87da; } .constructeur-type--ligne { color: #1fa88f; } .constructeur-type--colonne { color: #8f42ec; } .constructeur-type--module { color: #4c5866; }
.constructeur-noeud--section > .constructeur-noeud-entete { border-left: 3px solid #2b87da; }
.constructeur-noeud--ligne > .constructeur-noeud-entete { border-left: 3px solid #29c4a9; }
.constructeur-noeud--colonne > .constructeur-noeud-entete { border-left: 3px solid #8f42ec; }
.constructeur-noeud--module > .constructeur-noeud-entete { border-left: 3px solid #4c5866; }
.constructeur-noeud-entete[draggable="true"] { cursor: grab; }
.constructeur--apercu-seul .constructeur-espace-visuel { grid-template-columns: 1fr; }
.constructeur--apercu-seul .constructeur-espace-visuel > aside { display: none; }
.constructeur--apercu-seul .constructeur-espace-visuel > .constructeur-design-zone { grid-column: 1; }
@media (max-width: 1200px) and (min-width: 901px) {
  .constructeur-espace-visuel { grid-template-columns: minmax(240px, 280px) minmax(0, 1fr) minmax(240px, 290px); }
}
@media (max-width: 900px) {
  .constructeur-espace-visuel, .constructeur-espace-visuel[class*="-replie"] { grid-template-columns: 1fr; }
  .constructeur-espace-visuel > aside, .constructeur-espace-visuel > .constructeur-design-zone { grid-column: 1; grid-row: auto; }
  .constructeur-espace-visuel > aside { position: static; max-height: none; }
  .constructeur-espace-visuel > aside .constructeur-cote-entete { flex-direction: row !important; }
  .constructeur-espace-visuel > aside .constructeur-cote-titre { writing-mode: horizontal-tb !important; margin: 0 !important; }
}
.constructeur-apercu-cadre { overflow: hidden; border: 1px solid var(--line, #dde); border-radius: 8px; background: #f6f7f9; min-height: 300px; }
.constructeur-apercu-cadre .constructeur-apercu { border: 0; border-radius: 0; display: block; }
.design-panneau { display: grid; gap: 10px; max-height: 80vh; overflow: auto; position: sticky; top: 8px; }
.design-entete { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.design-onglets { display: flex; flex-wrap: wrap; gap: 4px; }
.design-groupe { border: 1px solid var(--line, #dde); border-radius: 8px; padding: 0; background: #fff; }
.design-groupe > summary { cursor: pointer; font-weight: 700; display: flex; align-items: center; gap: .5rem; padding: 9px 12px; list-style: none; user-select: none; border-radius: 8px; }
.design-groupe > summary::-webkit-details-marker { display: none; }
.design-groupe > summary::before { content: "▸"; color: #7c3aed; transition: transform .15s; }
.design-groupe[open] > summary::before { transform: rotate(90deg); }
.design-groupe > summary:hover { background: #f5f3ff; }
.design-groupe[open] > summary { border-bottom: 1px solid var(--line, #dde); border-radius: 8px 8px 0 0; background: #faf5ff; }
.design-groupe > .design-grille { padding: 0 10px 10px; }
.design-groupe-compte { margin-left: auto; min-width: 20px; padding: 0 6px; border-radius: 999px; background: #7c3aed; color: #fff; font-size: .72rem; line-height: 20px; text-align: center; }
.design-champ-tete { display: flex; align-items: center; justify-content: space-between; gap: 4px; }
.design-champ-tete .design-reset { flex: none; padding: 0 6px; min-height: 0; line-height: 1.4; font-size: .8rem; }
.design-grille { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 8px; margin-top: 8px; }
.design-champ { display: grid; gap: 4px; font-size: .85rem; }
.design-outils { display: flex; flex-wrap: wrap; gap: 4px; }
.design-outil { min-width: 36px; min-height: 36px; display: inline-flex; align-items: center; justify-content: center; }
.design-outil[aria-pressed="true"] { color: #fff; background: var(--dse-c, #7c3aed); border-color: var(--dse-c, #7c3aed); }
.design-outil:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
.design-icone--souligne { text-decoration: underline; }
.design-icone--non-souligne { text-decoration: line-through; }
.design-icone--italique { font-style: italic; }
.design-champ input, .design-champ select { padding: 4px 6px; font: inherit; font-size: .85rem; width: 100%; min-width: 0; }
.design-couleur, .design-nombre { display: flex; gap: 4px; align-items: center; }
.design-couleur input[type=color] { width: 34px; height: 30px; padding: 0; flex: none; }
.design-herite { font-size: .75rem; }
.design-appareil { display: grid; gap: 8px; }
.design-actions { position: sticky; bottom: 0; background: inherit; padding-top: 6px; }
@media (max-width: 1100px) { .constructeur-design-zone--ouverte { grid-template-columns: 1fr; } .design-panneau { position: static; max-height: none; } }
.alerte-erreur { color: #a11; } .alerte-succes { color: #0b6b3a; }
@media (max-width: 640px) { .constructeur-outils { margin-left: 0; } .constructeur-arbre ul { padding-left: 8px; } }
.cockpit-import-media h2 { display: flex; align-items: center; gap: 8px; }
.cockpit-import-media h2 svg { width: 20px; height: 20px; }
.cockpit-import-champs { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; }
.cockpit-import-champs input[type="file"] { max-width: 100%; }
.cockpit-import-media progress { width: 100%; height: 10px; }
.cockpit-surtitre { margin: 0; font-size: .8rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--muted, #64748b); }
.cockpit-clients-liste { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.cockpit-clients-liste a { display: inline-flex; align-items: center; gap: 8px; }
.cockpit-clients-liste small { opacity: .75; }

/* Gestion transverse des contenus (tous les sites du perimetre) */
.cockpit-contenus-tuiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 10px; }
.cockpit-contenus-tuile { display: flex; gap: 10px; align-items: flex-start; padding: 12px; border: 1px solid var(--border, #e2e8f0); border-radius: 10px; color: inherit; text-decoration: none; background: var(--surface, #fff); }
.cockpit-contenus-tuile:hover, .cockpit-contenus-tuile:focus-visible { border-color: var(--primary, #2563eb); box-shadow: 0 2px 8px rgba(15, 23, 42, .08); }
.cockpit-contenus-tuile svg { flex: 0 0 22px; width: 22px; height: 22px; color: var(--primary, #2563eb); }
.cockpit-contenus-tuile span { display: flex; flex-direction: column; gap: 2px; }
.cockpit-contenus-tuile small { opacity: .75; }
.cockpit-contenus-onglets { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0; }
.cockpit-contenus-onglets .badge { margin-left: 6px; }
.cockpit-synchro { margin-bottom: 12px; }
.cockpit-synchro-entete { display: flex; flex-wrap: wrap; gap: 12px; justify-content: space-between; align-items: flex-start; }
.cockpit-synchro-entete h2 { display: flex; align-items: center; gap: 8px; margin: 0 0 4px; }
.cockpit-synchro-detail { margin-top: 8px; }
.cockpit-synchro-detail ul { margin: 6px 0 0; padding-left: 18px; max-height: 240px; overflow: auto; overflow-wrap: anywhere; }
.cockpit-contenus-site { display: block; }
.cockpit-contenus-site small { display: block; opacity: .7; }
.cockpit-contenus-vignette img { width: 56px; height: 56px; object-fit: contain; border-radius: 6px; background: #f1f5f9; }
.cockpit-contenus-vignette svg { width: 28px; height: 28px; opacity: .6; }
.cockpit-contenus-actions { display: flex; flex-wrap: wrap; gap: 6px; }
.cockpit-contenus-actions .btn { display: inline-flex; align-items: center; gap: 4px; white-space: nowrap; }
.cockpit-contenus-actions svg { width: 16px; height: 16px; }

/* Synchronisations (administration globale) */
.cockpit-synchro-reglage { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-end; margin: 12px 0 6px; }
.cockpit-synchro-reglage .cockpit-champ { min-width: 140px; flex: 1 1 140px; }
.cockpit-synchro-reglage [hidden] { display: none; }
.cockpit-restauration-apercu ul ul { margin: 4px 0 8px; font-size: .9rem; }
.cockpit-restauration-apercu del { color: #a33; }
.cockpit-restauration-apercu ins { color: #17663a; text-decoration: none; font-weight: 600; }
.cockpit-restauration-apercu li { overflow-wrap: anywhere; }
@media (max-width: 640px) { .cockpit-synchro-entete .btn, .cockpit-synchro-reglage .btn { width: 100%; } }
.constructeur-selection{outline:2px solid var(--couleur-primaire,#7c3aed);outline-offset:2px}
.constructeur-cotes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}
.constructeur-cotes input{width:100%;min-width:0}
[data-builder-palette]{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1rem}
[data-builder-palette] p{flex-basis:100%;margin:.25rem 0}
[data-builder-volet]{padding-top:1rem}
[data-builder-volet][hidden]{display:none}
[data-builder-valeurs] .design-actions{border:0;margin:0;padding:0}
[data-builder-valeurs] textarea{width:100%;min-width:0;font:inherit}
.constructeur--plein-ecran > .cockpit-entete{display:none}

/* Galerie des sites */
.galerie-filtres { display: flex; flex-wrap: wrap; gap: .75rem; align-items: flex-end; }
.galerie-filtres label { display: flex; flex-direction: column; gap: .25rem; font-weight: 600; flex: 1 1 10rem; }
.galerie-filtres label:first-child { flex: 2 1 14rem; }
.galerie-compte { margin: .75rem 0; color: #555; }
.galerie-grille { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr)); }
.galerie-carte { display: flex; flex-direction: column; background: #fff; border: 1px solid #e3e6ec; border-radius: 12px; overflow: hidden; box-shadow: 0 1px 3px rgba(0,0,0,.06); }
.galerie-carte:focus-within { outline: 3px solid #2563eb; outline-offset: 2px; }
.galerie-visuel { height: 9rem; display: flex; align-items: center; justify-content: center; background: #f4f6fa; }
.galerie-visuel img { max-width: 80%; max-height: 7rem; object-fit: contain; }
.galerie-initiales { font-size: 2.5rem; font-weight: 700; color: #3b4b6b; }
.galerie-corps { padding: .9rem 1rem .5rem; flex: 1; }
.galerie-corps h3 { margin: 0 0 .4rem; font-size: 1.1rem; }
.galerie-statut { display: inline-block; padding: .15rem .6rem; border-radius: 999px; font-size: .85rem; background: color-mix(in srgb, var(--statut, #64748b) 18%, #fff); color: #1f2937; border: 1px solid var(--statut, #94a3b8); }
.galerie-statut-vide { border-style: dashed; }
.galerie-domaine { margin: .5rem 0 0; color: #475569; word-break: break-all; }
.galerie-actions { display: flex; flex-wrap: wrap; gap: .5rem; padding: .75rem 1rem 1rem; }
.galerie-actions .btn { flex: 1 1 auto; text-align: center; }
.galerie-pagination { display: flex; gap: 1rem; align-items: center; justify-content: center; margin: 1.25rem 0; }
.galerie-message:empty { display: none; }
.galerie-humain { margin-top: 1.5rem; padding: .9rem 1rem; border-left: 4px solid #2563eb; background: #f1f5ff; border-radius: 6px; }
@media (max-width: 600px) {
  .galerie-filtres label { flex-basis: 100%; }
  .galerie-filtres .btn { width: 100%; }
  .galerie-grille { grid-template-columns: 1fr; }
}

/* Ouverture d'un site : retour immediat, etat LOADING et squelette progressif. */
.dse-spinner{display:inline-block;width:22px;height:22px;flex:0 0 auto;border:3px solid #dce5ee;border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;vertical-align:middle}
.dse-spinner-petit{width:14px;height:14px;border-width:2px}
a.is-chargement,a[aria-disabled="true"]{pointer-events:none;opacity:.75;cursor:progress}
.cockpit-ouverture-statut{display:flex;align-items:center;gap:14px;margin-bottom:16px}
.cockpit-ouverture-statut p{margin:0}
.cockpit-ouverture-titre{font-weight:600;font-size:1.05rem}
.cockpit-squelette{display:grid;gap:14px}
.cockpit-squelette-grille{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}
.cockpit-squelette-bloc{height:96px;border-radius:12px;background:linear-gradient(90deg,#eef2f6 25%,#f7f9fb 50%,#eef2f6 75%);background-size:200% 100%;animation:dse-squelette 1.4s ease-in-out infinite}
.cockpit-squelette-entete{height:64px}
.cockpit-squelette-large{height:180px}
@keyframes dse-squelette{0%{background-position:200% 0}100%{background-position:-200% 0}}
@media (prefers-reduced-motion: reduce){.dse-spinner,.cockpit-squelette-bloc{animation-duration:3s}}
/* Indicateur global « DemainSite Écosystème travaille… » : visible pendant toute navigation ou appel long. */
.dse-travail{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:1000;display:flex;align-items:center;gap:14px;max-width:min(420px,calc(100vw - 32px));padding:18px 24px;background:#fff;color:var(--text,#16263a);border:1px solid #dce5ee;border-left:4px solid var(--accent);border-radius:10px;box-shadow:0 12px 32px #0f1f3333,0 0 0 100vmax #0f1f331a}
.dse-travail[hidden]{display:none}
.dse-travail .dse-spinner{width:28px;height:28px}
.dse-travail strong{display:block;font-size:1rem}
.dse-travail small{display:block;font-size:.82rem;color:#4a5d73;overflow-wrap:anywhere}
/* Menu du site selectionne : groupes et fonctions de construction imbriquees. */
.cockpit-nav-groupe{display:block;padding:8px;border:1px solid var(--cockpit-nav-group-border);border-radius:14px;box-shadow:inset 0 1px rgba(255,255,255,.05)}
.cockpit-nav-administration{background:var(--cockpit-nav-admin-bg)}
.cockpit-nav-site{background:var(--cockpit-nav-site-bg)}
.cockpit-nav-global{background:var(--cockpit-nav-global-bg)}
.cockpit-nav-tickets{background:var(--cockpit-nav-tickets-bg)}
.cockpit-nav-journal{background:var(--cockpit-nav-journal-bg)}
.cockpit-nav-projets{background:var(--cockpit-nav-projets-bg)}
.cockpit-nav-catalogue{background:var(--cockpit-nav-catalogue-bg)}
.cockpit-nav-boutique{background:var(--cockpit-nav-boutique-bg)}
.cockpit-nav-groupe + .cockpit-nav-groupe{margin-top:4px}
.cockpit-nav-accordeon{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:38px;padding:7px 10px;color:#f0f6fc;font-size:.68rem;font-weight:750;letter-spacing:.06em;text-transform:uppercase;list-style:none;cursor:pointer;border-radius:8px}
.cockpit-nav-accordeon::-webkit-details-marker{display:none}
.cockpit-nav-accordeon::marker{content:""}
.cockpit-nav-accordeon:hover{background:rgba(255,255,255,.1)}
.cockpit-nav-accordeon:focus-visible{outline:3px solid #b8d8ff;outline-offset:1px}
.cockpit-nav-chevron{display:grid;place-items:center;width:20px;height:20px;flex:0 0 auto}
.cockpit-nav-chevron::before{content:">";font-size:1.1rem;line-height:1}
.cockpit-nav-groupe[open] .cockpit-nav-chevron::before{content:"v"}
.cockpit-nav-contenu{display:grid;align-content:start;gap:6px;margin-top:6px}
.cockpit-nav-site-attente{margin:8px 10px;color:#d1e4f5;font-size:.8rem}
.cockpit-nav-groupe .nav-link{min-width:0}
.cockpit-nav-groupe .nav-link:hover:not(.active){background:rgba(255,255,255,.12);color:#fff}
.cockpit-nav-groupe .nav-link:focus-visible{outline-color:#b8d8ff;outline-offset:1px}
.cockpit-nav-groupe .nav-link svg{color:currentColor}
.cockpit-nav-site .cockpit-site-selection{padding:0;margin:0 0 4px;border-top:0}
.cockpit-site-statut{display:inline-block;margin-top:6px;padding:1px 8px;border-radius:999px;font-size:.65rem;font-style:normal;background:#ffffff1f;color:#dbe6f3}
.cockpit-site-statut.est-actif{background:#1f9d5533;color:#c6f2d7}
.cockpit-site-selection > a{background:rgba(255,255,255,.08);border-color:rgba(206,226,245,.24)}
.cockpit-nav-construire{display:grid;gap:4px}
.cockpit-nav-enfants{display:grid;gap:2px;margin-left:18px;padding-left:10px;border-left:2px solid #ffffff33}
.cockpit-nav-enfants[hidden]{display:none}
.cockpit-nav-medias > summary,.cockpit-nav-construire > summary{cursor:pointer;list-style:none}
.cockpit-nav-medias > summary::-webkit-details-marker,.cockpit-nav-construire > summary::-webkit-details-marker{display:none}
.cockpit-nav-medias > summary::after,.cockpit-nav-construire > summary::after{content:"+";margin-left:auto}
.cockpit-nav-medias[open] > summary::after,.cockpit-nav-construire[open] > summary::after{content:"-"}
.cockpit-nav-enfants .nav-link{padding-top:6px;padding-bottom:6px;font-size:.85rem}
.nav-link.is-parent-actif{background:#ffffff14;font-weight:600}
.cockpit-usages-site{display:grid;gap:12px}
.cockpit-usages-site h2,.cockpit-usages-apercu h3{margin:0;font-size:1rem}
.cockpit-usages-site form{display:flex;align-items:end;flex-wrap:wrap;gap:12px}
.cockpit-usages-site .cockpit-champ{min-width:min(220px,100%);flex:1}
.cockpit-usages-site select,.cockpit-usages-site input[type=date]{min-height:40px;border:1px solid var(--line);border-radius:8px;padding:8px 10px;background:#fff;color:var(--text);font:inherit}
.cockpit-usages-liste{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.cockpit-usages-liste li{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;background:var(--bg);border-radius:8px}
.cockpit-usages-liste small{color:var(--muted)}
.cockpit-usages-apercu{display:grid;gap:8px;padding:14px;border:1px solid var(--line);border-radius:10px;background:var(--bg)}
.cockpit-usages-apercu dl{display:grid;grid-template-columns:minmax(110px,auto) 1fr;gap:6px 12px;margin:0}
.cockpit-usages-apercu dd{margin:0;font-weight:600}
.cockpit-ecriture-erreur{color:#a61b1b}
.cockpit-menu-reduit .cockpit-site-statut{display:none}
.cockpit-menu-reduit .cockpit-nav-accordeon{padding:8px 2px;justify-content:center}
.cockpit-menu-reduit .cockpit-nav-accordeon > span{display:none}
.cockpit-menu-reduit .cockpit-nav-medias > summary::after,.cockpit-menu-reduit .cockpit-nav-construire > summary::after{display:none}
.cockpit-menu-reduit .cockpit-nav-enfants{margin-left:0;padding-left:0;border-left:0}
@media (min-width:761px){
  body:not(.dse-public) #app-sidebar{position:sticky;top:72px;align-self:start;height:calc(100dvh - 72px);min-height:0;overflow:hidden}
  body:not(.dse-public) #app-sidebar .sidebar{height:100%;min-height:0;gap:12px;overflow:hidden}
  #app-sidebar .nav-list{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior-y:contain;scrollbar-width:thin;scrollbar-color:#829ab4 transparent;align-content:start}
  #app-sidebar .cockpit-sidebar-bas{flex-shrink:0}
}
@media (max-width: 760px){
  .dse-travail{top:auto;bottom:12px;right:12px;left:12px;max-width:none}
  .cockpit-nav-groupe{display:block;padding:6px;border-radius:12px}
  .cockpit-nav-groupe + .cockpit-nav-groupe{margin-top:2px}
  .cockpit-nav-construire{display:grid;gap:4px}
  .cockpit-nav-enfants{display:flex;flex-wrap:wrap;margin-left:0;padding-left:8px}
  .cockpit-usages-site form{align-items:stretch}
  .cockpit-usages-site form .btn{width:100%}
  .cockpit-usages-apercu dl{grid-template-columns:1fr;gap:2px}
  .cockpit-usages-apercu dd{margin-bottom:6px}
}

/* Articles : chemin relatif au domaine principal du site selectionne */
.cockpit-chemin-saisie { display: flex; align-items: stretch; flex-wrap: wrap; gap: 0; }
.cockpit-chemin-domaine { display: inline-flex; align-items: center; padding: 0 .6rem; border: 1px solid var(--border, #d0d5dd); border-right: 0; border-radius: 8px 0 0 8px; background: var(--surface-2, #f2f4f7); color: var(--muted, #475467); font-size: .9rem; white-space: nowrap; }
.cockpit-chemin-saisie input { flex: 1 1 12rem; min-width: 0; }
.cockpit-chemin-domaine + input { border-top-left-radius: 0; border-bottom-left-radius: 0; }
.cockpit-chemin [data-chemin-apercu] { word-break: break-all; font-weight: 600; }
@media (max-width: 480px) {
  .cockpit-chemin-domaine { border-right: 1px solid var(--border, #d0d5dd); border-bottom: 0; border-radius: 8px 8px 0 0; width: 100%; }
  .cockpit-chemin-domaine + input { border-radius: 0 0 8px 8px; }
}
.dse-menus { display: grid; gap: 1rem; }
.dse-menus > header h1 { margin: 0 0 .35rem; }
.dse-menus > header p { margin: 0; color: var(--muted, #5e6878); }
.dse-menus__heading,.dse-menu-list-actions,.dse-menu-entry__row { display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
.dse-menu-list-actions { justify-content:flex-start; }
.dse-menu-cards { display:grid; gap:1rem; grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),1fr)); }
.dse-menu-card--desactive { background:#fff1f2; border-color:#fda4af; }
.dse-menu-card--preparation { background:#ecfdf5; border-color:#86efac; }
.dse-menus .dse-menu-etat { display:flex; align-items:center; gap:.75rem; margin-block:.75rem; }
.dse-menu-card dl { display:grid; grid-template-columns:auto 1fr; gap:.35rem .8rem; }
.dse-menu-card dt { font-weight:600; }
.dse-menu-card dd { margin:0; }
.dse-menus [hidden] { display:none !important; }
.dse-menu-form input,.dse-menu-form textarea,.dse-menu-form select { box-sizing:border-box; min-height:40px; padding:.6rem .75rem; border:1px solid var(--border,#d8dee8); border-radius:.6rem; font:inherit; background:#fff; color:inherit; }
.dse-menu-form .dse-menu-check input { min-height:auto; }
.dse-menu-cards--liste { grid-template-columns:1fr; }
.dse-menu-cards--liste .dse-menu-card { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:1rem; }
.dse-menu-cards--liste .dse-menu-card dl { grid-template-columns:repeat(3,auto minmax(0,1fr)); }
.dse-menu-cards--liste .dse-menu-card h2 { margin-top:0; }
.dse-menus #menu-design,.dse-menus #menu-conception { scroll-margin-top:1rem; }
@media(max-width:800px) {
  .dse-menu-cards--liste .dse-menu-card { grid-template-columns:1fr; }
  .dse-menu-cards--liste .dse-menu-card dl { grid-template-columns:auto 1fr; }
}
.dse-menu-form { display:grid; gap:.85rem; }
.dse-menu-form label { display:grid; gap:.35rem; font-weight:600; }
.dse-menu-form input,.dse-menu-form textarea,.dse-menu-form select { width:100%; }
.dse-menu-form .dse-menu-check { display:flex; align-items:center; gap:.55rem; }
.dse-menu-form .dse-menu-check input { width:auto; }
.dse-menu-form [hidden] { display:none !important; }
.dse-menu-tree,.dse-menu-tree ol { list-style:none; padding-inline-start:1.1rem; }
.dse-menu-tree { padding:0; }
.dse-menu-entry { margin:.55rem 0; }
.dse-menu-entry__row { border:1px solid var(--border,#d8dee8); border-radius:.65rem; padding:.75rem; }
.dse-menu-entry__row > div:first-child { display:grid; gap:.2rem; }
.dse-menu-entry__row small { color:var(--muted,#5e6878); }
.dse-menu-tree ol { margin:.75rem 0 .75rem .5rem; border-inline-start:2px solid #cbd5e1; }
.dse-menu-entry__row { background:#fff; border-inline-start:4px solid #94a3b8; box-shadow:0 2px 8px #0f172a0a; padding:1rem; gap:1rem; }
.dse-menu-entry--masquee > .dse-menu-entry__row { background:#f3efff; border-color:#c4b5fd; border-inline-start-color:#7c3aed; }
.dse-menu-niveau { color:#475569; font-size:.8rem; font-weight:600; }
.dse-menu-entry__statuts { display:flex; flex-wrap:wrap; gap:.4rem; margin-block:.35rem; }
.dse-menu-statut { display:inline-block; padding:.25rem .6rem; border-radius:1rem; background:#e2e8f0; color:#334155; font-size:.8rem; font-weight:600; }
.dse-menu-statut--masque { background:#ede9fe; color:#5b21b6; }
.dse-menu-statut--publie { background:#dcfce7; color:#166534; }
.dse-menu-statut--brouillon { background:#fef3c7; color:#92400e; }
.dse-menu-aide { padding:.75rem 1rem; border-radius:.65rem; background:#f1f5f9; color:#334155; line-height:1.5; }
.dse-menu-actions { display:flex; flex-wrap:wrap; gap:.35rem; }
.dse-menu-preview { border:0; border-radius:.8rem; max-width:min(96vw,60rem); width:100%; }
.dse-menu-preview::backdrop { background:#14203399; }
.dse-menu-preview form { display:grid; gap:1rem; }
.dse-menu-preview header,.dse-menu-preview__sizes { display:flex; align-items:center; justify-content:space-between; gap:.5rem; flex-wrap:wrap; }
.dse-menu-preview__viewport { border:1px solid var(--border,#d8dee8); border-radius:.6rem; min-height:12rem; padding:1rem; overflow:auto; }
.dse-menu-preview__viewport ul { display:flex; align-items:flex-start; gap:1.2rem; list-style:none; margin:0; padding:0; }
.dse-menu-preview__viewport li { position:relative; }
.dse-menu-preview__viewport li ul { display:grid; gap:.5rem; padding:.6rem; }
.dse-menu-preview__viewport a { color:inherit; display:inline-block; padding:.45rem .6rem; }
.dse-menu-preview__viewport[data-size="tablet"] { max-width:48rem; margin-inline:auto; }
.dse-menu-preview__viewport[data-size="mobile"] { max-width:24rem; margin-inline:auto; }
.dse-menu-preview__viewport[data-size="mobile"] > ul { display:grid; gap:.3rem; }
.dse-menu-preview__viewport[data-size="mobile"] li ul { padding-inline-start:1rem; }
@media (max-width: 640px) {
  .dse-menu-entry__row { align-items:flex-start; }
  .dse-menu-actions { width:100%; }
}
.app-footer { margin-top:2rem; padding-top:1rem; border-top:1px solid var(--line, #dbe2ea); text-align:center; }
.app-footer__auteur { color:var(--text, #172033); font-weight:600; }
.constructeur-vue { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:0 0 12px; }
.constructeur-vue input[type="search"] { flex:1 1 240px; min-height:38px; padding:0 12px; border:1px solid var(--line, #dbe2ea); border-radius:9px; font:inherit; }
.constructeur-vue select { min-height:38px; padding:0 10px; border:1px solid var(--line, #dbe2ea); border-radius:9px; font:inherit; background:#fff; }
.constructeur-vue__choix { display:flex; gap:4px; margin-inline-start:auto; }
.constructeur-carte[hidden] { display:none !important; }
.constructeur-vue-zone--liste .constructeur-grille { grid-template-columns:1fr; gap:8px; }
.constructeur-vue-zone--liste .constructeur-carte { display:grid; grid-template-columns:minmax(200px, 1.2fr) minmax(160px, 1fr) auto; align-items:center; gap:4px 16px; padding:10px 16px; }
.constructeur-vue-zone--liste .constructeur-carte > header { grid-column:1; justify-content:flex-start; }
.constructeur-vue-zone--liste .constructeur-carte > header h3 { margin:0; font-size:1rem; }
.constructeur-vue-zone--liste .constructeur-carte > p, .constructeur-vue-zone--liste .constructeur-carte > label { grid-column:2; margin:0; font-size:.9rem; }
.constructeur-vue-zone--liste .constructeur-carte > .constructeur-boutons { grid-column:3; grid-row:1 / span 4; margin:0; justify-content:flex-end; }
.constructeur-vue-zone--liste .constructeur-carte > .constructeur-boutons .btn { min-height:34px; padding:0 10px; font-size:.85rem; }
.constructeur-vue-zone--liste .constructeur-utilisations { grid-column:1 / -1; }
@media (max-width: 900px) {
  .constructeur-vue-zone--liste .constructeur-carte { grid-template-columns:1fr; }
  .constructeur-vue-zone--liste .constructeur-carte > * { grid-column:1 !important; grid-row:auto !important; }
  .constructeur-vue-zone--liste .constructeur-carte > .constructeur-boutons { justify-content:flex-start; }
}

/* Constructeur : case « structure de base » des formulaires de création */
.constructeur-structure-base { display: flex; align-items: center; gap: .4rem; flex-wrap: wrap; font-weight: normal; }
.constructeur-structure-base input { width: auto; margin: 0; }

/* Constructeur : menu d'ajout rapide (ligne, colonne, module) */
.constructeur-ajout-rapide { min-width: 0; max-width: 100%; box-sizing: border-box; }
/* Le dialogue s'adapte au contenu : jamais de barre de defilement horizontale. */
.constructeur-dialogue { width: min(560px, calc(100vw - 32px)); max-width: calc(100vw - 32px); overflow-x: hidden; box-sizing: border-box; }
.constructeur-dialogue:has(.constructeur-colonnes), .constructeur-dialogue:has(.constructeur-assistant) { width: min(680px, calc(100vw - 32px)); }
.constructeur-dialogue * { box-sizing: border-box; }
.constructeur-dialogue .c-aide-bloc { overflow-wrap: anywhere; }
.constructeur-ajout-rapide > p.muted { margin: .8rem 0 .3rem; font-weight: 600; text-transform: uppercase; font-size: .75rem; }
.constructeur-assistant { width: min(36rem, 92vw); max-width: 100%; box-sizing: border-box; overflow-x: hidden; }
.constructeur-assistant-etapes { display: flex; gap: .4rem; list-style: none; padding: 0; margin: .4rem 0 .8rem; font-size: .8rem; }
.constructeur-assistant-etapes li { flex: 1; padding: .3rem .5rem; border-bottom: 3px solid #d7dde5; color: #7a8594; }
.constructeur-assistant-etapes li.fait { border-color: #8fb3e0; color: #3f5a7a; }
.constructeur-assistant-etapes li.actif { border-color: #1f6feb; color: #1f2a37; font-weight: 600; }
.constructeur-colonnes { min-width: 0; }
.constructeur-corbeille { color: #b91c1c; border-color: #fca5a5; background: #fef2f2; }
.constructeur-corbeille:hover { background: #dc2626; color: #fff; border-color: #dc2626; }
.constructeur-suppression { max-width: min(480px, 92vw); }
.constructeur-suppression-choix { border: 1px solid #e5e7eb; border-radius: 8px; padding: .5rem .75rem; display: grid; gap: .5rem; }
.constructeur-suppression-choix label, .constructeur-suppression-ok { display: block; line-height: 1.4; }
.constructeur-suppression-ok { margin-top: .75rem; color: #b91c1c; font-weight: 600; }
.constructeur-desactives { margin: 0 0 .5rem; padding: .4rem .75rem; border: 1px dashed #9ca3af; border-radius: 8px; background: repeating-linear-gradient(45deg, #f9fafb, #f9fafb 8px, #f3f4f6 8px, #f3f4f6 16px); font-size: .9rem; }
.constructeur-desactives summary { cursor: pointer; font-weight: 600; color: #374151; }
.constructeur-desactives ul { list-style: none; margin: .5rem 0 0; padding: 0; display: grid; gap: .35rem; }
.constructeur-desactives li { display: flex; align-items: center; gap: .4rem; flex-wrap: wrap; }
.constructeur-suppression-actions { display: flex; justify-content: flex-end; gap: .5rem; margin-top: 1rem; }
.constructeur-btn-danger { background: #dc2626; color: #fff; border-color: #dc2626; }
.constructeur-btn-danger:hover { background: #b91c1c; }
.constructeur-colonnes-modeles { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: .8rem; }
.constructeur-colonnes-apercu { display: flex; gap: 6px; margin: .4rem 0 .9rem; }
.constructeur-colonnes-apercu span { min-width: 0; overflow: hidden; padding: .55rem .3rem; border: 2px dashed #16a34a; background: #f0fdf4; color: #166534; border-radius: 6px; text-align: center; font-weight: 700; }
.constructeur-colonnes-apercu small { display: block; font-weight: 400; }
.constructeur-colonnes-champs { display: grid; grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); gap: .6rem; }
.constructeur-colonnes-champs input { min-width: 0; }
.constructeur-colonnes-champs span { display: flex; align-items: center; gap: .3rem; }
.constructeur-colonnes-champs input { width: 100%; }
.constructeur-colonnes-total { margin: .8rem 0 .3rem; color: #166534; }
.constructeur-colonnes-total.erreur { color: #b91c1c; }
.constructeur-assistant-grille { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; margin: .5rem 0 1rem; }
.constructeur-assistant-carte { display: flex; flex-direction: column; align-items: center; gap: .25rem; padding: .8rem .5rem; border: 1px solid #d7dde5; border-radius: .6rem; background: #fff; cursor: pointer; text-align: center; font: inherit; }
.constructeur-assistant-carte:hover, .constructeur-assistant-carte:focus-visible { border-color: #1f6feb; background: #f2f7ff; outline: none; }
.constructeur-assistant-icone { font-size: 1.6rem; line-height: 1; }
.constructeur-assistant-carte small { color: #6b7685; font-size: .75rem; }
.constructeur-assistant label { display: block; margin: .6rem 0; }
.constructeur-assistant label input { display: block; width: 100%; margin-top: .3rem; }
.constructeur-assistant-carte:disabled { opacity: .5; cursor: not-allowed; background: #f6f7f9; }
.constructeur-assistant-carte:disabled:hover { border-color: #d7dde5; background: #f6f7f9; }

/* Menu « Vue » de l'aperçu : Composition / Structure seule / Rendu visiteur */
.constructeur-vue-menu { position: relative; }
.constructeur-vue-menu > summary { list-style: none; cursor: pointer; white-space: nowrap; border: 1px solid #93c5fd; background: #eff6ff; color: #1e3a8a; font-weight: 600; }
.constructeur-vue-menu > summary::-webkit-details-marker { display: none; }
.constructeur-vue-menu[open] > summary { background: #dbeafe; }
.constructeur-vue-choix { position: absolute; top: calc(100% + 6px); right: 0; z-index: 40; display: grid; gap: 4px; width: 320px; padding: 6px; background: #fff; border: 1px solid #cbd5e1; border-radius: 10px; box-shadow: 0 10px 30px rgba(15, 23, 42, .18); }
.constructeur-vue-choix button { display: flex; gap: 10px; align-items: flex-start; width: 100%; padding: 8px 10px; text-align: left; border: 1px solid transparent; border-radius: 8px; background: none; cursor: pointer; font: inherit; color: #0f172a; }
.constructeur-vue-choix button > span:first-child { font-size: 1.2rem; line-height: 1.4; }
.constructeur-vue-choix button strong { display: block; font-size: .9rem; }
.constructeur-vue-choix button small { display: block; color: #64748b; font-size: .78rem; line-height: 1.3; }
.constructeur-vue-choix button:hover { background: #f1f5f9; }
.constructeur-vue-choix button.actif { background: #eff6ff; border-color: #93c5fd; }

/* Catalogue de modules : cartes par categorie (donnees SharePoint OBJ-MODULE-CATEGORIE) */
.constructeur-dialogue:has(.c-modules) { width: min(880px, 94vw); max-height: 88vh; }
.c-modules { display: grid; gap: 10px; }
.c-modules-entete { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.c-modules-entete h3 { margin: 0; font-size: 1.05rem; }
.c-modules-recherche { padding: 8px 10px; font: inherit; width: 100%; border: 1px solid var(--line, #ccd); border-radius: 8px; }
.c-modules-filtres { display: flex; flex-wrap: wrap; gap: 6px; }
.c-modules-filtre { border: 1px solid #ddd6fe; background: #f5f3ff; color: #4c1d95; border-radius: 999px; padding: 4px 10px; font: inherit; font-size: .85rem; cursor: pointer; }
.c-modules-filtre.actif { background: #7c3aed; border-color: #7c3aed; color: #fff; }
.c-modules-liste { overflow: auto; max-height: 60vh; display: grid; gap: 14px; padding-right: 4px; }
.c-modules-groupe h4 { margin: 0 0 6px; font-size: .9rem; color: #4c1d95; border-bottom: 1px solid #ede9fe; padding-bottom: 3px; }
.c-modules-grille { display: grid; grid-template-columns: repeat(auto-fill, minmax(118px, 1fr)); gap: 8px; }
.c-module-carte { display: grid; justify-items: center; gap: 6px; padding: 12px 6px; border: 1px solid var(--line, #dde); border-radius: 10px; background: #fff; cursor: pointer; font: inherit; text-align: center; }
.c-module-carte:hover, .c-module-carte:focus-visible { border-color: #7c3aed; background: #faf5ff; box-shadow: 0 2px 8px rgba(124, 58, 237, .18); }
.c-module-icone { font-size: 1.9rem; line-height: 1; }
.c-module-nom { font-size: .85rem; font-weight: 600; color: #1f2937; }
.c-modules [hidden] { display: none !important; }

/* Aide guidée des modules (textes SharePoint) et Pasc ARA IA */
.c-aide{display:block;font-weight:400;font-style:italic;font-size:.82rem;color:#42658a;margin:.15rem 0 .3rem}
.c-champ{display:grid;gap:6px;margin-bottom:14px}
.constructeur-dialogue form label.c-visibilite{display:flex;align-items:center;gap:8px;font-size:.9rem}
.constructeur-dialogue .c-visibilite input{width:auto}
.c-image-selection{margin:0}
.c-image-selection img{display:block;max-width:100%;max-height:180px;object-fit:contain;border-radius:6px}
.c-image-resultats{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;margin-top:10px}
.c-image-option{display:grid;gap:6px;padding:8px;background:#fff;color:#26374b;border:1px solid #a6b3c3;border-radius:6px;cursor:pointer;overflow-wrap:anywhere}
.c-image-option[aria-pressed=true]{border:2px solid #2f6fdd}
.c-image-option img{width:100%;height:90px;object-fit:contain}
.design-bordure{padding:12px}
.design-panneau [hidden]{display:none!important}
.design-condition{min-width:0}
.design-espace-dessin{margin:12px;padding:12px;background:#fff3d6;border:2px dashed #a87918;text-align:center;font-size:.85rem;overflow-wrap:anywhere}
.design-espace-dessin>div{margin-top:8px;border:2px solid #467397;background:#e7f3ff;padding:8px}
.design-espace-dessin>div>div{padding:12px;background:#e4f5ec;margin-top:6px}
.design-espace-dessin strong{display:block;background:white;border:1px solid #82a794;margin-top:8px;padding:10px}
.design-groupe>h4,.design-groupe>p.c-aide{margin:10px 12px}
.design-bordure h4{margin:12px 0 8px}
.design-bordure h5{margin:8px 0}
.design-cotes{display:grid;grid-template-columns:1fr 1.4fr 1fr;grid-template-rows:repeat(3,auto);gap:6px;margin:10px 0}
.design-cotes-haut{grid-area:1/2}
.design-cotes-gauche{grid-area:2/1}
.design-cotes-tous{grid-area:2/2;border:2px solid #8796a8!important;border-radius:0!important;min-height:56px}
.design-cotes-droite{grid-area:2/3}
.design-cotes-bas{grid-area:3/2}
.design-cotes [aria-pressed=true]{background:#e7efff!important;color:#184d9d!important;border-color:#2f6fdd!important;box-shadow:inset 0 0 0 1px #2f6fdd}
.design-coins-lies{display:flex;gap:8px;align-items:center}
.design-coins-lies input{width:auto}
.design-coins{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;border:2px dashed #8796a8;border-radius:18px;padding:10px;margin-top:10px}
.design-coin--hautgauche{grid-area:1/1}
.design-coin--hautdroite{grid-area:1/2}
.design-coin--basgauche{grid-area:2/1}
.design-coin--basdroite{grid-area:2/2}
.design-bordure input[type=range]{width:100%;min-width:0;accent-color:#2f6fdd}
.design-bordure .design-grille{padding:0}
.design-coin .design-champ-tete{flex-wrap:wrap}
.c-aide-bloc{background:#eef5ff;border-left:3px solid #2f6fdd;border-radius:6px;padding:.5rem .7rem;margin:.4rem 0 .8rem;font-size:.9rem}
.c-ia{margin:.1rem 0 .3rem}
.c-ia-reponse{display:block;background:#f6f0ff;border-radius:6px;padding:.35rem .6rem;margin-bottom:.3rem;font-size:.82rem}

/* Bulle Pasc ARA IA au survol des icones d'action (textes SharePoint OBJ-AIDE-ACTION) */
.c-bulle-ia{position:fixed;z-index:10000;max-width:320px;padding:.55rem .75rem;background:#1e1b4b;color:#f5f3ff;border-radius:10px;box-shadow:0 10px 30px rgba(15,23,42,.3);font-size:.82rem;line-height:1.4;pointer-events:none}
.c-bulle-ia strong{display:block;color:#c4b5fd;margin-bottom:.2rem}
.c-bulle-ia p{margin:0}
.c-bulle-ia[hidden]{display:none}
.constructeur-colonnes-btn{font-weight:700;color:#4c1d95;border-color:#c4b5fd}
.design-statut{display:inline-flex;align-items:center;gap:.4rem;margin:.35rem 0 .2rem;flex-wrap:wrap}
.constructeur-avis{position:fixed;left:50%;bottom:24px;z-index:1000;transform:translateX(-50%);max-width:min(560px,92vw);padding:10px 18px;border-radius:10px;background:#065f46;color:#fff;font-weight:600;box-shadow:0 6px 20px #0004;animation:constructeur-avis .2s ease-out}
@keyframes constructeur-avis{from{opacity:0;transform:translate(-50%,8px)}}

/* Constructeur : selection groupee et visibilite par appareil */
.constructeur-coche { margin: 0 .25rem 0 0; cursor: pointer; flex: none; }
.constructeur-appareils { display: inline-flex; gap: 2px; margin-left: .25rem; }
.constructeur-appareil { border: 1px solid var(--bordure, #d0d7de); background: #fff; border-radius: 4px; font-size: .75rem; line-height: 1; padding: 2px 4px; cursor: pointer; }
span.constructeur-appareil { cursor: default; }
.constructeur-appareil--masque { opacity: .45; text-decoration: line-through; background: #fdecea; border-color: #f5b5ad; }
.constructeur-appareil:hover { border-color: #0b5cad; }
.constructeur-lot { position: sticky; top: 0; z-index: 3; display: flex; flex-wrap: wrap; align-items: center; gap: .35rem; padding: .5rem; margin: .25rem 0 .5rem; background: #eef5ff; border: 1px solid #b6d4fe; border-radius: 8px; }
.constructeur-lot[hidden] { display: none; }
.constructeur-lot-appareils { display: flex; flex-wrap: wrap; gap: .35rem; width: 100%; }
.constructeur-lot-appareil { display: inline-flex; align-items: center; gap: 2px; white-space: nowrap; }
.constructeur-guide-ligne { display: flex; align-items: flex-start; gap: .5rem; }
.constructeur-guide-ligne p { margin: 0; flex: 1; }
.constructeur-guide { max-width: min(720px, 92vw); }
.constructeur-guide dl { display: grid; gap: .5rem; margin: .75rem 0; max-height: 60vh; overflow-y: auto; }
.constructeur-guide dl > div { padding: .5rem .75rem; border: 1px solid #e3e8ef; border-radius: 8px; }
.constructeur-guide dt { font-weight: 600; }
.constructeur-guide dd { margin: .25rem 0 0; }
.constructeur-guide-icone { display: inline-block; min-width: 1.6em; text-align: center; }
/* Vue par appareil synchronisee : structure, apercu et panneau */
.constructeur-appareils--inactif { opacity: .45; filter: grayscale(1); }
.constructeur-appareil--courant { outline: 2px solid #0b5cad; outline-offset: 1px; }
.constructeur-vue-etat { display: inline-block; margin-left: .3rem; padding: 1px 8px; border-radius: 999px; font-size: .75rem; font-weight: 600; background: #fdecea; color: #a8321f; }
.constructeur-vue-etat--partiel { background: #fff4e0; color: #8a5300; }
.constructeur-noeud--hors-vue > .constructeur-noeud-entete { background: repeating-linear-gradient(135deg, #fafafa 0 8px, #f1f1f1 8px 16px); }
.constructeur-noeud--hors-vue > .constructeur-noeud-entete strong { color: #6b7280; text-decoration: line-through; text-decoration-color: #c0392b; }
.constructeur-noeud--filtre { display: none !important; }
.constructeur-filtre-vue { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; margin: .4rem 0; padding: .4rem .6rem; border: 1px solid #c7d7fe; border-radius: 10px; background: #f5f8ff; font-size: .85rem; }
.constructeur-filtre-vue select { font-size: .85rem; }
.design-visibilite { margin: .5rem 0; padding: .6rem; border: 1px solid #c7d7fe; border-radius: 10px; background: #f5f8ff; }
.design-visibilite p { margin: .3rem 0 .5rem; font-size: .85rem; }
.design-visibilite-appareils { display: grid; grid-template-columns: repeat(3, 1fr); gap: .35rem; margin-bottom: .4rem; }
.design-visibilite-app { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: .35rem .2rem; border: 2px solid #1e8e3e; border-radius: 8px; background: #e9f7ee; font: inherit; font-size: .8rem; cursor: pointer; }
span.design-visibilite-app { cursor: default; }
.design-visibilite-app small { font-weight: 700; color: #1e6b35; }
.design-visibilite-app--masque { border-color: #c0392b; background: #fdecea; }
.design-visibilite-app--masque small { color: #a8321f; }
button.design-visibilite-app:hover { box-shadow: 0 0 0 2px #0b5cad55; }

/* Bannière claire et lisible */
.cockpit-site-banniere { background: linear-gradient(115deg, #eef5ff, #e3f0fb); color: #10243e; border: 1px solid #cfdceb; min-height: 140px; }
.cockpit-site-monogramme { background: #10243e; color: #fff; border: 0; }
.cockpit-site-identification h1 { color: #10243e; display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.cockpit-site-identification p { color: #33485f; }
.cockpit-site-identification a { color: #0b5cd5; font-weight: 600; text-decoration: underline; }
.cockpit-site-banniere .cockpit-badge { font-size: .9rem; padding: .25rem .8rem; border: 1px solid currentColor; background: #fff; }
.cockpit-site-banniere .cockpit-public-site { border: 1px solid #0b5cd5; background: #0b5cd5; color: #fff; }

.topbar-voir-site{white-space:nowrap;display:inline-flex;align-items:center;gap:6px;padding:.4rem .8rem}
.topbar-voir-site[hidden]{display:none}

/* Barre du haut foncée */
body:not(.dse-public) .topbar { background: var(--nav); border-bottom: 1px solid #ffffff1f; color: #fff; }
body:not(.dse-public) .brand, body:not(.dse-public) .cockpit-profil summary { color: #fff; }
body:not(.dse-public) .brand small, body:not(.dse-public) .cockpit-profil small, body:not(.dse-public) .cockpit-version { color: #c3d3e6; }
body:not(.dse-public) .brand-mark { background: linear-gradient(135deg, var(--nav2), var(--accent)); }
body:not(.dse-public) .cockpit-recherche-globale { background: #ffffff1a; border-color: #ffffff33; color: #c3d3e6; }
body:not(.dse-public) .cockpit-recherche-globale input { color: #fff; }
body:not(.dse-public) .cockpit-recherche-globale input::placeholder { color: #b5c6da; }
body:not(.dse-public) .cockpit-avatar { background: #ffffff26; border: 1px solid #ffffff55; }
body:not(.dse-public) .topbar .status { background: #19a97433; color: #8ff0c8; }
body:not(.dse-public) .topbar .status.off { background: #c6282833; color: #ffb4b4; }
body:not(.dse-public) .topbar .topbar-voir-site { background: var(--accent); border-color: var(--accent); color: #fff; }

/* Cartes du constructeur : relief, couleurs douces, champs contenus */
.constructeur-grille { grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 20px; }
.constructeur-carte { background: linear-gradient(180deg, #ffffff 0%, #eef4fb 100%); border: 1px solid #c9d8ea; border-top: 4px solid #0b5cd5; border-radius: 16px; padding: 18px; box-shadow: 0 1px 0 #fff inset, 0 6px 14px rgba(16,36,62,.12), 0 14px 28px rgba(16,36,62,.08); transition: transform .15s ease, box-shadow .15s ease; min-width: 0; overflow: hidden; }
.constructeur-carte:hover { transform: translateY(-3px); box-shadow: 0 1px 0 #fff inset, 0 10px 20px rgba(16,36,62,.16), 0 20px 36px rgba(16,36,62,.12); }
.constructeur-carte h3 { margin: 0; font-size: 1.1rem; color: #10243e; overflow-wrap: anywhere; }
.constructeur-carte > header { padding-bottom: 10px; border-bottom: 1px solid #d5e1ef; margin-bottom: 8px; }
.constructeur-carte label { display: grid; gap: 6px; margin: 12px 0; font-weight: 600; font-size: .9rem; color: #10243e; min-width: 0; }
.constructeur-carte select { width: 100%; max-width: 100%; min-width: 0; box-sizing: border-box; padding: 10px 12px; font: inherit; font-weight: 400; font-size: .9rem; color: #10243e; background: #fff; border: 1px solid #9fb6d1; border-radius: 10px; box-shadow: inset 0 2px 3px rgba(16,36,62,.08); text-overflow: ellipsis; }
.constructeur-carte select:focus { outline: 3px solid #0b5cd540; border-color: #0b5cd5; }
.constructeur-carte label.c-chantier { display: flex; align-items: center; gap: 10px; padding: 10px 12px; background: #fff7e6; border: 1px solid #f1d49a; border-radius: 10px; font-weight: 500; }
.constructeur-carte label.c-chantier input { margin: 0; flex: 0 0 auto; }
.constructeur-carte .constructeur-boutons .btn { box-shadow: 0 2px 4px rgba(16,36,62,.18); border-radius: 10px; }

/* Cartes de pages : simples, lisibles d'un coup d'oeil */
.c-page { padding: 20px; border-top-width: 6px; }
.c-page--ok { border-top-color: #15803d; }
.c-page--brouillon { border-top-color: #d97706; }
.c-page h3 { font-size: 1.25rem; }
.c-page__url { margin: 2px 0 14px; color: #5b6b7f; font-size: .9rem; }
.c-page > .constructeur-boutons .btn { width: 100%; justify-content: center; min-height: 46px; font-size: 1rem; }
.c-page__reglages { margin-top: 14px; border-top: 1px dashed #c3d2e4; padding-top: 10px; }
.c-page__reglages summary { cursor: pointer; font-weight: 600; color: #0b5cd5; list-style: none; }
.c-page__reglages summary::-webkit-details-marker { display: none; }
.c-page__reglages[open] summary { margin-bottom: 6px; }
.c-etat{display:inline-flex;align-items:center;gap:.4rem;font-size:.9rem}.c-etat select{min-width:11rem}
.c-pages-liste{max-height:45vh;overflow:auto;margin:.5rem 0;border:1px solid #d9dee7;border-radius:8px;padding:.25rem .5rem}.c-pages-ligne{display:flex;align-items:center;gap:.5rem;padding:.35rem 0}
.c-affiche{margin:.5rem 0 .75rem;display:flex;flex-direction:column;gap:.35rem}.c-affiche__titre{font-weight:700;font-size:.95rem;color:#1f2a44}.c-affiche__liste{display:flex;flex-wrap:wrap;gap:.35rem}.c-affiche__page{background:#e8f0fe;color:#0b3d91;border-radius:999px;padding:.2rem .7rem;font-size:.9rem;font-weight:600}.c-affiche__aucune{background:#fff4e5;color:#8a4b00;border-radius:8px;padding:.25rem .6rem;font-size:.9rem}

/* Créer mon propre site : formulaire multibranche */
.creation-personnelle .creation-etape { border: 0; padding: 0; margin: 0 0 1.25rem; display: grid; gap: .75rem; }
.creation-personnelle .creation-etape legend { font-weight: 700; font-size: 1.1rem; margin-bottom: .75rem; display: flex; align-items: center; gap: .5rem; }
.creation-personnelle .creation-num { display: inline-grid; place-items: center; width: 1.8rem; height: 1.8rem; border-radius: 50%; background: var(--dse-primaire, #2563eb); color: #fff; font-size: .95rem; }
.creation-personnelle .creation-choix-grille { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: .9rem; }
.creation-personnelle .creation-choix { display: grid; gap: .35rem; text-align: left; padding: 1.1rem; border: 2px solid #dbe3ef; border-radius: 14px; background: #fff; cursor: pointer; transition: border-color .15s, box-shadow .15s, transform .15s; font: inherit; color: inherit; }
.creation-personnelle .creation-choix:hover { border-color: #93b4f5; transform: translateY(-2px); box-shadow: 0 6px 18px rgba(37, 99, 235, .12); }
.creation-personnelle .creation-choix.is-active { border-color: var(--dse-primaire, #2563eb); background: #eff5ff; box-shadow: 0 0 0 3px rgba(37, 99, 235, .15); }
.creation-personnelle .creation-choix-icone { font-size: 1.8rem; }
.creation-personnelle .creation-choix span:last-child { color: #5b6475; font-size: .92rem; }
.creation-personnelle .creation-branche { padding: 1rem 1.1rem; border-radius: 12px; background: #f7f9fc; margin-bottom: 1rem; }
.creation-personnelle .creation-radios { display: grid; gap: .5rem; }
.creation-personnelle .creation-radios label { display: flex; gap: .5rem; align-items: center; cursor: pointer; }
.creation-personnelle .creation-radios small { color: #5b6475; }
.creation-personnelle .creation-aide { color: #5b6475; font-size: .92rem; margin: 0; }
.creation-personnelle .creation-adresse { padding: .8rem 1rem; border-radius: 10px; background: #ecfdf3; border: 1px solid #a7e3bf; color: #14532d; margin: 0 0 1rem; }
.creation-personnelle .creation-info { padding: 1rem; border-radius: 12px; background: #fff8e6; border: 1px solid #f3d38a; }
.creation-personnelle .creation-recap dl { display: grid; grid-template-columns: max-content 1fr; gap: .35rem 1rem; }
.creation-personnelle .creation-recap dt { font-weight: 600; color: #5b6475; }
.creation-personnelle .creation-recap dd { margin: 0; }
.creation-personnelle .creation-succes { border-left: 5px solid #16a34a; }

/* Créer mon propre site : formulaire pas à pas */
.creation-personnelle .creation-etapes { list-style: none; display: flex; gap: .5rem; padding: 0; margin: 0 0 1rem; flex-wrap: wrap; }
.creation-personnelle .creation-etapes li { flex: 1 1 140px; display: flex; align-items: center; gap: .55rem; padding: .6rem .8rem; border-radius: 12px; background: #f1f4f9; color: #6b7385; font-weight: 600; border: 2px solid transparent; }
.creation-personnelle .creation-etapes li .creation-num { background: #c3cbd9; }
.creation-personnelle .creation-etapes li.is-courante { background: #eff5ff; color: #1e3a8a; border-color: var(--dse-primaire, #2563eb); }
.creation-personnelle .creation-etapes li.is-courante .creation-num { background: var(--dse-primaire, #2563eb); }
.creation-personnelle .creation-etapes li.is-faite { background: #ecfdf3; color: #14532d; }
.creation-personnelle .creation-etapes li.is-faite .creation-num { background: #16a34a; }
.creation-personnelle .creation-etapes li.is-sautee { opacity: .45; text-decoration: line-through; }
.creation-personnelle .creation-titre-etape { font-size: 1.25rem; margin: 0 0 .5rem; display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; outline: none; }
.creation-personnelle .creation-page { display: grid; gap: .8rem; }
.creation-personnelle .creation-page > label, .creation-personnelle .creation-etape label { display: grid; gap: .35rem; font-weight: 600; }
.creation-personnelle .creation-obligatoire { display: inline-block; font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; padding: .1rem .45rem; border-radius: 999px; background: #fde8e8; color: #9b1c1c; vertical-align: middle; }
.creation-personnelle .creation-nav { display: flex; align-items: center; gap: .8rem; margin-top: 1.5rem; padding-top: 1rem; border-top: 1px solid #e5e9f0; }
.creation-personnelle .creation-nav [data-creation-suivant] { margin-left: auto; }
.creation-personnelle .creation-nav-aide { color: #9b1c1c; font-size: .9rem; }
.creation-personnelle .creation-nav .btn:disabled, .creation-personnelle .creation-quantite .btn:disabled { background: #d5dae3; border-color: #d5dae3; color: #7b8494; cursor: not-allowed; box-shadow: none; transform: none; }
.creation-personnelle .creation-pages { display: grid; gap: .6rem; }
.creation-personnelle .creation-page-ligne { display: flex; align-items: center; gap: .9rem; padding: .8rem 1rem; border: 2px solid #e2e7ef; border-radius: 12px; background: #fff; }
.creation-personnelle .creation-page-ligne.is-active { border-color: #a9c4f7; background: #f5f9ff; }
.creation-personnelle .creation-page-ligne.is-obligatoire { background: #f7f9fc; border-style: dashed; }
.creation-personnelle .creation-page-ligne input[type=checkbox] { width: 1.3rem; height: 1.3rem; flex: none; }
.creation-personnelle .creation-page-texte { display: grid; gap: .2rem; flex: 1; }
.creation-personnelle .creation-page-texte span:last-child { color: #5b6475; font-size: .9rem; }
.creation-personnelle .creation-page-note { color: #6b7385; font-style: italic; }
.creation-personnelle .creation-quantite { display: flex; align-items: center; gap: .4rem; flex: none; }
.creation-personnelle .creation-quantite .btn { min-width: 2.2rem; padding: .25rem .6rem; font-size: 1.1rem; line-height: 1; }
.creation-personnelle .creation-quantite output { min-width: 1.6rem; text-align: center; font-weight: 700; font-size: 1.1rem; }
.creation-personnelle .creation-quantite small { color: #6b7385; }
.creation-personnelle .creation-total { font-weight: 600; color: #1e3a8a; margin: 0; }
.creation-personnelle .creation-recap { display: grid; gap: .8rem; }
.creation-personnelle .creation-valider { justify-self: start; font-size: 1.05rem; padding: .7rem 1.4rem; }
.creation-personnelle .creation-erreur { padding: .8rem 1rem; border-radius: 10px; background: #fdecec; border: 1px solid #f5b5b5; color: #8a1c1c; margin: 0; }
.creation-personnelle .creation-liste-pages { columns: 2; margin: 0 0 1rem; }
.creation-personnelle .creation-libelle { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
.creation-personnelle .creation-page-texte > .creation-libelle { color: inherit; font-size: inherit; }
.creation-personnelle .creation-page-texte .creation-obligatoire { font-size: .72rem; color: #9b1c1c; }
/* Pages proposées aux clients (administration globale) */
.cockpit-pages-proposees { display: grid; gap: 1rem; }
.cockpit-pages-proposees h1 { display: flex; align-items: center; gap: .5rem; margin: 0; }
.cockpit-pages-proposees .pp-onglets { display: flex; flex-wrap: wrap; gap: .5rem; }
.cockpit-pages-proposees .pp-compte { display: inline-block; min-width: 1.4rem; margin-left: .3rem; padding: 0 .4rem; border-radius: 999px; background: rgba(255,255,255,.25); font-size: .8rem; text-align: center; }
.cockpit-pages-proposees .btn-secondary .pp-compte { background: #e2e7ef; }
.cockpit-pages-proposees .pp-barre { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; padding: .8rem 1rem; border-radius: 12px; background: #eef4ff; border: 1px solid #c9dafc; }
.cockpit-pages-proposees .pp-apercu { margin: 0; display: flex; align-items: center; gap: .4rem; flex-wrap: wrap; }
.cockpit-pages-proposees .pp-liste { display: grid; gap: .7rem; }
.cockpit-pages-proposees .pp-carte { display: grid; grid-template-columns: auto 1fr auto; gap: 1rem; align-items: center; padding: .9rem 1rem; border: 2px solid #dbe4f3; border-radius: 14px; background: #fff; box-shadow: 0 1px 2px rgba(15,23,42,.05); }
.cockpit-pages-proposees .pp-carte.is-inactive { background: #fdecec; border-color: #f5c2c2; }
.cockpit-pages-proposees .pp-ordre { display: grid; gap: .3rem; }
.cockpit-pages-proposees .pp-ordre .btn { padding: .15rem .55rem; line-height: 1.1; }
.cockpit-pages-proposees .pp-texte h3 { display: flex; align-items: center; flex-wrap: wrap; gap: .45rem; margin: 0 0 .25rem; font-size: 1.05rem; }
.cockpit-pages-proposees .pp-texte p { margin: .15rem 0; }
.cockpit-pages-proposees .pp-aide { font-style: italic; color: #3b4456; }
.cockpit-pages-proposees .pp-actions { display: flex; gap: .4rem; flex-wrap: wrap; justify-content: flex-end; }
.cockpit-pages-proposees .pp-badge { display: inline-block; padding: .1rem .5rem; border-radius: 999px; font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .02em; background: #e8f0fe; color: #1d4ed8; }
.cockpit-pages-proposees .pp-badge-obligatoire { background: #fde8e8; color: #9b1c1c; }
.cockpit-pages-proposees .pp-badge-neutre { background: #eef0f4; color: #4b5563; }
.cockpit-pages-proposees .pp-badge-actif { background: #e3f7ea; color: #166534; }
.cockpit-pages-proposees .pp-badge-inactif { background: #fbd5d5; color: #9b1c1c; }
.cockpit-pages-proposees .pp-formulaire { display: grid; gap: .9rem; border: 2px solid #a9c4f7; }
.cockpit-pages-proposees .pp-formulaire h2 { margin: 0; }
.cockpit-pages-proposees .pp-grille { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: .9rem 1.2rem; }
.cockpit-pages-proposees .pp-formulaire .cockpit-champ { display: grid; gap: .3rem; }
.cockpit-pages-proposees .pp-formulaire .cockpit-champ > span { display: flex; align-items: center; gap: .45rem; font-weight: 600; }
.cockpit-pages-proposees .pp-formulaire .creation-obligatoire { display: inline-block; font-size: .7rem; font-weight: 700; text-transform: uppercase; padding: .05rem .45rem; border-radius: 999px; background: #fde8e8; color: #9b1c1c; }
.cockpit-pages-proposees .pp-case { display: flex; align-items: flex-start; gap: .6rem; padding: .6rem .8rem; border-radius: 10px; background: #f7f9fc; }
.cockpit-pages-proposees .pp-case input { width: 1.2rem; height: 1.2rem; margin-top: .15rem; flex: none; }
.cockpit-pages-proposees .pp-pied { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; border-top: 1px solid #e2e7ef; padding-top: .8rem; }
.cockpit-pages-proposees .pp-boutons { display: flex; gap: .5rem; margin-left: auto; }
.cockpit-pages-proposees .pp-ok { margin: 0; padding: .6rem .9rem; border-radius: 10px; background: #e3f7ea; color: #166534; }
.cockpit-pages-proposees .pp-erreur { margin: 0; padding: .6rem .9rem; border-radius: 10px; background: #fde8e8; color: #9b1c1c; }
@media (max-width: 760px) {
  .cockpit-pages-proposees .pp-carte { grid-template-columns: auto 1fr; }
  .cockpit-pages-proposees .pp-actions { grid-column: 1 / -1; justify-content: flex-start; }
}
/* Types de site (administration globale) et description du type dans « Créer mon propre site » */
.cockpit-types-site .ts-carte { grid-template-columns: 1fr auto; }
.cockpit-types-site .ts-alerte { margin: .35rem 0 0; padding: .35rem .6rem; border-radius: 8px; background: #fff7e0; color: #7a4b00; font-size: .9rem; }
.creation-personnelle .creation-type-description { margin: .2rem 0 .4rem; padding: .6rem .9rem; border-left: 4px solid #2563eb; border-radius: 8px; background: #eef4ff; color: #1e3a8a; }
.cockpit-types-site input[readonly] { background: #f1f3f7; color: #6b7280; cursor: not-allowed; }
.cockpit-modules-admin, .cockpit-modules-admin [data-modules-contenu], .cockpit-modules-admin .pp-texte { min-width: 0; }
.cockpit-modules-admin [hidden] { display: none !important; }
.cockpit-modules-admin [data-modules-message]:empty, .cockpit-modules-admin [data-modules-edition]:empty { display: none; }
.cockpit-modules-admin > h2, .cockpit-modules-admin > p { margin: 0; }
.cockpit-modules-admin .pp-carte { grid-template-columns: minmax(0, 1fr) auto; overflow-wrap: anywhere; }
.cockpit-modules-admin .cockpit-form-inline { align-items: end; gap: .75rem; padding: 1rem; margin: 1rem 0; border: 1px solid #dbe4f3; border-radius: 12px; background: #fff; }
.cockpit-modules-admin .cockpit-form-inline label { display: grid; gap: .35rem; flex: 1 1 10rem; min-width: 0; }
.cockpit-modules-admin select, .cockpit-modules-admin input:not([type="checkbox"]), .cockpit-modules-admin textarea { box-sizing: border-box; width: 100%; min-width: 0; max-width: 100%; padding: .5rem .65rem; border: 1px solid #b8c6d9; border-radius: 8px; background: #fff; color: #0f2445; font: inherit; }
.cockpit-modules-admin .table-wrap { max-width: 100%; overflow-x: auto; }
.cockpit-modules-admin .cockpit-table { min-width: 760px; }
@media (max-width: 760px) {
  .cockpit-modules-admin .pp-carte { grid-template-columns: minmax(0, 1fr); }
}

/* Sous-groupes des fonctions globales */
.cockpit-nav-sousgroupe > summary{font-weight:600}

/* Cockpit client : vue d'ensemble, à faire, mes sites (cartes ou liste) */
.cockpit-client > * + * { margin-top: 20px; }
.cockpit-client-indicateurs { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 14px; list-style: none; padding: 0; }
.cockpit-client-afaire h2 { display: flex; align-items: center; gap: 8px; font-size: 1.05rem; }
.cockpit-client-afaire ul { list-style: none; padding: 0; margin: 0; }
.cockpit-client-afaire li { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 0; border-top: 1px solid var(--line); }
.cockpit-client-afaire li:first-child { border-top: 0; }
.cockpit-client-sites-entete { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 12px; margin-bottom: 12px; }
.cockpit-client-sites-entete h2 { margin: 0; }
.cockpit-client-outils { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px; }
.cockpit-client-outils .cockpit-champ { display: flex; flex-direction: column; gap: 4px; }
.cockpit-client-outils .cockpit-champ > span { font-size: .75rem; color: var(--muted); }
.cockpit-client-outils input, .cockpit-client-outils select { padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px; min-width: 180px; }
.cockpit-client-vue { display: inline-flex; }
.cockpit-client-vue .btn { border-radius: 0; }
.cockpit-client-vue .btn:first-child { border-radius: 8px 0 0 8px; }
.cockpit-client-vue .btn:last-child { border-radius: 0 8px 8px 0; }
.cockpit-client-vue .btn[aria-pressed="true"] { background: var(--accent); color: #fff; border-color: var(--accent); }
.cockpit-client-grille.vue-cartes { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 16px; }
.cockpit-client-site { display: flex; flex-direction: column; gap: 8px; margin: 0; }
.cockpit-client-site[hidden] { display: none; }
.cockpit-client-site-titre { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.cockpit-client-site-titre h3 { margin: 0; font-size: 1.1rem; }
.cockpit-client-site p { margin: 0; }
.cockpit-client-site-socle progress { width: 100%; height: 8px; accent-color: var(--accent); }
.cockpit-client-site-socle ul { list-style: none; padding: 0; margin: 4px 0 0; display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: .85rem; }
.cockpit-client-site-socle .fait { color: #0d7a52; }
.cockpit-client-site-socle .manque { color: #b4471a; }
.cockpit-client-site-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: auto; padding-top: 6px; }
.cockpit-client-grille.vue-liste { display: flex; flex-direction: column; gap: 8px; }
.cockpit-client-grille.vue-liste .cockpit-client-site { display: grid; grid-template-columns: minmax(180px, 1.3fr) minmax(160px, 1fr) minmax(160px, 1fr) minmax(200px, 1.2fr) auto; align-items: center; gap: 14px; padding: 12px 16px; }
.cockpit-client-grille.vue-liste .cockpit-client-site[hidden] { display: none; }
.cockpit-client-grille.vue-liste .cockpit-client-site-titre { justify-content: flex-start; flex-wrap: wrap; }
.cockpit-client-grille.vue-liste .cockpit-client-site-actions { margin: 0; padding: 0; justify-content: flex-end; }
.cockpit-client-bas { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
@media (max-width: 900px) {
  .cockpit-client-grille.vue-liste .cockpit-client-site { grid-template-columns: 1fr; }
  .cockpit-client-afaire li { flex-direction: column; align-items: flex-start; }
}
/* Rôles et accès (administration globale) */
.cockpit-roles-acces .pp-carte { grid-template-columns: 1fr auto; }
.cockpit-roles-acces .ra-stats { display: flex; flex-wrap: wrap; gap: .5rem 1.4rem; margin: .5rem 0 1rem; color: #4b5563; }
.cockpit-roles-acces .ra-stats strong { color: #111827; font-size: 1.15rem; }
.cockpit-roles-acces .ra-onglets { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1rem; }
.cockpit-roles-acces .ra-roles { display: grid; gap: .7rem; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); margin-bottom: 1rem; }
.cockpit-roles-acces .ra-role.is-active { border-color: #3b6fd8; box-shadow: 0 0 0 2px #a9c4f7; }
.cockpit-roles-acces .ra-table-defile { overflow: auto; max-height: 65vh; border: 1px solid #e5e7eb; border-radius: 8px; }
.cockpit-roles-acces .ra-table { width: 100%; border-collapse: collapse; font-size: .92rem; }
.cockpit-roles-acces .ra-table th, .cockpit-roles-acces .ra-table td { padding: .45rem .6rem; border-bottom: 1px solid #eef0f4; text-align: left; vertical-align: middle; }
.cockpit-roles-acces .ra-table thead th { position: sticky; top: 0; background: #f6f8fb; z-index: 1; }
.cockpit-roles-acces .ra-table td input[type=checkbox] { width: 1.15rem; height: 1.15rem; }
.cockpit-roles-acces .ra-table tr.ra-hors th { color: #7a4b00; }
.cockpit-roles-acces .ra-table tr.ra-inactif { background: #fdf2f2; }
.cockpit-roles-acces, .cockpit-roles-acces [data-ra-zone], .cockpit-roles-acces .pp-formulaire { min-width: 0; max-width: 100%; }
.cockpit-roles-acces .ra-actions { display: flex; flex-wrap: wrap; gap: .3rem; margin-top: .35rem; font-weight: normal; }
.cockpit-roles-acces .ra-table select { max-width: 11rem; }
.cockpit-roles-acces .ra-petit { padding: .2rem .55rem; font-size: .82rem; min-height: 0; line-height: 1.3; }
.cockpit-roles-acces .ra-filtres { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.cockpit-roles-acces .ra-filtres input { min-width: min(260px, 100%); }
.cockpit-roles-acces .ra-choix { display: flex; flex-wrap: wrap; gap: .4rem; }
.cockpit-roles-acces .ra-retirer { border: 0; background: none; cursor: pointer; padding: 0 0 0 .3rem; color: #9b1c1c; }
.cockpit-roles-acces .ra-pages { display: flex; gap: 1rem; align-items: center; justify-content: center; margin-top: .8rem; }

/* ---------------- Aperçu « voir comme » ---------------- */
.apercu-bandeau { position: fixed; left: 50%; bottom: 1rem; transform: translateX(-50%); z-index: 1000; display: flex; flex-wrap: wrap; gap: .75rem;
  align-items: center; justify-content: center; max-width: calc(100vw - 2rem); padding: .7rem 1rem; border-radius: 12px;
  background: #7c2d12; color: #fff; box-shadow: 0 8px 24px rgba(0,0,0,.25); font-size: .95rem; }
.apercu-bandeau strong { color: #fff; }
.apercu-bandeau .apercu-retour { background: #fff; color: #7c2d12; border: 0; font-weight: 700; padding: .45rem .9rem; border-radius: 8px; cursor: pointer; }
.apercu-bandeau .apercu-retour:hover, .apercu-bandeau .apercu-retour:focus-visible { background: #ffedd5; }
body:has(.apercu-bandeau) #app-page { padding-bottom: 5rem; }
.cockpit-voir-comme .vc-acces { display: inline-block; margin: .1rem .4rem .1rem 0; padding: .1rem .45rem; border-radius: 6px; background: #eef2ff; font-size: .85rem; }
/* ---------------- Tickets et idées ---------------- */
.cockpit-tickets .tk-entete, .cockpit-tickets-reglages .tk-entete { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin: 12px 0; }
.tk-onglets { display: flex; flex-wrap: wrap; gap: 6px; }
.tk-onglet { border: 1px solid var(--line); background: white; border-radius: 999px; padding: 7px 14px; font: inherit; cursor: pointer; color: var(--text); }
.tk-onglet.actif { background: var(--accent); border-color: var(--accent); color: white; }
.tk-compteur { display: inline-block; min-width: 1.4em; padding: 0 .35em; border-radius: 999px; background: #e9f0fb; color: var(--accent); font-size: .8rem; text-align: center; }
.tk-onglet.actif .tk-compteur { background: white; }
.tk-liste { list-style: none; padding: 0; margin: 10px 0; display: grid; gap: 8px; }
.tk-ouvrir { width: 100%; display: flex; align-items: center; gap: 12px; text-align: left; background: white; border: 1px solid var(--line); border-radius: 10px; padding: 12px 14px; font: inherit; color: var(--text); cursor: pointer; }
.tk-ouvrir:hover, .tk-ouvrir:focus-visible { border-color: var(--accent); box-shadow: var(--shadow); }
.tk-icone { font-size: 1.5rem; flex: 0 0 auto; }
.tk-corps { flex: 1; min-width: 0; display: grid; gap: 2px; }
.tk-corps .muted { font-size: .82rem; }
.tk-etat { display: flex; align-items: center; gap: 8px; flex: 0 0 auto; }
.tk-votes { font-weight: 700; color: var(--accent); }
.tk-vide { padding: 24px; text-align: center; background: var(--bg); border-radius: 10px; }
.pp-badge.tk-ok { background: #e6f6ec; color: #17663a; }
.pp-badge.tk-non { background: #fdecec; color: #a12626; }
.pp-badge.tk-attente { background: #fff4dd; color: #8a5a00; }
.pp-badge.tk-cours { background: #e9f0fb; color: #0b4fb3; }
.pp-ok { color: #17663a; background: #e6f6ec; padding: 8px 12px; border-radius: 8px; }
.tk-assistant { max-width: 860px; }
.tk-etapes { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; padding: 0; margin: 0 0 12px; counter-reset: etape; }
.tk-etapes li { counter-increment: etape; padding: 4px 10px; border-radius: 999px; background: var(--bg); color: var(--muted); font-size: .82rem; }
.tk-etapes li::before { content: counter(etape) ". "; }
.tk-etapes li.actif { background: var(--accent); color: white; }
.tk-etapes li.fait { background: #e6f6ec; color: #17663a; }
.tk-cartes { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 10px; }
.tk-grande-carte { display: grid; gap: 6px; justify-items: start; text-align: left; padding: 16px; background: white; border: 2px solid var(--line); border-radius: 12px; font: inherit; color: var(--text); cursor: pointer; }
.tk-grande-carte:hover, .tk-grande-carte:focus-visible, .tk-grande-carte.choisie { border-color: var(--accent); box-shadow: var(--shadow); }
.tk-grande-icone { font-size: 2rem; line-height: 1; }
.tk-portees { display: grid; gap: 8px; }
.tk-portee { display: flex; gap: 10px; align-items: flex-start; padding: 12px; border: 2px solid var(--line); border-radius: 10px; background: white; cursor: pointer; }
.tk-portee.choisie { border-color: var(--accent); }
.tk-portee > span { display: grid; gap: 4px; flex: 1; }
.tk-portee select { margin-top: 6px; max-width: 420px; }
.tk-questions { display: grid; gap: 14px; }
.tk-question { display: grid; gap: 4px; border: 0; padding: 0; margin: 0; }
.tk-question legend { font-weight: 600; margin-bottom: 4px; }
.tk-question input, .tk-question textarea, .tk-question select { width: 100%; padding: 9px; border: 1px solid var(--line); border-radius: 8px; font: inherit; }
.tk-choix { display: flex; flex-wrap: wrap; gap: 8px; }
.tk-puce { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border: 1px solid var(--line); border-radius: 999px; background: white; cursor: pointer; }
.tk-puce input { width: auto; }
.tk-actions { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; margin-top: 16px; }
.tk-resume { display: grid; grid-template-columns: minmax(140px, 220px) 1fr; gap: 6px 14px; margin: 10px 0; }
.tk-resume dt { color: var(--muted); }
.tk-resume dd { margin: 0; }
.tk-texte { white-space: pre-wrap; overflow-wrap: anywhere; }
.tk-fiche { background: white; border: 1px solid var(--line); border-radius: 12px; padding: 16px; }
.tk-fiche header { display: flex; gap: 14px; align-items: flex-start; }
.tk-fiche header > div:first-of-type { flex: 1; }
.tk-fiche h2 { margin: 0 0 4px; }
.tk-soutien { display: grid; justify-items: center; gap: 6px; }
.tk-votes-grand { font-size: 1.8rem; font-weight: 800; color: var(--accent); }
.tk-fil ol { list-style: none; padding: 0; display: grid; gap: 8px; }
.tk-msg { padding: 10px 12px; border-radius: 10px; border: 1px solid var(--line); background: white; }
.tk-msg p { margin: 0 0 4px; }
.tk-msg.client { border-left: 4px solid #0b4fb3; }
.tk-msg.equipe { border-left: 4px solid #17663a; }
.tk-msg.systeme { background: var(--bg); font-size: .9rem; }
.tk-msg.interne { background: #fff8e6; }
.tk-fil textarea { width: 100%; padding: 9px; border: 1px solid var(--line); border-radius: 8px; font: inherit; }
.tk-gerer, .tk-reglage { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; align-items: end; margin: 14px 0;
  padding: 14px; border: 1px dashed var(--line); border-radius: 10px; background: var(--bg); }
.tk-gerer h3, .tk-reglage h3, .tk-reglage .tk-actions, .tk-reglage .tk-large { grid-column: 1 / -1; margin: 0; }
.tk-gerer label, .tk-reglage label:not(.tk-puce) { display: grid; gap: 4px; }
.tk-gerer select, .tk-gerer input, .tk-reglage input:not([type=checkbox]), .tk-reglage select { padding: 8px; border: 1px solid var(--line); border-radius: 8px; font: inherit; }
.cockpit-tickets-reglages tr.tk-inactif { opacity: .55; }
.cockpit-tickets-reglages tr.tk-choisie { background: #e9f0fb; }
@media (max-width: 640px) { .tk-resume { grid-template-columns: 1fr; } .tk-ouvrir { flex-wrap: wrap; } .tk-fiche header { flex-wrap: wrap; } }.tk-bandeau-idees { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; margin: 10px 0; padding: 12px 14px; border: 1px solid #f3d27a; border-left: 5px solid #e0a800; border-radius: 10px; background: #fff8e1; }
.tk-bandeau-idees > span:first-child { font-size: 1.6rem; line-height: 1; }
.tk-bandeau-idees > span:nth-child(2) { flex: 1; min-width: 220px; }
/* ---------------- Projets ---------------- */
.cockpit-projets .pj-resume { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 10px; margin: 12px 0; }
.pj-resume > div { display: grid; gap: 2px; padding: 12px 14px; background: white; border: 1px solid var(--line); border-radius: 10px; }
.pj-resume strong { font-size: 1.6rem; line-height: 1.1; color: var(--accent); }
.pj-resume span { color: var(--muted); font-size: .85rem; }
.pj-resume .pj-alerte strong { color: #a12626; }
.pj-grille { list-style: none; padding: 0; margin: 10px 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 12px; }
.pj-ouvrir { width: 100%; height: 100%; display: grid; gap: 8px; align-content: start; text-align: left; background: white; border: 1px solid var(--line); border-radius: 12px; padding: 14px; font: inherit; color: var(--text); cursor: pointer; }
.pj-ouvrir:hover, .pj-ouvrir:focus-visible { border-color: var(--accent); box-shadow: var(--shadow); }
.pj-retard .pj-ouvrir { border-left: 4px solid #dc2626; }
.pj-haut { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 6px; margin: 0; }
.pj-perimetre { font-size: .82rem; color: var(--muted); }
.pj-titre { font-size: 1.05rem; }
.pj-ligne { font-size: .82rem; }
.pj-avancement { display: flex; align-items: center; gap: 8px; }
.pj-avancement b { min-width: 3.2em; text-align: right; font-size: .9rem; }
.pj-barre { flex: 1; height: 8px; border-radius: 999px; background: #e5e7eb; overflow: hidden; }
.pj-barre > span { display: block; height: 100%; border-radius: 999px; background: linear-gradient(90deg, #2563eb, #16a34a); }
.pj-grand .pj-barre { height: 14px; }
.pj-fiche { background: white; border: 1px solid var(--line); border-radius: 12px; padding: 16px; margin-bottom: 12px; }
.pj-fiche h2 { margin: 6px 0; }
.pj-description { white-space: pre-wrap; }
.pj-etapes { background: white; border: 1px solid var(--line); border-radius: 12px; padding: 16px; margin-bottom: 12px; }
.pj-etapes ol { list-style: none; padding: 0; margin: 0 0 10px; display: grid; gap: 6px; }
.pj-etapes li { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px; }
.pj-etapes li label { flex: 1; display: flex; align-items: center; gap: 8px; cursor: pointer; }
.pj-etapes li input[type=checkbox] { width: 20px; height: 20px; }
.pj-etapes li.pj-fait span { text-decoration: line-through; color: var(--muted); }
.pj-actions { display: flex; gap: 4px; }
.cockpit-projets input:not([type=checkbox]), .cockpit-projets select, .cockpit-projets textarea {
  box-sizing: border-box; width: 100%; min-width: 0; min-height: 42px; padding: 9px 12px; border: 1px solid #cfd8e3; border-radius: 8px;
  font: inherit; font-size: .95rem; color: var(--text); background: #fff; }
.cockpit-projets textarea { min-height: 90px; resize: vertical; line-height: 1.45; }
.cockpit-projets input:focus, .cockpit-projets select:focus, .cockpit-projets textarea:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px rgba(37, 99, 235, .15); }
.cockpit-projets .pp-formulaire.ra-filtres { display: flex; flex-wrap: wrap; gap: 8px; align-items: center;
  background: white; border: 1px solid var(--line); border-radius: 12px; padding: 10px; margin: 10px 0; }
.cockpit-projets .ra-filtres input { flex: 2 1 240px; }
.cockpit-projets .ra-filtres select { flex: 1 1 170px; width: auto; }
.cockpit-projets .pp-formulaire.ra-filtres .btn { white-space: nowrap; }
.pj-ajout { display: grid; grid-template-columns: 1fr 180px auto; gap: 8px; align-items: center; margin: 0; padding: 0; border: 0 !important; background: none; }
.pj-ajout .btn { white-space: nowrap; }
.cockpit-projets .pj-form { background: white; border: 1px solid var(--line) !important; border-radius: 12px; padding: 16px 18px; display: grid; gap: 14px; margin-bottom: 12px; }
.cockpit-projets .pj-form h3 { margin: 0; }
.cockpit-projets .pj-form label { display: grid; gap: 6px; font-weight: 600; font-size: .88rem; color: #334155; }
.cockpit-projets .pj-form label .muted { font-weight: 400; }
.pj-colonnes { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 12px 14px; }
.pj-boutons { display: flex; flex-wrap: wrap; gap: 8px; padding-top: 6px; border-top: 1px solid var(--line); }
.pj-boutons [data-pj-archiver] { margin-left: auto; }
.pj-etapes h3, .pj-fiche h2 { margin-top: 0; }
.pj-etiquettes { display: flex; flex-wrap: wrap; gap: 6px; }
.pj-etiquette { display: inline-flex; align-items: center; gap: 4px; padding: 2px 10px; border-radius: 999px; font-size: .8rem; font-weight: 600; }
.pj-dse { background: #ede9fe; color: #5b21b6; }
.pj-payant { background: #dcfce7; color: #166534; }
.pj-bandeau-dse { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; padding: 10px 12px; border-radius: 10px; background: #f5f3ff; border: 1px solid #ddd6fe; }
.pj-bandeau-dse > span:first-child { flex: 1 1 320px; }
.pj-carte-dse { border-color: #c4b5fd !important; background: #faf5ff !important; }
.cockpit-projets .pj-groupe { border: 1px solid var(--line); border-radius: 10px; padding: 12px 14px 14px; margin: 0; display: grid; gap: 12px; min-width: 0; }
.cockpit-projets .pj-groupe legend { padding: 0 6px; font-weight: 700; color: #334155; }
.cockpit-projets .pj-form label.pj-case { display: flex; align-items: center; gap: 8px; align-self: end; min-height: 42px; cursor: pointer; }
.pj-case input { width: 20px; height: 20px; }
@media (max-width: 700px) {
  .pj-ajout { grid-template-columns: 1fr; }
  .pj-boutons [data-pj-archiver] { margin-left: 0; }
}
/* ---------- Cockpit : cartes Tickets, Idées, Projets ---------- */
.cockpit-suivi { display: grid; grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)); gap: 16px; margin: 16px 0; }
.cs-carte { display: flex; flex-direction: column; gap: 10px; min-width: 0; border-top: 4px solid #2563eb; }
.cs-idees { border-top-color: #f59e0b; }
.cs-projets { border-top-color: #7c3aed; }
.cs-chargement { border-top-color: var(--line, #e2e8f0); min-height: 160px; }
.cs-tete { display: flex; align-items: center; gap: 10px; }
.cs-tete h2 { margin: 0; font-size: 1.15rem; flex: 1; }
.cs-icone { font-size: 1.5rem; line-height: 1; }
.cs-total { min-width: 2.2em; padding: 2px 10px; border-radius: 999px; background: #eff6ff; color: #1d4ed8; font-weight: 700; text-align: center; }
.cs-idees .cs-total { background: #fffbeb; color: #b45309; }
.cs-projets .cs-total { background: #f5f3ff; color: #6d28d9; }
.cs-puces { display: flex; flex-wrap: wrap; gap: 6px; }
.cs-puce { display: inline-flex; gap: 4px; align-items: baseline; padding: 3px 10px; border-radius: 999px; background: #f1f5f9; color: #334155; font-size: .85rem; text-decoration: none; }
.cs-puce:hover, .cs-puce:focus-visible { background: #e2e8f0; }
.cs-alerte { background: #fef2f2; color: #b91c1c; }
.cs-aide { margin: 0; font-size: .85rem; }
.cs-lignes { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.cs-lignes a { display: grid; gap: 2px; padding: 8px 10px; border-radius: 8px; color: inherit; text-decoration: none; border: 1px solid transparent; }
.cs-lignes a:hover, .cs-lignes a:focus-visible { background: #f8fafc; border-color: var(--line, #e2e8f0); }
.cs-ligne-titre { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cs-ligne-info { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: .8rem; color: #64748b; }
.cs-votes { font-weight: 700; color: #b45309; }
.cs-vote-moi { color: #15803d; }
.cs-barre { width: 90px; flex: 0 0 90px; }
.cs-retard { color: #b91c1c; font-weight: 600; }
.cs-vide { margin: 4px 0; }
.cs-actions { margin-top: auto; display: flex; flex-wrap: wrap; gap: 8px; padding-top: 6px; }
.cs-actions .btn { flex: 1 1 auto; justify-content: center; text-align: center; }
.cs-journal { border-top-color: #0d9488; }
/* ---------- Journal d'activité ---------- */
.jr-jour { margin: 18px 0 8px; }
.jr-jour h3 { margin: 0 0 8px; font-size: .95rem; color: #475569; text-transform: capitalize; }
.jr-lignes { list-style: none; margin: 0; padding: 0 0 0 14px; border-left: 3px solid #e2e8f0; display: grid; gap: 10px; }
.jr-ligne { position: relative; display: grid; grid-template-columns: 40px 1fr auto; gap: 12px; align-items: start; padding: 12px 14px; background: white; border: 1px solid var(--line); border-radius: 12px; }
.jr-ligne::before { content: ""; position: absolute; left: -22px; top: 22px; width: 11px; height: 11px; border-radius: 50%; background: #94a3b8; border: 2px solid white; }
.jr-nouveaute::before { background: #f59e0b; }
.jr-avancement::before { background: #7c3aed; }
.jr-travail::before { background: #2563eb; }
.jr-livraison::before { background: #16a34a; }
.jr-icone { font-size: 1.6rem; line-height: 1; text-align: center; }
.jr-corps { min-width: 0; display: grid; gap: 4px; }
.jr-corps p { margin: 0; }
.jr-tete { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; }
.jr-tete strong { font-size: 1rem; }
.jr-description { white-space: pre-line; color: #334155; }
.jr-info { font-size: .82rem; }
.jr-auto { font-size: .75rem; font-style: italic; }
.jr-visibilite { background: #f1f5f9; color: #334155; }
.jr-filtre-projet { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 10px 12px; border-radius: 10px; background: #f5f3ff; border: 1px solid #ddd6fe; }
.jr-choix { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 10px; }
.cockpit-journal .pj-form label.jr-choix-carte { display: grid; gap: 4px; padding: 12px; border: 2px solid var(--line); border-radius: 10px; cursor: pointer; background: white; }
.cockpit-journal .pj-form label.jr-choix-carte.actif { border-color: var(--accent, #2563eb); background: #eff6ff; }
.jr-choix-carte input { width: 18px; height: 18px; }
@media (max-width: 700px) {
  .jr-ligne { grid-template-columns: 32px 1fr; }
  .jr-masquer { grid-column: 2; justify-self: start; }
}

/* ---------------- Catalogue (cockpit, équipe DSE) ---------------- */
.ct-liste { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.ct-carte { display: grid; grid-template-columns: 1fr auto; gap: 12px; align-items: center; padding: 14px 16px; background: white; border: 1px solid var(--line); border-left: 4px solid #cbd5e1; border-radius: 12px; }
.ct-carte.ct-publie { border-left-color: #16a34a; }
.ct-carte.ct-brouillon { border-left-color: #f59e0b; }
.ct-carte.ct-archive { opacity: .7; }
.ct-corps { min-width: 0; display: grid; gap: 4px; }
.ct-corps p { margin: 0; }
.ct-tete { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.ct-prix { font-weight: 700; color: #0f766e; }
.ct-info { font-size: .82rem; }
.ct-actions { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; }
.ct-coches { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 4px 0 8px; }
.cockpit-catalogue-gestion .pj-form label.ct-coche { display: inline-flex; flex-direction: row; align-items: center; gap: 6px; font-weight: 500; }
.ct-coche input { width: 18px; height: 18px; }
@media (max-width: 720px) {
  .ct-carte { grid-template-columns: 1fr; }
  .ct-actions { justify-content: flex-start; }
}

/* Équipe du site */
.cockpit-equipe .eq-grille { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 16px; align-items: start; }
.cockpit-equipe .eq-bloc { padding: 18px; display: grid; gap: 12px; }
.cockpit-equipe .eq-bloc h2 { display: flex; align-items: center; gap: 8px; font-size: 1.05rem; margin: 6px 0 0; }
.cockpit-equipe .eq-form { display: grid; gap: 10px; }
.cockpit-equipe .eq-form label { display: grid; gap: 4px; }
.cockpit-equipe .eq-roles { border: 1px solid var(--line); border-radius: 10px; padding: 10px; display: grid; gap: 8px; }
.cockpit-equipe .eq-role { display: flex !important; gap: 10px; align-items: flex-start; padding: 8px; border-radius: 8px; cursor: pointer; }
.cockpit-equipe .eq-role:has(input:checked) { background: #eef2ff; }
.cockpit-equipe .eq-role span { display: grid; gap: 2px; }
.cockpit-equipe .eq-role small, .cockpit-equipe .eq-liste small { color: var(--muted, #64748b); }
.cockpit-equipe .eq-liste { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.cockpit-equipe .eq-liste li { display: flex; justify-content: space-between; gap: 10px; align-items: center; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; background: white; }
.cockpit-equipe .eq-liste li span { display: grid; gap: 2px; }
.cockpit-equipe .eq-onglets { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.cockpit-equipe .eq-succes { padding: 10px 14px; border-radius: 10px; background: #ecfdf5; color: #065f46; border: 1px solid #a7f3d0; }

/* Catalogue de construction : nature et éléments débloqués */
.cockpit-catalogue-gestion .ct-nature { display: inline-block; padding: 0.1rem 0.5rem; border-radius: 999px; background: var(--color-surface-alt, #eef2f7); font-size: 0.8rem; font-weight: 600; margin-right: 0.25rem; }
.cockpit-catalogue-gestion .ct-debloque { border: 1px solid var(--color-border, #dde3ea); border-radius: 8px; padding: 0.5rem 0.75rem; margin: 0.5rem 0; }
.cockpit-catalogue-gestion .ct-debloque > summary { cursor: pointer; font-weight: 600; }
.cockpit-catalogue-gestion .ct-debloque .ct-coches { max-height: 16rem; overflow: auto; margin-top: 0.5rem; }

/* Boutique DSE (produits simples / variables) */
.cockpit-boutique .bq-type { display: inline-block; padding: 0.1rem 0.5rem; border-radius: 999px; font-size: 0.8rem; font-weight: 600; background: #eef2f7; }
.cockpit-boutique .bq-type-variable { background: #f3e8ff; color: #6b21a8; }
.cockpit-boutique .bq-barre { text-decoration: line-through; color: #94a3b8; }
.cockpit-boutique .bq-rupture { color: #b91c1c; font-weight: 600; }
.cockpit-boutique .bq-choix-type { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px; margin-bottom: 10px; }
.cockpit-boutique .pj-form label.bq-type-choix { display: flex; flex-direction: row; gap: 10px; align-items: flex-start; padding: 12px; border: 2px solid var(--line); border-radius: 10px; cursor: pointer; background: white; }
.cockpit-boutique .bq-type-choix.actif, .cockpit-boutique .bq-type-choix:has(input:checked) { border-color: #2563eb; background: #eff6ff; }
.cockpit-boutique .bq-type-choix span { display: grid; gap: 2px; }
.cockpit-boutique .bq-type-choix small { color: var(--muted, #64748b); font-weight: 400; }
.cockpit-boutique .bq-attributs { display: grid; gap: 8px; margin: 6px 0 12px; }
.cockpit-boutique .bq-attribut { border: 1px solid var(--line); border-radius: 10px; padding: 8px 12px; background: white; }
.cockpit-boutique .bq-attribut.actif { border-color: #c4b5fd; background: #faf5ff; }
.cockpit-boutique .bq-ajout { display: inline-flex; gap: 6px; align-items: center; }
.cockpit-boutique .bq-ajout input { width: 12rem; }
.cockpit-boutique .bq-outils { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 6px 0 10px; }
.cockpit-boutique .bq-tableau { overflow-x: auto; border: 1px solid var(--line); border-radius: 10px; background: white; margin-bottom: 12px; }
.cockpit-boutique .bq-tableau table { width: 100%; border-collapse: collapse; }
.cockpit-boutique .bq-tableau th, .cockpit-boutique .bq-tableau td { padding: 6px 8px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: middle; }
.cockpit-boutique .bq-tableau th { font-size: 0.8rem; color: var(--muted, #64748b); background: #f8fafc; }
.cockpit-boutique .bq-tableau input:not([type=checkbox]), .cockpit-boutique .bq-tableau select { width: 100%; min-width: 5.5rem; }
.cockpit-boutique .bq-stock { display: flex; gap: 6px; align-items: center; }
.cockpit-boutique .bq-stock input[type=checkbox] { width: 18px; height: 18px; flex: none; }
/* Catalogue : exemples (vitrines) ; Boutique : catégories en arbre */
.cockpit-catalogue-gestion .ct-boutons { display: flex; flex-wrap: wrap; gap: .5rem; }
.cockpit-catalogue-gestion .ct-exemple { background: #eef4ff; color: #1f3d7a; border-color: #b9cdf5; }
.cockpit-boutique .bq-categories { display: grid; gap: .5rem; padding: .75rem; border: 1px dashed var(--cockpit-bordure, #d6d6e0); border-radius: 8px; }
.cockpit-boutique .bq-categories > p { margin: 0; }
.cockpit-boutique .bq-arbre { display: flex; flex-direction: column; align-items: flex-start; gap: .25rem; }
.cockpit-boutique .bq-arbre .bq-niveau-0 { font-weight: 600; margin-top: .25rem; }
.cockpit-boutique .bq-arbre .bq-niveau-1 { margin-left: 1.5rem; }
.cockpit-boutique .bq-arbre .bq-niveau-2 { margin-left: 3rem; }
.cockpit-boutique .bq-arbre .bq-niveau-3 { margin-left: 4.5rem; }
.cockpit-boutique .bq-arbre .bq-niveau-4 { margin-left: 6rem; }
.cockpit-modules-site { --ms-bordure:#dce4ee; }
.cockpit-modules-site .ms-entete { display:flex; justify-content:space-between; align-items:center; gap:1rem; margin-bottom:1.5rem; }
.cockpit-modules-site .ms-surtitre { color:#526680; font-size:.75rem; letter-spacing:.12em; font-weight:700; margin:0 0 .4rem; }
.cockpit-modules-site h2 { margin:0; font-size:1.9rem; }
.cockpit-modules-site .ms-repere { display:flex; gap:.5rem; align-items:center; padding:.7rem 1rem; background:#eaf1fc; border-radius:1rem; color:#234c89; white-space:nowrap; }
.cockpit-modules-site .ms-repere svg,.cockpit-modules-site .ms-icone svg { width:1.4rem; height:1.4rem; }
.cockpit-modules-site .ms-resume { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; margin:1rem 0; }
.cockpit-modules-site .ms-resume>div { display:flex; flex-direction:column; padding:1.1rem; border:1px solid var(--ms-bordure); background:white; border-radius:1rem; }
.cockpit-modules-site .ms-resume strong { color:#183a66; font-size:1.8rem; }
.cockpit-modules-site .ms-resume span { color:#526680; font-size:.85rem; }
.cockpit-modules-site .ms-information { background:#f0f5fd; border-left:4px solid #537db7; padding:1rem 1.2rem; border-radius:.5rem; margin:1.2rem 0; }
.cockpit-modules-site .ms-information p { margin:.4rem 0 0; }
.cockpit-modules-site .ms-filtres { display:flex; flex-wrap:wrap; gap:.8rem; align-items:end; margin:1.5rem 0 1rem; }
.cockpit-modules-site .ms-filtres label { display:flex; flex:1 1 10rem; flex-direction:column; gap:.3rem; font-size:.85rem; min-width:0; }
.cockpit-modules-site .ms-filtres label:first-child { flex-grow:2; }
.cockpit-modules-site .ms-filtres input,.cockpit-modules-site .ms-filtres select { width:100%; max-width:100%; min-width:0; padding:.65rem; border:1px solid #b8c7da; border-radius:.5rem; background:white; color:#1b304b; }
.cockpit-modules-site .ms-filtres .ms-structure { flex-direction:row; align-items:center; flex-basis:100%; }
.cockpit-modules-site .ms-structure input { width:auto; }
.cockpit-modules-site .ms-grille { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,19rem),1fr)); gap:1rem; align-items:start; }
.cockpit-modules-site .ms-carte { min-width:0; background:white; border:1px solid var(--ms-bordure); border-radius:1rem; padding:1.2rem; box-shadow:0 3px 12px #193b6310; overflow-wrap:anywhere; }
.cockpit-modules-site .ms-carte[hidden] { display:none; }
.cockpit-modules-site .ms-carte-entete { display:flex; align-items:start; gap:.8rem; }
.cockpit-modules-site .ms-icone { display:grid; place-items:center; flex:0 0 2.7rem; height:2.7rem; background:#edf3fc; border-radius:.7rem; color:#315c96; }
.cockpit-modules-site h3 { font-size:1.1rem; margin:0; }
.cockpit-modules-site .ms-carte-entete p { margin:.3rem 0; font-size:.75rem; }
.cockpit-modules-site .ms-description { font-size:.9rem; color:#526077; min-height:2.6rem; }
.cockpit-modules-site .ms-badges { display:flex; flex-wrap:wrap; gap:.4rem; }
.cockpit-modules-site .ms-badge { padding:.3rem .55rem; border-radius:.45rem; font-size:.75rem; font-weight:600; }
.cockpit-modules-site .ms-oui { background:#e6f6ed; color:#20683c; }
.cockpit-modules-site .ms-non { background:#fff1e5; color:#87421c; }
.cockpit-modules-site .ms-neutre { background:#edf1f6; color:#4c5c72; }
.cockpit-modules-site .ms-droits { font-size:.78rem; color:#526077; }
.cockpit-modules-site .ms-comptage { display:flex; align-items:center; gap:.8rem; margin:1rem 0; padding-top:.9rem; border-top:1px solid var(--ms-bordure); }
.cockpit-modules-site .ms-comptage>strong { font-size:2rem; color:#183a66; }
.cockpit-modules-site .ms-comptage>span { font-size:.85rem; }
.cockpit-modules-site .ms-comptage small,.cockpit-modules-site .ms-vide { color:#607087; font-size:.8rem; }
.cockpit-modules-site .ms-details summary { cursor:pointer; font-size:.85rem; color:#234c89; font-weight:600; padding:.5rem 0; }
.cockpit-modules-site .ms-details h4 { font-size:.85rem; margin:.8rem 0 .4rem; }
.cockpit-modules-site .ms-details ul { list-style:none; padding:0; margin:0; }
.cockpit-modules-site .ms-details li { border-top:1px solid #edf1f6; padding:.5rem 0; display:flex; flex-direction:column; gap:.2rem; font-size:.8rem; }
.cockpit-modules-site .ms-details li span,.cockpit-modules-site .ms-notes { color:#607087; font-size:.78rem; }
.cockpit-modules-site .ms-notes { margin:1.5rem 0 0; }
@media(max-width:600px) {
  .cockpit-modules-site .ms-entete { align-items:start; flex-direction:column; }
  .cockpit-modules-site .ms-resume { gap:.5rem; }
  .cockpit-modules-site .ms-resume>div { padding:.7rem; }
  .cockpit-modules-site .ms-resume span { font-size:.72rem; }
}