/* CNS-JOJ — Charte des cartes institutionnelles, 28 octobre 2026.
 * S'applique aux surfaces de contenu, pas aux bandeaux, images, boutons,
 * alertes métier ou parcours d'authentification.
 * Fichier chargé EN DERNIER pour harmoniser les modules sans les réécrire.
 */
:root {
    --cns-card-bg: #fff;
    --cns-card-border: #dfe5e9;
    --cns-card-border-hover: #bbcbd3;
    --cns-card-radius: 12px;
    --cns-card-shadow: 0 1px 2px rgba(22, 35, 45, .035);
    --cns-card-title: #203747;
    --cns-card-muted: #61717c;
}

/* 01 — Cartes de contenu génériques sur toutes les pages publiques.
   Aucun changement des dimensions image / titre / statut déjà calibrées. */
.security-portal :is(
    .quick-card,
    .news-card,
    .home-news-card,
    .document-card,
    .publication-empty,
    .institutional-card,
    .resources-photo-grid figure,
    .resources-feature,
    .publication-filters
) {
    background: var(--cns-card-bg);
    background-image: none;
    border: 1px solid var(--cns-card-border);
    border-radius: var(--cns-card-radius);
    box-shadow: var(--cns-card-shadow);
}
.security-portal :is(.quick-card, .news-card, .home-news-card, .publication-card):hover {
    transform: none;
    border-color: var(--cns-card-border-hover);
    box-shadow: var(--cns-card-shadow);
}
.security-portal :is(.news-card, .home-news-card, .quick-card, .publication-card) {
    transition: border-color .16s ease, background-color .16s ease;
}
.security-portal :is(.news-card, .home-news-card, .publication-card) h3,
.security-portal .quick-card h3 { color: var(--cns-card-title); }
.security-portal :is(.news-card, .home-news-card, .publication-card) :is(p, time),
.security-portal .quick-card p { color: var(--cns-card-muted); }

/* 02 — Accueil : neutraliser les aplats par famille de carte,
   sans altérer le carrousel photo ni le compte à rebours. */
.security-portal .cns-home-v4 :is(
    .cns-home-word,
    .cns-home-alert-card,
    .cns-home-priorities,
    .cns-home-institution,
    .cns-home-assistance,
    .cns-home-published-item,
    .cns-home-quick-link,
    .cns-home-news-wrap .home-news-card,
    .cns-today,
    .cns-today-program,
    .cns-today-weather,
    .cns-today-weather-city
) {
    background: var(--cns-card-bg);
    background-image: none;
    border-color: var(--cns-card-border);
    border-radius: var(--cns-card-radius);
    box-shadow: var(--cns-card-shadow);
}
.security-portal .cns-home-v4 :is(
    a.cns-home-quick-link,
    .cns-home-published-item,
    .cns-home-news-wrap .home-news-card
):hover {
    background: #fff;
    background-image: none;
    transform: none;
    border-color: var(--cns-card-border-hover);
    box-shadow: var(--cns-card-shadow);
}
/* L'icône reste un repère, pas une tuile de couleur par catégorie. */
.security-portal .cns-home-v4 .cns-home-quick-link > span {
    color: #36566b;
    background: #f1f4f6;
    border-radius: 8px;
}
.security-portal .cns-home-v4 .cns-home-tile-alert > span {
    color: #ac2632;
    background: #fceff0;
}
.security-portal .cns-home-v4 .cns-home-alert-card {
    border-left: 3px solid #c82027;
    padding-left: 20px;
}
.security-portal .cns-home-v4 [aria-labelledby="cns-home-published-alertes"] .cns-home-published-item {
    border-left: 3px solid #c82027;
}
/* Aide et signalement : ne pas changer le CTA rouge ni les messages de danger. */
.security-portal .cns-home-v4 .cns-home-assistance { border-top-color: var(--cns-card-border); }
.security-portal .cns-home-v4 .cns-home-institution { border-top-color: var(--cns-card-border); }
.security-portal .cns-home-v4 .cns-today-cities span,
.security-portal .cns-home-v4 .cns-today-weather-city {
    background: #f7f9fa;
    border-color: #e4e9ec;
    color: #445969;
}

/* 03 — Liste des publications : un cadre neutre sans toucher aux hauteurs
   de zones fixes (images, titres, priorité, extrait et lien). */
.security-portal [data-publication-list] .news-grid .publication-card {
    border-color: var(--cns-card-border);
    background: #fff;
    box-shadow: var(--cns-card-shadow);
    border-radius: var(--cns-card-radius);
}
.security-portal [data-publication-list][data-publication-section="alertes"] .publication-card {
    border-top: 3px solid #c82027;
}
.security-portal [data-publication-list] .publication-card:hover {
    transform: none;
    border-color: var(--cns-card-border-hover);
    box-shadow: var(--cns-card-shadow);
}
.security-portal [data-publication-list] .publication-filters {
    background: #fafbfc;
    border-color: var(--cns-card-border);
    box-shadow: none;
}

/* 04 — Comité : les étapes et l'organigramme restent en place. */
.security-portal .committee-institutional-v3 :is(
    .committee-mission-card,
    .committee-law-card,
    .committee-chart-authority,
    .committee-chart-coordination,
    .committee-chart-branch,
    .committee-definition,
    .committee-documentation-grid > *
),
.security-portal .committee-page :is(.committee-missions article, .committee-law, .committee-chart, .committee-branches article) {
    background: #fff;
    background-image: none;
    border-color: var(--cns-card-border);
    border-radius: var(--cns-card-radius);
    box-shadow: var(--cns-card-shadow);
}
/* Conserver le nœud d'autorité distinct et lisible s'il est conçu en bleu. */
.security-portal .committee-institutional-v3 .committee-chart-authority {
    background: #183d56;
    color: #fff;
    border-color: #183d56;
}

/* 05 — Dispositif : neutralité des panneaux ; rouge réservé aux mesures. */
.security-portal .dispositif-public :is(
    .dip-shortcuts,
    .dip-shortcuts__grid a,
    .dip-measure,
    .dip-route-card,
    .dip-site-card,
    .dip-transport,
    .dip-plan-card,
    .dip-document-list,
    .dip-safety-list,
    .dip-editorial-card
) {
    background: #fff;
    background-image: none;
    border-color: var(--cns-card-border);
    border-radius: var(--cns-card-radius);
    box-shadow: var(--cns-card-shadow);
}
.security-portal .dispositif-public .dip-important {
    background: #fff;
    background-image: none;
    border: 1px solid var(--cns-card-border);
    border-left: 3px solid #c82027;
    border-radius: var(--cns-card-radius);
    box-shadow: var(--cns-card-shadow);
}
.security-portal .dispositif-public :is(.dip-shortcuts__grid a, .dip-site-card, .dip-plan-card):hover {
    transform: none;
    border-color: var(--cns-card-border-hover);
    box-shadow: var(--cns-card-shadow);
}

/* 06 — Backoffice : même langage graphique, sans changer les états,
   les formulaires ni les actions à double validation. */
.security-admin :is(
    .dashboard-card,
    .editorial-panel,
    .accounts-panel,
    .tech-card,
    .banner-admin__panel,
    .document-card,
    .admin-notifications-panel,
    .onboarding-panel
) {
    background: #fff;
    background-image: none;
    border: 1px solid var(--cns-card-border);
    border-radius: var(--cns-card-radius);
    box-shadow: var(--cns-card-shadow);
}
.security-admin :is(.dashboard-card, .tech-card, .accounts-panel):hover {
    transform: none;
    box-shadow: var(--cns-card-shadow);
}
.security-admin .accounts-help { background: #fafbfc; border-color: var(--cns-card-border); }

/* 07 — Signalements 8003 (public et traitement) : styles chargés localement.
   Les encadrés d'urgence et les états de validation gardent leur code couleur. */
.reporting-portal :is(.reporting-form, .cyber-guidance) {
    background: #fff;
    border: 1px solid var(--cns-card-border);
    border-radius: var(--cns-card-radius);
    box-shadow: var(--cns-card-shadow);
}
.reporting-portal .cyber-guidance { border-left: 3px solid #517b9c; }
.cns-treatment main section,
.cns-treatment .test-notice {
    background: #fff;
    border: 1px solid var(--cns-card-border);
    border-radius: var(--cns-card-radius);
    box-shadow: var(--cns-card-shadow);
}

@media (prefers-reduced-motion: reduce) {
    .security-portal :is(.quick-card, .news-card, .publication-card, .cns-home-quick-link),
    .security-admin .dashboard-card { transition: none; }
}
