/* Mini gestionnaire de fichiers — thème Bootstrap 5 « flat », clair et sombre (data-bs-theme) */
:root, [data-bs-theme="light"] {
  --fm-accent: #2563eb;          /* liens, icônes, éléments actifs */
  --fm-accent-hover: #1d4ed8;
  --fm-accent-soft: #eaf1fe;
  --fm-btn: #2563eb;             /* fond des boutons principaux (texte blanc) */
  --fm-btn-hover: #1d4ed8;
  --fm-btn-active: #1e40af;
  --fm-bg: #f3f5f8;
  --fm-surface: #ffffff;
  --fm-subtle: #fafbfc;          /* en-têtes de tableau */
  --fm-hover: #f5f7fa;           /* survol de ligne */
  --fm-press: #eef1f5;           /* survol de bouton */
  --fm-active: #e5e9ef;
  --fm-border: #e2e6ec;
  --fm-border-strong: #d3d9e1;
  --fm-text: #1f2937;
  --fm-muted: #6b7280;
  --fm-faint: #c3cad5;           /* icônes d'état vide, puces */
  --fm-folder: #f5b400;
  --fm-ok-bg: #dcfce7;   --fm-ok: #15803d;
  --fm-warn-bg: #fef3c7; --fm-warn: #92400e;
  --fm-bad-bg: #fee2e2;  --fm-bad: #b91c1c;
  --fm-danger-border: #f1c7c7;
  --fm-overlay: rgba(37, 99, 235, .08);
  color-scheme: light;
}
[data-bs-theme="dark"] {
  --fm-accent: #6ea2ff;
  --fm-accent-hover: #93baff;
  --fm-accent-soft: rgba(110, 162, 255, .16);
  --fm-btn: #2f6fe0;
  --fm-btn-hover: #3d7cf0;
  --fm-btn-active: #2560c7;
  --fm-bg: #0f1318;
  --fm-surface: #171c23;
  --fm-subtle: #1a2029;
  --fm-hover: #1d242d;
  --fm-press: #232b35;
  --fm-active: #2a3440;
  --fm-border: #2a313b;
  --fm-border-strong: #3a4350;
  --fm-text: #e6e9ee;
  --fm-muted: #9aa4b2;
  --fm-faint: #4b5563;
  --fm-folder: #f5b400;
  --fm-ok-bg: rgba(34, 197, 94, .15);   --fm-ok: #4ade80;
  --fm-warn-bg: rgba(245, 158, 11, .16); --fm-warn: #fbbf24;
  --fm-bad-bg: rgba(239, 68, 68, .16);   --fm-bad: #f87171;
  --fm-danger-border: rgba(248, 113, 113, .45);
  --fm-overlay: rgba(110, 162, 255, .10);
  color-scheme: dark;
}
:root, [data-bs-theme="light"], [data-bs-theme="dark"] {
  --bs-body-bg: var(--fm-bg);
  --bs-body-color: var(--fm-text);
  --bs-emphasis-color: var(--fm-text);
  --bs-body-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --bs-border-color: var(--fm-border);
  --bs-border-radius: .375rem;
  --bs-link-color: var(--fm-accent);
  --bs-link-hover-color: var(--fm-accent-hover);
  --bs-secondary-color: var(--fm-muted);
  --bs-tertiary-bg: var(--fm-press);
}
[data-bs-theme="light"], :root { --bs-link-color-rgb: 37, 99, 235; --bs-link-hover-color-rgb: 29, 78, 216; }
[data-bs-theme="dark"] { --bs-link-color-rgb: 110, 162, 255; --bs-link-hover-color-rgb: 147, 186, 255; }
body { transition: background-color .2s ease, color .2s ease; }

/* Flat : aucune ombre, pas de dégradé, focus discret */
*, .btn, .form-control, .form-select, .dropdown-menu, .modal-content, .card, .alert { box-shadow: none !important; }
.form-control:focus, .form-select:focus, .form-check-input:focus { border-color: var(--fm-accent); box-shadow: 0 0 0 3px var(--fm-accent-soft) !important; }
.btn:focus-visible { outline: 2px solid var(--fm-accent); outline-offset: 2px; }

.btn { font-weight: 500; border-radius: var(--bs-border-radius); }
.btn-primary {
  --bs-btn-color: #fff; --bs-btn-hover-color: #fff; --bs-btn-active-color: #fff; --bs-btn-disabled-color: #fff;
  --bs-btn-bg: var(--fm-btn); --bs-btn-border-color: var(--fm-btn);
  --bs-btn-hover-bg: var(--fm-btn-hover); --bs-btn-hover-border-color: var(--fm-btn-hover);
  --bs-btn-active-bg: var(--fm-btn-active); --bs-btn-active-border-color: var(--fm-btn-active);
  --bs-btn-disabled-bg: var(--fm-btn); --bs-btn-disabled-border-color: var(--fm-btn);
}
.btn-outline-secondary {
  --bs-btn-color: var(--fm-text); --bs-btn-bg: var(--fm-surface); --bs-btn-border-color: var(--fm-border);
  --bs-btn-hover-color: var(--fm-text); --bs-btn-hover-bg: var(--fm-press); --bs-btn-hover-border-color: var(--fm-border-strong);
  --bs-btn-active-color: var(--fm-text); --bs-btn-active-bg: var(--fm-active); --bs-btn-active-border-color: var(--fm-border-strong);
}
.btn-outline-danger { --bs-btn-bg: var(--fm-surface); --bs-btn-border-color: var(--fm-danger-border); --bs-btn-color: var(--fm-bad); --bs-btn-hover-bg: var(--fm-bad-bg); --bs-btn-hover-color: var(--fm-bad); --bs-btn-hover-border-color: var(--fm-danger-border); --bs-btn-active-bg: var(--fm-bad-bg); --bs-btn-active-color: var(--fm-bad); }
.btn-ghost {
  --bs-btn-color: var(--fm-muted); --bs-btn-bg: transparent; --bs-btn-border-color: transparent;
  --bs-btn-hover-color: var(--fm-text); --bs-btn-hover-bg: var(--fm-press); --bs-btn-hover-border-color: transparent;
  --bs-btn-active-color: var(--fm-accent); --bs-btn-active-bg: var(--fm-accent-soft); --bs-btn-active-border-color: transparent;
}
.btn-ghost.active { color: var(--fm-accent); background: var(--fm-accent-soft); }

.dropdown-menu { --bs-dropdown-bg: var(--fm-surface); --bs-dropdown-link-color: var(--fm-text); --bs-dropdown-link-hover-bg: var(--fm-press); --bs-dropdown-link-hover-color: var(--fm-text); --bs-dropdown-link-active-bg: var(--fm-btn); --bs-dropdown-divider-bg: var(--fm-border); border-color: var(--fm-border); padding: .35rem; }
.dropdown-item.text-danger { color: var(--fm-bad) !important; }
.dropdown-item { border-radius: .25rem; font-size: .9rem; padding: .4rem .65rem; }
.dropdown-item:active { background: var(--fm-btn); color: #fff; }
.dropdown-item:disabled { opacity: .45; }
.modal-content { --bs-modal-bg: var(--fm-surface); border: 1px solid var(--fm-border); }
.form-control, .form-select { background-color: var(--fm-bg); border-color: var(--fm-border); color: var(--fm-text); }
.form-control:focus, .form-select:focus { background-color: var(--fm-surface); color: var(--fm-text); }
.form-control::placeholder { color: var(--fm-muted); }
.form-control[readonly] { background-color: var(--fm-bg); }
.text-muted { color: var(--fm-muted) !important; }
.modal-header, .modal-footer { border-color: var(--fm-border); }
.alert { border-width: 0 0 0 4px; border-radius: .25rem; }
.min-w-0 { min-width: 0; }
.text-folder { color: var(--fm-folder) !important; }
.text-purple { color: #7c3aed !important; }

/* Barre supérieure */
.fm-topbar { background: var(--fm-surface); border-bottom: 1px solid var(--fm-border); padding: .55rem 0; position: sticky; top: 0; z-index: 1020; }
.fm-brand { display: flex; align-items: center; gap: .6rem; font-weight: 700; color: var(--fm-text); text-decoration: none; white-space: nowrap; }
.fm-logo { display: inline-grid; place-items: center; width: 34px; height: 34px; border-radius: .375rem; background: var(--fm-btn); color: #fff; font-size: 1.05rem; }
.fm-logo-lg { width: 56px; height: 56px; font-size: 1.6rem; border-radius: .5rem; }
.fm-avatar { display: inline-grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: var(--fm-accent-soft); color: var(--fm-accent); font-weight: 700; font-size: .85rem; }
.fm-search { position: relative; align-items: center; flex: 1; max-width: 420px; }
.fm-search i { position: absolute; left: .75rem; color: var(--fm-muted); pointer-events: none; }
.fm-search .form-control { padding-left: 2.2rem; background: var(--fm-bg); border-color: transparent; }
.fm-search .form-control:focus { background: var(--fm-surface); }

/* Surfaces */
.fm-card { background: var(--fm-surface); border: 1px solid var(--fm-border); border-radius: .5rem; }
.fm-section-title { font-weight: 600; margin-bottom: 1rem; }
.fm-crumbs { font-size: .95rem; }
.fm-crumbs a { text-decoration: none; }
.fm-crumbs .breadcrumb-item.active { color: var(--fm-text); font-weight: 600; }

/* Tableau */
.fm-table { --bs-table-bg: transparent; --bs-table-color: var(--fm-text); --bs-table-hover-bg: var(--fm-hover); --bs-table-hover-color: var(--fm-text); }
.fm-table > :not(caption) > * > * { padding: .7rem 1rem; border-color: var(--fm-border); }
.fm-table thead th { font-size: .75rem; text-transform: uppercase; letter-spacing: .04em; color: var(--fm-muted); font-weight: 600; background: var(--fm-subtle); }
.fm-table tbody tr:last-child > * { border-bottom: 0; }
.fm-row-link { color: var(--fm-text); text-decoration: none; font-weight: 500; }
.fm-row-link:hover { color: var(--fm-accent); }
.fm-row-icon { font-size: 1.2rem; margin-right: .6rem; vertical-align: -2px; }

/* Badges */
.fm-badge-ver { background: var(--fm-accent-soft); color: var(--fm-accent); font-weight: 600; }
.fm-badge-cur { background: var(--fm-ok-bg); color: var(--fm-ok); font-weight: 600; }
.fm-badge-lock { background: var(--fm-warn-bg); color: var(--fm-warn); font-weight: 500; }
.fm-badge-log { background: var(--fm-press); color: var(--fm-text); font-weight: 500; }
.fm-log-login, .fm-log-upload, .fm-log-restore, .fm-log-restore_version { background: var(--fm-ok-bg); color: var(--fm-ok); }
.fm-log-new_version { background: var(--fm-accent-soft); color: var(--fm-accent); }
.fm-log-trash, .fm-log-purge, .fm-log-delete_version, .fm-log-folder_delete, .fm-log-login_refused { background: var(--fm-bad-bg); color: var(--fm-bad); }
.fm-log-lock, .fm-log-unlock { background: var(--fm-warn-bg); color: var(--fm-warn); }

/* Détail fichier */
.fm-file-icon-lg { width: 56px; height: 56px; display: grid; place-items: center; background: var(--fm-bg); border-radius: .5rem; font-size: 1.8rem; }
.fm-timeline { list-style: none; margin: 0; padding: .5rem 1.5rem 1.5rem 2.6rem; position: relative; }
.fm-timeline::before { content: ""; position: absolute; left: 1.55rem; top: 1rem; bottom: 2rem; width: 2px; background: var(--fm-border); }
.fm-timeline li { position: relative; padding: 1rem 0; border-bottom: 1px solid var(--fm-border); }
.fm-timeline li:last-child { border-bottom: 0; }
.fm-tl-dot { position: absolute; left: -1.33rem; top: 1.3rem; width: 12px; height: 12px; border-radius: 50%; background: var(--fm-surface); border: 2px solid var(--fm-faint); }
.fm-timeline li.is-current .fm-tl-dot { background: var(--fm-accent); border-color: var(--fm-accent); }
.fm-tl-comment { margin-top: .4rem; padding: .5rem .75rem; background: var(--fm-bg); border-radius: .375rem; font-size: .9rem; }

/* États vides */
.fm-empty { text-align: center; padding: 3.5rem 1rem; color: var(--fm-muted); }
.fm-empty > i { font-size: 2.6rem; display: block; margin-bottom: .75rem; color: var(--fm-faint); }

/* Connexion */
.fm-login { min-height: 100vh; display: grid; place-items: center; padding: 1.5rem; }
.fm-login-card { width: 100%; max-width: 400px; background: var(--fm-surface); border: 1px solid var(--fm-border); border-radius: .5rem; padding: 2rem; }
.fm-otp { text-align: center; letter-spacing: .6em; font-size: 1.6rem; font-variant-numeric: tabular-nums; padding-left: 1.2em; }

/* Dépôt glisser-déposer */
.fm-drop-overlay { position: fixed; inset: 0; z-index: 2000; display: none; place-items: center; background: var(--fm-overlay); border: 3px dashed var(--fm-accent); }
.fm-drop-overlay.show { display: grid; }
.fm-drop-overlay > div { background: var(--fm-surface); border: 1px solid var(--fm-border); border-radius: .5rem; padding: 2rem 2.5rem; text-align: center; }
.fm-drop-overlay i { font-size: 2.8rem; color: var(--fm-accent); }
.fm-drop-overlay p { margin: .5rem 0 0; font-weight: 600; }
.fm-upload-toast { position: fixed; right: 1.25rem; bottom: 1.25rem; z-index: 2001; width: 320px; max-width: calc(100vw - 2.5rem); background: var(--fm-surface); border: 1px solid var(--fm-border); border-radius: .5rem; padding: 1rem; }
.fm-upload-toast .progress { height: 6px; background: var(--fm-bg); }
.fm-upload-toast .progress-bar { background: var(--fm-accent); transition: width .15s linear; }
.fm-toolbar-crumbs { flex: 1 1 280px; min-width: 0; }
/* Partage public */
.fm-badge-public { background: var(--fm-ok-bg); color: var(--fm-ok); font-weight: 500; cursor: pointer; }
.fm-public-list li { padding: .85rem 1rem; border-bottom: 1px solid var(--fm-border); }
.fm-public-list li:last-child { border-bottom: 0; }
[hidden] { display: none !important; }
/* Logo de l'établissement */
.fm-logo-img { height: 36px; width: auto; max-width: 160px; object-fit: contain; }
.fm-logo-img.fm-logo-lg { height: 72px; max-width: 240px; }
/* Page publique « Documents » (arborescence) */
.fm-tree { list-style: none; margin: 0; padding: 0; }
.fm-tree .fm-tree { padding-left: 1.6rem; border-left: 1px dashed var(--fm-border); margin-left: 1.55rem; }
.fm-tree-file, .fm-tree-empty { display: flex; align-items: center; gap: .75rem; padding: .7rem 1rem; border-bottom: 1px solid var(--fm-border); }
.fm-tree-empty { padding-left: 1rem; }
.fm-tree-folder > details > summary { display: flex; align-items: center; gap: .6rem; padding: .75rem 1rem; cursor: pointer; list-style: none; border-bottom: 1px solid var(--fm-border); user-select: none; }
.fm-tree-folder > details > summary::-webkit-details-marker { display: none; }
.fm-tree-folder > details > summary:hover { background: var(--fm-hover); }
.fm-tree-folder > details > summary:focus-visible { outline: 2px solid var(--fm-accent); outline-offset: -2px; }
.fm-tree-caret { font-size: .8rem; color: var(--fm-muted); transition: transform .15s ease; }
.fm-tree-folder > details[open] > summary .fm-tree-caret { transform: rotate(90deg); }
.fm-tree-root > li:last-child > details:not([open]) > summary,
.fm-tree-root > .fm-tree-file:last-child { border-bottom: 0; }
@media (max-width: 575.98px) { .fm-tree .fm-tree { padding-left: .6rem; margin-left: .9rem; } }
/* Couleurs d'état Bootstrap alignées sur le thème */
.text-success { color: var(--fm-ok) !important; }
.text-warning { color: var(--fm-warn) !important; }
.text-danger  { color: var(--fm-bad) !important; }
.text-purple  { color: #7c3aed !important; }
[data-bs-theme="dark"] .text-purple { color: #a78bfa !important; }
/* Logo en mode sombre : pastille claire si aucun logo sombre dédié n'est fourni */
[data-bs-theme="dark"] .fm-logo-img.fm-logo-onlight { background: #fff; padding: 3px 8px; border-radius: .375rem; }
/* Sélecteur de thème */
.fm-theme-menu .dropdown-item.active, .fm-theme-menu .dropdown-item:active { background: var(--fm-accent-soft); color: var(--fm-accent); }
.fm-theme-float { position: fixed; top: .75rem; right: .75rem; z-index: 1030; }
[data-bs-theme="dark"] .fm-only-light, [data-bs-theme="light"] .fm-only-dark, :root:not([data-bs-theme]) .fm-only-dark { display: none !important; }
/* Choix de visibilité (partage) et accès SkoolDesk */
.fm-choice { display: flex; gap: .75rem; align-items: flex-start; padding: .75rem .9rem; border: 1px solid var(--fm-border); border-radius: .375rem; margin-bottom: .5rem; cursor: pointer; }
.fm-choice:has(input:checked) { border-color: var(--fm-accent); background: var(--fm-accent-soft); }
.fm-choice .form-check-input { margin-top: .2rem; flex-shrink: 0; }
.fm-badge-api { background: var(--fm-accent-soft); color: var(--fm-accent); font-weight: 500; }
.alert-info { --bs-alert-bg: var(--fm-accent-soft); --bs-alert-color: var(--fm-text); --bs-alert-border-color: var(--fm-accent); }
.alert-info code { color: var(--fm-accent); }
/* Administration */
.fm-row-muted > td { opacity: .55; }
.fm-rights i { font-size: .9rem; margin-right: .35rem; color: var(--fm-faint); }
.fm-rights i.on { color: var(--fm-accent); }
.fm-badge-bad { background: var(--fm-bad-bg); color: var(--fm-bad); font-weight: 500; }
.fm-pills .nav-link { color: var(--fm-muted); border-radius: .375rem; padding: .35rem .75rem; }
.fm-pills .nav-link.active { background: var(--fm-accent-soft); color: var(--fm-accent); }
.fm-pre { background: var(--fm-bg); border: 1px solid var(--fm-border); border-radius: .375rem; padding: .75rem; max-height: 320px; overflow: auto; font-size: .8rem; color: var(--fm-text); }
.fm-health li { padding: .3rem 0; }
.fm-device-icon { width: 64px; height: 64px; margin: 0 auto; display: grid; place-items: center; border-radius: 50%; background: var(--fm-warn-bg); color: var(--fm-warn); font-size: 1.8rem; }
section[id] { scroll-margin-top: 80px; }
.alert-secondary { --bs-alert-bg: var(--fm-press); --bs-alert-color: var(--fm-text); --bs-alert-border-color: var(--fm-border-strong); }
.dropdown-item.active { background: var(--fm-accent-soft); color: var(--fm-accent); }
/* ══ Pages publiques — habillage repris du site actus (Bootstrap + quelques réglages) ══ */
.fm-public { font-family: 'Inter', var(--bs-body-font-family); }
.fm-sitenav { --bs-navbar-padding-y: 0; height: 72px; background: var(--fm-surface); border-bottom: 1px solid var(--fm-border);
  transition: background .35s, box-shadow .35s, border-color .35s; }
.fm-sitenav-inner { padding: 0 clamp(16px, 5vw, 64px); height: 100%; flex-wrap: nowrap; gap: .6rem !important; }
.fm-sitenav.scrolled { background: rgba(var(--fm-nav-rgb), .82); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
  box-shadow: 0 2px 24px rgba(0, 0, 0, .10); border-bottom-color: transparent; }
:root, [data-bs-theme="light"] { --fm-nav-rgb: 255, 255, 255; }
[data-bs-theme="dark"] { --fm-nav-rgb: 18, 18, 24; }
.fm-sitenav-logo.fm-logo-img { height: 44px; max-width: 220px; }
.fm-sitenav-label { font-size: .65rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; color: var(--fm-muted);
  padding-left: 14px; border-left: 2px solid var(--fm-border); }
/* Boutons ronds : même comportement que le site actus (btn-outline-secondary natif de Bootstrap)
   → icône et contour gris, remplissage gris + icône blanche au survol, léger soulèvement + ombre.
   Taille et icône réglables ici. */
.fm-public { --fm-round-size: 46px; --fm-round-icon: 1.15rem; }
.fm-round { width: var(--fm-round-size, 38px); height: var(--fm-round-size, 38px); padding: 0; display: inline-flex; align-items: center; justify-content: center;
  font-size: var(--fm-round-icon, .9rem); flex-shrink: 0; }
.fm-public .fm-round.btn-outline-secondary {
  /* valeurs d'origine de Bootstrap 5.3 (annule l'habillage « flat » de l'admin) */
  --bs-btn-color: #6c757d; --bs-btn-bg: transparent; --bs-btn-border-color: #6c757d; --bs-btn-border-width: 1px;
  --bs-btn-hover-color: #fff; --bs-btn-hover-bg: #6c757d; --bs-btn-hover-border-color: #6c757d;
  --bs-btn-focus-shadow-rgb: 108, 117, 125;
  --bs-btn-active-color: #fff; --bs-btn-active-bg: #6c757d; --bs-btn-active-border-color: #6c757d;
  transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out, transform .15s ease-in-out;
}
.fm-round:hover { transform: translateY(-1px); box-shadow: 0 4px 10px rgba(0, 0, 0, .15) !important; }
.fm-sitenav .dropdown-menu { margin-top: .5rem !important; }
.fm-readbar { height: 3px; }
.fm-readbar .progress-bar { background: var(--fm-brand, #e63946); transition: width .1s linear; }
.fm-gotop { z-index: 1030; --bs-btn-bg: var(--fm-surface) !important; }
@media (max-width: 480px) { .fm-sitenav { height: 64px; } .fm-sitenav-inner { padding: 0 12px; gap: 6px !important; }
  .fm-public { --fm-round-size: 40px; --fm-round-icon: 1rem; } .fm-sitenav-logo.fm-logo-img { height: 36px; } }

/* Pied de page (toujours sombre, comme le site actus) */
.fm-footer { background: #111214; color: rgba(255, 255, 255, .72); border-top: 1px solid rgba(255, 255, 255, .06); }
.fm-footer-body { padding: 3.5rem 0 2.5rem; }
.fm-footer-logo { height: 46px; display: block; opacity: .85; transition: opacity .2s; }
.fm-footer-logo-invert { filter: brightness(0) invert(1); }
.fm-footer-logo:hover { opacity: 1; }
.fm-footer-address { font-size: .78rem; line-height: 1.9; color: rgba(255, 255, 255, .45); margin: 0 0 1.2rem; }
.fm-footer-address a { color: rgba(255, 255, 255, .6); text-decoration: none; }
.fm-footer-address a:hover { color: #fff; }
.fm-social { width: 38px; height: 38px; padding: 0; border-radius: 9px; display: inline-flex; align-items: center; justify-content: center;
  background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .1); color: rgba(255, 255, 255, .6); font-size: .95rem; }
.fm-social:hover { background: rgba(255, 255, 255, .14); border-color: rgba(255, 255, 255, .22); color: #fff; transform: translateY(-2px); }
.fm-footer-title { font-size: .6rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: rgba(255, 255, 255, .3);
  margin: 0 0 1rem; padding-bottom: .6rem; border-bottom: 1px solid rgba(255, 255, 255, .07); }
.fm-footer-link { display: flex; align-items: center; gap: 9px; font-size: .8rem; font-weight: 500; color: rgba(255, 255, 255, .5);
  text-decoration: none; padding: 5px 0; transition: color .15s, gap .15s; }
.fm-footer-link i { font-size: .72rem; color: rgba(255, 255, 255, .25); transition: color .15s; }
.fm-footer-link:hover { color: rgba(255, 255, 255, .9); gap: 12px; }
.fm-footer-link:hover i { color: var(--fm-brand, #e63946); }
.fm-footer-doc { text-decoration: none; color: inherit; padding: 8px; border-radius: 10px; border: 1px solid transparent; transition: background .18s, border-color .18s; }
.fm-footer-doc:hover { background: rgba(255, 255, 255, .04); border-color: rgba(255, 255, 255, .07); }
.fm-footer-doc-icon { width: 42px; height: 42px; border-radius: 8px; flex-shrink: 0; display: grid; place-items: center; font-size: 1.15rem;
  background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .08); color: rgba(255, 255, 255, .6); }
.fm-footer-doc:hover .fm-footer-doc-icon { color: var(--fm-brand, #e63946); }
.fm-footer-doc-theme { display: block; font-size: .55rem; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; color: var(--fm-brand, #e63946); margin-bottom: 2px; }
.fm-footer-doc-title { display: block; font-size: .78rem; font-weight: 600; line-height: 1.3; color: rgba(255, 255, 255, .75);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fm-footer-doc:hover .fm-footer-doc-title { color: #fff; }
.fm-footer-doc-date { display: block; font-size: .6rem; color: rgba(255, 255, 255, .3); }
.fm-footer-bar { border-top: 1px solid rgba(255, 255, 255, .06); padding: 1rem 0; font-size: .68rem; color: rgba(255, 255, 255, .28); }
.fm-footer-bar a { color: rgba(255, 255, 255, .28); text-decoration: none; }
.fm-footer-bar a:hover { color: rgba(255, 255, 255, .7); }
.fm-public-hero h1 { font-weight: 800; letter-spacing: -.01em; }
.fm-public-hero .fm-hero-kicker { font-size: .65rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--fm-brand, #e63946); }