/* ==========================================================================
   FLIGHTPAPER LMS — surcharge d'identité pour ILIAS
   À concaténer À LA FIN de delos.css (ou chargé après lui).
   Ordre des blocs = ordre de la planche « Charte ILIAS v2.0 ».
   Les sélecteurs sont des PROPOSITIONS génériques (Bootstrap 3 + .il-*) :
   vérifier chaque nom de classe sur l'installation réelle et adapter.
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Archivo:wght@400;500;600;700&family=IBM+Plex+Sans:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500&display=swap');

/* --------------------------------------------------------------------------
   00 · VARIABLES
   -------------------------------------------------------------------------- */
:root {
  --fp-navy:        #0D1E33;
  --fp-navy-dark:   #0A1728;
  --fp-navy-hover:  #12324F;
  --fp-sky:         #1D5478;
  --fp-sky-tint:    #F7FBFD;
  --fp-amber:       #E8A33D;
  --fp-amber-text:  #C9891F;
  --fp-amber-ink:   #2A1B04;
  --fp-amber-bg:    #FFF6E6;
  --fp-amber-track: #F0DCB6;

  --fp-bg:          #F6F8FA;
  --fp-surface:     #FFFFFF;
  --fp-surface-alt: #FAFBFC;
  --fp-border:      #DCE3E9;
  --fp-border-in:   #EDF1F4;
  --fp-field:       #C9D3DC;
  --fp-alu:         #DDE4EA;
  --fp-grey:        #8FA6B8;
  --fp-ink-2:       #40566A;
  --fp-ink-3:       #5B6E80;

  --fp-ok:          #2F8F6F;
  --fp-ok-text:     #22664F;
  --fp-ok-bg:       #EAF3EF;
  --fp-ok-border:   #B9DACB;
  --fp-err:         #B4472F;
  --fp-err-text:    #93341F;
  --fp-err-bg:      #FBEEEB;
  --fp-err-border:  #E3BDB2;
  --fp-info-bg:     #EEF4F8;
  --fp-info-border: #BBD1DF;
  --fp-info-text:   #164A6B;

  --fp-font-title:  Archivo, "Helvetica Neue", Helvetica, Arial, sans-serif;
  --fp-font-body:   "IBM Plex Sans", "Segoe UI", Helvetica, Arial, sans-serif;
  --fp-font-mono:   "IBM Plex Mono", Menlo, Consolas, monospace;

  --fp-r-sm: 3px;
  --fp-r:    4px;
  --fp-r-lg: 6px;
}

/* --------------------------------------------------------------------------
   01 · NEUTRALISATION DES EFFETS BOOTSTRAP / ILIAS
   Poser les fonds plats AVANT de reconstruire.
   -------------------------------------------------------------------------- */
.btn, .panel, .well, .alert, .navbar, .nav-tabs > li > a,
.form-control, .table, .progress, .progress-bar, .il-item,
.dropdown-menu, .modal-content, .breadcrumb {
  background-image: none !important;
  box-shadow: none !important;
  text-shadow: none !important;
}
.progress-bar-striped, .progress.active .progress-bar { animation: none !important; }

/* --------------------------------------------------------------------------
   02 · FONDATIONS TYPOGRAPHIQUES
   -------------------------------------------------------------------------- */
body, .il-page-content, .ilBlockContent, td, th, input, select, textarea, button {
  font-family: var(--fp-font-body) !important;
}
body {
  color: var(--fp-navy) !important;
  background: var(--fp-bg) !important;
  font-size: 16px !important;
  line-height: 1.6 !important;
  -webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4, .ilHeader h1, .il-page-title, legend, .ilFormHeader {
  font-family: var(--fp-font-title) !important;
  font-weight: 600 !important;
  letter-spacing: -0.01em;
  color: var(--fp-navy) !important;
}
h1 { font-size: 30px !important; letter-spacing: -0.02em; }
h2 { font-size: 23px !important; }
h3 { font-size: 19px !important; }

a { color: var(--fp-sky) !important; text-decoration: none !important; }
a:hover, a:focus { color: var(--fp-amber-text) !important; text-decoration: underline; }

/* Classe utilitaire à poser sur toute donnée d'instrument (heures, %, dates,
   codes). À appliquer côté template quand c'est possible. */
.fp-data, .fp-mono {
  font-family: var(--fp-font-mono) !important;
  letter-spacing: 0.04em;
}
.fp-label {
  font-family: var(--fp-font-mono) !important;
  font-size: 11px !important;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--fp-ink-2) !important;
}

/* --------------------------------------------------------------------------
   03 · BOUTONS — une seule action primaire ambre par écran
   -------------------------------------------------------------------------- */
.btn {
  border-radius: var(--fp-r-sm) !important;
  font-family: var(--fp-font-body) !important;
  font-weight: 600 !important;
  text-transform: none !important;
  padding: 10px 18px !important;
  border-width: 1.5px !important;
  transition: background-color 120ms ease-out, border-color 120ms ease-out;
}
.btn-primary, .btn.btn-primary:link {
  background: var(--fp-amber) !important;
  border-color: var(--fp-amber) !important;
  color: var(--fp-amber-ink) !important;
}
.btn-primary:hover, .btn-primary:focus, .btn-primary:active {
  background: #D8942F !important;
  border-color: #D8942F !important;
  color: var(--fp-amber-ink) !important;
}
.btn-default, .btn-secondary {
  background: transparent !important;
  border-color: var(--fp-navy) !important;
  color: var(--fp-navy) !important;
}
.btn-default:hover, .btn-secondary:hover {
  background: var(--fp-bg) !important;
  color: var(--fp-navy) !important;
}
/* Tertiaire : actions de tableau / barres d'outils */
.ilTableCommandRow .btn, .il-viewcontrol .btn, .btn.btn-sm.btn-default {
  border-width: 1px !important;
  border-color: var(--fp-field) !important;
  color: var(--fp-ink-2) !important;
  font-weight: 500 !important;
}
.btn-link { color: var(--fp-sky) !important; border-color: transparent !important; font-weight: 500 !important; }
.btn-danger {
  background: transparent !important;
  border-color: var(--fp-err) !important;
  color: var(--fp-err-text) !important;
}
.btn-danger:hover { background: var(--fp-err-bg) !important; color: var(--fp-err-text) !important; }
.btn[disabled], .btn.disabled {
  background: #EEF1F4 !important;
  border-color: var(--fp-border) !important;
  color: #A9B7C3 !important;
  opacity: 1 !important;
}
.btn:focus-visible, a:focus-visible, .form-control:focus-visible {
  outline: 2px solid var(--fp-sky) !important;
  outline-offset: 2px !important;
}

/* --------------------------------------------------------------------------
   04 · FORMULAIRES
   -------------------------------------------------------------------------- */
.form-control, input[type="text"], input[type="password"], input[type="email"],
input[type="number"], input[type="date"], select, textarea {
  border: 1px solid var(--fp-field) !important;
  border-radius: var(--fp-r-sm) !important;
  background: var(--fp-surface) !important;
  color: var(--fp-navy) !important;
  font-size: 14.5px !important;
  padding: 10px 12px !important;
  height: auto !important;      /* ne pas imposer de hauteur fixe à ILIAS */
}
.form-control:focus, select:focus, textarea:focus {
  border: 1.5px solid var(--fp-sky) !important;
  background: var(--fp-sky-tint) !important;
  box-shadow: none !important;
}
input[type="number"], input[type="date"], input[type="time"],
input.fp-data, .ilFormValueMono {
  font-family: var(--fp-font-mono) !important;
}
.control-label, .form-group > label, .ilFormOptionLabel {
  font-family: var(--fp-font-mono) !important;
  font-size: 11px !important;
  font-weight: 400 !important;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--fp-ink-2) !important;
}
.control-label .asterisk, .required, .ilFormRequired { color: var(--fp-err) !important; }
.help-block, .ilFormInfo { font-size: 12.5px !important; color: var(--fp-ink-3) !important; }

.has-error .form-control, .ilFormError input, .ilFormError select {
  border: 1.5px solid var(--fp-err) !important;
  background: #FDF7F5 !important;
}
.has-error .help-block, .has-error .control-label, .ilFormMessageError {
  color: var(--fp-err-text) !important;
}
.has-success .form-control { border-color: var(--fp-ok) !important; }

input[type="checkbox"], input[type="radio"] { accent-color: var(--fp-sky); }
fieldset, .ilFormFieldset {
  border: 1px solid var(--fp-border) !important;
  border-radius: var(--fp-r) !important;
  background: var(--fp-surface) !important;
}
legend, .ilFormHeader {
  font-size: 16px !important;
  padding: 0 8px !important;
  border: 0 !important;
}

/* --------------------------------------------------------------------------
   05 · TABLEAUX
   -------------------------------------------------------------------------- */
.table {
  background: var(--fp-surface) !important;
  border: 1px solid var(--fp-border) !important;
  border-radius: var(--fp-r-lg) !important;
  border-collapse: separate !important;
  overflow: hidden;
}
.table > thead > tr > th, .ilTableHeader, .ilTableHeader th {
  background: var(--fp-navy) !important;
  color: #F2F5F8 !important;
  font-family: var(--fp-font-mono) !important;
  font-size: 11px !important;
  font-weight: 400 !important;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  border: 0 !important;
  padding: 12px 14px !important;
  vertical-align: middle !important;
}
.table > thead > tr > th a { color: #F2F5F8 !important; }
/* Colonne de tri active : la flèche seule est ambre */
.table > thead > tr > th.ilSortActive a,
.table > thead > tr > th[aria-sort] a { color: var(--fp-amber) !important; }

.table > tbody > tr > td {
  border-top: 1px solid var(--fp-border-in) !important;
  padding: 12px 14px !important;
  font-size: 14px !important;
  color: var(--fp-navy) !important;
  vertical-align: middle !important;
}
.table-striped > tbody > tr:nth-child(even) > td,
.ilTableRow2 > td { background: var(--fp-surface-alt) !important; }
.table > tbody > tr:hover > td { background: var(--fp-bg) !important; }

.ilTableFooter, .ilTableFilter, .il-viewcontrol-container {
  background: var(--fp-bg) !important;
  border-top: 1px solid var(--fp-border) !important;
  font-family: var(--fp-font-mono) !important;
  font-size: 11.5px !important;
  letter-spacing: 0.08em;
  color: var(--fp-ink-3) !important;
}
.pagination > li > a, .pagination > li > span {
  border: 1px solid var(--fp-field) !important;
  border-radius: var(--fp-r-sm) !important;
  margin-left: 6px !important;
  color: var(--fp-ink-2) !important;
  font-family: var(--fp-font-mono) !important;
  padding: 6px 11px !important;
}
.pagination > .active > a, .pagination > .active > span {
  background: var(--fp-navy) !important;
  border-color: var(--fp-navy) !important;
  color: #FFFFFF !important;
}

/* --------------------------------------------------------------------------
   06 · ALERTES, MESSAGES SYSTÈME, TOASTS
   -------------------------------------------------------------------------- */
.alert, .il-system-message, .ilFailureMessage, .ilSuccessMessage, .ilInfoMessage {
  border-radius: var(--fp-r) !important;
  border-width: 1px !important;
  border-left-width: 3px !important;
  border-style: solid !important;
  padding: 14px 18px !important;
  font-size: 13.5px !important;
  line-height: 1.55 !important;
}
.alert h4, .alert strong, .il-system-message strong {
  font-family: var(--fp-font-title) !important;
  font-weight: 600 !important;
  font-size: 14.5px !important;
}
.alert-success, .ilSuccessMessage {
  background: var(--fp-ok-bg) !important;
  border-color: var(--fp-ok-border) !important;
  border-left-color: var(--fp-ok) !important;
  color: var(--fp-ok-text) !important;
}
.alert-danger, .ilFailureMessage {
  background: var(--fp-err-bg) !important;
  border-color: var(--fp-err-border) !important;
  border-left-color: var(--fp-err) !important;
  color: var(--fp-err-text) !important;
}
.alert-info, .ilInfoMessage {
  background: var(--fp-info-bg) !important;
  border-color: var(--fp-info-border) !important;
  border-left-color: var(--fp-sky) !important;
  color: var(--fp-info-text) !important;
}
.alert-warning {
  background: var(--fp-amber-bg) !important;
  border-color: #EBD3A6 !important;
  border-left-color: var(--fp-amber) !important;
  color: #8A5C10 !important;
}
/* Glyphe : masquer l'icône native, poser un repère mono */
.alert > .glyphicon, .il-system-message .glyph { display: none !important; }
.alert-danger::before   { content: "!"; }
.alert-info::before     { content: "i"; }
.alert-warning::before  { content: "\25B3"; }
.alert-success::before  { content: "\2713"; }
.alert::before {
  font-family: var(--fp-font-mono) !important;
  margin-right: 10px;
  font-size: 15px;
  opacity: 0.9;
}
/* Toasts : hors patron, bleu nuit plein */
.il-toast, .il-toast-item {
  background: var(--fp-navy) !important;
  border: 0 !important;
  border-radius: var(--fp-r) !important;
  color: #F2F5F8 !important;
}

/* --------------------------------------------------------------------------
   07 · RÉPERTOIRE — LISTES D'OBJETS, BREADCRUMB
   -------------------------------------------------------------------------- */
.il-item, .ilContainerListItem, .il-std-item {
  background: var(--fp-surface) !important;
  border: 1px solid var(--fp-border) !important;
  border-left: 3px solid var(--fp-sky) !important;
  border-radius: var(--fp-r) !important;
  margin-bottom: 8px !important;
  padding: 14px 18px !important;
}
.il-item:hover, .ilContainerListItem:hover { background: var(--fp-bg) !important; }
.il-item-title, .il-item-title a, .ilContainerListItem .il_ContainerItemTitle a {
  font-family: var(--fp-font-title) !important;
  font-weight: 600 !important;
  font-size: 15.5px !important;
  color: var(--fp-navy) !important;
}
.il-item-description, .il-item-properties, .ilListItemSection {
  font-size: 13px !important;
  color: var(--fp-ink-3) !important;
}
.il-item-properties .il_ItemProperty { font-family: var(--fp-font-mono) !important; font-size: 11.5px !important; }
/* Icônes sprite : désaturer + encadrer plutôt que recolorer */
.il-item-icon, .ilContainerListItemIcon {
  width: 34px !important; height: 34px !important;
  border: 1.5px solid var(--fp-sky) !important;
  border-radius: var(--fp-r-sm) !important;
  display: flex !important; align-items: center; justify-content: center;
}
.il-item-icon img, .ilContainerListItemIcon img {
  filter: grayscale(1) opacity(0.75) !important;
  max-width: 20px !important; max-height: 20px !important;
}
/* États d'objet : la bordure gauche porte l'information */
.il-item.fp-offline, .ilContainerListItem.ilContainerOffline { border-left-color: var(--fp-grey) !important; }
.il-item.fp-inprogress { border-left-color: var(--fp-amber) !important; background: #FFFCF6 !important; }
.il-item.fp-done       { border-left-color: var(--fp-ok) !important; }

.badge, .label {
  border-radius: 999px !important;
  font-family: var(--fp-font-body) !important;
  font-weight: 600 !important;
  font-size: 12px !important;
  padding: 4px 11px !important;
  border: 1px solid transparent !important;
  background: #F0F3F6 !important;
  color: var(--fp-ink-3) !important;
  border-color: var(--fp-field) !important;
}
.label-success, .badge.fp-active {
  background: var(--fp-ok-bg) !important; color: var(--fp-ok-text) !important; border-color: var(--fp-ok) !important;
}
.label-warning, .badge.fp-pending {
  background: var(--fp-amber-bg) !important; color: var(--fp-amber-text) !important; border-color: var(--fp-amber) !important;
}
.label-danger, .badge.fp-expired {
  background: var(--fp-err-bg) !important; color: var(--fp-err-text) !important; border-color: var(--fp-err) !important;
}

.breadcrumb, .il-breadcrumbs {
  background: var(--fp-bg) !important;
  border-bottom: 1px solid var(--fp-border) !important;
  border-radius: 0 !important;
  font-family: var(--fp-font-mono) !important;
  font-size: 12px !important;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 12px 24px !important;
  margin-bottom: 0 !important;
}
.breadcrumb > li + li::before { content: "\203A" !important; color: var(--fp-grey) !important; }
.breadcrumb > .active { color: var(--fp-navy) !important; }

/* --------------------------------------------------------------------------
   08 · NAVIGATION PRINCIPALE ET LATÉRALE, ONGLETS
   Décision de charte : une seule masse sombre continue (pas de gris neutre).
   -------------------------------------------------------------------------- */
.il-mainbar, .il-maincontrols-slate, .il-mainbar-tools-button,
.ilLeftNav, .il-metabar {
  background: var(--fp-navy-dark) !important;
  border-color: #1B3A57 !important;
}
.il-mainbar-entries button, .il-maincontrols-slate a,
.il-maincontrols-slate button, .ilLeftNav a {
  color: #C4D2DE !important;
  font-size: 14.5px !important;
  border-left: 3px solid transparent !important;
  background: transparent !important;
}
.il-mainbar-entries button:hover, .il-maincontrols-slate a:hover, .ilLeftNav a:hover {
  background: var(--fp-navy-hover) !important;
  color: #FFFFFF !important;
}
.il-mainbar-entries button.engaged, .il-maincontrols-slate a.active, .ilLeftNav a.active {
  background: var(--fp-navy-hover) !important;
  color: #FFFFFF !important;
  border-left-color: var(--fp-amber) !important;
  font-weight: 500 !important;
}
/* Icônes de nav : inline SVG -> currentColor ; sprites -> filtre */
.il-mainbar-entries button svg, .ilLeftNav svg { stroke: currentColor !important; fill: none !important; }
.il-mainbar-entries button img, .ilLeftNav img {
  filter: brightness(0) invert(1) opacity(0.62) !important;
}
.il-mainbar-entries button.engaged img { filter: none !important; }
.il-counter, .il-counter-notification {
  background: var(--fp-amber) !important;
  color: var(--fp-amber-ink) !important;
  font-family: var(--fp-font-mono) !important;
  border-radius: 999px !important;
}

.nav-tabs { border-bottom: 1px solid var(--fp-border) !important; }
.nav-tabs > li > a {
  background: transparent !important;
  border: 0 !important;
  border-bottom: 2px solid transparent !important;
  border-radius: 0 !important;
  color: var(--fp-ink-2) !important;
  font-size: 14px !important;
  padding: 10px 16px !important;
}
.nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus {
  background: transparent !important;
  color: var(--fp-navy) !important;
  font-weight: 600 !important;
  border-bottom: 2px solid var(--fp-amber) !important;
}
.ilTabsContentOuter { background: var(--fp-surface) !important; border: 0 !important; }

/* --------------------------------------------------------------------------
   09 · PROGRESSION, BADGES, STATUTS D'APPRENTISSAGE
   -------------------------------------------------------------------------- */
.progress {
  height: 8px !important;
  background: var(--fp-alu) !important;
  border-radius: 999px !important;
  overflow: hidden !important;
  margin-bottom: 5px !important;
}
.progress-bar {
  background: var(--fp-amber) !important;
  border-radius: 999px !important;
  box-shadow: none !important;
}
.progress-bar[aria-valuenow="100"], .progress-bar.fp-done { background: var(--fp-ok) !important; }
/* Le pourcentage sort de la barre : le poser à côté, en mono */
.progress-bar span, .il-progress-label {
  font-family: var(--fp-font-mono) !important;
  font-size: 12px !important;
  color: var(--fp-amber-text) !important;
}

/* Statuts d'apprentissage : puce texte, pas de pastille de couleur seule */
.ilLPStatusCompleted, .ilLPStatusInProgress, .ilLPStatusNotAttempted, .ilLPStatusFailed {
  border-radius: 999px !important;
  padding: 4px 11px !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  border: 1px solid transparent !important;
}
.ilLPStatusCompleted   { background: var(--fp-ok-bg) !important;    color: var(--fp-ok-text) !important;    border-color: var(--fp-ok) !important; }
.ilLPStatusInProgress  { background: var(--fp-amber-bg) !important; color: var(--fp-amber-text) !important; border-color: var(--fp-amber) !important; }
.ilLPStatusNotAttempted{ background: #F0F3F6 !important;            color: var(--fp-ink-3) !important;      border-color: var(--fp-field) !important; }
.ilLPStatusFailed      { background: var(--fp-err-bg) !important;   color: var(--fp-err-text) !important;   border-color: var(--fp-err) !important; }

.il-badge, .il-badge-image, .ilBadgeImage {
  border-radius: 50% !important;
  width: 46px !important; height: 46px !important;
  object-fit: cover !important;
  border: 2px solid var(--fp-ok) !important;
  background: var(--fp-navy) !important;
}
.il-badge.fp-locked     { border-style: dashed !important; border-color: var(--fp-grey) !important; filter: grayscale(1); }
.il-badge.fp-inprogress { border-color: var(--fp-amber) !important; }
.il-badge.fp-tier {
  border-radius: 0 !important;
  border: 0 !important;
  background: var(--fp-sky) !important;
  clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
}

/* Validation instructeur : toujours auteur + horodatage */
.fp-signature {
  display: inline-flex; align-items: center; gap: 8px;
  background: var(--fp-ok-bg); border: 1px solid var(--fp-ok);
  border-radius: 999px; padding: 6px 12px;
  font-size: 12.5px; font-weight: 600; color: var(--fp-ok-text);
}
.fp-signature-meta {
  font-family: var(--fp-font-mono); font-size: 11.5px; color: var(--fp-ink-3);
}

/* États vides */
.il-no-content, .ilNoContent, .il-standard-form-nocontent {
  border: 1px dashed var(--fp-field) !important;
  border-radius: var(--fp-r) !important;
  background: #FBFCFD !important;
  color: var(--fp-ink-3) !important;
  text-align: center;
  padding: 26px !important;
}

/* --------------------------------------------------------------------------
   10 · CALENDRIER
   -------------------------------------------------------------------------- */
.ilCalendarMonth, .ilCalendarWeek {
  background: var(--fp-surface) !important;
  border: 1px solid var(--fp-border) !important;
  border-radius: var(--fp-r-lg) !important;
  overflow: hidden;
}
.ilCalendarMonth th, .ilCalendarHeader {
  background: var(--fp-bg) !important;
  font-family: var(--fp-font-mono) !important;
  font-size: 10.5px !important;
  font-weight: 400 !important;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--fp-ink-3) !important;
  border-bottom: 1px solid var(--fp-border) !important;
}
.ilCalendarMonth td {
  border: 1px solid var(--fp-border-in) !important;
  vertical-align: top !important;
  padding: 8px 10px !important;
}
.ilCalendarMonthDay, .ilCalendarDayNumber {
  font-family: var(--fp-font-mono) !important;
  font-size: 12px !important;
  color: var(--fp-ink-2) !important;
}
.ilCalendarWeekend, td.weekend { background: #FCFDFE !important; }
th.weekend, .ilCalendarMonth th.weekend { color: var(--fp-amber-text) !important; }
/* Jour courant : inverse vidéo, pas de pastille */
.ilCalendarToday, td.today {
  background: var(--fp-navy) !important;
  border-color: var(--fp-navy) !important;
}
.ilCalendarToday .ilCalendarDayNumber, td.today .ilCalendarDayNumber {
  color: var(--fp-amber) !important;
  font-weight: 500 !important;
}
/* Événements : fond pâle + bordure gauche 3 px codant la nature */
.ilCalendarAppointment, .ilCalendarEntry, .fc-event {
  background: var(--fp-info-bg) !important;
  border: 0 !important;
  border-left: 3px solid var(--fp-sky) !important;
  border-radius: 0 !important;
  color: var(--fp-info-text) !important;
  font-size: 11.5px !important;
  padding: 4px 7px !important;
  margin-bottom: 4px !important;
}
.ilCalendarAppointment.fp-theory { background: var(--fp-ok-bg) !important;    border-left-color: var(--fp-ok) !important;  color: var(--fp-ok-text) !important; }
.ilCalendarAppointment.fp-step   { background: var(--fp-amber-bg) !important; border-left-color: var(--fp-amber) !important; color: #8A5C10 !important; }
.ilCalendarAppointment.fp-blocked{ background: var(--fp-err-bg) !important;   border-left-color: var(--fp-err) !important;  color: var(--fp-err-text) !important; }
.ilCalendarToday .ilCalendarAppointment {
  background: #17222B !important; border-left-color: var(--fp-amber) !important; color: #F7E9CE !important;
}

/* --------------------------------------------------------------------------
   11 · PAGE DE CONNEXION — seule surface où un dégradé est autorisé
   -------------------------------------------------------------------------- */
body.login, .il-layout-page.login, .ilLoginPage {
  background: linear-gradient(179deg, #071120 0%, #0D1E33 38%, #16456A 74%, #1D5478 100%) !important;
  background-attachment: fixed !important;
}
body.login h1, .ilLoginPage h1, body.login .il-page-title {
  font-family: var(--fp-font-title) !important;
  color: #F2F5F8 !important;
  letter-spacing: -0.02em;
}
#login_form, .ilLoginFormBox, .ilLoginBox {
  background: var(--fp-bg) !important;
  border: 0 !important;
  border-radius: var(--fp-r-lg) !important;
  box-shadow: none !important;
  max-width: 420px !important;
  padding: 32px 30px !important;
}
#login_form .btn-primary, .ilLoginFormBox .btn-primary { width: 100% !important; }

/* --------------------------------------------------------------------------
   12 · ADMINISTRATION — cohérence sans décoration ajoutée
   Densité préservée : pas de cartes, pas d'aération supplémentaire.
   -------------------------------------------------------------------------- */
.ilAdministrationContent .form-group { margin-bottom: 14px !important; }
.ilAdministrationContent .table > tbody > tr > td { padding: 8px 12px !important; font-size: 13.5px !important; }
.ilAdministrationContent { background: var(--fp-surface) !important; }
.ilPropertyFormFooter, .ilFormFooter {
  background: var(--fp-bg) !important;
  border-top: 1px solid var(--fp-border) !important;
}

/* --------------------------------------------------------------------------
   13 · MODE SOMBRE
   Rattacher au commutateur natif s'il existe ; sinon la media query.
   L'ambre est invariant. Verts / rouges / liens s'éclaircissent.
   Les lignes alternées s'assombrissent au lieu de s'éclaircir.
   -------------------------------------------------------------------------- */
html[data-theme="dark"], .il-theme-dark {
  --fp-bg:          #071120;
  --fp-surface:     #0F2237;
  --fp-surface-alt: #0C1D30;
  --fp-navy:        #F2F5F8;   /* couleur de texte principale */
  --fp-navy-dark:   #0A1728;
  --fp-navy-hover:  #12324F;
  --fp-border:      #1B3A57;
  --fp-border-in:   #16324B;
  --fp-field:       #24466A;
  --fp-alu:         #24466A;
  --fp-ink-2:       #C4D2DE;
  --fp-ink-3:       #8FA6B8;
  --fp-sky:         #7FB3D5;
  --fp-sky-tint:    #0C2338;
  --fp-ok:          #2F8F6F;
  --fp-ok-text:     #4FBF98;
  --fp-ok-bg:       #12352A;
  --fp-ok-border:   #235845;
  --fp-err:         #B4472F;
  --fp-err-text:    #E5806A;
  --fp-err-bg:      #33150E;
  --fp-err-border:  #6B2A1B;
  --fp-info-bg:     #16283A;
  --fp-info-border: #24466A;
  --fp-info-text:   #C4D2DE;
  --fp-amber-bg:    #17222B;
}
html[data-theme="dark"] .table > thead > tr > th,
.il-theme-dark .table > thead > tr > th { background: var(--fp-navy-hover) !important; color: #C4D2DE !important; }
html[data-theme="dark"] .btn-default, .il-theme-dark .btn-default {
  border-color: var(--fp-grey) !important; color: #E4EBF1 !important;
}
html[data-theme="dark"] .alert-warning, .il-theme-dark .alert-warning {
  border-color: #6B4E1C !important; color: #F7E9CE !important;
}
html[data-theme="dark"] .il-item-icon img, .il-theme-dark .il-item-icon img {
  filter: grayscale(1) invert(1) opacity(0.8) !important;
}
/* Pas de dégradé de connexion à réécrire : il est déjà en valeurs nuit. */

@media (prefers-color-scheme: dark) {
  /* Dupliquer le bloc ci-dessus ici si aucun commutateur de thème n'existe
     côté ILIAS. Ne pas activer les deux mécanismes simultanément. */
}

/* --------------------------------------------------------------------------
   14 · ACCESSIBILITÉ ET MOUVEMENT
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; animation: none !important; }
}
