/* ============================================================
   LAUREATS — Design System
   Syne (display) + IBM Plex Mono (data/labels)
   Palette : theme-sauge.css (chargé sur les routes prix littéraires, voir layouts/app)
   ============================================================ */

/* --- Reset & Base ------------------------------------------ */
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }

/* Override Bootstrap : container-fluid n'ajoute aucun gutter
   sur ce site — chaque section gère son propre padding. */
.container-fluid {
  --bs-gutter-x: 0;
  padding-left: 0;
  padding-right: 0;
}

.row {
  --bs-gutter-x: 0;
  --bs-gutter-y: 0;
  margin-left: 0;
  margin-right: 0;
}

:root {
  /* Fonds & texte neutres (hors palette sauge) */
  --bg:      #F0EDE6;
  --surface: #FAFAF8;
  --ink:     #0F0F0E;
  --muted:   #6A6864;
  --line:    rgba(15, 15, 14, 0.11);
  --line-s:  rgba(15, 15, 14, 0.22);

  /* Sidebar / hero : nuances sur fond primary */
  --c-sidebar-on-dark-strong:   rgba(255, 255, 255, 0.9);
  --c-sidebar-on-dark-label:  rgba(255, 255, 255, 0.45);
  --c-sidebar-on-dark-meta:   rgba(255, 255, 255, 0.35);
  --c-sidebar-on-dark-faint:  rgba(255, 255, 255, 0.3);
  --c-sidebar-on-dark-watermark: rgba(255, 255, 255, 0.06);
  --c-sidebar-on-dark-line:   rgba(255, 255, 255, 0.2);
  --c-sidebar-on-dark-divider: rgba(255, 255, 255, 0.12);
  --c-sidebar-on-dark-row:    rgba(255, 255, 255, 0.07);
  --c-sidebar-border:         rgba(0, 0, 0, 0.12);

  /* Fallback palette (écrasée par theme-sauge.css sur les pages prix littéraires) */
  /*--c-primary-50:  #D4E3D8;
  --c-primary-200: #93BCa0;
  --c-primary-400: #5A8C6A;
  --c-primary-600: #3D5A45;
  --c-primary-800: #2E4434;
  --c-primary-900: #1C2E22;*/
  /*--c-accent-50:   #F2DDD5;
  --c-accent-400:  #B85C38;
  --c-accent-600:  #8C3E22;*/
  /*--c-sidebar-bg:      var(--c-primary-600);
  --c-sidebar-text:    #ffffff;
  --c-sidebar-muted:   rgba(255, 255, 255, 0.4);
  --c-hero-bg:         var(--c-primary-600);
  --c-btn-primary-bg:  var(--c-primary-800);
  --c-btn-primary-fg:  #ffffff;
  --c-btn-sage-bg:     var(--c-primary-600);
  --c-btn-sage-fg:     #ffffff;
  --c-eyebrow:         var(--c-accent-400);
  --c-prize-highlight: var(--c-accent-400);
  --c-tag-bg:          var(--c-primary-50);
  --c-tag-text:        var(--c-primary-800);
  --c-stat-accent:     var(--c-primary-600);
  --c-link-hover:      var(--c-primary-600);
  --c-tl-pip-active:   var(--c-primary-600);
  --c-tl-pip-star:     var(--c-accent-400);
  --c-prize-bar-1:     var(--c-accent-400);
  --c-prize-bar-2:     var(--c-primary-600);
  --c-prize-bar-3:     #8A8880;
  --c-filter-active-bg: #0F0F0E;
  --c-action-text:     var(--c-primary-600);
  --c-action-border:   rgba(61, 90, 69, 0.3);
  --c-action-hover-bg: var(--c-primary-50);*/

  --font-display: 'Syne', sans-serif;
  --font-mono:    'IBM Plex Mono', monospace;

  --radius-sm: 2px;
  --radius:    4px;
  --c-wishlist-bg: #FBEAF0;
  --c-wishlist-bg-strong: #F3D0DC;
  --c-ownership-bg: #EAF3DE;
  --c-ownership-bg-strong: #D4E6BE;
}

html {
  font-size: 16px;
  overflow-x: clip;
}

body {
  font-family: var(--font-display);
  background: var(--bg);
  color: var(--ink);
  -webkit-font-smoothing: antialiased;
}

a { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; }

/* --- Nav --------------------------------------------------- */
:root {
  --nav-height: 56px;
  --page-pad-y: 32px;
  --page-pad-x: 40px;
}

body.nav-drawer-open {
  overflow: hidden;
}

.site-nav {
  position: sticky;
  top: 0;
  z-index: 200;
}

.nav {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 28px;
  min-height: var(--nav-height);
  padding: 14px 40px;
  background: var(--surface);
  border-bottom: 1px solid var(--line-s);
  margin-bottom: 0;
  list-style: none;
}

.nav-hamburger,
.nav-mobile-account,
.nav-drawer,
.nav-drawer-backdrop {
  display: none;
}

.nav-brand {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-shrink: 0;
}

.nav-logo {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 18px;
  letter-spacing: -0.5px;
  color: var(--ink);
  white-space: nowrap;
  text-decoration: none;
  display: flex;
  align-items: center;
  line-height: 0;
}
.nav-logo img {
  display: block;
  height: 1em;
  width: auto;
}
.nav-logo sup {
  font-size: 9px;
  color: var(--c-prize-bar-3);
  vertical-align: super;
  font-weight: 500;
  letter-spacing: 0.1em;
  margin-left: 3px;
}

.nav-desktop {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 28px;
  margin-left: auto;
  flex-shrink: 0;
}

.nav-links {
  display: flex;
  align-items: center;
  gap: 28px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.nav-links a {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--c-prize-bar-3);
  transition: color 0.15s;
}
.nav-links a:hover,
.nav-links a.active { color: var(--ink); }

.nav-desktop .nav-links {
  flex-wrap: nowrap;
  flex-shrink: 0;
}

.nav-desktop .nav-links a {
  white-space: nowrap;
}

footer .nav-links {
  flex-direction: column;
  flex-wrap: nowrap;
  align-items: flex-start;
  gap: 0.55rem;
}

footer .nav-links a {
  white-space: normal;
  color: var(--c-primary-800, var(--ink));
}

.site-footer__links > [class*="col-"],
.site-footer__meta > [class*="col-"] {
  padding: var(--page-pad-y) var(--page-pad-x);
}

.site-footer__links p,
.site-footer__meta p {
  font-family: var(--font-mono);
  font-size: 12px;
  color: var(--ink);
  margin-bottom: 0.75rem;
}

.site-footer__meta a {
  color: var(--c-primary-800, var(--ink));
  text-decoration: none;
}

.site-footer__meta a:hover,
.site-footer__meta a.active {
  color: var(--ink);
}

.site-footer__credit {
  display: flex;
  align-items: center;
  min-height: var(--nav-height);
  padding: 14px 40px;
  border-top: 1px solid var(--line);
}

.site-footer__credit p {
  font-family: var(--font-mono);
  font-size: 12px;
  color: var(--ink);
  margin: 0 0 0.35rem;
}

.site-footer__credit a {
  color: var(--ink);
  text-decoration: underline;
}

.site-footer__credit a:hover {
  color: var(--c-link-hover, var(--ink));
}

.libraire-favorites-count,
.boite-a-livre-compteur-favorites {
  color: #c62828;
}

.nav-right {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 16px;
  flex-shrink: 0;
}

.nav-logout-form {
  display: inline;
  margin: 0;
}

.nav-user,
.nav-login,
.nav-register {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.12em;
  color: var(--c-prize-bar-3);
  white-space: nowrap;
  transition: color 0.15s;
}
.nav-login,
.nav-register {
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
.nav-user:hover,
.nav-login:hover,
.nav-register:hover { color: var(--ink); }
.nav-logout {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink);
  background: transparent;
  border: 1px solid var(--line-s);
  padding: 5px 12px;
}
.nav-logout:hover { background: var(--bg); }

.material-symbols-outlined {
  font-family: 'Material Symbols Outlined';
  font-weight: normal;
  font-style: normal;
  font-size: 22px;
  line-height: 1;
  letter-spacing: normal;
  text-transform: none;
  display: inline-block;
  white-space: nowrap;
  word-wrap: normal;
  direction: ltr;
  font-feature-settings: 'liga';
  -webkit-font-smoothing: antialiased;
}

.nav-search-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--c-prize-bar-3);
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  transition: color 0.15s;
}

.nav-search-toggle:hover,
.nav-search-toggle.is-active {
  color: var(--ink);
}

.nav-search-toggle--mobile {
  display: none;
}

.nav-search-panel {
  background: var(--surface);
  border-bottom: 1px solid var(--line-s);
  padding: 12px 40px 20px;
}

.nav-search-panel[hidden],
.nav-search-results[hidden] {
  display: none !important;
}

.nav-search-form {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  max-width: 720px;
}

.nav-search-form__icon {
  flex-shrink: 0;
  color: var(--c-prize-bar-3);
  font-size: 20px;
}

.nav-search-form__input {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  margin: 0;
  border: 0;
  border-bottom: 1px solid var(--line-s);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  padding: 0.45rem 0;
  font-family: var(--font-display);
  font-size: 18px;
  line-height: 1.3;
  color: var(--ink);
  appearance: none;
  -webkit-appearance: none;
}

.nav-search-form__input:focus {
  outline: none;
  box-shadow: none;
  border-bottom-color: var(--ink);
}

.nav-search-form__input::placeholder {
  color: var(--c-prize-bar-3);
  opacity: 1;
}

.nav-search-form__input::-webkit-search-decoration,
.nav-search-form__input::-webkit-search-cancel-button,
.nav-search-form__input::-webkit-search-results-button,
.nav-search-form__input::-webkit-search-results-decoration {
  -webkit-appearance: none;
  appearance: none;
}

.nav-search-form__close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 32px;
  height: 32px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--c-prize-bar-3);
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
}

.nav-search-form__close:hover {
  color: var(--ink);
}

.nav-search-results {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 8px 32px;
  max-width: 960px;
  margin-top: 16px;
  max-height: min(60vh, 420px);
  overflow: auto;
}

.nav-search-results__section {
  min-width: 0;
  padding: 8px 0;
}

.nav-search-results__heading {
  margin: 0 0 8px;
  padding: 0;
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--c-prize-bar-3);
}

.nav-search-results__list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.nav-search-results__link {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  padding: 0.45rem 0;
  color: var(--ink);
  text-decoration: none;
}

.nav-search-results__link:hover {
  color: var(--c-primary-600, var(--ink));
}

.nav-search-results__label {
  font-family: var(--font-display);
  font-size: 15px;
  font-weight: 600;
  line-height: 1.3;
}

.nav-search-results__meta {
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--muted);
}

.nav-search-results__empty,
.nav-search-results__hint {
  grid-column: 1 / -1;
  margin: 0;
  padding: 0.25rem 0 0;
  font-family: var(--font-mono);
  font-size: 12px;
  color: var(--muted);
}

.nav-search-results__highlight {
  padding: 0 0.12em;
  background: var(--c-primary-200, #f2ddd5);
  color: inherit;
  font: inherit;
}

/* Drawer mobile (modèle Zalando) */
@media (max-width: 991.98px) {
  .nav {
    display: grid;
    grid-template-columns: 44px 1fr auto 44px;
    align-items: center;
    gap: 0;
    padding: 0 16px;
  }

  .nav-hamburger,
  .nav-mobile-account,
  .nav-search-toggle--mobile {
    display: flex;
  }

  .nav-search-toggle--mobile {
    justify-self: end;
    width: 44px;
    height: 44px;
  }

  .nav-mobile-account {
    grid-column: 4;
  }

  .nav-search-panel {
    padding: 12px 16px 16px;
  }

  .nav-search-form__input {
    font-size: 16px;
  }

  .nav-search-results {
    grid-template-columns: 1fr;
    max-height: min(55vh, 360px);
  }

  .nav-desktop {
    display: none;
  }

  .nav-brand {
    justify-self: center;
    gap: 0;
  }

  .nav-hamburger {
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
    justify-self: start;
  }

  .nav-hamburger span {
    display: block;
    width: 22px;
    height: 1.5px;
    background: var(--ink);
    transition: transform 0.25s ease, opacity 0.25s ease;
    transform-origin: center;
  }

  .nav-hamburger.is-open span:nth-child(1) {
    transform: translateY(6.5px) rotate(45deg);
  }

  .nav-hamburger.is-open span:nth-child(2) {
    opacity: 0;
  }

  .nav-hamburger.is-open span:nth-child(3) {
    transform: translateY(-6.5px) rotate(-45deg);
  }

  .nav-mobile-account {
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    justify-self: end;
    color: var(--ink);
    text-decoration: none;
  }

  .nav-mobile-account__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border: 1px solid var(--c-sidebar-border, rgba(255, 255, 255, 0.25));
    border-radius: 50%;
    background: var(--c-sidebar-bg);
    color: var(--c-sidebar-text);
    font-family: var(--font-mono);
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0;
  }

  .nav-drawer-backdrop {
    display: block;
    position: fixed;
    inset: 0;
    top: var(--nav-height);
    background: rgba(15, 15, 14, 0.45);
    opacity: 0;
    transition: opacity 0.3s ease;
    pointer-events: none;
  }

  .site-nav.is-drawer-open .nav-drawer-backdrop {
    opacity: 1;
    pointer-events: auto;
  }

  .nav-drawer {
    display: flex;
    flex-direction: column;
    position: fixed;
    top: 0;
    left: 0;
    width: min(88vw, 360px);
    height: 100dvh;
    background: var(--surface);
    box-shadow: 8px 0 32px rgba(15, 15, 14, 0.12);
    transform: translateX(-105%);
    transition: transform 0.32s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 300;
  }

  .site-nav.is-drawer-open .nav-drawer {
    transform: translateX(0);
  }

  .nav-drawer__header {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    min-height: var(--nav-height);
    padding: 0 8px 0 16px;
    border-bottom: 1px solid var(--line-s);
  }

  .nav-drawer__close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border: 0;
    background: transparent;
    color: var(--ink);
    font-size: 28px;
    line-height: 1;
    cursor: pointer;
  }

  .nav-drawer__body {
    flex: 1;
    overflow-y: auto;
    padding: 8px 0 24px;
  }

  .nav-drawer__list,
  .nav-drawer__account {
    list-style: none;
    margin: 0;
    padding: 0;
  }

  .nav-drawer__link {
    display: block;
    width: 100%;
    padding: 18px 24px;
    border: 0;
    border-bottom: 1px solid var(--line-s);
    background: transparent;
    text-align: left;
    font-family: var(--font-display);
    font-size: 18px;
    font-weight: 600;
    letter-spacing: -0.02em;
    color: var(--ink);
    text-decoration: none;
    cursor: pointer;
    transition: background 0.15s ease;
  }

  .nav-drawer__link:hover,
  .nav-drawer__link.is-active {
    background: var(--bg);
  }

  .nav-drawer__link--button {
    font-family: var(--font-display);
  }

  .nav-drawer__account {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--line);
  }

  .nav-drawer__account .nav-drawer__link {
    font-family: var(--font-mono);
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0.16em;
    text-transform: uppercase;
  }

  .nav-drawer__logout-form {
    margin: 0;
  }
}

/* --- Shared section header ---------------------------------- */
.sec-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  padding: 14px 40px;
  border-bottom: 1px solid var(--line);
  background: var(--surface);
}
.sec-head-title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 13px;
  color: var(--ink);
}
.sec-head-count {
  font-family: var(--font-mono);
  font-size: 12px;
  color: var(--c-prize-bar-3);
  letter-spacing: 0.1em;
}

/* --- Eyebrow label ----------------------------------------- */
.eyebrow {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--c-eyebrow);
  margin-bottom: 12px;
  display: block;
}

/* --- Badges ------------------------------------------------- */
.badge {
  font-family: var(--font-mono);
  font-size: 8px;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 3px 8px;
  border-radius: var(--radius-sm);
}
.badge-roman  { background: var(--c-accent-50); color: var(--c-accent-400); }
.badge-essai  { background: var(--c-tag-bg); color: var(--c-tag-text); }
.badge-theatre{ background: #E8E5F4;        color: #4A3F8A;      }

/* --- Buttons ----------------------------------------------- */
.btn {
  /*font-family: var(--font-display);*/
  font-size: 1em;
  /*font-weight: 500;
  letter-spacing: 0.16em;*/
  /*text-transform: uppercase;*/
  padding: 10px;
  border-radius: var(--radius);
  transition: opacity 0.15s;
  margin-top: 10px;
  border: 1px solid #353635;

}
.btn:hover { opacity: 0.85; }

.btn-primary { background: var(--c-btn-primary-bg); color: var(--c-btn-primary-fg); }
.btn-sage    { background: var(--c-btn-sage-bg); color: var(--c-btn-sage-fg); }
.btn-ghost   {
  background: transparent;
  color: var(--ink);
  border: 1px solid var(--line-s);
}
.btn-default:hover {
  color: #353635;
  background-color: #fff;
  border: 1px solid #353635;
}

/* --- Footer nav -------------------------------------------- */
.page-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 40px;
  background: var(--surface);
  border-top: 1px solid var(--line);
}
.foot-nav {
  font-family: var(--font-mono);
  font-size: 9px;
  color: var(--c-prize-bar-3);
  letter-spacing: 0.12em;
  display: flex;
  gap: 24px;
}
.foot-nav a:hover { color: var(--ink); }

/* --- Pagination -------------------------------------------- */
.rose-pagination {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 16px 40px;
  border-top: 1px solid var(--line);
  background: var(--surface);
  flex-wrap: wrap;
}
.rose-pagination__summary {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.06em;
  color: var(--c-prize-bar-3);
  margin: 0;
}
.rose-pagination__nav {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}
.rose-pagination__link {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.08em;
  color: var(--ink);
  text-decoration: none;
  white-space: nowrap;
}
.rose-pagination__link:hover {
  color: var(--c-prize-highlight);
}
.rose-pagination__link.is-disabled {
  color: var(--c-prize-bar-3);
  opacity: 0.55;
  cursor: default;
}
.rose-pagination__pages {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  border-left: 1px solid var(--line);
  border-right: 1px solid var(--line);
  padding: 0 8px;
}
.rose-pagination__page,
.rose-pagination__ellipsis {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 28px;
  height: 28px;
  padding: 0 6px;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.04em;
  color: var(--muted);
  text-decoration: none;
}
.rose-pagination__page:hover {
  color: var(--ink);
  background: var(--bg);
}
.rose-pagination__page.is-current {
  color: var(--c-prize-highlight);
  font-weight: 600;
  background: var(--bg);
}
.rose-pagination__ellipsis {
  min-width: auto;
  padding: 0 4px;
  color: var(--c-prize-bar-3);
}
@media (max-width: 640px) {
  .rose-pagination {
    flex-direction: column;
    align-items: flex-start;
  }
  .rose-pagination__nav {
    width: 100%;
    justify-content: space-between;
  }
  .rose-pagination__pages {
    flex: 1;
    justify-content: center;
  }
}

/* ============================================================
   HOME PAGE
   ============================================================ */

/* Hero */
.hero {
  display: grid;
  grid-template-columns: 2fr 2fr;
  border-bottom: 1px solid var(--line-s);
  min-height: 340px;
}

.hero-left-top {
  align-self: flex-start;
  width: 100%;
}
.hero-left {
  padding: 52px 48px;
  border-right: 1px solid var(--line-s);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.hero-kicker {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--c-eyebrow);
  margin-bottom: 20px;
  display: block;
}
.sidebar #chemin-container .hero-kicker {
  color: var(--c-chemin);
}

#chemin-errors {
  margin-top: 0.75rem;
}

#chemin-errors:empty {
  display: none;
}

#chemin-container .alert {
  margin-bottom: 0.75rem;
}

.verification-resend-form {
  display: inline;
}

button.link-submit {
  display: inline;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  box-shadow: none;
  font: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
  color: inherit;
  text-decoration: underline;
  cursor: pointer;
  vertical-align: baseline;
  line-height: inherit;
}

button.link-submit:hover,
button.link-submit:focus-visible {
  color: var(--ink);
}

#literary-prizes-index-verification-row {
  margin-top: 0.75rem;
}

#literary-prizes-index-verification-row p,
#literary-prizes-index-verification-row .verification-resend-line {
  margin: 0 0 0.5rem;
}

#literary-prizes-index-verification-row a,
#literary-prizes-index-verification-row .link-submit {
  color: inherit;
  text-decoration: underline;
}

.sidebar #chemin-container .alert-danger {
  background-color: #f8d7da;
  color: #58151c;
  border: 1px solid #f1aeb5;
}

.sidebar #chemin-container .alert-success {
  background-color: #d1e7dd;
  color: #0a3622;
  border: 1px solid #a3cfbb;
}

.form-field-error,
.main .form-field-error,
.sec-body .form-field-error,
p.form-field-error {
  margin-top: 0.35rem;
  font-family: var(--font-mono);
  font-size: 0.75rem;
  line-height: 1.4;
  color: #dc3545;
}

.main .form-field-error.text-danger,
.sec-body .form-field-error.text-danger,
.text-danger.form-field-error {
  color: #dc3545;
}

.form-field-error[hidden] {
  display: none;
}

.form-select.is-invalid,
.form-control.is-invalid {
  border-color: #dc3545;
}
.hero-title {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 2em;
  line-height: 0.92;
  letter-spacing: -2px;
  color: var(--ink);
}
.hero-sub {
  font-family: var(--font-mono);
  font-size: 14px;
  font-weight: 300;
  line-height: 1.75;
  color: var(--c-prize-bar-3);
  max-width: 380px;
  margin-top: 24px;
}
.hero-actions {
  display: flex;
  gap: 16px;
  margin-top: 36px;
}
.hero-right {
  background: var(--c-hero-bg);
  padding: 40px 36px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.bloc-home.hero-right .hero-featured-name a,
.bloc-home.hero-right .hero-meta-row a,
.bloc-home-librairie.hero-right .hero-featured-name a,
.bloc-home-librairie.hero-right .hero-meta-row a {
  color: inherit;
  text-decoration: none;
}
.bloc-home.hero-right .hero-featured-name a:hover,
.bloc-home.hero-right .hero-meta-row a:hover,
.bloc-home-librairie.hero-right .hero-featured-name a:hover,
.bloc-home-librairie.hero-right .hero-meta-row a:hover {
  text-decoration: underline;
}
.bloc-home-librairie.hero-right {
  --c-hero-bg: #D45E00;
  background: var(--c-hero-bg);
}

/* Accueil — éditions récentes (lilas des fiches édition) */
.bloc-home-editions {
  --c-home-editions-bg: #DDD0F0;
  --c-home-editions-ink: #574878;
  --c-home-editions-meta: #7360A0;
  background: var(--c-home-editions-bg);
  color: var(--c-home-editions-ink);
  padding: 40px 36px 28px;
  border-bottom: 1px solid var(--line-s);
}
.bloc-home-editions__head {
  margin-bottom: 8px;
}
.bloc-home-editions .hero-kicker {
  color: var(--c-home-editions-meta);
}
.bloc-home-editions .hero-title {
  color: var(--c-home-editions-ink);
  font-size: 1.6em;
  letter-spacing: -1px;
  margin-top: 10px;
}
.bloc-home-editions .book-editions__grid {
  display: flex;
  flex-wrap: wrap;
}
.bloc-home-editions .edition-list-item {
  flex: 0 0 calc(50% - 1rem);
  max-width: calc(50% - 1rem);
  margin-right: 1rem;
  margin-top: 1rem;
  margin-bottom: 1rem;
}
.bloc-home-editions .edition-list-item--no-status .edition-list-item__layout {
  grid-template-areas: "cover body";
  grid-template-columns: auto minmax(0, 1fr);
  column-gap: 0.75rem;
  align-items: start;
}
.bloc-home-editions .edition-list-item--no-status .edition-list-item__cover {
  grid-area: cover;
}
.bloc-home-editions .edition-list-item--no-status .edition-list-item__body {
  grid-area: body;
  padding-top: 0;
  min-width: 0;
}
.bloc-home-editions .edition-list-item__body .book-name,
.bloc-home-editions .edition-list-item__body .book-name a {
  color: var(--c-home-editions-ink);
}
.bloc-home-editions .edition-list-item__body .book-meta,
.bloc-home-editions .edition-list-item__body .book-meta a,
.bloc-home-editions .book-meta--highlight {
  color: var(--c-home-editions-meta);
}
.hero-featured-label {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--c-sidebar-on-dark-meta);
}
.hero-featured-year {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 64px;
  line-height: 1;
  letter-spacing: -2px;
  color: var(--c-sidebar-on-dark-watermark);
  margin-top: 8px;
}
.hero-featured-name {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 20px;
  line-height: 1.2;
  color: var(--c-sidebar-text);
  margin-top: -42px;
  position: relative;
  z-index: 1;
}
.hero-featured-meta {
  margin-top: 20px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.hero-meta-row span {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--c-sidebar-on-dark-meta);
  display: block;
}
.hero-meta-row strong {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 13px;
  color: var(--c-sidebar-on-dark-strong);
  display: block;
  margin-top: 2px;
}
.hero-gold-line {
  width: 32px;
  height: 2px;
  background: var(--c-accent-400);
  margin-top: 28px;
}

.literary-prizes-index .hero-left {
  background: var(--c-hero-bg);
  color: var(--c-sidebar-text);
}

.literary-prizes-index .hero-left .hero-kicker,
.literary-prizes-index .hero-left .hero-kicker a {
  color: var(--c-chemin);
}

.literary-prizes-index .hero-left #literary-prizes-index-verification-row,
.literary-prizes-index .hero-left #literary-prizes-index-verification-row a,
.literary-prizes-index .hero-left #literary-prizes-index-verification-row button {
  color: var(--c-sidebar-on-dark-strong);
}

.literary-prizes-index .hero-right {
  background: var(--surface);
  color: var(--ink);
  justify-content: flex-start;
}

.literary-prizes-index .hero-right .author-prizes {
  margin-left: -36px;
  margin-right: -36px;
  margin-top: 12px;
  border-top: 1px solid var(--line);
}

.literary-prizes-index .hero-right .author-prizes + .author-prizes {
  margin-top: 28px;
}

.literary-prizes-index .hero-right .sec-head-title a {
  color: inherit;
  text-decoration: none;
}

.literary-prizes-index .hero-right .sec-head-title a:hover,
.literary-prizes-index .hero-right .prize-name a:hover {
  color: var(--c-link-hover);
}

.literary-prizes-index .hero-right .hero-featured-label {
  color: var(--c-primary-800);
}

.literary-prizes-index .hero-right .hero-featured-year {
  color: var(--c-primary-50);
}

.literary-prizes-index .hero-right .hero-featured-name,
.literary-prizes-index .hero-right .hero-featured-name a {
  color: var(--c-primary-900);
}

.literary-prizes-index .hero-right .hero-meta-row span {
  color: var(--c-primary-800);
}

.literary-prizes-index .hero-right .hero-meta-row,
.literary-prizes-index .hero-right .hero-meta-row strong,
.literary-prizes-index .hero-right .hero-meta-row a {
  color: var(--c-primary-900);
}

.literary-prizes-index .hero-right .hero-meta-row a:hover {
  color: var(--c-link-hover);
}

.literary-prizes-index .hero-right .literary-prizes-index__sep {
  color: var(--c-primary-400);
}

.literary-prizes-index .hero-right .author-literary-prizes-item-row,
.literary-prizes-index .hero-right .book-literary-prizes-item-row {
  color: var(--c-primary-800);
}

/* Stats bar */
.stats-bar {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-bottom: 1px solid var(--line-s);
}
.stat-cell {
  padding: 24px 40px;
  border-right: 1px solid var(--line);
}
.stat-cell:last-child { border-right: none; }
.stat-n {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 2em;
  letter-spacing: -1px;
  line-height: 1;
  color: var(--ink);
  text-align: center;
}
.stat-l {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--c-prize-bar-3);
  margin-top: 4px;
}

/* Prix list (home) */
.prix-list { border-bottom: 1px solid var(--line-s); }
.prix-item {
  display: grid;
  grid-template-columns: 40px 1fr auto auto;
  align-items: center;
  gap: 20px;
  padding: 16px 40px;
  border-bottom: 1px solid var(--line);
  transition: background 0.1s;
}
.prix-item:last-child { border-bottom: none; }
.prix-item:hover { background: rgba(15,15,14,0.02); }
.prix-idx {
  font-family: var(--font-mono);
  font-size: 9px;
  color: var(--c-prize-bar-3);
  letter-spacing: 0.1em;
}
.prix-info { display: flex; flex-direction: column; gap: 3px; }
.prix-name {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 15px;
  color: var(--ink);
}
.prix-attrs {
  font-family: var(--font-mono);
  font-size: 8px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--c-prize-bar-3);
}
.prix-when {
  font-family: var(--font-mono);
  font-size: 9px;
  color: var(--c-prize-bar-3);
  letter-spacing: 0.1em;
  white-space: nowrap;
}
.prix-action {
  font-family: var(--font-mono);
  font-size: 8px;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--c-action-text);
  padding: 4px 10px;
  border: 1px solid var(--c-action-border);
  background: transparent;
  white-space: nowrap;
}
.prix-action:hover { background: var(--c-action-hover-bg); }
.prix-used {
  font-family: var(--font-mono);
  font-size: 8px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--c-prize-bar-3);
}

/* ============================================================
   AUTHOR PAGE
   ============================================================ */
.canvas {
  display: grid;
  grid-template-columns: 2fr 2fr;
  border-bottom: 1px solid var(--line-s);
  min-height: 340px;
}

/* Sidebar */
.sidebar {
  background: var(--c-sidebar-bg);
  padding: 36px 30px;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: stretch;
  border-right: 1px solid var(--c-sidebar-border);
}
.sidebar-top {
  align-self: flex-start;
  width: 100%;
}
.sidebar-foot {
  margin-top: auto;
  width: 100%;
}
.librairie-bandeau {
  margin: -36px -30px 20px;
  padding: 14px 30px;
  background: var(--c-sidebar-on-dark-row);
  border-bottom: 1px solid var(--c-sidebar-on-dark-divider);
  font-family: var(--font-mono);
  font-size: 12px;
  line-height: 1.45;
  letter-spacing: 0.04em;
}
.librairie-bandeau a {
  color: var(--c-sidebar-on-dark-strong);
  text-decoration: none;
}
.librairie-bandeau a:hover,
.librairie-bandeau a:focus-visible {
  color: var(--c-sidebar-text);
  text-decoration: underline;
}
.librairie-bandeau-index {
  display: block;
  margin-top: 6px;
  font-size: 11px;
  letter-spacing: 0.08em;
  color: var(--c-sidebar-on-dark-faint);
}
.asb-num {
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--c-sidebar-on-dark-faint);
  letter-spacing: 0.2em;
}
.sidebar .libraire-favorites-count,
.sidebar .boite-a-livre-compteur-favorites {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.04em;
  margin: 6px 0 0;
  line-height: 1.35;
}
.asb-initials {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 110px;
  line-height: 0.8;
  letter-spacing: -6px;
  color: var(--c-sidebar-on-dark-watermark);
  margin-top: 10px;
  user-select: none;
}
.asb-name,
.auteur-sidebar__name,
.boite-a-livre-sidebar__name {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 2em;
  line-height: 0.95;
  letter-spacing: -1px;
  color: var(--c-sidebar-text);
  margin-top: -56px;
  position: relative;
  z-index: 1;
}
.asb-name-legal {
  display: block;
  margin-top: 0.45rem;
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.12em;
  color: var(--c-sidebar-muted);
}
.asb-author {
  margin: 8px 0 0;
  font-family: var(--font-mono);
  font-size: 13px;
  line-height: 1.4;
  color: var(--c-sidebar-text);
}
.asb-author a {
  color: inherit;
}
.asb-dates {
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--c-sidebar-muted);
  letter-spacing: 0.12em;
  margin-top: 10px;
}
.asb-life-details {
  margin-top: 8px;
  font-family: var(--font-mono);
  font-size: 11px;
  line-height: 1.55;
  color: var(--c-sidebar-muted);
  letter-spacing: 0.04em;
}
.asb-life-details p {
  margin: 0;
}
.asb-resume {
  font-family: var(--font-display);
  font-size: var(--bs-body-font-size);
  color: var(--c-sidebar-text);
  /*letter-spacing: 0.12em;*/
  margin-top: 10px;
}

.profile-map-section {
  margin-bottom: 0;
}

.profile-map-address {
  margin-bottom: 0.75rem;
  font-family: var(--font-mono);
  font-size: 12px;
  color: var(--c-prize-bar-3);
  letter-spacing: 0.06em;
}

.profile-map {
  width: 100%;
  height: 320px;
  border: 1px solid var(--line-s);
  border-radius: 4px;
  position: relative;
  z-index: 0;
  overflow: hidden;
}

.asb-photo {
  margin-top: 26px;
  display: flex;
  justify-content: flex-end;
  width: 100%;
}
.asb-photo img {
  max-width: 200px;
  height: auto;
}
.asb-photo--circle img {
  width: 200px;
  height: 200px;
  max-width: 200px;
  object-fit: cover;
  border-radius: 50%;
}
.asb-genres {
  display: flex;
  flex-direction: column;
  gap: 7px;
  margin-top: 26px;
}
.asb-genre {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--c-sidebar-on-dark-label);
  display: flex;
  align-items: center;
  gap: 10px;
}
.asb-genre::before {
  content: '';
  width: 22px;
  height: 1px;
  background: var(--c-sidebar-on-dark-line);
  flex-shrink: 0;
}
.asb-synopsises {
  display: flex;
  flex-direction: column;
  gap: 7px;
  margin-top: 26px;
}
.asb-synopsis {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--c-sidebar-on-dark-label);
  display: flex;
  align-items: center;
  gap: 10px;
}
.asb-synopsis::before {
  content: '';
  width: 22px;
  height: 1px;
  background: var(--c-sidebar-on-dark-line);
  flex-shrink: 0;
}
.asb-divider {
  border: none;
  border-top: 1px solid var(--c-sidebar-on-dark-divider);
  margin: 24px 0 0;
}

.sidebar .legal-page__toc {
  margin-top: 0.5rem;
}

.sidebar .legal-page__toc-label {
  display: block;
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--c-sidebar-on-dark-strong);
}

.sidebar .legal-page__toc ol,
.sidebar .legal-page__toc li {
  color: var(--c-sidebar-text);
}

.sidebar .legal-page__toc ol {
  margin: 0.85rem 0 0;
  padding-left: 1.1rem;
}

.sidebar .legal-page__toc li + li {
  margin-top: 0.5rem;
}

.sidebar .legal-page__toc a {
  color: var(--c-sidebar-text);
  text-decoration: none;
  font-family: var(--font-display);
  font-size: 0.92rem;
  line-height: 1.35;
}

.sidebar .legal-page__toc a:hover,
.sidebar .legal-page__toc a:focus-visible {
  color: var(--c-sidebar-on-dark-strong);
  text-decoration: underline;
}
.asb-stats {
  padding-top: 18px;
  display: flex;
  flex-direction: column;
  gap: 0;
}
.asb-stat {
  display: flex;
  /*justify-content: space-between;*/
  align-items: baseline;
  padding: 6px 0;
  border-bottom: 1px solid var(--c-sidebar-on-dark-row);
}
.asb-stat-right {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 6px 0;
  border-bottom: 1px solid var(--c-sidebar-on-dark-row);
}
.asb-stat:last-child { border-bottom: none; }
.asb-stat-n {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 24px;
  color: var(--c-sidebar-text);
}
.asb-stat-n-book {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 14px;
  color: var(--c-sidebar-on-dark-label);
}
.asb-stat-l {
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--c-sidebar-on-dark-faint);
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

/* --- Auteurs ---------------------------------------------- */
.auteur-sidebar__num {
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--c-sidebar-on-dark-faint);
  letter-spacing: 0.2em;
}
.auteur-sidebar__initials {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 110px;
  line-height: 0.8;
  letter-spacing: -6px;
  color: var(--c-sidebar-on-dark-watermark);
  margin-top: 10px;
  user-select: none;
}
.auteur-sidebar__dates {
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--c-sidebar-muted);
  letter-spacing: 0.12em;
  margin-top: 10px;
}
.auteur-sidebar__tags {
  display: flex;
  flex-direction: column;
  gap: 7px;
  margin-top: 26px;
}
.auteur-sidebar__tag {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--c-sidebar-on-dark-label);
  display: flex;
  align-items: center;
  gap: 10px;
}
.auteur-sidebar__tag::before {
  content: '';
  width: 22px;
  height: 1px;
  background: var(--c-sidebar-on-dark-line);
  flex-shrink: 0;
}
.auteur-sidebar__photo {
  margin-top: 26px;
  display: flex;
  justify-content: flex-end;
  width: 100%;
}
.auteur-sidebar__photo img {
  max-width: 200px;
  height: auto;
}
.auteur-sidebar__divider {
  border: none;
  border-top: 1px solid var(--c-sidebar-on-dark-divider);
  margin: 24px 0 0;
}
.auteur-sidebar__stats {
  padding-top: 18px;
  display: flex;
  flex-direction: column;
  gap: 0;
}
.auteur-sidebar__stat {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 6px 0;
  border-bottom: 1px solid var(--c-sidebar-on-dark-row);
}
.auteur-sidebar__stat-value {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 24px;
  color: var(--c-sidebar-text);
}
.auteur-sidebar__stat-label {
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--c-sidebar-on-dark-faint);
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.auteur-biography,
.auteur-contributors,
.auteur-actions,
.auteur-genres {
  padding: var(--page-pad-y) var(--page-pad-x);
  border-bottom: 1px solid var(--line);
}
.auteur-biography__label,
.auteur-contributors__label,
.auteur-genres__label,
.auteur-genres__form-label {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--c-eyebrow);
  margin-bottom: 12px;
  display: block;
}
.auteur-biography__body,
.auteur-contributors__body {
  font-family: var(--font-mono);
  font-weight: 400;
  font-size: 12px;
  line-height: 1.8;
  color: var(--c-body-text);
  max-width: 420px;
  margin-top: 12px;
}

.auteur-oeuvres,
.auteur-prix {
  border-bottom: 1px solid var(--line);
}
.auteur-oeuvres__head,
.auteur-prix__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  padding: 14px 40px;
  border-bottom: 1px solid var(--line);
  background: var(--surface);
}
.auteur-oeuvres__title,
.auteur-prix__title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 13px;
  color: var(--ink);
}
.auteur-oeuvres__count,
.auteur-prix__count {
  font-family: var(--font-mono);
  font-size: 12px;
  color: var(--c-prize-bar-3);
  letter-spacing: 0.1em;
}
.auteur-oeuvres__empty {
  padding: 20px 40px;
  margin: 0;
  font-family: var(--font-mono);
  font-size: 12px;
  color: var(--c-prize-bar-3);
}

.auteur-oeuvre-row,
.auteur-prix-row {
  display: flex;
  align-items: center;
  border-bottom: 1px solid var(--line);
}
.auteur-oeuvre-row:last-child,
.auteur-prix-row:last-child {
  border-bottom: none;
}
.auteur-oeuvre-row__year,
.auteur-prix-row__year {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 22px;
  letter-spacing: -0.5px;
  padding: 14px 24px;
  min-width: 88px;
  border-right: 1px solid var(--line);
  color: var(--ink);
  flex-shrink: 0;
}
.auteur-oeuvre-row__year--highlight,
.auteur-prix-row__year--highlight {
  color: var(--c-prize-highlight);
}
.auteur-oeuvre-row__bar,
.auteur-prix-row__bar {
  width: 4px;
  flex-shrink: 0;
  background: var(--c-prize-bar-3);
}
.auteur-oeuvre-row__body,
.auteur-prix-row__body {
  flex: 1;
  padding: 14px 20px;
}
.auteur-oeuvre-row__title,
.auteur-prix-row__title {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 14px;
  color: var(--ink);
  line-height: 1.3;
}
.auteur-oeuvre-row__original-title,
.auteur-oeuvre-row__genre,
.auteur-oeuvre-row__prizes,
.auteur-prix-row__book {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  color: var(--c-prize-bar-3);
  margin-top: 4px;
}
.auteur-oeuvre-row__original-title {
  font-style: italic;
}
.auteur-prix-row__book {
  font-style: italic;
  display: block;
}

.auteur-actions p {
  margin-bottom: 0;
}

.auteur-chronologie-wrap {
  overflow-x: auto;
  max-width: 100%;
  -webkit-overflow-scrolling: touch;
  padding: 36px 30px;
}
.auteur-chronologie {
  padding: 24px 40px 28px;
  border-bottom: 1px solid var(--line);
}
.auteur-chronologie__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  padding: 0;
  border: none;
  margin-bottom: 0;
}
.auteur-chronologie__title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 13px;
  color: var(--ink);
}
.auteur-chronologie__count {
  font-family: var(--font-mono);
  font-size: 12px;
  color: var(--c-prize-bar-3);
  letter-spacing: 0.1em;
}
.auteur-chronologie__track {
  display: flex;
  align-items: flex-start;
  margin-top: 18px;
  position: relative;
  width: max-content;
  min-width: 100%;
}
.auteur-chronologie__track::before {
  content: '';
  position: absolute;
  top: 5px;
  left: 0;
  right: 0;
  height: 1px;
  background: var(--line);
}
.auteur-chronologie__node {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex: 0 0 auto;
  min-width: 80px;
  padding: 0 8px;
  position: relative;
  z-index: 1;
}
.auteur-chronologie__pip {
  width: 11px;
  height: 11px;
  border-radius: 50%;
  border: 1.5px solid var(--c-prize-bar-3);
  background: var(--bg);
  flex-shrink: 0;
}
.auteur-chronologie__pip--oeuvre {
  border-color: var(--c-tl-pip-active);
  background: var(--c-tl-pip-active);
}
.auteur-chronologie__pip--prix {
  border-color: var(--c-tl-pip-star);
  background: var(--c-tl-pip-star);
}
.auteur-chronologie__year {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 500;
  color: var(--ink);
  letter-spacing: 0.08em;
  margin-top: 8px;
}
.auteur-chronologie__year--prix {
  color: var(--c-tl-pip-star);
}
.auteur-chronologie__year--deces {
  color: var(--c-prize-bar-3);
}
.auteur-chronologie__label {
  font-family: var(--font-display);
  font-size: 13px;
  font-weight: 400;
  color: var(--c-prize-bar-3);
  text-align: center;
  margin-top: 3px;
  line-height: 1.35;
}

.auteur-genres__list {
  list-style: none;
  padding-left: 0;
  margin: 12px 0 0;
}
.auteur-genres__item {
  display: inline-block;
  margin: 0 0.5em 0.5em 0;
}
.auteur-genres__message {
  margin-top: 12px;
  font-family: var(--font-mono);
  font-size: 12px;
}
.auteur-genres__message[hidden] {
  display: none;
}
.auteur-genres__count {
  font-size: inherit;
  letter-spacing: 0.02em;
  opacity: 0.85;
}
.auteur-genres__form {
  margin-top: 20px;
}
.auteur-genres__form-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
  margin-top: 12px;
  max-width: 420px;
}
.auteur-genres__input {
  flex: 1 1 12rem;
  min-width: 0;
  padding: 0.35em 0.5em;
  font-family: var(--font-mono);
  font-size: 12px;
}
.auteur-genres__submit {
  flex: 0 0 auto;
}
.auteur-genre-tag {
  cursor: pointer;
  padding: 0.25em 0.75em;
  border-radius: 4px;
  border: 1px solid transparent;
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: 0.04em;
  transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
a.auteur-genre-tag,
button.auteur-genre-tag,
span.auteur-genre-tag {
  display: inline-block;
  text-decoration: none;
}
.auteur-genre-tag--readonly {
  cursor: default;
}
.auteur-genre-tag--none {
  background: var(--c-tag-bg);
  border-color: var(--c-action-border);
  color: var(--c-tag-text);
}
.auteur-genre-tag--none:hover {
  background: var(--c-action-hover-bg);
  border-color: var(--c-primary-200);
}
.auteur-genre-tag--readonly.auteur-genre-tag--none:hover {
  background: var(--c-tag-bg);
  border-color: var(--c-action-border);
  color: var(--c-tag-text);
}
.auteur-genre-tag--others {
  background: var(--c-primary-200);
  border-color: var(--c-primary-400);
  color: var(--c-primary-800);
}
.auteur-genre-tag--others:hover {
  background: var(--c-primary-400);
  border-color: var(--c-primary-600);
  color: var(--c-btn-primary-fg);
}
.auteur-genre-tag--readonly.auteur-genre-tag--others:hover {
  background: var(--c-primary-200);
  border-color: var(--c-primary-400);
  color: var(--c-primary-800);
}
.auteur-genre-tag--mine {
  background: var(--c-primary-600);
  border-color: var(--c-primary-800);
  color: var(--c-btn-primary-fg);
}
.auteur-genre-tag--mine:hover {
  background: var(--c-primary-800);
  border-color: var(--c-primary-900);
  color: var(--c-btn-primary-fg);
}
.auteur-genre-tag--readonly.auteur-genre-tag--mine:hover {
  background: var(--c-primary-600);
  border-color: var(--c-primary-800);
  color: var(--c-btn-primary-fg);
}

.auteur-index__letter-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  position: sticky;
  top: calc(var(--nav-height, 64px) + 8px);
  z-index: 50;
  padding: 0.5rem 0 0.75rem;
  margin-bottom: 0.5rem;
  border-bottom: 1px solid var(--border, rgba(26, 24, 20, 0.15));
}
.auteur-index__letter-nav-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2rem;
  padding: 0.35rem 0.5rem;
  border: 1px solid var(--border, rgba(26, 24, 20, 0.15));
  border-radius: 4px;
  color: var(--text, #1a1814);
  text-decoration: none;
  font-size: 0.9rem;
  line-height: 1;
}
.auteur-index__letter-nav-link:hover {
  border-color: var(--c-sidebar-on-dark-meta);
  color: var(--accent, #b8976a);
}
.auteur-index__letter-nav-link--active {
  background: var(--c-hero-bg);
  border-color: var(--accent, #b8976a);
  color: #fff;
  font-weight: 500;
}
.auteur-index__hint {
  margin-bottom: 1rem;
}
.auteur-index__label {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--c-sidebar-on-dark-meta);
}
.auteur-index__name {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 20px;
  line-height: 1.2;
  color: var(--c-sidebar-text);
  margin-top: 20px;
  position: relative;
  z-index: 1;
}
.auteur-index__name a {
  color: inherit;
}
.auteur-index__meta span {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--c-sidebar-on-dark-meta);
  display: block;
}
.auteur-index__meta strong,
.auteur-index__pseudonym,
.auteur-index__nationality {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 13px;
  color: var(--c-sidebar-on-dark-strong);
  display: block;
  margin-top: 2px;
}
.auteur-index__biography-body {
  font-family: var(--font-mono);
  font-weight: 400;
  font-size: 12px;
  line-height: 1.8;
  color: var(--c-sidebar-on-dark-strong);
  margin-top: 8px;
  margin-bottom: 0;
}

.auteur-form__section {
  margin-top: 0;
}
.auteur-form__section-title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 13px;
  color: var(--ink);
}
.auteur-form__life-dates {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.auteur-form__life-dates .form-select {
  width: auto;
  min-width: 4.5rem;
}
.auteur-form__life-dates .form-select[id$="_month"] {
  min-width: 6rem;
}
.auteur-form__life-dates .form-select[id$="_year"] {
  min-width: 5rem;
}


/* Main content */
.main { display: flex; flex-direction: column; }

.main.page-form,
.admin-page-content,
body > article {
  padding: var(--page-pad-y) var(--page-pad-x);
}

.main .form-group,
.admin-page-content .form-group,
body > article .form-group {
  margin-bottom: 1rem;
}

.main .form-group > [class*="col-"]:first-child,
.admin-page-content .form-group > [class*="col-"]:first-child,
body > article .form-group > [class*="col-"]:first-child {
  padding-bottom: 0.35rem;
}

.main .form-group label,
.admin-page-content .form-group label,
body > article .form-group label {
  display: block;
  margin-bottom: 0.4rem;
}

.main .form-control,
.main .form-select,
.admin-page-content .form-control,
.admin-page-content .form-select,
body > article .form-control,
body > article .form-select {
  padding: 0.5rem 0.75rem;
}

@media (max-width: 991.98px) {
  .main.page-form,
  .admin-page-content,
  body > article {
    padding: 24px 16px;
  }

  .author-bio,
  .book-bio,
  .edition-bio,
  .edition-backcover,
  .book-synopsis,
  .book-contributors,
  .author-contributors,
  .edition-contributors,
  .book-reading-status,
  .book-keywords,
  .book-reader-notes,
  .auteur-biography,
  .auteur-contributors,
  .auteur-actions,
  .auteur-genres,
  .author-links-actions,
  .edition-links-actions,
  .book-links-actions,
  .literary-genre-links-actions,
  .mouvement-litteraire-liens-actions,
  .maison-edition-liens-actions,
  .book-track-section,
  .author-tl,
  .book-editions,
  .prix-page-head,
  .site-footer__links > [class*="col-"],
  .site-footer__meta > [class*="col-"],
  .site-footer__credit {
    padding-left: 16px;
    padding-right: 16px;
  }
  .site-footer__credit {
    padding-top: 0;
    padding-bottom: 0;
  }
}

.author-bio, 
.book-bio, 
.edition-bio,
.edition-backcover,
.book-synopsis, 
.book-contributors, 
.author-contributors,
.edition-contributors,
.book-reading-status,
.book-keywords,
.book-reader-notes,
.auteur-biography,
.auteur-contributors,
.auteur-actions,
.auteur-genres,
.author-links-actions,
.edition-links-actions,
.book-track-section {
  padding: var(--page-pad-y) var(--page-pad-x);
  border-bottom: 1px solid var(--line);
}
.book-links-actions,
.literary-genre-links-actions,
.mouvement-litteraire-liens-actions,
.maison-edition-liens-actions {
  padding: var(--page-pad-y) var(--page-pad-x);
}

/* Micro-data : classes sémantiques (voir /micro-data). */
.micro-data-class {
  font-family: var(--font-mono);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: var(--c-primary-800, var(--ink));
}

.legal-section__body {
  padding-top: 1rem;
}

.book-track-page .main {
  color: var(--c-primary-900);
}
.book-track-page .bio-body,
.book-track-page .bio-body a,
.book-track-page .book-track__hint,
.book-track-page .book-track__optional,
.book-track-page .book-track__stop-action,
.book-track-page .book-track__stop-date,
.book-track-page .book-track__stop-place,
.book-track-page .book-track__stop-comment,
.book-track-page .form-group label {
  color: var(--c-primary-900);
  font-weight: 400;
}
.book-track-page .bio-body {
  max-width: none;
}
.book-track-page .eyebrow {
  color: var(--c-primary-800);
}
.book-track__actions {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  margin: 0;
  padding: 0;
  border: 0;
}
.book-track__action {
  display: flex;
  align-items: flex-start;
  gap: 0.55rem;
  font-family: var(--font-display);
  font-size: 15px;
  color: var(--ink);
  cursor: pointer;
}
.book-track__action input {
  margin-top: 0.2rem;
}
.book-track__geo-map,
.book-track__map {
  width: 100%;
  height: 320px;
  margin-top: 12px;
  border: 1px solid var(--line-s);
  border-radius: 4px;
  position: relative;
  z-index: 0;
  overflow: hidden;
}
.book-track__hint {
  margin-top: 0.6rem;
  margin-bottom: 0;
  font-family: var(--font-mono);
  font-size: 12px;
  line-height: 1.5;
}
.book-track__legend {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.25rem;
  margin: 0.65rem 0 0;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.04em;
  color: var(--c-primary-800);
}
.book-track__legend-item {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
}
.book-track__legend-item::before {
  content: '';
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--c-primary-600);
}
.book-track__legend-item--book-box::before {
  background: var(--c-accent-600);
  border-radius: 2px;
}
.book-track__city-fallback {
  margin-top: 1rem;
}
.book-track__gps-actions {
  margin: 0.5rem 0 0.85rem;
}
.book-track__coords {
  margin: 0.35rem 0 0;
  font-family: var(--font-mono);
  font-size: 12px;
  line-height: 1.5;
  color: var(--c-primary-900);
}
.book-track__coords span {
  font-weight: 500;
  letter-spacing: 0.02em;
}
.book-track__city-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: stretch;
}
.book-track__city-row .form-control {
  flex: 1 1 12rem;
}
.book-track__optional {
  font-family: var(--font-mono);
  font-weight: 400;
  font-size: 11px;
  letter-spacing: 0.04em;
  text-transform: none;
}
.book-track__stops {
  margin: 1rem 0 0;
  padding: 0;
  list-style: none;
}
.book-track__stops li {
  display: grid;
  gap: 0.15rem;
  padding: 0.75rem 0;
  border-bottom: 1px solid var(--line);
  font-family: var(--font-mono);
  font-size: 12px;
  color: var(--c-primary-900);
}
.book-track__stops li:last-child {
  border-bottom: none;
}
.book-track__stop-action {
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-size: 10px;
}
.book-track__stop-user a {
  color: inherit;
  text-decoration: underline;
}
.book-track__feedback {
  min-height: 1.2em;
  margin: 0.75rem 0 0;
  font-family: var(--font-mono);
  font-size: 12px;
  color: var(--c-primary-900);
}
.book-track__feedback.is-error {
  color: #8a1f1f;
}
.book-track__submit {
  margin-top: 1rem;
}
.book-track__cover-preview {
  margin-top: 0.75rem;
}
.book-track__cover-preview img {
  display: block;
  max-width: 160px;
  height: auto;
}
.leaflet-container .book-track-place-icon {
  border: 0 !important;
  background: transparent !important;
  width: 16px !important;
  height: 16px !important;
}
.book-track-place-icon__dot {
  display: block;
  width: 14px;
  height: 14px;
  margin: 1px;
  box-shadow: 0 0 0 2px #fff, 0 1px 3px rgba(15, 15, 14, 0.35);
}
.leaflet-container .book-track-place-icon--librairie .book-track-place-icon__dot {
  background: var(--c-primary-600);
  border-radius: 50%;
}
.leaflet-container .book-track-place-icon--book-box .book-track-place-icon__dot {
  background: var(--c-accent-600);
  border-radius: 2px;
}
.book-track-place-popup__kicker {
  margin: 0 0 0.25rem;
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--c-primary-800);
}
.book-track-place-popup__title {
  color: var(--c-primary-900);
  font-weight: 600;
}
.book-track-place-popup__city {
  margin: 0.25rem 0 0.5rem;
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--c-primary-800);
}
.book-track-place-use {
  appearance: none;
  border: 1px solid var(--c-action-border);
  background: transparent;
  padding: 0.25rem 0.55rem;
  font-family: var(--font-mono);
  font-size: 11px;
  cursor: pointer;
}

.legal-subtitle {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 13px;
  line-height: 1.35;
  color: var(--ink);
  margin: 1.35rem 0 0.45rem;
}

.legal-list {
  margin: 0.75rem 0 0;
  padding-left: 1.25em;
}

.boite-a-livre-list__head,
.boite-a-livre-form__section,
.boite-a-livre-copies__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
}

.boite-a-livre-list__search {
  margin-bottom: 1.25rem;
}
.author-prizes .boite-a-livre-list__search {
  padding: 0 40px 16px;
  margin-bottom: 0;
}

.boite-a-livre-list__search-label {
  display: block;
  margin-bottom: 0.4rem;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--c-prize-bar-3);
}

.boite-a-livre-list__search-status {
  margin-top: 0.5rem;
  font-family: var(--font-mono);
  font-size: 12px;
  color: var(--muted);
}
.bio-quote {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: 17px;
  line-height: 1.65;
  color: var(--ink);
  max-width: 440px;
}
.bio-body, 
.author-bio-body,
.prize-information, 
.asb-synopsis-body, 
.book-synopsis-body,
.edition-backcover-body,
.edition-contributors-body {
  font-family: var(--font-mono);
  font-weight: 300;
  font-size: 12px;
  line-height: 1.8;
  color: var(--c-prize-bar-3);
  max-width: 420px;
  margin-top: 12px;
}

.notation-page-head__intro.bio-body {
  color: var(--ink);
  font-weight: 400;
}

.notation-global-score {
  font-family: var(--font-display, Syne, sans-serif);
  font-size: 2rem;
  font-weight: 600;
  line-height: 1.15;
  color: var(--ink);
  margin: 0.35rem 0 0.2rem;
}

.notation-user-vote .notation-user-vote__meta.bio-body {
  color: var(--ink);
  font-weight: 400;
}

.notation-star-btn,
.notation-star-btn:disabled {
  color: var(--c-eyebrow);
  opacity: 1;
}

.notation-star-btn .notation-star-icon {
  fill: none;
  stroke: var(--c-eyebrow);
  stroke-width: 1.6;
  stroke-linejoin: round;
}

.notation-star-btn.is-lit .notation-star-icon,
.notation-star-btn.is-lit:disabled .notation-star-icon {
  fill: var(--c-eyebrow);
  stroke: var(--c-eyebrow);
}

.book-notation-teaser__stars {
  display: flex;
  align-items: center;
  gap: 0.15rem;
  margin: 0.35rem 0 0.5rem;
}

.book-notation-teaser__star {
  position: relative;
  width: 1.35rem;
  height: 1.35rem;
  flex-shrink: 0;
}

.book-notation-teaser__star .notation-star-icon {
  display: block;
  width: 1.35rem;
  height: 1.35rem;
  fill: none;
  stroke: var(--c-eyebrow);
  stroke-width: 1.6;
  stroke-linejoin: round;
}

.book-notation-teaser__star-fill {
  position: absolute;
  inset: 0 auto 0 0;
  overflow: hidden;
}

.book-notation-teaser__star-fill .notation-star-icon--filled {
  fill: var(--c-eyebrow);
  stroke: var(--c-eyebrow);
}

.book-notation-teaser__meta.bio-body {
  color: var(--ink);
  font-weight: 400;
}

/* Prix list (author) */
.profile-book-readings__status-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  padding: 12px 40px;
  border-bottom: 1px solid var(--line);
  background: var(--surface);
}
.profile-book-readings__status-count {
  font-family: var(--font-mono);
  font-size: 12px;
  color: var(--c-prize-bar-3);
  letter-spacing: 0.08em;
}
.profile-add-book-by-isbn__intro {
  margin-bottom: 0;
}
.profile-add-book-by-isbn__form {
  margin-top: 20px;
}
.profile-add-book-by-isbn__row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
  margin-top: 12px;
  max-width: 420px;
}
.profile-add-book-by-isbn__input {
  flex: 1 1 12rem;
  min-width: 0;
}
.profile-add-book-by-isbn__submit {
  flex: 0 0 auto;
}
.profile-add-book-by-isbn__scan-hint,
.profile-add-book-by-isbn__scan-start,
.profile-add-book-by-isbn__scanner,
.profile-add-book-by-isbn__scan-status {
  display: none;
}
.profile-add-book-by-isbn__scan-status {
  margin: 12px 0 0;
  font-family: var(--font-mono);
  font-size: 12px;
  color: var(--c-prize-bar-3);
}
.profile-add-book-by-isbn__scanner {
  margin-top: 16px;
}
.profile-add-book-by-isbn__reader {
  width: 100%;
  max-width: 420px;
  overflow: hidden;
  background: #000;
}
.profile-add-book-by-isbn__reader video,
.profile-add-book-by-isbn__reader canvas {
  display: block;
  width: 100% !important;
  max-width: 100%;
  height: auto !important;
}
.profile-add-book-by-isbn__scan-stop {
  margin-top: 12px;
}

@media (max-width: 767px) {
  .profile-add-book-by-isbn.is-scan-ready .profile-add-book-by-isbn__scan-hint {
    display: block;
    margin: 8px 0 0;
  }
  .profile-add-book-by-isbn.is-scan-ready .profile-add-book-by-isbn__scan-start:not([hidden]) {
    display: inline-block;
  }
  .profile-add-book-by-isbn.is-scan-ready .profile-add-book-by-isbn__scanner:not([hidden]) {
    display: block;
  }
  .profile-add-book-by-isbn.is-scan-ready .profile-add-book-by-isbn__scan-status:not([hidden]) {
    display: block;
  }
}

.profile-edition-wishlists__content {
  background-color: var(--c-wishlist-bg);
}
.profile-edition-wishlists__empty {
  padding: 20px 40px;
  margin: 0;
  font-family: var(--font-mono);
  font-size: 12px;
  color: var(--c-prize-bar-3);
}
.profile-edition-wishlists .profile-book-readings__status--wishlist .profile-book-readings__status-head {
  background-color: var(--c-wishlist-bg-strong);
  border-bottom-color: rgba(153, 53, 86, 0.15);
}
.profile-edition-wishlists .profile-edition-wishlists__row,
.profile-edition-wishlists .profile-edition-wishlists__row .prize-year,
.profile-edition-wishlists .profile-edition-wishlists__row .prize-body {
  background-color: var(--c-wishlist-bg);
}
.profile-edition-wishlists .profile-edition-wishlists__row {
  border-bottom-color: rgba(153, 53, 86, 0.15);
}
.profile-edition-wishlists .profile-edition-wishlists__row .prize-year,
.profile-edition-wishlists .profile-edition-wishlists__row .prize-body {
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.profile-edition-wishlists .profile-edition-wishlists__row .profile-edition-row__match {
  background-color: var(--c-wishlist-bg);
  border-color: rgba(153, 53, 86, 0.15);
}
.profile-edition-wishlists .profile-edition-wishlists__row:last-child {
  border-bottom: none;
}

.profile-edition-ownerships__content {
  background-color: var(--c-ownership-bg);
}
.profile-edition-ownerships__empty {
  padding: 20px 40px;
  margin: 0;
  font-family: var(--font-mono);
  font-size: 12px;
  color: var(--c-prize-bar-3);
}
.profile-edition-ownerships .profile-book-readings__status--ownership .profile-book-readings__status-head {
  background-color: var(--c-ownership-bg-strong);
  border-bottom-color: rgba(59, 109, 17, 0.15);
}
.profile-edition-ownerships .profile-edition-ownerships__row,
.profile-edition-ownerships .profile-edition-ownerships__row .prize-year,
.profile-edition-ownerships .profile-edition-ownerships__row .prize-body {
  background-color: var(--c-ownership-bg);
}
.profile-edition-ownerships .profile-edition-ownerships__row {
  border-bottom-color: rgba(59, 109, 17, 0.15);
}
.profile-edition-ownerships .profile-edition-ownerships__row .prize-year,
.profile-edition-ownerships .profile-edition-ownerships__row .prize-body {
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.profile-edition-ownerships .profile-edition-ownerships__row .profile-edition-row__match {
  background-color: var(--c-ownership-bg);
  border-color: rgba(59, 109, 17, 0.15);
}
.profile-edition-ownerships .profile-edition-ownerships__row:last-child {
  border-bottom: none;
}

@media (max-width: 767px) {
  .profile-edition-ownerships .profile-edition-ownerships__row .prize-year,
  .profile-edition-ownerships .profile-edition-ownerships__row .prize-bar {
    display: none;
  }

  .profile-edition-ownerships .profile-edition-ownerships__row .prize-body {
    float: none;
    width: 100%;
    max-width: 100%;
  }
}
.profile-edition-row__qr {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.35rem;
  flex: 0 0 auto;
}
.profile-edition-row__qr-link {
  display: block;
  line-height: 0;
  outline: none;
  box-shadow: none;
}
.profile-edition-row__qr-link:focus,
.profile-edition-row__qr-link:focus-visible {
  outline: none;
  box-shadow: none;
}
.profile-edition-row__qr-img {
  display: block;
  width: 72px !important;
  height: 72px !important;
  max-width: 72px !important;
  flex-shrink: 0;
  background: #fff;
}
.profile-edition-row__qr-code {
  appearance: none;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.04em;
  color: var(--c-primary-900);
  white-space: nowrap;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.profile-edition-row__qr-code:hover,
.profile-edition-row__qr-code:focus-visible {
  color: var(--ink);
}

.profile-qr-preview-modal .modal-content {
  border-radius: var(--radius);
  background: var(--surface);
}
.profile-qr-preview-modal__body {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
  padding: 1.5rem;
}
.profile-qr-preview-modal__img {
  display: block;
  width: auto;
  height: auto;
  max-width: min(100%, 360px);
  background: #fff;
}
.profile-qr-preview-modal__code {
  margin: 0;
  font-family: var(--font-mono);
  font-size: 14px;
  letter-spacing: 0.08em;
}
.profile-qr-preview-modal__hint {
  margin: 0;
  font-family: var(--font-mono);
  font-size: 12px;
  color: var(--c-prize-bar-3);
  text-align: center;
}

.edition-status-columns {
  display: flex;
  gap: 0.75rem;
  align-items: flex-start;
  flex-wrap: nowrap;
  justify-content: flex-start;
  width: fit-content;
  max-width: 100%;
}

/* Bloc harmonisé Lecture | Possession | Recherche (auteur, livre, édition). */
.edition-user-status {
  width: fit-content;
  max-width: 100%;
}

.edition-user-status .edition-status-columns .edition-user-status__column,
.edition-user-status .edition-status-columns .book-reading-status--column {
  flex: 0 1 auto;
  min-width: 0;
}

/* Pas de marge de section fiche livre dans la colonne harmonisée. */
.edition-user-status .book-reading-status--column,
.profile-edition-row__status-columns .book-reading-status--column {
  padding: 0;
  border-bottom: none;
}

.edition-user-status .edition-status-columns .eyebrow {
  font-size: 0.65rem;
  white-space: nowrap;
}

.edition-user-status .edition-ownership-status__list,
.edition-user-status .edition-wishlist-status__list,
.edition-user-status .book-reading-status--column .book-reading-status__list,
.profile-edition-row__status-columns .book-reading-status--column .book-reading-status__list {
  list-style: none;
  padding-left: 0;
  margin: 0.25rem 0 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.2rem;
}

.edition-user-status .edition-user-status__sub-item {
  padding-left: 0.75rem;
}

/* Lecture : tous les statuts au même alignement vertical (pas de retrait hiérarchique). */
.edition-user-status .book-reading-status--column .book-reading-status__item,
.profile-edition-row__status-columns .book-reading-status--column .book-reading-status__item {
  display: block;
  margin: 0;
  padding-left: 0;
  width: 100%;
}

.edition-user-status .edition-ownership-status__item,
.edition-user-status .edition-wishlist-status__item {
  display: block;
  margin: 0;
  width: 100%;
}

.edition-user-status .edition-status-columns .genre-tag,
.profile-edition-row__status-columns .book-reading-status--column .genre-tag {
  font-size: 0.65rem;
  padding: 0.1rem 0.35rem;
  display: inline-block;
  max-width: 100%;
  text-align: left;
}

.edition-user-status .book-reading-status__message,
.edition-user-status .edition-ownership-status__message,
.edition-user-status .edition-wishlist-status__message {
  font-size: 0.65rem;
  margin: 0.25rem 0 0;
}

.edition-status-columns .edition-ownership-status,
.edition-status-columns .edition-wishlist-status,
.edition-status-columns .book-reading-status {
  flex: 0 1 auto;
  min-width: 0;
}

.profile-edition-row__status-columns {
  display: flex;
  gap: 0.75rem;
  align-items: flex-start;
  flex-wrap: nowrap;
  width: 100%;
}

.profile-edition-row__status-columns .book-reading-status {
  flex: 0 0 auto;
  min-width: 7.5rem;
  max-width: 9.5rem;
}

.profile-edition-row__status-columns .book-reading-status--column .eyebrow {
  font-size: 0.65rem;
  white-space: nowrap;
}

.profile-edition-row__status-columns .book-reading-status__message {
  font-size: 0.65rem;
  margin: 0.25rem 0 0;
}

.profile-edition-row__main {
  flex: 1 1 auto;
  min-width: 0;
}

.book-editions {
  padding: var(--page-pad-y) var(--page-pad-x);
  clear: both;
  width: 100%;
}

.edition-list-item {
  margin-top: 1.5rem;
  margin-bottom: 1.5rem;
}

.edition-list-item__layout {
  display: grid;
  grid-template-areas:
    "cover body"
    "status status";
  grid-template-columns: auto minmax(0, 1fr);
  column-gap: 0.75rem;
  row-gap: 0.75rem;
  align-items: start;
}

.edition-list-item__book {
  display: contents;
}

.edition-list-item__cover {
  grid-area: cover;
}

.edition-list-item__status {
  grid-area: status;
  min-width: 0;
  width: 100%;
  padding-left: 0;
  padding-top: 0.25rem;
}

.book-editions .edition-user-status {
  width: 100%;
  max-width: 100%;
}

.book-editions .edition-status-columns {
  width: 100%;
  max-width: 100%;
  flex-wrap: wrap;
  gap: 1rem 1.5rem;
}

.book-editions .edition-status-columns .edition-user-status__column,
.book-editions .edition-status-columns .book-reading-status--column {
  flex: 1 1 12rem;
  min-width: min(100%, 10rem);
}

.edition-list-item__body {
  grid-area: body;
  padding: 0;
  white-space: nowrap;
}

.edition-list-item--active {
  background: var(--c-primary-50);
  border: 1px solid var(--c-action-border);
  border-radius: var(--radius);
  padding: 0.75rem;
}

.edition-list-item--active .edition-list-item__body {
  padding-top: 0;
}

.edition-list-item--no-status .edition-list-item__layout {
  grid-template-areas:
    "cover"
    "body";
  grid-template-columns: 1fr;
}

.edition-list-item--no-status .edition-list-item__cover {
  grid-area: cover;
}

.edition-list-item--no-status .edition-list-item__body {
  grid-area: body;
  padding-top: 0.5rem;
}

/* Anciennes classes conservées pour compatibilité éventuelle */
.edition-card-head {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 0.75rem;
}

.edition-card-head__cover {
  flex: 0 0 auto;
}

.edition-card-head__user {
  flex: 1 1 0;
  min-width: 0;
}

.edition-list-item__body.edition-list-item__body--legacy {
  padding: 0.5rem 0 0;
}

.book-meta--highlight {
  color: var(--c-prize-highlight);
}

.profile-prize-row__content {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  width: 100%;
}
.profile-prize-row__text {
  flex: 1 1 0;
  min-width: 0;
}
.profile-edition-row__matches {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.75rem;
  width: 100%;
  margin-top: 0.75rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--line);
}
.profile-edition-row__match {
  min-width: 0;
  padding: 0.5rem 0.75rem;
  border: 1px solid var(--line);
  background: var(--paper);
}
.profile-prize-row__search-label {
  display: block;
  margin-bottom: 0.2rem;
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--c-prize-bar-3);
}
.profile-prize-row__search-user {
  display: block;
  margin-bottom: 0.2rem;
  font-family: var(--font-body);
  font-size: 12px;
  color: var(--c-prize-highlight);
  text-decoration: none;
}
.profile-prize-row__search-user:hover {
  text-decoration: underline;
}
.profile-prize-row__search-date {
  display: inline-block;
  line-height: 1.35;
  font-family: var(--font-mono);
  font-size: 12px;
  color: var(--c-prize-bar-3);
}
.profile-prize-row__search-distance {
  display: block;
  margin-bottom: 0.2rem;
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: 0.04em;
  color: var(--c-prize-highlight);
}
.profile-prize-row__match-location {
  color: var(--c-primary-900);
}
.profile-prize-row__match-action {
  margin-top: 0.4rem;
}
.profile-edition-row__match--unavailable {
  opacity: 0.5;
  filter: grayscale(1);
}
.profile-edition-row__match--accepted {
  border-color: var(--c-primary-900);
}
.profile-edition-row__match--progress {
  border-color: var(--c-accent-600, #BA7517);
}
.profile-match-badge {
  display: inline-block;
  margin-top: 0.4rem;
  padding: 0.3rem 0.6rem;
  border: 1px solid var(--line-s);
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--c-prize-bar-3);
}
.profile-match-badge--accepted {
  border-color: var(--c-primary-900);
  color: var(--c-primary-900);
}
.profile-match-badge--initiated {
  border-color: var(--c-primary-900);
  color: var(--c-primary-900);
  background: var(--c-primary-50, #f5f0eb);
}
.profile-match-initiate__error {
  margin: 0.35rem 0 0;
  font-family: var(--font-mono);
  font-size: 10px;
}
.profile-match-badge--progress {
  border-color: var(--c-accent-600, #BA7517);
  color: var(--c-accent-600, #BA7517);
}
/* Mention d'état sur une édition possédée (ex. « Prêt en cours »). */
.profile-edition-row__state {
  display: inline-block;
  margin-top: 0.3rem;
  padding: 0.2rem 0.55rem;
  border: 1px solid var(--c-accent-600, #BA7517);
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--c-accent-600, #BA7517);
}
.profile-edition-row__state--progress {
  border-color: var(--c-accent-600, #BA7517);
  color: var(--c-accent-600, #BA7517);
}

/* Prêt clôturé : mention « déjà prêté » non actionnable. */
.profile-match-badge--done {
  border-style: dashed;
  border-color: var(--line-s);
  color: var(--muted, #6b6b6b);
  opacity: 0.85;
}

/* --- Remise du livre (réception) -------------------------- */
.transaction-handover {
  margin-top: 0.75rem;
  padding-top: 0.6rem;
  border-top: 1px dashed var(--line);
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.transaction-handover__hint {
  margin: 0;
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--c-prize-bar-3);
}
.transaction-handover__badge {
  margin: 0;
  align-self: flex-start;
  padding: 0.3rem 0.7rem;
  border: 1px solid var(--c-accent-600, #BA7517);
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--c-accent-600, #BA7517);
}
.transaction-handover__confirm {
  width: 100%;
  margin-top: 0;
}
.profile-match-initiate {
  display: inline-block;
  padding: 0.35rem 0.7rem;
  border: 1px solid var(--c-primary-900);
  background: var(--c-primary-900);
  color: #fff;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease;
}
.profile-match-initiate:hover {
  background: transparent;
  color: var(--c-primary-900);
}

/* --- Notifications ---------------------------------------- */
.nav-notifications {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}
.nav-notifications__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: 9px;
  background: var(--c-prize-highlight, #BA7517);
  color: #fff;
  font-family: var(--font-mono);
  font-size: 11px;
  line-height: 1;
}
.notifications__bulk {
  margin-bottom: 1rem;
}
.notifications {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.notification-card {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.9rem 1.1rem;
  border: 1px solid var(--line);
  background: var(--surface);
}
.prize-row--unread .prize-body {
  background: var(--c-primary-50, #E6F1FB);
}
.notifications-page .prize-row .prize-year {
  border-right: none;
}
.notifications-page .prize-row .prize-row-divider {
  width: 1px;
  flex-shrink: 0;
  align-self: center;
  height: 70%;
  background: var(--line-s);
}
.notification-card__body {
  flex: 1 1 auto;
  min-width: 0;
}
.notification-card__message {
  margin: 0 0 0.35rem;
  font-family: var(--font-body);
  font-size: 14px;
  color: var(--ink);
}
.notification-card__status {
  display: block;
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--c-prize-bar-3);
}
.notification-card__status {
  margin-top: 0.35rem;
  color: var(--c-primary-900);
}
.notification-card__party {
  margin-top: 0.35rem;
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--c-prize-bar-3);
}
.notification-card__party a {
  color: var(--c-primary-900);
  text-decoration: none;
}
.notification-card__party a:hover {
  text-decoration: underline;
}

.loans-page .loan-hub-card__party a {
  color: var(--c-primary-900, var(--ink));
  text-decoration: underline;
}
a.transaction-message__author {
  text-decoration: none;
}
a.transaction-message__author:hover {
  text-decoration: underline;
}
.notification-card__actions,
.notification-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.6rem;
}
.notification-card__meta {
  flex-direction: column;
  align-items: flex-end;
  margin-top: 0;
}
.notification-action {
  padding: 0.3rem 0.6rem;
  border: 1px solid var(--line-s);
  background: transparent;
  color: var(--c-primary-900);
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.04em;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.notification-action:hover {
  border-color: var(--c-primary-900);
}
.notification-action--danger {
  color: #a12d2d;
}
.notification-action--danger:hover {
  border-color: #a12d2d;
  background: #a12d2d;
  color: #fff;
}

/* --- Messagerie de transaction ---------------------------- */
.transaction-thread {
  margin-top: 0.9rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--line);
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}
.transaction-thread__messages {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}
.transaction-message {
  max-width: 85%;
  padding: 0.5rem 0.7rem;
  border: 1px solid var(--line);
  background: var(--surface);
}
.transaction-message--mine {
  align-self: flex-end;
  background: var(--c-primary-50, #E6F1FB);
  border-color: var(--c-primary-200, #85B7EB);
}
.transaction-message__head {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.25rem;
}
.transaction-message__author {
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--c-primary-900);
}
.transaction-message__date {
  font-family: var(--font-mono);
  font-size: 10px;
  color: var(--c-prize-bar-3);
}
.transaction-message__body {
  margin: 0;
  font-family: var(--font-body);
  font-size: 13px;
  color: var(--ink);
}
.transaction-thread__empty {
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--c-prize-bar-3);
}
.transaction-thread__form {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  align-items: stretch;
  width: 100%;
}
.transaction-thread__textarea {
  width: 100%;
  padding: 0.5rem 0.6rem;
  border: 1px solid var(--line-s);
  background: var(--surface);
  font-family: var(--font-body);
  font-size: 13px;
  resize: vertical;
}
.transaction-thread__textarea:focus {
  outline: none;
  border-color: var(--c-primary-900);
}
.transaction-thread__submit {
  width: 100%;
  margin-top: 0;
}
.profile-favorite-genres {
  position: relative;
  z-index: 1;
}
.profile-favorite-genres__list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.5rem;
}
.profile-favorite-genre {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.3rem 0.7rem;
  border: 1px solid var(--line);
  background: var(--c-tag-bg);
  color: var(--c-tag-text);
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: 0.04em;
  text-decoration: none;
  cursor: pointer;
}
.profile-favorite-genre:hover {
  border-color: var(--c-primary-900);
}
.profile-favorite-genre__count {
  font-weight: 600;
  color: var(--c-primary-900);
}
.profile-stats__charts {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1rem;
  margin-top: 0.75rem;
}
.profile-stats__chart {
  width: 100%;
}
.profile-stats__chart-title {
  margin-bottom: 0.5rem;
  text-align: center;
}
.profile-stats__chart-canvas {
  min-height: 300px;
  width: 100%;
  overflow: hidden;
  position: relative;
  z-index: 0;
}

/* Profil : agrandir les petites polices des blocs possessions / recherches */
.profile-edition-ownerships .contribution-timestamp,
.profile-edition-wishlists .contribution-timestamp,
.profile-book-readings .contribution-timestamp,
.profile-edition-ownerships .contribution-updated-at,
.profile-edition-wishlists .contribution-updated-at,
.profile-book-readings .contribution-updated-at,
.profile-edition-ownerships .prize-meta,
.profile-edition-wishlists .prize-meta,
.profile-book-readings .prize-meta {
  font-size: 12px;
}
.profile-prize-row__cover {
  flex: 0 0 auto;
}
.profile-prize-row__cover-img {
  display: block;
  max-width: 64px;
  width: auto;
  height: auto;
  object-fit: contain;
}
.profile-prize-row__cover a {
  display: block;
  line-height: 0;
}
.edition-cover--external-pending,
.book-cover--external-pending {
  display: none !important;
}
.author-prizes { border-bottom: 1px solid var(--line); }
.author-prizes .sec-head-title a {
  color: inherit;
  text-decoration: none;
}
.author-prizes .sec-head-title a:hover {
  color: var(--c-link-hover);
}
.prize-row {
  display: flex;
  align-items: center;
  border-bottom: 1px solid var(--line);
}
.prize-row:last-child { border-bottom: none; }
.prize-year {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 22px;
  letter-spacing: -0.5px;
  padding: 14px 24px;
  min-width: 88px;
  border-right: 1px solid var(--line);
  color: var(--ink);
  flex-shrink: 0;
}
.prize-year.highlight { color: var(--c-prize-highlight); }

.prize-year-life {
  display: flex;
  flex-direction: column;
  line-height: 1.15;
}
.prize-year-life__birth--favorite {
  color: #185FA5;
}
.prize-year.highlight .prize-year-life__birth--favorite {
  color: #185FA5;
}
.prize-year-life__death {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: var(--c-prize-bar-3);
  margin-top: 3px;
}
.prize-year.highlight .prize-year-life__death {
  color: inherit;
  opacity: 0.72;
}
.prize-year-life__favorites {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.04em;
  margin-top: 3px;
  line-height: 1.25;
  white-space: normal;
  /* La colonne année ne peut pas rétrécir : sans plafond, elle réserve
     la largeur du libellé sur une seule ligne. */
  max-width: 8rem;
  overflow-wrap: anywhere;
}
.prize-year-life__favorites,
.prize-year.highlight .prize-year-life__favorites {
  color: #c62828;
  opacity: 1;
}

.contribution-timestamp {
  display: block;
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.06em;
  line-height: 1.45;
  color: var(--c-prize-bar-3);
}

.prize-year.highlight .contribution-timestamp {
  color: var(--c-prize-highlight);
}

.contribution-updated-at {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.06em;
  color: var(--c-prize-bar-3);
  margin-top: 4px;
}

.prize-bar { width: 4px; flex-shrink: 0; }
.prize-body, .book-body { flex: 1; padding: 14px 20px; }
.prize-name, .book-name {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 14px;
  color: var(--ink);
  line-height: 1.3;
}

.author-prizes .prize-row {
  align-items: flex-start;
}

.prize-laureate-photo {
  display: block;
  margin-top: 0.45rem;
}

.prize-laureate-photo img {
  display: block;
  width: 56px;
  height: 72px;
  object-fit: cover;
  object-position: top center;
}
.prize-meta, .book-meta {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  /*text-transform: uppercase;*/
  color: var(--c-prize-bar-3);
  margin-top: 4px;
}
.prize-edit {
  font-family: var(--font-mono);
  font-size: 8px;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--c-action-text);
  border: 1px solid var(--c-action-border);
  background: transparent;
  padding: 4px 10px;
  margin-right: 20px;
  flex-shrink: 0;
}
.prize-edit:hover { background: var(--c-action-hover-bg); }

/* Works list */
.author-works { border-bottom: 1px solid var(--line); }
.work-row {
  display: grid;
  grid-template-columns: 48px 1fr 72px 80px;
  align-items: center;
  border-bottom: 1px solid var(--line);
}
.work-row:last-child { border-bottom: none; }
.work-n {
  font-family: var(--font-mono);
  font-size: 8px;
  color: var(--c-prize-bar-3);
  padding: 14px 0 14px 40px;
  letter-spacing: 0.1em;
}
.work-title {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 14px;
  color: var(--ink);
  padding: 14px 16px;
}
.work-year {
  font-family: var(--font-mono);
  font-size: 10px;
  color: var(--c-prize-bar-3);
  padding: 14px 12px;
  border-left: 1px solid var(--line);
  letter-spacing: 0.08em;
}
.work-type {
  font-family: var(--font-mono);
  font-size: 8px;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 14px 16px;
  border-left: 1px solid var(--line);
}

/* Timeline */
.author-tl {
  padding: var(--page-pad-y) var(--page-pad-x);
  border-bottom: 1px solid var(--line);
}
.tl-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  padding: 0 0 14px;
  border-bottom: 1px solid var(--line);
  /*background: var(--surface);*/
}
.tl-track {
  display: flex;
  align-items: flex-start;
  margin-top: 18px;
  position: relative;
}
.tl-track::before {
  content: '';
  position: absolute;
  top: 5px; left: 0; right: 0;
  height: 1px;
  background: var(--line);
}
.tl-node {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex: 1;
  position: relative;
  z-index: 1;
}
.tl-pip {
  width: 11px;
  height: 11px;
  border-radius: 50%;
  border: 1.5px solid var(--c-prize-bar-3);
  background: var(--bg);
  flex-shrink: 0;
}
.tl-pip.active { border-color: var(--c-tl-pip-active); background: var(--c-tl-pip-active); }
.tl-pip.star   { border-color: var(--c-tl-pip-star); background: var(--c-tl-pip-star); }
.tl-yr {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 500;
  color: var(--ink);
  letter-spacing: 0.08em;
  margin-top: 8px;
}
.tl-lbl {
  font-family: var(--font-display);
  font-size: 13px;
  font-weight: 400;
  color: var(--c-prize-bar-3);
  text-align: center;
  margin-top: 3px;
  line-height: 1.35;
}

#chronology {
  overflow-x: auto;
  max-width: 100%;
  -webkit-overflow-scrolling: touch;
}

#chronology .tl-track {
  width: max-content;
  min-width: 100%;
}

#chronsology .tl-node {
  flex: 0 0 auto;
  min-width: 80px;
  padding: 0 8px;
}

/* ============================================================
   PRIX LIST PAGE
   ============================================================ */
.prix-page-head {
  padding: var(--page-pad-y) var(--page-pad-x);
  border-bottom: 1px solid var(--line-s);
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
}
.prix-page-title {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 40px;
  letter-spacing: -1.5px;
  line-height: 1;
  color: var(--ink);
}
.prix-page-sub {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 300;
  color: var(--c-prize-bar-3);
  margin-top: 8px;
  line-height: 1.6;
}

.prix-filters {
  display: flex;
  gap: 8px;
  padding: 12px 40px;
  border-bottom: 1px solid var(--line);
  background: var(--surface);
}
.filter-btn {
  font-family: var(--font-mono);
  font-size: 8px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: 5px 14px;
  border: 1px solid var(--line-s);
  background: transparent;
  color: var(--c-prize-bar-3);
  border-radius: var(--radius-sm);
}
.filter-btn:hover,
.filter-btn.active {
  background: var(--c-filter-active-bg);
  color: var(--bg);
  border-color: var(--c-filter-active-bg);
}

.prix-table-head {
  display: grid;
  grid-template-columns: 40px 1fr 180px 120px 100px 80px;
  padding: 10px 40px;
  border-bottom: 1px solid var(--line-s);
  background: var(--surface);
}
.pth-cell {
  font-family: var(--font-mono);
  font-size: 8px;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--c-prize-bar-3);
}

.prix-table-row {
  display: grid;
  grid-template-columns: 40px 1fr 180px 120px 100px 80px;
  align-items: center;
  padding: 14px 40px;
  border-bottom: 1px solid var(--line);
  transition: background 0.1s;
}
.prix-table-row:hover { background: rgba(15,15,14,0.02); }
.ptr-idx {
  font-family: var(--font-mono);
  font-size: 9px;
  color: var(--c-prize-bar-3);
  letter-spacing: 0.1em;
}
.ptr-name {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 14px;
  color: var(--ink);
}
.ptr-sub {
  font-family: var(--font-mono);
  font-size: 8px;
  color: var(--c-prize-bar-3);
  letter-spacing: 0.08em;
  margin-top: 3px;
  text-transform: uppercase;
}
.ptr-cell {
  font-family: var(--font-mono);
  font-size: 9px;
  color: var(--muted);
  letter-spacing: 0.08em;
}
.ptr-edit {
  font-family: var(--font-mono);
  font-size: 8px;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--c-action-text);
  border: 1px solid var(--c-action-border);
  background: transparent;
  padding: 4px 10px;
}
.ptr-edit:hover { background: var(--c-action-hover-bg); }

/* ============================================================
   GENRES LITTÉRAIRES (fiche auteur)
   ============================================================ */
.genre-tag {
  cursor: pointer;
  padding: 0.25em 0.75em;
  border-radius: 4px;
  border: 1px solid transparent;
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: 0.04em;
  transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

a.genre-tag,
button.genre-tag,
span.genre-tag {
  display: inline-block;
  text-decoration: none;
}

.genre-tag--readonly {
  cursor: default;
}

.genre-tag--readonly.genre-tag--none:hover {
  background: var(--c-tag-bg);
  border-color: var(--c-action-border);
  color: var(--c-tag-text);
}

.genre-tag--readonly.genre-tag--others:hover {
  background: var(--c-primary-200);
  border-color: var(--c-primary-400);
  color: var(--c-primary-800);
}

.genre-tag--readonly.genre-tag--mine:hover {
  background: var(--c-primary-600);
  border-color: var(--c-primary-800);
  color: var(--c-btn-primary-fg);
}

.genre-tag--none {
  background: var(--c-tag-bg);
  border-color: var(--c-action-border);
  color: var(--c-tag-text);
}

.genre-tag--none:hover {
  background: var(--c-action-hover-bg);
  border-color: var(--c-primary-200);
}

.genre-tag--others {
  background: var(--c-primary-200);
  border-color: var(--c-primary-400);
  color: var(--c-primary-800);
}

.genre-tag--others:hover {
  background: var(--c-primary-400);
  border-color: var(--c-primary-600);
  color: var(--c-btn-primary-fg);
}

.genre-tag--mine {
  background: var(--c-primary-600);
  border-color: var(--c-primary-800);
  color: var(--c-btn-primary-fg);
}

.genre-tag--mine:hover {
  background: var(--c-primary-800);
  border-color: var(--c-primary-900);
}

/* Statut « à prêter » verrouillé pendant un prêt en cours : grisé, inactif. */
.genre-tag--locked {
  cursor: not-allowed;
  background: var(--c-tag-bg);
  border-color: var(--line-s);
  color: var(--muted, #6b6b6b);
  opacity: 0.7;
  font-style: italic;
}

/* ============================================================
   STATUT DE LECTURE (fiche livre / fiche édition)
   ============================================================ */
.book-reading-status__list {
  list-style: none;
  padding-left: 0;
  margin: 12px 0 0;
}

.book-reading-status__item {
  display: inline-block;
  margin: 0 0.5em 0.5em 0;
}

.book-reading-status__message {
  margin-top: 12px;
  font-family: var(--font-mono);
  font-size: 12px;
}

.book-reading-status__message[hidden] {
  display: none;
}

.book-reading-status__count {
  font-size: inherit;
  letter-spacing: 0.02em;
  opacity: 0.85;
}

.book-keywords__form {
  margin-top: 20px;
}

.book-keywords__form-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
  margin-top: 12px;
  max-width: 420px;
}

.book-keywords__input {
  flex: 1 1 12rem;
  min-width: 0;
  padding: 0.35em 0.5em;
  font-family: var(--font-mono);
  font-size: 12px;
}

.book-keywords__submit {
  flex: 0 0 auto;
}

.book-reader-notes__list {
  display: flex;
  flex-direction: column;
  gap: 24px;
  margin-top: 20px;
}

.book-reader-notes__intro.bio-body {
  color: var(--ink);
  font-weight: 400;
  max-width: 520px;
}

.book-reader-notes__empty,
.book-reader-notes__hint {
  margin-top: 16px;
  color: var(--c-body-text, var(--ink));
  font-weight: 400;
}

.book-reader-note__author {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--c-eyebrow, var(--c-prize-bar-3));
  margin-bottom: 8px;
}

.book-reader-note__body {
  font-family: 'Reenie Beanie', cursive;
  font-weight: 400;
  font-size: 1.75rem;
  line-height: 1.45;
  color: var(--ink);
  max-width: 520px;
  margin-top: 4px;
}

.book-reader-note__toggle {
  font-family: var(--font-mono);
  font-weight: 400;
  font-size: 12px;
  line-height: 1.8;
  color: var(--c-body-text, var(--ink));
  margin-top: 6px;
}

.book-reader-note__appreciation {
  margin-top: 10px;
}

.book-reader-notes__form {
  margin-top: 28px;
}

.book-reader-notes__textarea {
  margin-top: 12px;
  max-width: 560px;
  font-family: 'Reenie Beanie', cursive;
  font-size: 1.5rem;
  line-height: 1.45;
  color: var(--ink);
  padding: 0.5rem 0.75rem;
}

.book-reader-notes__actions {
  margin-top: 12px;
}

.book-reader-notes__submit {
  flex: 0 0 auto;
}

.book-reader-notes__delete-form {
  margin-top: 10px;
}

.book-reader-notes__delete {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--c-prize-bar-3);
  background: transparent;
  border: 0;
  padding: 0;
  cursor: pointer;
}

.book-reader-notes__delete:hover {
  color: var(--ink);
}

/* ============================================================
   UTILITIES
   ============================================================ */
.text-accent  { color: var(--c-accent-400); }
.text-primary { color: var(--c-primary-600); }
.text-terra   { color: var(--c-accent-400); }  /* alias */
.text-sage    { color: var(--c-primary-600); } /* alias */
.text-off     { color: var(--c-prize-bar-3); }
.text-muted   { color: var(--muted); }
.mono        { font-family: var(--font-mono); }
.w-full      { width: 100%; }
.border-b    { border-bottom: 1px solid var(--line); }

input:required,
select:required,
textarea:required,
input.required,
select.required,
textarea.required {
    border: solid 1px var(--c-eyebrow);
    /* background-color:#e6c8e9;*/
}
  .required-message {
  color: var(--c-eyebrow);
  font-size: 0.8rem;
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
   @media (max-width: 767px) {
    .canvas {
      grid-template-columns: 1fr;
    }
    .hero {
      grid-template-columns: 1fr;
    }
    .bloc-home-editions {
      padding: 28px 16px 16px;
    }
    .bloc-home-editions .edition-list-item {
      flex: 0 0 100%;
      max-width: 100%;
      margin-right: 0;
    }
    .sidebar {
      border-right: none;
      border-bottom: 1px solid var(--c-sidebar-border);
    }
    #chronology .author-tl,
    .auteur-chronologie-wrap .auteur-chronologie {
      padding: 20px 10px;
    }
    .stats-bar {
      grid-template-columns: 1fr;
    }
    .stat-cell {
      padding: 12px 16px;
      border-right: none;
      border-bottom: 1px solid var(--line);
      text-align: center;
    }
    .stat-cell:last-child {
      border-bottom: none;
    }
    .stat-n {
      font-size: 2em;
    }
    .stat-l {
      font-size: 9px;
      letter-spacing: 0.08em;
    }
    .loan-hub__tabs,
    .loan-hub__empty,
    .loan-hub__pagination {
      padding-left: 16px;
      padding-right: 16px;
    }
    .loan-hub__sec-head {
      flex-direction: column;
      align-items: flex-start;
      gap: 0.5rem;
    }
    .loan-hub__sec-head-right {
      width: 100%;
      justify-content: space-between;
    }
    .asb-genre--url,
    .auteur-sidebar__tag--url {
      align-items: flex-start;
      min-width: 0;
      max-width: 100%;
    }
    .asb-genre--url a,
    .auteur-sidebar__tag--url a {
      display: block;
      min-width: 0;
      max-width: 100%;
      overflow-wrap: anywhere;
      word-break: break-all;
      white-space: normal;
    }

    /* Édition mobile : couverture + infos, puis blocs statut pleine largeur. */
    .book-editions__grid > .edition-list-item {
      flex: 0 0 100%;
      max-width: 100%;
    }

    .edition-list-item:not(.edition-list-item--no-status) .edition-list-item__layout {
      grid-template-areas:
        "cover body"
        "status status";
      grid-template-columns: auto minmax(0, 1fr);
      column-gap: 0.5rem;
      row-gap: 0.5rem;
    }

    .edition-list-item:not(.edition-list-item--no-status) .edition-list-item__book {
      display: contents;
    }

    .edition-list-item:not(.edition-list-item--no-status) .edition-list-item__cover {
      grid-area: cover;
    }

    .edition-list-item:not(.edition-list-item--no-status) .edition-list-item__body {
      grid-area: body;
      padding: 0;
      min-width: 0;
      white-space: normal;
    }

    .edition-list-item:not(.edition-list-item--no-status) .edition-list-item__body .book-name,
    .edition-list-item:not(.edition-list-item--no-status) .edition-list-item__body .book-meta {
      font-size: 0.85rem;
      line-height: 1.35;
    }

    .edition-list-item:not(.edition-list-item--no-status) .edition-list-item__status {
      grid-area: status;
      width: 100%;
      padding-left: 0;
    }

    .edition-list-item .edition-user-status {
      width: 100%;
      max-width: 100%;
    }

    .edition-list-item .edition-user-status .edition-status-columns {
      flex-direction: row;
      flex-wrap: wrap;
      gap: 0.75rem 1rem;
      align-items: flex-start;
      width: 100%;
    }
  }

/* Durée d'emprunt souhaitée (wishlist) */
.edition-wishlist-loan-days {
  margin-top: 0.5rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.5rem;
}

.edition-wishlist-loan-days__label {
  margin-right: 0.25rem;
}

.edition-wishlist-loan-days__choices {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.edition-wishlist-loan-days__choice {
  font-family: var(--font-mono);
  font-size: 11px;
  padding: 0.15rem 0.45rem;
  border: 1px solid var(--c-action-border);
  border-radius: 4px;
  background: var(--c-tag-bg);
  color: var(--c-tag-text);
  cursor: pointer;
  transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.edition-wishlist-loan-days__choice:hover:not(.is-active) {
  background: var(--c-action-hover-bg);
  border-color: var(--c-primary-200);
}

.edition-wishlist-loan-days__choice.is-active {
  background: var(--c-primary-600);
  border-color: var(--c-primary-800);
  color: var(--c-btn-primary-fg);
}

.profile-wishlist-loan-days {
  font-size: 11px;
  color: var(--c-prize-bar-3);
}

/* Score emprunteur */
.borrower-score {
  margin-top: 1.25rem;
  padding-top: 1rem;
  border-top: 1px solid var(--c-prize-bar-3);
}

.borrower-score__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem;
}

.borrower-score__global {
  font-family: var(--font-mono);
  font-size: 1.25rem;
}

.borrower-score__hint {
  margin: 0.35rem 0 0.5rem;
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--c-prize-bar-3);
}

.borrower-score__dimensions {
  list-style: none;
  margin: 0;
  padding: 0;
}

.borrower-score__dimension {
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  font-family: var(--font-mono);
  font-size: 11px;
  padding: 0.2rem 0;
}

.borrower-score__dimension-label {
  flex: 1;
}

.borrower-score__dimension-score {
  font-weight: 600;
}

.borrower-score__dimension-weight {
  color: var(--c-prize-bar-3);
}

.transaction-loan-days-hint {
  margin-top: 0.35rem;
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--c-prize-bar-3);
}

.profile-match-loan-days {
  font-size: 11px;
  color: var(--c-prize-bar-3);
}

.transaction-lender-review {
  margin-top: 0.75rem;
  padding-top: 0.75rem;
  border-top: 1px solid rgba(0, 0, 0, 0.08);
}

.transaction-lender-review__form {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-top: 0.35rem;
}

.transaction-lender-review__field label,
.transaction-lender-review__checks label {
  font-family: var(--font-mono);
  font-size: 11px;
}

.transaction-lender-review__checks {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1rem;
}

.transaction-lender-review__comment {
  font-family: var(--font-mono);
  font-size: 12px;
  width: 100%;
  max-width: 28rem;
}

.transaction-lender-review__summary {
  font-family: var(--font-mono);
  font-size: 11px;
  margin: 0.35rem 0 0;
}

.notification-timeline {
  list-style: none;
  margin: 0.75rem 0 0;
  padding: 0;
  border-left: 2px solid var(--c-prize-bar-3);
}

.notification-timeline__item {
  padding: 0.35rem 0 0.35rem 0.75rem;
  margin-left: 0.35rem;
}

.notification-timeline__date {
  display: block;
  font-family: var(--font-mono);
  font-size: 10px;
  color: var(--c-prize-bar-3);
}

.notification-timeline__message {
  font-family: var(--font-mono);
  font-size: 11px;
  margin: 0.15rem 0 0;
  line-height: 1.4;
}

.notification-timeline__action {
  margin-top: 0.35rem;
}

.notification-timeline__item--action .notification-timeline__message {
  color: var(--c-prize-bar-3);
}

/* Tableau de bord score emprunteur (notifications) */
.borrower-score-dashboard {
  margin: 1rem 0 1.5rem;
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 8px;
  padding: 1.25rem 1.35rem;
}

.loans-page {
  background: #fff;
}

.loans-page > .borrower-score-dashboard {
  margin: 0;
  border: none;
  border-radius: 0;
  border-bottom: 1px solid var(--line);
}

.loans-page .loan-hub .sec-head {
  background: #fff;
  padding: 1.25rem 1.35rem;
}

.loans-page .loan-hub .sec-head-title {
  font-size: 1.05rem;
  font-weight: 700;
  line-height: 1.3;
}

.loan-hub__sec-head {
  gap: 1rem;
}

.loan-hub__sec-head-right {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.loan-hub__history-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  text-decoration: none;
  line-height: 1.2;
}

.loan-hub__history-badge:hover {
  filter: brightness(0.97);
}

.loan-hub__history-badge.is-active {
  color: var(--ink);
  background: var(--surface);
  border-color: var(--line-s);
}

.loan-hub__history-badge-count {
  font-weight: 600;
}

.loan-hub__add-btn {
  margin: 0;
}

.loan-hub__tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  padding: 0 40px;
  border-bottom: 1px solid var(--line);
  background: #fff;
}

.loan-hub__tab {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 12px 16px;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--c-primary-800, var(--ink));
  text-decoration: none;
}

.loan-hub__tab:hover {
  color: var(--ink);
}

.loan-hub__tab.is-active {
  color: var(--ink);
  border-bottom-color: var(--c-prize-highlight);
}

.loan-hub__tab-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.1rem;
  height: 1.1rem;
  padding: 0 0.3rem;
  background: var(--c-primary-600);
  color: var(--c-btn-primary-fg);
  font-size: 10px;
  line-height: 1;
}

.loan-hub__empty {
  margin: 0;
  padding: 20px 40px;
  font-family: var(--font-mono);
  font-size: 12px;
  color: var(--ink);
}

.loan-hub__pagination {
  padding: 12px 40px 20px;
  border-top: 1px solid var(--line);
}

.borrower-score-dashboard__header {
  margin-bottom: 0.25rem;
}

.borrower-score-dashboard__title {
  font-size: 1.05rem;
  font-weight: 700;
  margin: 0;
  line-height: 1.3;
}

.borrower-score-dashboard__summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.65rem;
  margin: 0.85rem 0 0.75rem;
}

.borrower-score-dashboard__metric {
  background: #f4f4f4;
  border-radius: 6px;
  padding: 0.85rem 0.65rem;
  text-align: center;
  min-width: 0;
}

.borrower-score-dashboard__metric-value {
  display: block;
  font-size: 1.75rem;
  font-weight: 700;
  line-height: 1.1;
  color: var(--c-primary-900, #1a1a1a);
}

.borrower-score-dashboard__metric-value--global {
  color: #2d8a5b;
}

.borrower-score-dashboard__metric-label {
  display: block;
  margin-top: 0.3rem;
  font-family: var(--font-mono);
  font-size: 10px;
  line-height: 1.35;
  color: var(--c-prize-bar-3);
}

.borrower-score-dashboard__reliability {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0 0 1rem;
  padding: 0.55rem 0.75rem;
  border-radius: 6px;
  font-family: var(--font-mono);
  font-size: 11px;
  line-height: 1.4;
}

.borrower-score-dashboard__reliability--ok {
  background: #e8f5ec;
  color: #1a6b3a;
}

.borrower-score-dashboard__reliability--pending {
  background: #faf3e0;
  color: #7a5b12;
}

.borrower-score-dashboard__reliability-icon {
  display: inline-flex;
  flex-shrink: 0;
  width: 1.1rem;
  height: 1.1rem;
}

.borrower-score-dashboard__reliability-icon .borrower-score-card__svg {
  width: 1.1rem;
  height: 1.1rem;
}

.borrower-score-dashboard__reliability--ok .borrower-score-card__svg {
  color: #2d8a5b;
}

.borrower-score-dashboard__reliability--pending .borrower-score-card__svg {
  color: #7a5b12;
}

.borrower-score-dashboard__hint {
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--c-prize-bar-3);
  margin: 0 0 0.75rem;
}

.borrower-score-dashboard__grid {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

.borrower-score-card {
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: var(--radius, 6px);
  padding: 1rem 1.1rem;
  min-width: 0;
}

.borrower-score-card__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.5rem;
}

.borrower-score-card__title-row {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  min-width: 0;
}

.borrower-score-card__title {
  font-size: 0.95rem;
  font-weight: 600;
  margin: 0;
  line-height: 1.25;
}

.borrower-score-card__badge {
  flex-shrink: 0;
  font-family: var(--font-mono);
  font-size: 10px;
  padding: 0.15rem 0.45rem;
  border-radius: 999px;
  border: 1px solid transparent;
}

.borrower-score-card__badge--excellent {
  color: #1a6b3a;
  background: #e8f5ec;
  border-color: #b8dfc4;
}

.borrower-score-card__badge--good {
  color: #1a5c4a;
  background: #e6f4ef;
  border-color: #b5dcc8;
}

.borrower-score-card__badge--fair {
  color: #7a5b12;
  background: #faf3e0;
  border-color: #e8d4a8;
}

.borrower-score-card__badge--poor {
  color: #8b3a3a;
  background: #fceaea;
  border-color: #e8c4c4;
}

.borrower-score-card__description {
  font-family: var(--font-mono);
  font-size: 10px;
  line-height: 1.45;
  color: var(--c-prize-bar-3);
  margin: 0 0 0.65rem;
}

.borrower-score-card__progress {
  height: 8px;
  background: #ececec;
  border-radius: 999px;
  overflow: hidden;
  margin-bottom: 0.75rem;
}

.borrower-score-card__progress-bar {
  height: 100%;
  border-radius: 999px;
  transition: width 0.2s ease;
}

.borrower-score-card--timeliness .borrower-score-card__progress-bar {
  background: #3d9a5c;
}

.borrower-score-card--calibration .borrower-score-card__progress-bar {
  background: #4a8fd4;
}

.borrower-score-card--reputation .borrower-score-card__progress-bar {
  background: #c9a227;
}

.borrower-score-card__icon {
  width: 1.35rem;
  height: 1.35rem;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.borrower-score-card__svg {
  width: 1.2rem;
  height: 1.2rem;
  display: block;
}

.borrower-score-card__icon--clock .borrower-score-card__svg {
  color: #3d9a5c;
}

.borrower-score-card__icon--sliders .borrower-score-card__svg {
  color: #4a8fd4;
}

.borrower-score-card__icon--star .borrower-score-card__svg {
  color: #c9a227;
}

.borrower-score-card__loans {
  list-style: none;
  margin: 0;
  padding: 0;
}

.borrower-score-card__loan {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.35rem 0.75rem;
  align-items: center;
  padding: 0.35rem 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.05);
  font-family: var(--font-mono);
  font-size: 11px;
}

.borrower-score-card__loan:last-child {
  border-bottom: none;
}

.borrower-score-card__loan--extra {
  display: none;
}

.borrower-score-card__loan-title {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.borrower-score-card__loan-meta {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  justify-content: flex-end;
}

.borrower-score-card__loan-bar {
  width: 3rem;
  height: 4px;
  background: #ececec;
  border-radius: 999px;
  overflow: hidden;
  flex-shrink: 0;
}

.borrower-score-card__loan-bar span {
  display: block;
  height: 100%;
  border-radius: 999px;
}

.borrower-score-card--timeliness .borrower-score-card__loan-bar span {
  background: #3d9a5c;
}

.borrower-score-card--calibration .borrower-score-card__loan-bar span {
  background: #4a8fd4;
}

.borrower-score-card__loan-label {
  color: var(--c-prize-bar-3);
  white-space: nowrap;
}

.borrower-score-card__stats {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  font-family: var(--font-mono);
  font-size: 11px;
}

.borrower-score-card__stat {
  display: flex;
  align-items: center;
  gap: 0.4rem;
}

.borrower-score-card__stat-icon {
  width: 1.1rem;
  height: 1.1rem;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.borrower-score-card__stat-icon .borrower-score-card__svg {
  width: 1rem;
  height: 1rem;
}

.borrower-score-card__stat-icon--check .borrower-score-card__svg {
  color: #3d9a5c;
}

.borrower-score-card__stat-icon--book .borrower-score-card__svg {
  color: #4a8fd4;
}

.borrower-score-card__toggle-wrap {
  display: flex;
  justify-content: center;
  margin-top: 0.35rem;
}

.borrower-score-card__toggle {
  width: 2rem;
  height: 2rem;
  margin: 0;
  padding: 0;
  border: 1px solid rgba(0, 0, 0, 0.12);
  border-radius: 50%;
  background: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: var(--c-prize-bar-3);
  transition: border-color 0.15s ease, color 0.15s ease;
}

.borrower-score-card__toggle:hover {
  border-color: rgba(0, 0, 0, 0.22);
  color: var(--c-primary-900, #1a1a1a);
}

.borrower-score-card__toggle-icon {
  display: inline-flex;
  line-height: 0;
  transition: transform 0.2s ease;
}

.borrower-score-card__toggle-icon .borrower-score-card__svg {
  width: 1rem;
  height: 1rem;
}

.borrower-score-card.is-expanded .borrower-score-card__toggle-icon {
  transform: rotate(180deg);
}

.borrower-score-card.is-expanded .borrower-score-card__loan--extra {
  display: grid;
}

.borrower-score-card__empty {
  font-family: var(--font-mono);
  font-size: 10px;
  color: var(--c-prize-bar-3);
  margin: 0.25rem 0 0;
}

@media (max-width: 767px) {
  .borrower-score-dashboard__summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Vue notifications : texte secondaire en --c-eyebrow */
.notifications-page .notification-card__party,
.notifications-page .transaction-message__date,
.notifications-page .transaction-thread__empty,
.notifications-page .transaction-loan-days-hint,
.notifications-page .notification-timeline__date,
.notifications-page .notification-timeline__item--action .notification-timeline__message,
.notifications-page .borrower-score-dashboard__metric-label,
.notifications-page .borrower-score-dashboard__hint,
.notifications-page .borrower-score-card__description,
.notifications-page .borrower-score-card__loan-label,
.notifications-page .borrower-score-card__empty,
.notifications-page .borrower-score-card__toggle {
  color: var(--c-eyebrow);
}

/* ── Bannière cookies ─────────────────────────────────────────── */
.cookie-consent {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1200;
  padding: 1.25rem var(--page-pad-x, 40px);
  background: var(--surface, #fff);
  border-top: 1px solid var(--line, rgba(0, 0, 0, 0.08));
  box-shadow: 0 -12px 32px rgba(15, 15, 14, 0.08);
}

.cookie-consent[hidden] {
  display: none !important;
}

.cookie-consent__panel {
  max-width: 72rem;
  margin: 0 auto;
}

.cookie-consent__eyebrow {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--c-eyebrow, var(--c-prize-bar-3));
  margin: 0 0 0.35rem;
}

.cookie-consent__title {
  font-family: var(--font-display);
  font-size: 1.25rem;
  font-weight: 700;
  margin: 0 0 0.5rem;
  color: var(--ink);
}

.cookie-consent__text {
  max-width: 42rem;
  font-size: 0.95rem;
  line-height: 1.5;
  margin: 0 0 1rem;
  color: var(--ink);
}

.cookie-consent__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 0.75rem;
}

.cookie-consent__option {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.85rem 0;
  border-top: 1px solid var(--line, rgba(0, 0, 0, 0.08));
}

.cookie-consent__option p {
  margin: 0.25rem 0 0;
  font-size: 0.85rem;
  color: var(--c-prize-bar-3);
}

.cookie-consent__badge {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 0.25rem 0.5rem;
  border: 1px solid var(--line, rgba(0, 0, 0, 0.12));
  white-space: nowrap;
}

@media (max-width: 767px) {
  .cookie-consent {
    padding: 0.75rem 16px;
  }
}

/* ============================================================
   ADMIN — padding du bandeau et textes secondaires plus lisibles
   (le thème ambre pose --c-prize-bar-3 trop clair sur fond clair)
   ============================================================ */
.admin-shell .canvas .main > .admin-quick-links {
  padding: var(--page-pad-y) var(--page-pad-x) 12px;
}

.admin-shell .canvas .main > .admin-quick-links.admin-quick-links--compact {
  padding-bottom: 0;
}

.admin-shell .admin-quick-links > .eyebrow {
  padding: 0.35rem 0 0.6rem;
}

.admin-shell .hero-right > .admin-quick-links,
.admin-shell .admin-page-content > .admin-quick-links {
  padding: 0;
}

.admin-shell .canvas .main .prize-meta,
.admin-shell .canvas .main .eyebrow,
.admin-shell .canvas .main .bio-body,
.admin-shell .canvas .main .sec-head-count,
.admin-shell .canvas .main .text-muted,
.admin-shell .canvas .main .text-off,
.admin-shell .admin-page-content .prize-meta,
.admin-shell .admin-page-content .eyebrow,
.admin-shell .admin-page-content .bio-body,
.admin-shell .admin-page-content .text-muted {
  color: var(--c-primary-800);
}

.admin-users-index .hero-left {
  background: var(--c-hero-bg);
  color: var(--c-sidebar-text);
}

.admin-users-index .hero-right {
  background: var(--surface);
}

.admin-users-index .hero-left .hero-kicker,
.admin-users-index .hero-left .hero-kicker a {
  color: var(--c-chemin);
}

.admin-users-index .hero-left .text-muted {
  color: var(--c-sidebar-on-dark-label);
}

.admin-users-index .hero-right .hero-featured-label,
.admin-users-index .hero-right .eyebrow,
.admin-users-index .hero-right .prize-meta,
.admin-users-index .hero-right .hero-meta-row span {
  color: var(--c-primary-800);
}

.admin-users-index .hero-right .hero-featured-name,
.admin-users-index .hero-right .hero-featured-name a,
.admin-users-index .hero-right .hero-meta-row strong {
  color: var(--c-primary-900, var(--ink));
}
