/* ════════════════════════════════════════════════════════════════
   GroupMaker — Mode Nuit (version stable, à enrichir page par page)
   ════════════════════════════════════════════════════════════════ */

/* Fond noir, pas de filtre sur body */
body.gn-night-mode {
    background: #000;
    color: #ff0000;
}
html.gn-night-loading,
html.gn-night-loading body { background: #000; }

/* Filtre "rouge nocturne" sur médias uniquement */
body.gn-night-mode img,
body.gn-night-mode video,
body.gn-night-mode picture,
body.gn-night-mode canvas,
body.gn-night-mode .SM-tile-icon {
    filter: grayscale(0.9) sepia(0.6) hue-rotate(-40deg) saturate(2) brightness(0.5);
}

/* Textes rouges vifs */
body.gn-night-mode p,
body.gn-night-mode span,
body.gn-night-mode div,
body.gn-night-mode li,
body.gn-night-mode label,
body.gn-night-mode td,
body.gn-night-mode th,
body.gn-night-mode small,
body.gn-night-mode strong,
body.gn-night-mode em,
body.gn-night-mode b,
body.gn-night-mode i,
body.gn-night-mode dt,
body.gn-night-mode dd,
body.gn-night-mode blockquote { color: #ff0000; }

body.gn-night-mode h1,
body.gn-night-mode h2,
body.gn-night-mode h3,
body.gn-night-mode h4,
body.gn-night-mode h5,
body.gn-night-mode h6 { color: #ff3333; }

body.gn-night-mode a,
body.gn-night-mode a:link,
body.gn-night-mode a:visited { color: #ff5500; }
body.gn-night-mode a:hover { color: #ff7700; }

body.gn-night-mode input,
body.gn-night-mode textarea,
body.gn-night-mode select { color: #ff0000; background: #0a0000; border-color: #4a1010; }
body.gn-night-mode input::placeholder,
body.gn-night-mode textarea::placeholder { color: #800000; }

/* Hints au navigateur : widgets natifs en thème sombre
   (date picker, audio controls, video controls, scrollbars) */
body.gn-night-mode input,
body.gn-night-mode textarea,
body.gn-night-mode select,
body.gn-night-mode audio,
body.gn-night-mode video { color-scheme: dark; }

/* Audio : teinte rouge + fond sombre pour les contrôles natifs.
   Le filter hue-rotate + saturate redirige le bleu/vert natif vers le rouge. */
body.gn-night-mode audio {
    filter: hue-rotate(140deg) saturate(1.5) brightness(0.85);
    border-radius: 8px;
    background: #1a0a0a;
}

/* Sélecteur date : icône calendrier blanc → teintée rouge */
body.gn-night-mode input[type="date"]::-webkit-calendar-picker-indicator,
body.gn-night-mode input[type="time"]::-webkit-calendar-picker-indicator,
body.gn-night-mode input[type="datetime-local"]::-webkit-calendar-picker-indicator {
    filter: invert(0.4) sepia(1) saturate(8) hue-rotate(-40deg);
    cursor: pointer;
}

/* ════════════════════════════════════════════════════════════════
   PAGE : index.php (accueil)
   CSS : IN.css, SM.css, CE.css, CR.css, CG.css, agenda.css, VQ.css
   ════════════════════════════════════════════════════════════════ */

/* IN.css — cartouches et blocs accueil */
body.gn-night-mode .IN-page-accueil .GN-list--links a,
body.gn-night-mode .IN-page-accueil .GN-cartouche,
body.gn-night-mode .IN-page-accueil .GN-eventItem,
body.gn-night-mode .IN-page-accueil .IN-memberCard,
body.gn-night-mode .IN-page-accueil .GN-notifLink,
body.gn-night-mode .IN-gazetteThumb,
body.gn-night-mode .IN-agendaNav,
body.gn-night-mode .IN-agendaCell,
body.gn-night-mode .IN-agendaLocked,
body.gn-night-mode .IN-kpi,
body.gn-night-mode .IN-homeFlux #fluxList .GN-card,
body.gn-night-mode .IN-accueil .IN-capBadge,
body.gn-night-mode .IN-accueil .IN-capAction,
body.gn-night-mode .IN-accueil .IN-navyStat,
body.gn-night-mode .IN-accueil .IN-tracemapStat,
body.gn-night-mode .IN-tpl-inspo__card { background: #302020; border-color: #4a1010; }

body.gn-night-mode .IN-page-accueil .GN-field input { background: #0f0303; color: #ff0000; border-color: #4a1010; }
body.gn-night-mode .IN-agendaCell.is-day:hover { background: #2a0a0a; }
body.gn-night-mode .FBX { background: #302020; }
body.gn-night-mode .FBX--help-urgBadge,
body.gn-night-mode .FBX--help-urg--immediat { background: #4a0000; color: #ff9999; }

/* SM.css — toutes les tuiles de l'accueil simplifié
   La spécificité (body.gn-night-mode + .SM-tile) = 2 classes bat la règle d'origine
   (.SM-tile = 1 classe). Le shorthand `background` écrase le linear-gradient.
   Palette : gris rouge-brun #302020 (visible sur fond noir). */
body.gn-night-mode .SM-tile,
body.gn-night-mode .SM-tile--cap,
body.gn-night-mode .SM-tile--navy,
body.gn-night-mode .SM-tile--tracemap,
body.gn-night-mode .SM-tile--compass,
body.gn-night-mode .SM-tile--hud,
body.gn-night-mode .SM-tile--logbook,
body.gn-night-mode .SM-tile--meteo,
body.gn-night-mode .SM-tile--meteo-forecast,
body.gn-night-mode .SM-tile--events,
body.gn-night-mode .SM-tile--entraide,
body.gn-night-mode .SM-tile--veilleur,
body.gn-night-mode .SM-tile--bateau,
body.gn-night-mode .SM-tile--profil,
body.gn-night-mode .SM-tile--gazette,
body.gn-night-mode .SM-tile--chat,
body.gn-night-mode .SM-tile--ia,
body.gn-night-mode .SM-tile--actu,
body.gn-night-mode .SM-tile--amis,
body.gn-night-mode .SM-tile--notifs,
body.gn-night-mode .SM-tile--params,
body.gn-night-mode .SM-tile--preview,
body.gn-night-mode .SM-tile--photo,
body.gn-night-mode .SM-tile--compact,
body.gn-night-mode .SM-tile--wide,
body.gn-night-mode .SM-tile-preview,
body.gn-night-mode .SM-tile-sublabel,
body.gn-night-mode .SM-msg-preview-tile {
    background: #302020;
    color: #ff0000;
    border-color: #4a1010;
}

/* Tuile messages : éléments enfants (avatars, badges, rows) */
body.gn-night-mode .SM-msg-avatar { border-color: #4a1010; }
body.gn-night-mode .SM-msg-row-name { color: #ff0000; }
body.gn-night-mode .SM-msg-row-badge { background: #ff0000; color: #000; }

/* Tuile Messages en mode simple : #CH-float est déplacé dans .SM-slot
   avec gradient turquoise (SM.css: .SM-slot #CH-float, spécificité 1-1-0).
   Il faut battre cette spécificité avec ID + 2 classes + body (1-2-1). */
body.gn-night-mode .SM-slot #CH-float,
body.gn-night-mode #SM-slot-chat #CH-float {
    background: #302020;
    border-color: #4a1010;
    box-shadow: 0 4px 16px rgba(0,0,0,.4), inset 0 1px 0 rgba(255,0,0,.1);
}
body.gn-night-mode .SM-slot .CH-float-btn,
body.gn-night-mode .SM-slot .CH-float-btn::after { color: #ff0000; }
body.gn-night-mode .SM-slot .CH-float-btn svg { color: #ff3333; fill: #ff3333; }
body.gn-night-mode .SM-tile--tracemap::before,
body.gn-night-mode .SM-tile--compass::before {
    opacity: 0.3;
    filter: grayscale(1) sepia(1) hue-rotate(-40deg) saturate(2) brightness(0.4);
}
body.gn-night-mode .SM-tile-icon,
body.gn-night-mode .SM-tile-label { color: #ff0000; }

/* CE.css — cartouches événements */
body.gn-night-mode .CE .cartouche-ami-more { background: #302020; }

/* ════════════════════════════════════════════════════════════════
   HM.css — Home Mega Grid (accueil v2, 4 mega-tuiles + 2 action)
   Palette : fond tuile #302020, texte #ff0000, bords #4a1010
   ════════════════════════════════════════════════════════════════ */
body.gn-night-mode .HM-main { background: #000; }

body.gn-night-mode .HM-meteo-bar {
    background: linear-gradient(135deg, #4a1010, #302020);
    color: #ff3333;
    border: 1px solid #4a1010;
    box-shadow: 0 8px 20px rgba(0,0,0,.5);
}
body.gn-night-mode .HM-meteo-title,
body.gn-night-mode .HM-meteo-sub,
body.gn-night-mode .HM-meteo-day,
body.gn-night-mode .HM-meteo-day b { color: #ff3333; }

body.gn-night-mode .HM-tile,
body.gn-night-mode .HM-tile--bateau,
body.gn-night-mode .HM-tile--marina,
body.gn-night-mode .HM-tile--aide,
body.gn-night-mode .HM-tile--commu,
body.gn-night-mode .HM-tile--msg,
body.gn-night-mode .HM-tile--ia,
body.gn-night-mode .HM-tile--action {
    background: #302020;
    color: #ff3333;
    border: 1px solid #4a1010;
    box-shadow: 0 6px 16px rgba(0,0,0,.4);
}
body.gn-night-mode .HM-tile-head { border-bottom-color: #4a1010; }
body.gn-night-mode .HM-tile-head h2,
body.gn-night-mode .HM-tile--action h2 {
    color: #ff3333;
    text-shadow: none;
}
body.gn-night-mode .HM-tile-summary,
body.gn-night-mode .HM-action-sub { color: #ff5555; }
body.gn-night-mode .HM-tile-foot {
    color: #ff8877;
    text-shadow: none;
}
body.gn-night-mode .HM-badge--soft {
    background: #1a0a0a;
    color: #ff6666;
    border-color: #4a1010;
}
body.gn-night-mode .HM-tile:hover { box-shadow: 0 12px 26px rgba(0,0,0,.6); }

body.gn-night-mode .HM-tile-head { border-bottom-color: #4a1010; }
body.gn-night-mode .HM-tile-head h2,
body.gn-night-mode .HM-tile--action h2 { color: #ff3333; }
body.gn-night-mode .HM-tile-list li { color: #ff5555; }
body.gn-night-mode .HM-tile-list li:hover { background: #1a0a0a; }
body.gn-night-mode .HM-tile-foot,
body.gn-night-mode .HM-action-sub { color: #ff6666; }

body.gn-night-mode .HM-badge { background: #800000; color: #ffcccc; }
body.gn-night-mode .HM-badge--soft { background: #1a0a0a; color: #ff6666; }
body.gn-night-mode .HM-badge--head { background: #800000; color: #ffcccc; }
body.gn-night-mode .HM-action-badge { background: #800000; color: #ffcccc; }
body.gn-night-mode .HM-tile-summary { color: #ff5555; }

/* Overlays bottom-sheet */
body.gn-night-mode .HM-backdrop { background: rgba(0,0,0,0.75); }
body.gn-night-mode .HM-sheet {
    background: #1a0a0a;
    box-shadow: 0 -10px 40px rgba(0,0,0,0.6);
}
body.gn-night-mode .HM-sheet::before { background: #4a1010; }
body.gn-night-mode .HM-sheet-head { border-bottom-color: #4a1010; }
body.gn-night-mode .HM-sheet-title { color: #ff3333; }
body.gn-night-mode .HM-sheet-close {
    background: #302020;
    color: #ff5555;
    border-color: #4a1010;
}
body.gn-night-mode .HM-sheet-close:hover { background: #4a1010; }

body.gn-night-mode .HM-sub,
body.gn-night-mode .HM-sub--bateau,
body.gn-night-mode .HM-sub--logbook,
body.gn-night-mode .HM-sub--checklist,
body.gn-night-mode .HM-sub--tracemap,
body.gn-night-mode .HM-sub--compass,
body.gn-night-mode .HM-sub--hud,
body.gn-night-mode .HM-sub--cap,
body.gn-night-mode .HM-sub--amis,
body.gn-night-mode .HM-sub--entraide,
body.gn-night-mode .HM-sub--veilleur,
body.gn-night-mode .HM-sub--events,
body.gn-night-mode .HM-sub--actu,
body.gn-night-mode .HM-sub--gazette,
body.gn-night-mode .HM-sub--profil,
body.gn-night-mode .HM-sub--soon {
    background: #302020;
    color: #ff3333;
    border: 1px solid #4a1010;
    box-shadow: 0 4px 14px rgba(0,0,0,0.4);
}
body.gn-night-mode .HM-sub:hover { background: #4a1010; }
body.gn-night-mode .HM-sub-label {
    color: #ff3333;
    text-shadow: none;
}
body.gn-night-mode .HM-sub-icon { filter: none; }
body.gn-night-mode .HM-sub-badge { background: #800000; color: #ffcccc; border-color: #4a1010; }
body.gn-night-mode .HM-sub-tag { color: #ff8877; }

/* Sous-tuiles enrichies en night */
body.gn-night-mode .HM-sub-bg {
    opacity: 0.15;
    filter: grayscale(1) sepia(0.5) hue-rotate(-40deg) saturate(1.5) brightness(0.5);
}
body.gn-night-mode .HM-sub--has-bg::after { background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.8) 100%); }
body.gn-night-mode .HM-sub-sub { color: #ff5555; text-shadow: none; }
body.gn-night-mode .HM-sub-date { background: #4a1010; color: #ff5555; }
body.gn-night-mode .HM-sub-mini-avatar { border-color: #4a1010; }
body.gn-night-mode .HM-sub-avatar { border-color: #4a1010; filter: grayscale(0.8) sepia(0.3) brightness(0.7); }
body.gn-night-mode .HM-sub-mini-circle { border-color: #4a1010; filter: grayscale(0.8) sepia(0.3) brightness(0.7); }

/* Raccourcis personnalisés */
body.gn-night-mode .HM-tile--shortcut {
    background: #302020;
    color: #ff3333;
    border: 1px solid #4a1010;
    box-shadow: 0 6px 20px rgba(0,0,0,0.5);
}
body.gn-night-mode .HM-tile--shortcut h2 { color: #ff3333; text-shadow: none; }
body.gn-night-mode .HM-shortcut-del { background: #800000; color: #ffcccc; border-color: #4a1010; }

body.gn-night-mode .HM-tile--add {
    background: #1a0a0a !important;
    border-color: #4a1010 !important;
    color: #ff5555 !important;
}
body.gn-night-mode .HM-tile--add h2 { color: #ff3333 !important; }
body.gn-night-mode .HM-tile--add .HM-action-emoji,
body.gn-night-mode .HM-tile--add .HM-action-sub { color: #ff5555; }

body.gn-night-mode .HM-picker-cat { color: #ff5555; }

/* ════════════════════════════════════════════════════════════════
   HEADER — Avatar utilisateur (dropdown)
   ════════════════════════════════════════════════════════════════ */
body.gn-night-mode .HD-avatar {
    background: linear-gradient(135deg, #4a1010, #800000);
    border-color: #4a1010;
}
body.gn-night-mode .HD-avatar-initials { color: #ff3333; text-shadow: none; }
body.gn-night-mode .HD-avatar-badge {
    background: #ff0000;
    color: #000;
    border-color: #4a1010;
}
body.gn-night-mode .HD-avatar-menu {
    background: #1a0a0a;
    border-color: #4a1010;
    box-shadow: 0 8px 28px rgba(0,0,0,0.7);
}
body.gn-night-mode .HD-avatar-menu a { color: #ff3333; }
body.gn-night-mode .HD-avatar-menu a:hover { background: #302020; color: #ff5555; }
body.gn-night-mode .HD-avatar-menu .HD-menu-badge { background: #ff0000; color: #000; }
body.gn-night-mode .HD-avatar-menu-logout {
    border-top-color: #4a1010;
    color: #ff6666 !important;
}
body.gn-night-mode .HD-avatar-menu-logout:hover { background: #4a0000 !important; color: #ff9999 !important; }
body.gn-night-mode .HD-avatar-menu-theme { border-top-color: #4a1010; color: #ff5555; }
body.gn-night-mode .HD-theme-btn { background: #302020; color: #ff5555 !important; border-color: #4a1010; }
body.gn-night-mode .HD-theme-btn:hover { background: #4a1010; color: #ff9999 !important; }

/* CR.css — cartouches relations */
body.gn-night-mode .niveau-choice .radio,
body.gn-night-mode .cartouche-relation .btn,
body.gn-night-mode .cartouche-relation .btn.ghost { background: #302020; color: #ff3333; border-color: #4a1010; }

/* CG.css — cartouches gazette */
body.gn-night-mode .CG-card,
body.gn-night-mode .CG-thumb,
body.gn-night-mode .CG--list.CG--listV2 .CG-thumb,
body.gn-night-mode .GN-side--left .CG--list.CG--listV2 { background: #302020; border-color: #4a1010; }

/* agenda.css — agenda et panel mobile jour */
body.gn-night-mode .IN-mobileDayPanel,
body.gn-night-mode .IN-mdp-head,
body.gn-night-mode .IN-mdp-actions,
body.gn-night-mode .IN-mdp-body,
body.gn-night-mode body.IN .IN-mobileDayPanel,
body.gn-night-mode body.IN .IN-mobileDayPanel .IN-mdp-head,
body.gn-night-mode body.IN .IN-mobileDayPanel .IN-mdp-actions,
body.gn-night-mode .IN-agendaMenu,
body.gn-night-mode .GM-meteo-day,
body.gn-night-mode #GM-weatherDetail { background: #302020; color: #ff0000; border-color: #4a1010; }
body.gn-night-mode .mdp-btn.sec,
body.gn-night-mode .mdp-btn.is-disabled,
body.gn-night-mode body.IN .IN-mobileDayPanel .mdp-btn.sec,
body.gn-night-mode body.IN .IN-mobileDayPanel .mdp-btn.is-disabled { background: #0f0303; color: #ff3333; }
body.gn-night-mode .IN-agendaMenu a:hover { background: #2a0a0a; }

/* VQ.css — veilleur de quai */
body.gn-night-mode .VQ-select,
body.gn-night-mode .VQ-preset-chip,
body.gn-night-mode .VQ-checklist-readonly li,
body.gn-night-mode .VQ-audio-btn,
body.gn-night-mode .VQ-flash-badge { background: #302020; color: #ff0000; border-color: #4a1010; }
body.gn-night-mode .VQ-alert--success { background: #0a1a0a; color: #44ff44; }

/* ════════════════════════════════════════════════════════════════
   PAGE : pages/meteo.php
   CSS : inline <style> dans le <head> (classes .MET-*)
   Spécificité inline (.MET-x = 1 classe) battue par body.gn-night-mode .MET-x (2).
   ════════════════════════════════════════════════════════════════ */
body.gn-night-mode .MET-title { color: #ff3333; }
body.gn-night-mode .MET-card { background: #302020; box-shadow: 0 2px 10px rgba(0,0,0,.5); }
body.gn-night-mode .MET-day-name { color: #ff3333; }
body.gn-night-mode .MET-day-desc { color: #ff6666; }
body.gn-night-mode .MET-tmin { background: #0a1a2a; color: #ff6666; }
body.gn-night-mode .MET-tmax { background: #2a0f00; color: #ff7733; }
body.gn-night-mode .MET-wind { color: #ff6666; }
body.gn-night-mode .MET-day-card:hover { background: #4a1010; }
body.gn-night-mode .MET-hour { background: #1a0a0a; }
body.gn-night-mode .MET-hour-time { color: #ff3333; }
body.gn-night-mode .MET-hour-temp { color: #ff7733; }
body.gn-night-mode .MET-hour-wind { color: #ff6666; }
body.gn-night-mode .MET-hour-wave { color: #ff6666; }
body.gn-night-mode .MET-loading { color: #ff6666; }
body.gn-night-mode .MET-error { color: #ff3333; }

/* ════════════════════════════════════════════════════════════════
   PAGE : pages/livre_de_bord.php
   CSS : css/LB.css (classes .LB-*)
   ════════════════════════════════════════════════════════════════ */

/* Titres et sous-titres */
body.gn-night-mode .LB h1 { color: #ff3333; }
body.gn-night-mode .LB-sub,
body.gn-night-mode .LB-file-info,
body.gn-night-mode .LB-empty,
body.gn-night-mode .LB-no-boat,
body.gn-night-mode .LB-day-weather { color: #ff6666; }

/* Sélecteur bateau */
body.gn-night-mode .LB-boat-sel,
body.gn-night-mode .LB-boat-sel option { background: #302020; color: #ff3333; border-color: #4a1010; }

/* Barre de recherche + filtres */
body.gn-night-mode .LB-search-bar { background: #302020; border-color: #4a1010; }
/* !important-like via spécificité : bat la règle générique `body.gn-night-mode input` (0,1,2)
   car (0,2,1) > (0,1,2) : 2 classes l'emportent sur 1 classe + 1 élément. */
body.gn-night-mode .LB-search-input { background: transparent; color: #ff5555; }
body.gn-night-mode .LB-search-input::placeholder { color: #993333; }
body.gn-night-mode .LB-search-go-btn { background: #4a1010; color: #ff6666; }
body.gn-night-mode .LB-search-go-btn:hover { background: #600000; }
body.gn-night-mode .LB-search-filters-btn { background: #302020; color: #ff6666; border-color: #4a1010; }
body.gn-night-mode .LB-search-filters-btn sup { color: #ff7733; }
body.gn-night-mode .LB-search-filters-btn:hover { background: #4a1010; }
body.gn-night-mode .LB-filters input,
body.gn-night-mode .LB-filters select,
body.gn-night-mode .LB-filters select option { background: #302020; color: #ff3333; border-color: #4a1010; }
body.gn-night-mode .LB-filters input::placeholder { color: #800000; }
body.gn-night-mode .LB-date-label { color: #ff6666; }
body.gn-night-mode .LB-filter-btn { background: #4a1010; color: #ff6666; }
body.gn-night-mode .LB-filter-btn:hover { background: #600000; }
body.gn-night-mode .LB-filter-reset { background: #302020; color: #ff6666; }
body.gn-night-mode .LB-filter-reset:hover { background: #4a1010; }

/* Barre "Nouvelle entrée" */
body.gn-night-mode .LB-new-bar { background: #4a1010; color: #ff6666; }

/* Formulaire nouvelle entrée */
body.gn-night-mode .LB-new-form { background: #1a0a0a; }
body.gn-night-mode .LB-new-form textarea { background: #302020; color: #ff3333; border-color: #4a1010; }
body.gn-night-mode .LB-new-form textarea::placeholder { color: #800000; }

/* Grille médias */
body.gn-night-mode .LB-media-card { background: #302020; border-color: #4a1010; color: #ff6666; }
body.gn-night-mode .LB-media-card:hover { background: #4a1010; border-color: #ff3333; }

/* Tags */
body.gn-night-mode .LB-tags-toggle { background: #302020; color: #ff6666; border-color: #4a1010; }
body.gn-night-mode .LB-tag-chip { background: #302020; color: #ff6666; border-color: #4a1010; }
body.gn-night-mode .LB-tag-chip.LB-tag-active { background: #ff3333; color: #000; border-color: #ff3333; }

/* Bouton submit */
body.gn-night-mode .LB-submit-btn { background: #4a1010; color: #ff6666; box-shadow: 0 4px 12px rgba(0,0,0,.5); }

/* Lien Check-lists */
body.gn-night-mode .LB-checklists-link { background: #302020; border-color: #4a1010; color: #ff3333; }
body.gn-night-mode .LB-checklists-link span { color: #ff6666; }

/* Timeline */
body.gn-night-mode .LB-timeline::before { background: #4a1010; }
body.gn-night-mode .LB-day-dot { background: #ff3333; border-color: #302020; }
body.gn-night-mode .LB-day-date { color: #ff3333; }
body.gn-night-mode .LB-day-title { color: #ff6666; }
body.gn-night-mode .LB-day-auto { background: #1a0a0a; color: #ff6666; }

/* Item (entrée de journal) */
body.gn-night-mode .LB-item { background: #302020; border-color: #4a1010; }
body.gn-night-mode .LB-item-author { color: #ff3333; }
body.gn-night-mode .LB-item-time { color: #ff6666; }
body.gn-night-mode .LB-item-date { color: #ff6666; }
body.gn-night-mode .LB-item-summary { background: #2a1a00; border-left-color: #ff7733; color: #ffb366; }
/* Texte principal des entrées : rouge vif pour contraste maxi sur fond #302020 */
body.gn-night-mode .LB-item-text { color: #ff6666; }
body.gn-night-mode .LB-item-text.LB-trace-entry { background: #0a1a2a; border-color: #4a1010; color: #ff9999; }
body.gn-night-mode .LB-trace-link { background: #4a1010; color: #ff6666; }
body.gn-night-mode .LB-read-more { color: #ff5500; }
body.gn-night-mode .LB-item-tag { background: #1a0a0a; color: #ff6666; }
body.gn-night-mode .LB-item-actions button { background: #2a0000; border-color: #600000; color: #ff6666; }
body.gn-night-mode .LB-item-actions button:hover { background: #4a1010; border-color: #ff3333; }

/* Load more */
body.gn-night-mode .LB-loadmore button { background: #302020; border-color: #4a1010; color: #ff6666; }

/* Surlignage recherche */
body.gn-night-mode .LB-highlight { background: #4a3000; color: #ff9933; }
body.gn-night-mode .LB-highlight-active { background: #ff7733; color: #000; }

/* Barre résultats recherche */
body.gn-night-mode .LB-results-bar { background: #4a1010; }
body.gn-night-mode .LB-results-count { color: #ff6666; }
body.gn-night-mode .LB-results-btn { background: #302020; color: #ff6666; }
body.gn-night-mode .LB-results-close { background: rgba(255,0,0,0.15); color: #ff6666; }
body.gn-night-mode .LB-results-close:hover { background: rgba(255,0,0,0.3); }

/* Preview media (nouvelle entrée) */
body.gn-night-mode .LB-preview-item { background: #1a0a0a; border-color: #4a1010; }
body.gn-night-mode .LB-audio-preview { background: #2a0f0f; border-color: #600000; }
body.gn-night-mode .LB-audio-preview-dur { color: #ff6666; }

/* ════════════════════════════════════════════════════════════════
   PAGE : pages/profil.php
   CSS : css/PR.css, css/CE.css, css/CR.css
   ════════════════════════════════════════════════════════════════ */

/* Blocs principaux (.classement-box, .block, .PR-box) */
body.gn-night-mode .classement-box,
body.gn-night-mode .page-profil .block,
body.gn-night-mode .page-profil section.block,
body.gn-night-mode .page-profil .PR-box,
body.gn-night-mode .PR-sortable-item { background: #302020; border-color: #4a1010; }
body.gn-night-mode .page-profil .PR-box-title,
body.gn-night-mode .block-title { color: #ff3333; }
body.gn-night-mode .page-profil .PR-box li { border-bottom-color: #4a1010; }
body.gn-night-mode .page-profil .PR-box strong { color: #ff5555; }
body.gn-night-mode .PR-sortable-item .cat-label { color: #ff5555; }

/* Badges relation */
body.gn-night-mode .PR-relation-badge,
body.gn-night-mode .page-profil .PR-relation-badge { background: #1a0a0a; color: #ff5555; }
body.gn-night-mode .PR-relation-badge.PR-refuse,
body.gn-night-mode .page-profil .PR-relation-badge.PR-refuse { background: #4a0000; color: #ff9999; }

/* Dropdown relation */
body.gn-night-mode .PR-rel-dropdown-btn { background: #302020; color: #ff5555; border-color: #4a1010; }
body.gn-night-mode .PR-rel-dropdown-btn:hover { background: #4a1010; color: #ff9999; }
body.gn-night-mode .PR-rel-dropdown-menu { background: #1a0a0a; border-color: #4a1010; }
body.gn-night-mode .PR-rel-dropdown-menu button { background: transparent; color: #ff5555; }
body.gn-night-mode .PR-rel-dropdown-menu button:hover { background: #302020; }
body.gn-night-mode .PR-rel-dropdown-menu button.PR-rel-danger { color: #ff3333; }
body.gn-night-mode .PR-rel-dropdown-menu button.PR-rel-danger:hover { background: #4a0000; }
body.gn-night-mode .PR-rel-dropdown-menu hr { border-color: #4a1010; }

/* Menu édition + bouton edit */
body.gn-night-mode .PR-relation-edit-menu .PR-menu,
body.gn-night-mode .PR-relation-edit-menu .PR-edit-btn { background: #302020; border-color: #4a1010; color: #ff5555; }

/* Cadres photo */
body.gn-night-mode .PR-modal .PR-nav-btn { background: #302020; color: #ff5555; border-color: #4a1010; }

/* Classement (rangs 1/2/3) — teinte en rouges (pas jaune/bleu/vert de jour) */
body.gn-night-mode .PR-cat-rank.PR-rank-1 { background: #4a3000; color: #ffcc66; border-color: #805500; }
body.gn-night-mode .PR-cat-rank.PR-rank-2 { background: #1a1a33; color: #ff7799; border-color: #333366; }
body.gn-night-mode .PR-cat-rank.PR-rank-3 { background: #0a2a1a; color: #77ff99; border-color: #1a553a; }
body.gn-night-mode .PR-cat-rank.PR-rank-n { background: #302020; color: #ff5555; border-color: #4a1010; }

/* Badges favoris top1/2/3 dans .block */
body.gn-night-mode .page-profil .block .PR-fav-badges .badge { background: #1a0a0a; color: #ff5555; border-color: #4a1010; }
body.gn-night-mode .page-profil .block .PR-fav-badges .badge.top1 { background: #4a3000; border-color: #805500; color: #ffcc66; }
body.gn-night-mode .page-profil .block .PR-fav-badges .badge.top2 { background: #1a1a33; border-color: #333366; color: #ff9999; }
body.gn-night-mode .page-profil .block .PR-fav-badges .badge.top3 { background: #0a2a1a; border-color: #1a553a; color: #99ffbb; }

/* Marina styles */
body.gn-night-mode .PR-marina-style-group { background: #1a0a0a; border-color: #4a1010; }
body.gn-night-mode .PR-marina-style-title { color: #ff5555; }
body.gn-night-mode .PR-tag { background: #302020; border-color: #4a1010; color: #ff5555; }

/* Jauge de complétion */
body.gn-night-mode .PR-gauge { background: #1a0a0a; }
body.gn-night-mode .PR-gauge-bar { background: linear-gradient(90deg, #800000, #ff3333); }
body.gn-night-mode .PR-gauge-label { color: #ffcccc; }
body.gn-night-mode .PR-gauge-missing li { color: #ff6666; }
body.gn-night-mode .PR-gauge-missing li::before { color: #800000; }

/* Styles Marina (PR-ms-*) : blocs inline dans profil.php */
body.gn-night-mode .PR-ms-group,
body.gn-night-mode .PR-ms-row { background: #1a0a0a; border-color: #4a1010; }
body.gn-night-mode .PR-ms-label,
body.gn-night-mode .PR-ms-row-label { color: #ff5555; }
body.gn-night-mode .PR-ms-pill { background: #302020; border-color: #4a1010; color: #ff5555; }
/* Flèche scroll horizontale mobile : masque le gradient blanc en nuit */
body.gn-night-mode .PR-ms-mobile .PR-ms-tags::after {
    color: #ff5555;
    text-shadow: 0 0 4px rgba(255,0,0,0.4);
    background: linear-gradient(to right, rgba(0,0,0,0), rgba(0,0,0,1));
}

/* Texte "muted" générique */
body.gn-night-mode .muted,
body.gn-night-mode .page-profil .muted { color: #ff6666; }

/* ════════════════════════════════════════════════════════════════
   CARTOUCHE ÉVÉNEMENT (CE.css) — utilisé sur profil, index, gazette, etc.
   ════════════════════════════════════════════════════════════════ */
body.gn-night-mode .CE .cartouche-evenement { background: #302020; border-color: #4a1010; }
body.gn-night-mode .CE .cartouche-photo { background: #1a0a0a; }
body.gn-night-mode .CE .cartouche-infos .titre { color: #ff3333; }
body.gn-night-mode .CE .meta { color: #ff6666; }
body.gn-night-mode .CE .meta .chip { background: #1a0a0a; color: #ff5555; }
body.gn-night-mode .CE .desc { color: #ff5555; }
body.gn-night-mode .CE .distance { color: #ff6666; }
body.gn-night-mode .CE .cartouche-organisateur { border-color: #4a1010; }
body.gn-night-mode .CE .cartouche-inscrit { background: #0a5a0a; color: #ccffcc; }
body.gn-night-mode .CE .cartouche-ami { background: #1a3a5a; color: #99ccff; }
body.gn-night-mode .CE .cartouche-ami-more { background: rgba(255,100,100,.3); border-color: rgba(255,100,100,.3); color: #ff9999; }
body.gn-night-mode .CE.is-pill-badges .cartouche-inscrit { background: #0a3a5a; color: #99ccff; }
body.gn-night-mode .CE.is-pill-badges .cartouche-ami { background: #0a5a3a; color: #99ffcc; }
body.gn-night-mode .CE .CE-creator-badge { background: #600000; color: #ffcccc; }

/* ════════════════════════════════════════════════════════════════
   CARTOUCHE OBJET (op_card.php, styles inline .opc-*)
   ════════════════════════════════════════════════════════════════ */
body.gn-night-mode .opc-card { background: #302020; color: #ff5555; border-color: #4a1010; box-shadow: 0 6px 12px rgba(0,0,0,.4); }
body.gn-night-mode .opc-card:hover { box-shadow: 0 10px 18px rgba(0,0,0,.5); }
body.gn-night-mode .opc-cover { background: #1a0a0a; }
body.gn-night-mode .opc-title { color: #ff3333; }
body.gn-night-mode .opc-meta { color: #ff6666; }
body.gn-night-mode .opc-desc { color: #ff5555; }
body.gn-night-mode .opc-meta-port { color: #ff6666; }
body.gn-night-mode .opc-meta-port strong { color: #ff9999; }
body.gn-night-mode .opc-corner { background: rgba(48,32,32,.9); border-color: #4a1010; color: #ff5555; }
body.gn-night-mode .opc-watermark span { color: rgba(255,100,100,.85); background: rgba(0,0,0,.4); text-shadow: 0 2px 8px rgba(255,0,0,.3); }
body.gn-night-mode .opc-add-card { background: #1a0a0a; border-color: #4a1010; color: #ff5555; }
body.gn-night-mode .opc-add-card:hover { border-color: #ff3333; }
body.gn-night-mode .opc-badge { background: #800000; color: #ffcccc; box-shadow: 0 2px 6px rgba(255,0,0,.35); }

/* ════════════════════════════════════════════════════════════════
   BOUTONS GLOBAUX — .GN-btn et variantes, .btn générique
   Toutes pages (nombreuses pages les utilisent).
   ════════════════════════════════════════════════════════════════ */
body.gn-night-mode .GN-btn,
body.gn-night-mode .GN-btn:link,
body.gn-night-mode .GN-btn:visited { background: #302020; color: #ff5555; border-color: #4a1010; }
body.gn-night-mode .GN-btn:hover { background: #4a1010; color: #ff9999; }

body.gn-night-mode .GN-btn--ghost,
body.gn-night-mode .GN-btn--ghost:link,
body.gn-night-mode .GN-btn--ghost:visited { background: #302020; color: #ff5555; border-color: #4a1010; }
body.gn-night-mode .GN-btn--ghost:hover { background: #4a1010; color: #ff9999; }

body.gn-night-mode .GN-btn--primary,
body.gn-night-mode .GN-btn--primary:link,
body.gn-night-mode .GN-btn--primary:visited { background: #600000; color: #ffcccc; border-color: transparent; }
body.gn-night-mode .GN-btn--primary:hover { background: #800000; color: #fff; }

body.gn-night-mode .GN-btn--secondary,
body.gn-night-mode .GN-btn--secondary:link,
body.gn-night-mode .GN-btn--secondary:visited { background: #302020; color: #ff5555; border-color: #600000; }
body.gn-night-mode .GN-btn--secondary:hover { background: #600000; color: #ffcccc; }

body.gn-night-mode .GN-btn--inscription,
body.gn-night-mode .GN-btn--inscription:link,
body.gn-night-mode .GN-btn--inscription:visited { background: #0a3a0a; color: #99ffaa; }
body.gn-night-mode .GN-btn--inscription:hover { background: #0a5a0a; color: #ccffcc; }

body.gn-night-mode .GN-btn--danger { background: #4a0000; color: #ff9999; border-color: #800000; }
body.gn-night-mode .GN-btn--danger:hover { background: #800000; color: #ffcccc; border-color: #ff3333; }

/* Bouton générique .btn (certaines pages) */
body.gn-night-mode .btn { background: #302020; color: #ff5555; border-color: #4a1010; }
body.gn-night-mode .btn:hover { background: #4a1010; }
body.gn-night-mode .btn-primary { background: #600000; color: #ffcccc; border-color: #600000; }
body.gn-night-mode .btn-danger { background: #4a0000; color: #ff9999; border-color: #800000; }
body.gn-night-mode .btn.subtle { background: #302020; }

/* Petits boutons compacts */
body.gn-night-mode .GN-btn-xs { background: #302020; color: #ff5555; border-color: #4a1010; }

/* ════════════════════════════════════════════════════════════════
   COMPOSANTS GLOBAUX — Bottom nav, chat IA, chat messages
   Chargés via includes sur presque toutes les pages.
   ════════════════════════════════════════════════════════════════ */

/* BB.css — Bottom nav et sheet contextuel
   ⚠️ NE PAS toucher .GM-bottomContext : c'est un mount point plein écran (top/bottom/left/right: 0)
   avec z-index: 1600 qui doit rester transparent. Lui mettre un background le fait recouvrir tout. */
body.gn-night-mode .GM-bottomNavShell,
body.gn-night-mode .GM-bottomNav { background: #000; color: #ff0000; border-color: #4a1010; }

body.gn-night-mode .GM-ctxSheet {
    background: #302020;
    color: #ff0000;
    border-color: #4a1010;
}
body.gn-night-mode .GM-ctxSheetHead { background: #4a1010; border-color: #4a1010; }
body.gn-night-mode .GM-ctxTitle { color: #ff3333; }
body.gn-night-mode .GM-ctxClose { background: #4a1010; color: #ff0000; }
body.gn-night-mode .GM-ctxClose:active { background: #600000; }
body.gn-night-mode .GM-ctxTile {
    background: #4a1010;
    color: #ff0000;
    border-color: #4a1010;
}
body.gn-night-mode .GM-ctxTileIcon { background: #600000; }
body.gn-night-mode .GM-ctxTileLabel { color: #ff0000; }
body.gn-night-mode .GM-ctxTileSub { color: #ff6666; }

body.gn-night-mode .GM-bottomNav-btn { background: #000; color: #ff0000; border-color: #4a1010; }
body.gn-night-mode .GM-bottomNav-btn.is-active,
body.gn-night-mode .GM-bottomNav-btn:hover { background: #302020; color: #ff3333; }
body.gn-night-mode .GM-bottomNav-btnIcon,
body.gn-night-mode .GM-bottomNav-btnLabel { color: #ff0000; }
body.gn-night-mode .GM-bottomNav-imgIcon {
    filter: grayscale(1) sepia(1) hue-rotate(-40deg) saturate(3) brightness(0.9);
}

/* Bouton IA flottant */
body.gn-night-mode .GM-iaBtn { background: #4a1010; color: #ff3333; border-color: #800000; }
body.gn-night-mode .GM-iaBtn:active { background: #600000; }
body.gn-night-mode .GM-iaBtn-icon { color: #ff3333; }

/* Overlay sombre (du sheet) : on le fonce un peu plus */
body.gn-night-mode .GM-ctxOverlay { background: rgba(0,0,0,0.7); }

/* Hint bulle join */
body.gn-night-mode .GM-joinHint-inner { background: #302020; color: #ff0000; border-color: #4a1010; }

/* ─── Chat IA (ai-bubble) ─── */
body.gn-night-mode .ai-bubble.ai-user { background: #302020; color: #ff0000; }
body.gn-night-mode .ai-bubble.ai-bot { background: #4a1010; color: #ff3333; }
body.gn-night-mode .ai-bubble.ai-err { background: #600000; color: #ff9999; }

/* ─── Chat messages (CH.css) ─── */
body.gn-night-mode .CH-panel,
body.gn-night-mode .CH-header,
body.gn-night-mode .CH-list,
body.gn-night-mode .CH-list-empty,
body.gn-night-mode .CH-conversation,
body.gn-night-mode .CH-conv-header,
body.gn-night-mode .CH-conv-name,
body.gn-night-mode .CH-conv-status { background: #000; color: #ff0000; border-color: #4a1010; }

body.gn-night-mode .CH-msg { color: #ff0000; }
body.gn-night-mode .CH-msg--me,
body.gn-night-mode .CH-bubble--me { background: #4a1010; color: #ff3333; }
body.gn-night-mode .CH-msg--them,
body.gn-night-mode .CH-bubble--them { background: #302020; color: #ff0000; }
body.gn-night-mode .CH-bubble-name { background: #302020; color: #ff6666; }

body.gn-night-mode .CH-back { background: #302020; color: #ff0000; }
body.gn-night-mode .CH-back:hover { background: #4a1010; }

/* Voice bubbles */
body.gn-night-mode .CH-voice-bar { background: #4a1010; }
body.gn-night-mode .CH-bubble--me .CH-voice-bar { background: #ff3333; }
body.gn-night-mode .CH-voice-bar-el { background: #ff6666; }
body.gn-night-mode .CH-bubble--me .CH-voice-bar-el { background: rgba(255, 0, 0, 0.55); }
body.gn-night-mode .CH-voice-progress { background: rgba(255, 0, 0, 0.25); }
body.gn-night-mode .CH-bubble--me .CH-voice-progress { background: rgba(255, 0, 0, 0.35); }
body.gn-night-mode .CH-voice-play { background: #4a1010; color: #ff3333; }
body.gn-night-mode .CH-bubble--me .CH-voice-play { background: #600000; color: #ff6666; }
body.gn-night-mode .CH-voice--playing .CH-voice-play { background: #800000; }

body.gn-night-mode .CH-float-badge,
body.gn-night-mode .CH-bubble-unread { background: #ff0000; color: #000; }

/* Préserver le scroll du chat */
body.gn-night-mode .CH-messages,
body.gn-night-mode .CH-list,
body.gn-night-mode .CH-conv-body { overflow-y: auto; }
