/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/.pnpm/next@15.5.20_@babel+core@7.29.7_@playwright+test@1.62.1_react-dom@19.2.7_react@19.2.7__react@19.2.7/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[10].use[2]!./node_modules/.pnpm/next@15.5.20_@babel+core@7.29.7_@playwright+test@1.62.1_react-dom@19.2.7_react@19.2.7__react@19.2.7/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[10].use[3]!./src/app/globals.css ***!
  \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
@layer properties;
@layer theme, base, components, utilities;
@layer theme {
  :root, :host {
    --spacing: 0.25rem;
    --container-lg: 32rem;
    --container-2xl: 42rem;
    --text-xl: 1.25rem;
    --text-xl--line-height: calc(1.75 / 1.25);
    --text-2xl: 1.5rem;
    --text-2xl--line-height: calc(2 / 1.5);
    --font-weight-normal: 400;
    --font-weight-medium: 500;
    --font-weight-semibold: 600;
    --leading-snug: 1.375;
    --leading-relaxed: 1.625;
    --radius-md: 0.375rem;
    --ease-out: cubic-bezier(0, 0, 0.2, 1);
    --default-transition-duration: 150ms;
    --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    --color-fond: #f7f6f2;
    --color-surface: #ffffff;
    --color-bord: #e7e3d8;
    --color-bord-fort: #d5cdb8;
    --color-bord-champ: #8f8878;
    --color-encre: #232a35;
    --color-muet: #565e6b;
    --color-bleu: #1e3a6e;
    --color-bleu-nuit: #16294f;
    --color-or-clair: #d3b45c;
    --color-or-doux: #f5eeda;
    --font-titre: "Source Serif 4", Georgia, "Times New Roman", serif;
    --radius-carte: 10px;
  }
}
@layer utilities {
  .invisible {
    visibility: hidden;
  }
  .visible {
    visibility: visible;
  }
  .absolute {
    position: absolute;
  }
  .fixed {
    position: fixed;
  }
  .relative {
    position: relative;
  }
  .static {
    position: static;
  }
  .inset-0 {
    inset: 0px;
  }
  .inset-y-0 {
    inset-block: 0px;
  }
  .top-1\/2 {
    top: calc(1 / 2 * 100%);
  }
  .left-0 {
    left: 0px;
  }
  .left-1\/2 {
    left: calc(1 / 2 * 100%);
  }
  .z-50 {
    z-index: 50;
  }
  .m-0 {
    margin: 0px;
  }
  .-mt-1 {
    margin-top: calc(var(--spacing) * -1);
  }
  .mt-0 {
    margin-top: 0px;
  }
  .mt-0\.5 {
    margin-top: calc(var(--spacing) * 0.5);
  }
  .mt-1 {
    margin-top: var(--spacing);
  }
  .mt-1\.5 {
    margin-top: calc(var(--spacing) * 1.5);
  }
  .mt-2 {
    margin-top: calc(var(--spacing) * 2);
  }
  .mt-3 {
    margin-top: calc(var(--spacing) * 3);
  }
  .mt-4 {
    margin-top: calc(var(--spacing) * 4);
  }
  .mt-5 {
    margin-top: calc(var(--spacing) * 5);
  }
  .mt-6 {
    margin-top: calc(var(--spacing) * 6);
  }
  .mr-auto {
    margin-right: auto;
  }
  .mb-1 {
    margin-bottom: var(--spacing);
  }
  .mb-2 {
    margin-bottom: calc(var(--spacing) * 2);
  }
  .mb-4 {
    margin-bottom: calc(var(--spacing) * 4);
  }
  .block {
    display: block;
  }
  .contents {
    display: contents;
  }
  .flex {
    display: flex;
  }
  .grid {
    display: grid;
  }
  .hidden {
    display: none;
  }
  .inline {
    display: inline;
  }
  .inline-flex {
    display: inline-flex;
  }
  .table {
    display: table;
  }
  .size-1\.5 {
    width: calc(var(--spacing) * 1.5);
    height: calc(var(--spacing) * 1.5);
  }
  .size-3\.5 {
    width: calc(var(--spacing) * 3.5);
    height: calc(var(--spacing) * 3.5);
  }
  .size-4 {
    width: calc(var(--spacing) * 4);
    height: calc(var(--spacing) * 4);
  }
  .size-5 {
    width: calc(var(--spacing) * 5);
    height: calc(var(--spacing) * 5);
  }
  .size-6 {
    width: calc(var(--spacing) * 6);
    height: calc(var(--spacing) * 6);
  }
  .size-\[22px\] {
    width: 22px;
    height: 22px;
  }
  .size-full {
    width: 100%;
    height: 100%;
  }
  .max-h-\[85vh\] {
    max-height: 85vh;
  }
  .min-h-11 {
    min-height: calc(var(--spacing) * 11);
  }
  .min-h-24 {
    min-height: calc(var(--spacing) * 24);
  }
  .w-\[calc\(100vw-2rem\)\] {
    width: calc(100vw - 2rem);
  }
  .w-\[min\(20rem\,85vw\)\] {
    width: min(20rem, 85vw);
  }
  .w-full {
    width: 100%;
  }
  .max-w-2xl {
    max-width: var(--container-2xl);
  }
  .max-w-lg {
    max-width: var(--container-lg);
  }
  .min-w-0 {
    min-width: 0px;
  }
  .min-w-56 {
    min-width: calc(var(--spacing) * 56);
  }
  .flex-1 {
    flex: 1;
  }
  .shrink-0 {
    flex-shrink: 0;
  }
  .border-collapse {
    border-collapse: collapse;
  }
  .-translate-x-1\/2 {
    --tw-translate-x: calc(calc(1 / 2 * 100%) * -1);
    translate: var(--tw-translate-x) var(--tw-translate-y);
  }
  .-translate-y-1\/2 {
    --tw-translate-y: calc(calc(1 / 2 * 100%) * -1);
    translate: var(--tw-translate-x) var(--tw-translate-y);
  }
  .transform {
    transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);
  }
  .cursor-pointer {
    cursor: pointer;
  }
  .resize {
    resize: both;
  }
  .flex-col {
    flex-direction: column;
  }
  .flex-wrap {
    flex-wrap: wrap;
  }
  .items-center {
    align-items: center;
  }
  .items-start {
    align-items: flex-start;
  }
  .justify-between {
    justify-content: space-between;
  }
  .justify-center {
    justify-content: center;
  }
  .justify-end {
    justify-content: flex-end;
  }
  .gap-1 {
    gap: var(--spacing);
  }
  .gap-1\.5 {
    gap: calc(var(--spacing) * 1.5);
  }
  .gap-2 {
    gap: calc(var(--spacing) * 2);
  }
  .gap-2\.5 {
    gap: calc(var(--spacing) * 2.5);
  }
  .gap-3 {
    gap: calc(var(--spacing) * 3);
  }
  .gap-4 {
    gap: calc(var(--spacing) * 4);
  }
  .gap-6 {
    gap: calc(var(--spacing) * 6);
  }
  .gap-x-3 {
    column-gap: calc(var(--spacing) * 3);
  }
  .gap-x-6 {
    column-gap: calc(var(--spacing) * 6);
  }
  .gap-y-2 {
    row-gap: calc(var(--spacing) * 2);
  }
  .overflow-hidden {
    overflow: hidden;
  }
  .overflow-y-auto {
    overflow-y: auto;
  }
  .rounded-\[5px\] {
    border-radius: 5px;
  }
  .rounded-carte {
    border-radius: var(--radius-carte);
  }
  .rounded-full {
    border-radius: calc(infinity * 1px);
  }
  .rounded-md {
    border-radius: var(--radius-md);
  }
  .border {
    border-style: var(--tw-border-style);
    border-width: 1px;
  }
  .border-0 {
    border-style: var(--tw-border-style);
    border-width: 0px;
  }
  .border-t {
    border-top-style: var(--tw-border-style);
    border-top-width: 1px;
  }
  .border-r {
    border-right-style: var(--tw-border-style);
    border-right-width: 1px;
  }
  .border-l-\[3px\] {
    border-left-style: var(--tw-border-style);
    border-left-width: 3px;
  }
  .border-\[color\:var\(--bord\)\] {
    border-color: var(--bord);
  }
  .border-bord {
    border-color: var(--color-bord);
  }
  .border-bord-champ {
    border-color: var(--color-bord-champ);
  }
  .border-bord-fort {
    border-color: var(--color-bord-fort);
  }
  .border-l-\[color\:var\(--or\)\] {
    border-left-color: var(--or);
  }
  .bg-\[color\:var\(--fond\)\] {
    background-color: var(--fond);
  }
  .bg-encre\/45 {
    background-color: color-mix(in srgb, #232a35 45%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--color-encre) 45%, transparent);
    }
  }
  .bg-surface {
    background-color: var(--color-surface);
  }
  .bg-transparent {
    background-color: transparent;
  }
  .p-1\.5 {
    padding: calc(var(--spacing) * 1.5);
  }
  .p-2 {
    padding: calc(var(--spacing) * 2);
  }
  .p-3\.5 {
    padding: calc(var(--spacing) * 3.5);
  }
  .p-4 {
    padding: calc(var(--spacing) * 4);
  }
  .p-6 {
    padding: calc(var(--spacing) * 6);
  }
  .px-3 {
    padding-inline: calc(var(--spacing) * 3);
  }
  .px-4 {
    padding-inline: calc(var(--spacing) * 4);
  }
  .py-2 {
    padding-block: calc(var(--spacing) * 2);
  }
  .py-3 {
    padding-block: calc(var(--spacing) * 3);
  }
  .py-4 {
    padding-block: calc(var(--spacing) * 4);
  }
  .pt-4 {
    padding-top: calc(var(--spacing) * 4);
  }
  .pb-4 {
    padding-bottom: calc(var(--spacing) * 4);
  }
  .text-left {
    text-align: left;
  }
  .font-titre {
    font-family: var(--font-titre);
  }
  .text-2xl {
    font-size: var(--text-2xl);
    line-height: var(--tw-leading, var(--text-2xl--line-height));
  }
  .text-xl {
    font-size: var(--text-xl);
    line-height: var(--tw-leading, var(--text-xl--line-height));
  }
  .text-\[0\.9rem\] {
    font-size: 0.9rem;
  }
  .text-\[0\.84rem\] {
    font-size: 0.84rem;
  }
  .text-\[0\.85rem\] {
    font-size: 0.85rem;
  }
  .text-\[0\.86rem\] {
    font-size: 0.86rem;
  }
  .text-\[0\.88rem\] {
    font-size: 0.88rem;
  }
  .text-\[0\.94rem\] {
    font-size: 0.94rem;
  }
  .text-\[0\.95rem\] {
    font-size: 0.95rem;
  }
  .text-\[1\.1rem\] {
    font-size: 1.1rem;
  }
  .text-\[1\.15rem\] {
    font-size: 1.15rem;
  }
  .text-\[1rem\] {
    font-size: 1rem;
  }
  .leading-relaxed {
    --tw-leading: var(--leading-relaxed);
    line-height: var(--leading-relaxed);
  }
  .leading-snug {
    --tw-leading: var(--leading-snug);
    line-height: var(--leading-snug);
  }
  .font-medium {
    --tw-font-weight: var(--font-weight-medium);
    font-weight: var(--font-weight-medium);
  }
  .font-normal {
    --tw-font-weight: var(--font-weight-normal);
    font-weight: var(--font-weight-normal);
  }
  .font-semibold {
    --tw-font-weight: var(--font-weight-semibold);
    font-weight: var(--font-weight-semibold);
  }
  .text-wrap {
    text-wrap: wrap;
  }
  .text-\[color\:var\(--bleu\)\] {
    color: var(--bleu);
  }
  .text-bleu {
    color: var(--color-bleu);
  }
  .text-encre {
    color: var(--color-encre);
  }
  .text-muet {
    color: var(--color-muet);
  }
  .text-surface {
    color: var(--color-surface);
  }
  .capitalize {
    text-transform: capitalize;
  }
  .tabular-nums {
    --tw-numeric-spacing: tabular-nums;
    font-variant-numeric: var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,);
  }
  .no-underline {
    text-decoration-line: none;
  }
  .shadow-2xl {
    --tw-shadow: 0 25px 50px -12px var(--tw-shadow-color, rgb(0 0 0 / 0.25));
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }
  .outline {
    outline-style: var(--tw-outline-style);
    outline-width: 1px;
  }
  .blur {
    --tw-blur: blur(8px);
    filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);
  }
  .backdrop-filter {
    -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);
    backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);
  }
  .transition {
    transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, content-visibility, overlay, pointer-events;
    transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
    transition-duration: var(--tw-duration, var(--default-transition-duration));
  }
  .transition-colors {
    transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
    transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
    transition-duration: var(--tw-duration, var(--default-transition-duration));
  }
  .transition-transform {
    transition-property: transform, translate, scale, rotate;
    transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
    transition-duration: var(--tw-duration, var(--default-transition-duration));
  }
  .duration-200 {
    --tw-duration: 200ms;
    transition-duration: 200ms;
  }
  .ease-out {
    --tw-ease: var(--ease-out);
    transition-timing-function: var(--ease-out);
  }
  .group-data-\[state\=open\]\:block:is(:where(.group)[data-state="open"] *) {
    display: block;
  }
  .group-data-\[state\=open\]\:hidden:is(:where(.group)[data-state="open"] *) {
    display: none;
  }
  .group-data-\[state\=open\]\:rotate-180:is(:where(.group)[data-state="open"] *) {
    rotate: 180deg;
  }
  .placeholder\:text-muet\/70::placeholder {
    color: color-mix(in srgb, #565e6b 70%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      color: color-mix(in oklab, var(--color-muet) 70%, transparent);
    }
  }
  .first\:border-t-0:first-child {
    border-top-style: var(--tw-border-style);
    border-top-width: 0px;
  }
  @media (hover: hover) {
    .hover\:border-\[color\:var\(--or\)\]:hover {
      border-color: var(--or);
    }
  }
  .focus-visible\:border-\[color\:var\(--or\)\]:focus-visible {
    border-color: var(--or);
  }
  .focus-visible\:outline-2:focus-visible {
    outline-style: var(--tw-outline-style);
    outline-width: 2px;
  }
  .focus-visible\:outline-offset-2:focus-visible {
    outline-offset: 2px;
  }
  .focus-visible\:outline-bleu-nuit:focus-visible {
    outline-color: var(--color-bleu-nuit);
  }
  .disabled\:cursor-not-allowed:disabled {
    cursor: not-allowed;
  }
  .disabled\:opacity-60:disabled {
    opacity: 60%;
  }
  .has-\[\:checked\]\:border-or-clair:has(:is(:checked)) {
    border-color: var(--color-or-clair);
  }
  .has-\[\:checked\]\:bg-or-doux:has(:is(:checked)) {
    background-color: var(--color-or-doux);
  }
  .has-\[\:focus-visible\]\:outline-2:has(:is(:focus-visible)) {
    outline-style: var(--tw-outline-style);
    outline-width: 2px;
  }
  .has-\[\:focus-visible\]\:outline-offset-2:has(:is(:focus-visible)) {
    outline-offset: 2px;
  }
  .has-\[\:focus-visible\]\:outline-bleu-nuit:has(:is(:focus-visible)) {
    outline-color: var(--color-bleu-nuit);
  }
  .data-\[state\=checked\]\:border-bleu[data-state="checked"] {
    border-color: var(--color-bleu);
  }
  .data-\[state\=checked\]\:bg-bleu[data-state="checked"] {
    background-color: var(--color-bleu);
  }
  @media (width >= 40rem) {
    .sm\:grid-cols-2 {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .sm\:grid-cols-\[auto_1fr\] {
      grid-template-columns: auto 1fr;
    }
    .sm\:px-5 {
      padding-inline: calc(var(--spacing) * 5);
    }
  }
}
:root {
  --fond: #f7f6f2;
  --surface: #ffffff;
  --bord: #e7e3d8;
  --bord-fort: #d5cdb8;
  --bord-champ: #8f8878;
  --encre: #232a35;
  --muet: #565e6b;
  --bleu: #1e3a6e;
  --bleu-nuit: #16294f;
  --bulle-fond: rgba(17, 20, 26, 0.92);
  --bleu-doux: #eaf0f9;
  --or: #b3902f;
  --or-clair: #d3b45c;
  --or-doux: #f5eeda;
  --or-encre: #6f5416;
  --vert: #2f7a4f;
  --vert-doux: #eaf5ee;
  --rouge: #a4443c;
  --rouge-doux: #fbeceb;
  --rouge-encre: #8f3a33;
  --attente: #8a7940;
  --anneau: var(--bleu-nuit);
  --anneau-sombre: var(--or-clair);
  --carte-rentree: 1.4rem;
  --rayon: 10px;
  --ombre-carte: 0 1px 2px rgba(35, 42, 53, 0.04), 0 6px 18px rgba(35, 42, 53, 0.05);
  --fonte-titre: "Source Serif 4", Georgia, "Times New Roman", serif;
  --fonte-texte: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}
* {
  box-sizing: border-box;
}
@keyframes apparition {
  from {
    opacity: 0;
    transform: translateY(14px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.apparait {
  opacity: 0;
  animation: apparition 0.55s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
  animation-delay: var(--delai, 0ms);
}
@media (prefers-reduced-motion: reduce) {
  .apparait {
    animation: none;
    opacity: 1;
  }
}
html {
  -webkit-text-size-adjust: 100%;
}
body {
  margin: 0;
  background: var(--fond);
  color: var(--encre);
  font-family: var(--fonte-texte);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
a {
  color: var(--bleu);
  text-underline-offset: 3px;
}
a:hover {
  color: var(--bleu-nuit);
}
:where(a, button, [tabindex], input, select, textarea):focus-visible {
  outline: 2px solid var(--anneau);
  outline-offset: 2px;
  border-radius: 3px;
}
.entete-paroisse :focus-visible {
  outline-color: var(--anneau-sombre);
}
h1, h2, h3 {
  font-family: var(--fonte-titre);
  color: var(--bleu);
}
h1 {
  font-size: 2.1rem;
  font-weight: 600;
  margin: 0 0 0.4rem;
  text-wrap: balance;
}
h2 {
  font-size: 1.45rem;
  font-weight: 600;
  margin: 2.1rem 0 0.8rem;
}
h3 {
  font-size: 1.12rem;
  font-weight: 600;
  margin: 1.3rem 0 0.5rem;
}
p {
  margin: 0.5rem 0 1rem;
}
.entete-paroisse {
  background: linear-gradient(180deg, var(--bleu-nuit) 0%, var(--bleu) 100%);
  color: #fff;
  padding: 0.55rem 0.7rem 0.5rem 1.25rem;
  position: relative;
  overflow: hidden;
}
.entete-paroisse > * {
  opacity: 0;
  animation: apparition 0.5s ease-out forwards;
}
@media (prefers-reduced-motion: reduce) {
  .entete-paroisse > * {
    animation: none;
    opacity: 1;
  }
  .profil {
    opacity: 0.75;
  }
}
.entete-paroisse::after {
  content: "";
  position: absolute;
  inset: auto 0 0 0;
  height: 3px;
  background: linear-gradient(90deg, transparent, var(--or), transparent);
}
.entete-paroisse .entete-ligne {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  flex-wrap: nowrap;
  min-width: 0;
}
.entete-paroisse .entete-espace {
  flex: 1 1 auto;
  min-width: 0.5rem;
}
.entete-paroisse .entete-marque {
  display: flex;
  align-items: baseline;
  gap: 0.6rem;
  min-width: 0;
}
.entete-paroisse .croix {
  color: var(--or);
  display: inline-flex;
  flex: none;
  align-self: center;
  position: relative;
  top: 1px;
}
.entete-paroisse .titre-app {
  font-family: var(--fonte-titre);
  font-size: 1.15rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  flex: none;
  white-space: nowrap;
}
.entete-paroisse .devise {
  font-family: var(--fonte-titre);
  font-style: italic;
  font-size: 0.9rem;
  color: #b9c7e0;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.entete-paroisse .nom-paroisse {
  font-size: 0.68rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #c8d4ea;
  font-weight: 500;
  flex: none;
  white-space: nowrap;
}
@media (max-width: 40rem) {
  .entete-paroisse .devise {
    display: none;
  }
  .entete-paroisse .entete-ligne {
    justify-content: space-between;
  }
  .entete-paroisse .nom-paroisse {
    display: none;
  }
}
.bandeau-emprunt {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  flex-wrap: wrap;
  background: var(--or-encre);
  color: #fff;
  padding: 0.5rem 1.25rem;
  font-size: 0.9rem;
  text-align: center;
}
.bandeau-emprunt form {
  margin: 0;
  max-width: none;
}
.lien-bouton-clair {
  border: none;
  background: none;
  padding: 0;
  font: inherit;
  color: #fff;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 3px;
  display: inline-flex;
  align-items: center;
  min-height: 44px;
}
.bandeau-emprunt :focus-visible {
  outline-color: #fff;
}
.profil {
  flex: none;
  display: flex;
  align-items: center;
  gap: 0.55rem;
  text-decoration: none;
  z-index: 2;
  opacity: 0.75;
  transition: opacity 0.15s ease;
}
.profil:hover {
  opacity: 1;
}
.profil .avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--or-clair);
  background: transparent;
  border: 1px solid rgba(211, 180, 92, 0.55);
  flex: none;
}
.profil {
  background: none;
  border: 0;
  padding: 0;
  cursor: pointer;
  font: inherit;
}
.profil[data-state="open"] {
  opacity: 1;
}
.profil[data-state="open"] .avatar {
  border-color: var(--or-clair);
  background: rgba(211, 180, 92, 0.14);
}
.nav-admin {
  background: var(--surface);
  border-bottom: 1px solid var(--bord);
  display: flex;
  justify-content: flex-start;
  gap: 1.2rem;
  padding: 0 1.25rem;
  overflow-x: auto;
  scrollbar-width: thin;
  position: sticky;
  top: 0;
  z-index: 20;
}
.nav-admin a {
  padding: 0.8rem 0.3rem;
  color: var(--muet);
  text-decoration: none;
  font-size: 0.9rem;
  font-weight: 500;
  white-space: nowrap;
  flex: none;
  box-shadow: inset 0 -2px 0 transparent;
  transition: color 0.15s ease, box-shadow 0.15s ease;
}
.nav-admin a:hover {
  color: var(--bleu);
}
.nav-admin a.actif {
  color: var(--bleu);
  box-shadow: inset 0 -2px 0 var(--or);
}
@media (max-width: 52rem) {
  .nav-admin {
    -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 2.5rem), transparent);
    mask-image: linear-gradient(to right, #000 calc(100% - 2.5rem), transparent);
    padding-right: 3rem;
    scroll-snap-type: x proximity;
  }
  .nav-admin a {
    scroll-snap-align: start;
  }
}
.contenu {
  max-width: 54rem;
  margin: 0 auto;
  padding: 2.25rem 1.5rem 5rem;
}
body:has(.contenu .table-repliable) .contenu {
  max-width: min(76rem, 100%);
}
body:has(.contenu .table-repliable) .contenu > p,
body:has(.contenu .table-repliable) .contenu > .infobulle {
  max-width: 54rem;
}
.contenu > * {
  opacity: 0;
  animation: apparition 0.55s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
}
.contenu > *:nth-child(1) {
  animation-delay: 60ms;
}
.contenu > *:nth-child(2) {
  animation-delay: 160ms;
}
.contenu > *:nth-child(3) {
  animation-delay: 260ms;
}
.contenu > *:nth-child(4) {
  animation-delay: 360ms;
}
.contenu > *:nth-child(5) {
  animation-delay: 460ms;
}
.contenu > *:nth-child(6) {
  animation-delay: 560ms;
}
.contenu > *:nth-child(n+7) {
  animation-delay: 660ms;
}
@media (prefers-reduced-motion: reduce) {
  .contenu > * {
    animation: none;
    opacity: 1;
  }
}
.carte {
  --rentree-reelle: var(--carte-rentree);
  background: var(--surface);
  border: 1px solid var(--bord);
  border-radius: var(--rayon);
  box-shadow: var(--ombre-carte);
  padding: 1.3rem var(--carte-rentree);
  margin: 0 0 1.4rem;
}
.salutation {
  text-align: center;
  margin-bottom: 2.25rem;
}
.salutation h1 {
  font-size: 1.7rem;
  margin-bottom: 0.3rem;
}
.salutation p {
  color: var(--muet);
  margin: 0;
}
.stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(9rem, 100%), 1fr));
  gap: 1px;
  background: var(--bord);
  border: 1px solid var(--bord);
  border-radius: var(--rayon);
  overflow: hidden;
  box-shadow: var(--ombre-carte);
  margin-bottom: 2.5rem;
}
.stats:has(> :nth-child(6):last-child) {
  grid-template-columns: repeat(3, 1fr);
}
.stats:has(> :nth-child(4):last-child) {
  grid-template-columns: repeat(4, 1fr);
}
.stats:has(> :nth-child(3):last-child) {
  grid-template-columns: repeat(3, 1fr);
}
.stats:has(> :nth-child(2):last-child) {
  grid-template-columns: repeat(2, 1fr);
}
@media (max-width: 34rem) {
  .stats,
  .stats:has(> :nth-child(6):last-child),
  .stats:has(> :nth-child(4):last-child),
  .stats:has(> :nth-child(3):last-child) {
    grid-template-columns: repeat(2, 1fr);
  }
}
.stat {
  background: var(--surface);
  border: 0;
  border-radius: 0;
  padding: 1.05rem 1.1rem 1rem;
  text-align: left;
}
.stat .n {
  display: block;
  font-family: var(--fonte-texte);
  font-size: 1.7rem;
  font-weight: 600;
  letter-spacing: -0.02em;
  color: var(--bleu);
  font-variant-numeric: tabular-nums;
  line-height: 1.2;
}
.stat .l {
  font-size: 0.875rem;
  color: var(--muet);
  margin-top: 0.1rem;
}
.stat.nul .n {
  color: var(--bord-fort);
  font-weight: 500;
}
.stats > * {
  opacity: 0;
  animation: apparition 0.5s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
}
.stats > *:nth-child(1) {
  animation-delay: 200ms;
}
.stats > *:nth-child(2) {
  animation-delay: 300ms;
}
.stats > *:nth-child(3) {
  animation-delay: 400ms;
}
.acces-rapide > *, .grille-tablees > *, .liste > * {
  opacity: 0;
  animation: apparition 0.5s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
}
.acces-rapide > *:nth-child(1), .grille-tablees > *:nth-child(1), .liste > *:nth-child(1) {
  animation-delay: 120ms;
}
.acces-rapide > *:nth-child(2), .grille-tablees > *:nth-child(2), .liste > *:nth-child(2) {
  animation-delay: 200ms;
}
.acces-rapide > *:nth-child(3), .grille-tablees > *:nth-child(3), .liste > *:nth-child(3) {
  animation-delay: 280ms;
}
.acces-rapide > *:nth-child(4), .grille-tablees > *:nth-child(4), .liste > *:nth-child(4) {
  animation-delay: 360ms;
}
.acces-rapide > *:nth-child(n+5), .grille-tablees > *:nth-child(n+5), .liste > *:nth-child(n+5) {
  animation-delay: 440ms;
}
@media (prefers-reduced-motion: reduce) {
  .stats > *, .acces-rapide > *, .grille-tablees > *, .liste > * {
    animation: none;
    opacity: 1;
  }
}
.titre-section {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  margin: 2.5rem 0 1.1rem;
}
.titre-section h2 {
  margin: 0;
  color: var(--bleu);
  font-size: 1.45rem;
}
.titre-section .orn {
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, var(--bord), transparent);
}
.titre-section .croix-fine {
  color: var(--or);
  flex: none;
}
.liste {
  background: var(--surface);
  border: 1px solid var(--bord);
  border-radius: var(--rayon);
  overflow: hidden;
  box-shadow: var(--ombre-carte);
}
.liste .ligne {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 0.95rem 1.3rem;
  border-bottom: 1px solid var(--bord);
  text-decoration: none;
  color: inherit;
}
.liste .ligne:last-child {
  border-bottom: 0;
}
.liste .ligne:hover {
  background: var(--bleu-doux);
}
.liste .ligne .princ {
  flex: 1;
  min-width: 0;
}
.liste .ligne .princ strong {
  display: block;
  font-size: 0.97rem;
}
.liste .ligne .princ small {
  color: var(--muet);
}
.liste .ligne .meta {
  color: var(--muet);
  font-size: 0.84rem;
  white-space: nowrap;
}
.etat {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  flex: none;
  display: inline-block;
}
.etat.ok {
  background: var(--vert);
}
.etat.attente {
  background: var(--attente);
}
.etat.non {
  background: var(--rouge);
}
.grille-tablees {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(26rem, 100%), 1fr));
  gap: 1rem;
  margin-top: 0.8rem;
}
.tablee {
  background: var(--surface);
  border: 1px solid var(--bord);
  border-left: 3px solid var(--bleu);
  border-radius: var(--rayon);
  padding: 0.9rem 1.1rem;
  margin: 0;
  container-type: inline-size;
}
.tablee.figee {
  border-left-color: var(--or);
  border-left-width: 4px;
  background: linear-gradient(to right, var(--or-doux), var(--surface) 14rem);
}
.tablee .entete {
  margin: 0 0 0.45rem;
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 0.4rem 0.55rem;
  font-family: var(--fonte-texte);
  font-weight: 600;
  font-size: 1.02rem;
  letter-spacing: -0.005em;
  color: var(--bleu);
}
.tablee .entete .rang-table {
  white-space: nowrap;
}
.tablee .roles {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  max-width: 28rem;
}
.tablee .role {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.32rem 0;
  font-size: 0.92rem;
}
.tablee .role + .role {
  border-top: 1px dashed var(--bord);
}
.tablee .role .quoi {
  color: var(--muet);
}
.tablee .role .qui {
  font-weight: 600;
}
.tag {
  display: inline-block;
  font-family: var(--fonte-texte);
  font-size: 0.78rem;
  line-height: 1.35;
  font-weight: 600;
  max-width: 100%;
  padding: 0.2rem 0.65rem;
  border-radius: 999px;
  background: var(--bleu-doux);
  color: var(--bleu);
  white-space: nowrap;
}
.tag.signe {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  padding: 0.28rem 0.42rem;
}
.tag.signe .mot {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}
.tag.signe svg {
  flex: none;
  display: block;
}
.tag.menthe {
  background: var(--vert-doux);
  color: var(--vert);
}
.tag.gris {
  background: #eceae4;
  color: var(--muet);
  white-space: normal;
}
.tag.or {
  background: var(--or-doux);
  color: var(--or-encre);
}
.tag.rouge {
  background: var(--rouge-doux);
  color: var(--rouge-encre);
}
.bouton {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: none;
  font: inherit;
  font-weight: 600;
  font-size: 0.9rem;
  cursor: pointer;
  color: #fff;
  padding: 0.5rem 1.15rem;
  border-radius: 8px;
  background: var(--bleu);
  transition: background 0.15s ease;
  text-decoration: none;
}
.bouton:hover {
  background: var(--bleu-nuit);
}
.bouton:focus-visible {
  outline: 2px solid var(--anneau);
  outline-offset: 2px;
}
.bouton.secondaire {
  background: var(--surface);
  color: var(--encre);
  border: 1px solid var(--bord-fort);
}
.bouton.secondaire:hover {
  background: var(--bleu-doux);
  border-color: var(--bleu);
  color: var(--bleu);
}
.bouton.ocre {
  background: var(--surface);
  color: var(--or-encre);
  border: 1px solid var(--or);
}
.bouton.ocre:hover {
  background: var(--or-doux);
  color: var(--or-encre);
}
.cellule-actions {
  white-space: nowrap;
  vertical-align: middle;
}
.mention-vous {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0 0.8rem;
}
.cellule-actions > * {
  vertical-align: middle;
}
.cellule-actions > * + * {
  margin-left: 0.4rem;
}
.cellule-actions .bouton {
  padding-left: 0.8rem;
  padding-right: 0.8rem;
}
.cellule-actions .bouton.icone-seule {
  padding-left: 0;
  padding-right: 0;
  border-color: transparent;
  background: transparent;
  border-radius: 999px;
  color: var(--muet);
  box-shadow: none;
  transition: background-color 120ms ease, color 120ms ease;
}
.cellule-actions .bouton.icone-seule:hover,
.cellule-actions .bouton.icone-seule:focus-visible {
  background: var(--bleu);
  color: var(--surface);
  border-color: transparent;
}
.cellule-actions .bouton.danger.icone-seule:hover,
.cellule-actions .bouton.danger.icone-seule:focus-visible {
  background: var(--rouge);
  color: var(--surface);
}
.cellule-actions .bouton.icone-seule:focus-visible {
  outline: 2px solid var(--bleu);
  outline-offset: 2px;
}
.cellule-actions [data-bulle]::after {
  left: auto;
  right: 0;
  transform: none;
}
.cellule-actions [data-bulle]::before {
  left: auto;
  right: 16px;
  transform: none;
}
.table-equipes td:first-child, .table-equipes th:first-child {
  white-space: nowrap;
}
.encart-appels {
  margin-top: 1rem;
  padding: 0.9rem 1.1rem;
  background: var(--rouge-doux);
  border: 1px solid var(--rouge);
  border-radius: var(--rayon);
}
.encart-appels h2,
.encart-appels h3 {
  margin: 0 0 0.35rem;
  font-family: var(--fonte-texte);
  font-size: 0.98rem;
  font-weight: 600;
  letter-spacing: -0.005em;
  color: var(--rouge-encre);
}
.encart-appels p {
  margin: 0 0 0.6rem;
  font-size: 0.9rem;
}
.liste-appels {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.45rem;
}
.liste-appels li {
  font-size: 0.9rem;
}
.liste-appels a {
  font-weight: 600;
}
.sans-recours {
  color: var(--rouge-encre);
}
.cellule-adresse {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  max-width: 22rem;
}
form {
  max-width: 36rem;
}
form.carte {
  max-width: 40rem;
}
label {
  display: block;
  margin: 0.95rem 0 0.32rem;
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--encre);
}
label:has(> input[type="checkbox"]) {
  display: flex;
  align-items: center;
  min-height: 44px;
  cursor: pointer;
}
label input[type="checkbox"] {
  width: 22px;
  height: 22px;
  margin-right: 0.45rem;
  accent-color: var(--bleu);
  flex: none;
}
input, select, textarea {
  width: 100%;
  padding: 0.6rem 0.75rem;
  border: 1px solid var(--bord-champ);
  border-radius: 8px;
  font: inherit;
  background: var(--surface);
  color: var(--encre);
  transition: border-color 0.12s ease, box-shadow 0.12s ease;
}
input:hover, select:hover, textarea:hover {
  border-color: var(--encre);
}
input:focus, select:focus, textarea:focus {
  outline: none;
  border-color: var(--bleu);
  box-shadow: 0 0 0 3px var(--bleu-doux);
}
textarea {
  min-height: 4.5rem;
  resize: vertical;
}
select {
  appearance: none;
  background-image: linear-gradient(45deg, transparent 50%, var(--muet) 50%), linear-gradient(135deg, var(--muet) 50%, transparent 50%);
  background-position: calc(100% - 18px) 50%, calc(100% - 13px) 50%;
  background-size: 5px 5px;
  background-repeat: no-repeat;
}
.membres {
  border: none;
  padding: 0;
  margin: 1.1rem 0 0;
}
.membres > legend {
  padding: 0;
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--encre);
}
.membre {
  border: 1px solid var(--bord);
  border-left: 3px solid var(--bleu-doux);
  border-radius: var(--rayon, 8px);
  background: var(--surface);
  padding: 0.6rem 0.85rem 0.9rem;
  margin-top: 0.6rem;
}
.membre-entete {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem;
}
.membre-rang {
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--muet);
}
.membre-champs {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr));
  gap: 0 0.75rem;
}
.membre-champs label {
  margin-top: 0.55rem;
  font-weight: 500;
  font-size: 0.875rem;
  color: var(--muet);
}
.lien-discret {
  border: none;
  background: none;
  font: inherit;
  font-size: 0.8125rem;
  color: var(--muet);
  cursor: pointer;
  padding: 0.15rem 0.35rem;
  border-radius: 6px;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.lien-discret:hover {
  color: var(--rouge);
  background: var(--rouge-doux);
}
.lien-discret:focus-visible {
  outline: 2px solid var(--anneau);
  outline-offset: 2px;
}
.bouton-discret {
  border: 1px dashed var(--bord-fort);
  background: none;
  font: inherit;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--bleu);
  cursor: pointer;
  padding: 0.5rem 0.9rem;
  border-radius: 8px;
  width: 100%;
}
.bouton-discret:hover {
  background: var(--bleu-doux);
  border-color: var(--bleu);
  border-style: solid;
}
.bouton-discret:focus-visible {
  outline: 2px solid var(--anneau);
  outline-offset: 2px;
}
.champ-mot-de-passe {
  position: relative;
}
.champ-mot-de-passe input {
  padding-right: 2.9rem;
  min-height: 44px;
}
.bouton-oeil {
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  width: 2.75rem;
  border: none;
  background: none;
  color: var(--muet);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 0 8px 8px 0;
  transition: color 0.12s ease;
}
.bouton-oeil:hover {
  color: var(--bleu);
}
.bouton-oeil[aria-pressed="true"] {
  color: var(--bleu);
}
.bouton-oeil:focus-visible {
  outline-offset: -2px;
}
.message-erreur {
  background: var(--rouge-doux);
  border-left: 3px solid var(--rouge);
  color: var(--rouge-encre);
  padding: 0.6rem 0.9rem;
  font-weight: 500;
}
table {
  border-collapse: collapse;
  width: 100%;
}
.carte:has(> table) {
  overflow-x: auto;
}
thead th {
  text-align: left;
  padding: 0.55rem 0.75rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--muet);
  border-bottom: 2px solid var(--bord);
}
tbody td {
  padding: 0.65rem 0.75rem;
  border-bottom: 1px solid var(--bord);
  font-size: 0.93rem;
  vertical-align: middle;
}
tbody tr:last-child td {
  border-bottom: none;
}
tbody tr:hover td {
  background: var(--bleu-doux);
}
ul {
  padding-left: 1.2rem;
}
li {
  margin: 0.3rem 0;
}
.muet {
  color: var(--muet);
}
.rangee-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  align-items: center;
  margin: 0.6rem 0;
}
.rangee-actions-fin {
  justify-content: flex-end;
}
.rangee-actions-annuaire > :last-child {
  margin-left: auto;
}
.rangee-actions-annuaire {
  padding-right: calc(var(--carte-rentree) + 1px);
}
@media (max-width: 34rem) {
  .rangee-actions-annuaire > :last-child {
    margin-left: 0;
  }
  .rangee-actions-annuaire {
    padding-right: 0;
  }
}
hr {
  border: none;
  border-top: 1px solid var(--bord);
  margin: 1.3rem 0;
}
.citation {
  text-align: center;
  color: var(--muet);
  font-family: var(--fonte-titre);
  font-style: italic;
  font-size: 1.05rem;
  margin-top: 3rem;
}
.citation .ref {
  display: block;
  font-style: normal;
  font-family: var(--fonte-texte);
  font-size: 0.74rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--or-encre);
  margin-top: 0.4rem;
}
.ecran-connexion {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 2rem 1.25rem;
}
.boite-connexion {
  width: 100%;
  max-width: 24rem;
  text-align: center;
}
.boite-connexion form {
  max-width: 100%;
  text-align: left;
}
.blason {
  width: 60px;
  height: 60px;
  margin: 0 auto 1rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--or-clair);
  background: linear-gradient(160deg, var(--bleu-nuit), #1e3a6e);
  box-shadow: 0 8px 20px rgba(22, 41, 79, 0.3), inset 0 1px 0 rgba(255,255,255,0.15);
}
.titre-connexion {
  font-size: 2.1rem;
  margin: 0;
}
.sous-titre-connexion {
  color: var(--muet);
  margin: 0.2rem 0 1.8rem;
  font-family: var(--fonte-titre);
  font-style: italic;
  font-size: 1.05rem;
}
.titre-formulaire {
  margin-top: 0;
}
.bouton-large {
  width: 100%;
  padding: 0.72rem 1.15rem;
}
.acces-rapide {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  margin-top: 0.5rem;
}
@media (max-width: 46rem) {
  .acces-rapide {
    grid-template-columns: 1fr;
  }
}
.tuile {
  display: flex;
  gap: 0.95rem;
  align-items: flex-start;
  background: var(--surface);
  border: 1px solid var(--bord);
  border-radius: var(--rayon);
  box-shadow: var(--ombre-carte);
  padding: 1.15rem 1.3rem;
  text-decoration: none;
  color: inherit;
  transition: border-color 0.15s ease;
}
.tuile:hover {
  border-color: var(--or);
}
.tuile .icone {
  color: var(--bleu);
  flex: none;
  margin-top: 0.1rem;
}
.tuile .titre-tuile {
  display: block;
  font-weight: 600;
  font-size: 0.97rem;
  margin-bottom: 0.2rem;
}
.tuile .desc-tuile {
  font-size: 0.875rem;
  color: var(--muet);
  line-height: 1.45;
}
.onglets-repas {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
  margin-bottom: 1.4rem;
}
.onglet-repas {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.1rem;
  padding: 0.55rem 1.1rem;
  border: 1px solid var(--bord);
  border-radius: var(--rayon);
  background: var(--surface);
  text-decoration: none;
  color: var(--muet);
  transition: border-color 0.15s ease, background 0.15s ease;
  min-width: 5.5rem;
}
.onglet-repas:hover {
  border-color: var(--or-clair);
}
.onglet-repas.actif {
  background: var(--bleu);
  border-color: var(--bleu);
  color: #fff;
}
.onglet-repas .onglet-num {
  font-weight: 600;
  font-size: 0.85rem;
}
.onglet-repas .onglet-date {
  font-size: 0.8125rem;
  opacity: 0.9;
}
.contenu:has(> .page-repas) {
  max-width: 76rem;
  padding-top: 1.6rem;
}
.page-repas {
  min-width: 0;
}
.repas-entete {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem 2rem;
  margin-bottom: 1.2rem;
}
.repas-entete .salutation {
  text-align: left;
  margin: 0;
}
.repas-entete .repas-saison {
  font-size: 0.8rem;
  margin-bottom: 0.25rem;
}
.repas-entete .salutation h1 {
  font-size: 1.65rem;
}
.repas-entete .salutation > p:last-child {
  font-size: 0.9rem;
}
.repas-entete .onglets-repas {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.4rem;
  margin: 0;
  flex: 0 0 23rem;
}
.repas-entete .onglet-repas {
  min-width: 0;
  padding: 0.55rem 0.6rem;
}
.page-repas .bandeau-repas {
  box-shadow: none;
  padding: 0.8rem 1rem;
  margin-bottom: 1rem;
}
.page-repas .rangee-actions {
  margin-top: 0;
  gap: 0.5rem 0.75rem;
}
.page-repas .avertissement-geste {
  margin: 0.6rem 0;
  max-width: 68rem;
}
.repas-outils {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.25rem 1.5rem;
  margin: 0 0 1rem;
  font-size: 0.85rem;
}
.repas-outils .ligne-tirage {
  margin: 0;
  font-size: inherit;
}
.repas-aide {
  flex: 1;
  min-width: min(100%, 18rem);
}
.repas-aide > summary {
  width: fit-content;
  min-height: 44px;
  align-content: center;
  color: var(--bleu);
  cursor: pointer;
}
.repas-aide[open] {
  flex-basis: 100%;
}
.repas-aide-contenu {
  padding: 0.4rem 0 0;
  max-width: 54rem;
}
.page-repas .repas-coordonnees {
  padding: 0.8rem 1rem;
  margin: 0.8rem 0 1rem;
}
.repas-coordonnees .liste-appels {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.5rem 1.5rem;
}
.page-repas .grille-tablees {
  gap: 1.1rem;
  margin-top: 1rem;
}
.page-repas .tablee:not(.figee) {
  border-left: 1px solid var(--bord);
}
.page-repas .tablee {
  padding: 1rem;
}
.page-repas .tablee .entete {
  padding-bottom: 0.6rem;
  margin-bottom: 0;
  border-bottom: 1px solid var(--bord);
}
.page-repas .tablee .role {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0.3rem;
  padding: 0.75rem 0;
  border-radius: 0;
}
.page-repas .tablee .role + .role {
  border-top: 1px solid var(--bord);
}
.page-repas .tablee .role .quoi {
  min-width: 0;
  width: auto;
  font-size: 0.78rem;
}
.page-repas .tablee .role .qui {
  min-width: 0;
  width: 100%;
  gap: 0.3rem 0.45rem;
}
.page-repas .tablee .role .nom-equipe {
  flex: 1;
  min-width: 0;
  overflow-wrap: anywhere;
}
.page-repas .tablee .role .motif {
  flex-basis: 100%;
  padding-left: 0.9rem;
}
.page-repas .tablee .role.presence-ok {
  background: transparent;
}
.page-repas .tablee .role.presence-non {
  padding-inline: 0.5rem;
  border-radius: 6px;
}
.page-repas .tablee .role .qui .tels {
  padding-left: 0.9rem;
}
.page-repas .tablee .coord {
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  column-gap: 0.35rem;
}
.page-repas .tablee .qui-tel {
  font-weight: 400;
  padding-left: 0;
}
.page-repas .tablee .tel {
  font-size: 0.82rem;
  padding-inline: 0.15rem;
}
.page-repas .tablee .role .pointage {
  width: 100%;
  margin: 0.1rem 0 0;
}
.page-repas .tablee .role .pointe {
  flex: 1;
  padding-inline: 0.45rem;
  font-size: 0.875rem;
}
.page-repas .liste-presences-repas .ligne {
  align-items: start;
}
.page-repas .liste-presences-repas .etat {
  margin-top: 0.45rem;
}
.page-repas .liste-presences-repas .pointage {
  align-self: center;
}
.page-repas .liste-motifs-repas .forme-motif {
  min-width: 0;
}
@container (min-width: 28rem) {
  .page-repas .tablee .role {
    grid-template-columns: minmax(0, 1fr) auto;
    column-gap: 1rem;
  }
  .page-repas .tablee .role .quoi {
    grid-column: 1;
  }
  .page-repas .tablee .role .qui {
    grid-column: 1;
  }
  .page-repas .tablee .role .pointage {
    grid-column: 2;
    grid-row: 2;
    width: auto;
    margin: 0;
    align-self: start;
  }
}
@media (max-width: 52rem) {
  .repas-entete {
    flex-direction: column;
    align-items: stretch;
    gap: 0.9rem;
  }
  .repas-entete .onglets-repas {
    flex-basis: auto;
  }
}
@media (max-width: 38rem) {
  .contenu:has(> .page-repas) {
    padding-top: 1rem;
  }
  .repas-entete .salutation h1 {
    font-size: 1.45rem;
  }
  .repas-entete .onglet-repas {
    padding: 0.45rem 0.2rem;
  }
  .page-repas .bandeau-repas {
    padding: 0.75rem;
  }
  .page-repas .legende-jauge {
    gap: 0.4rem 0.8rem;
  }
  .page-repas .rangee-actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }
  .page-repas .rangee-actions .bouton {
    width: 100%;
    justify-content: center;
    white-space: normal;
  }
  .repas-outils {
    gap: 0;
    margin-bottom: 0.5rem;
  }
  .repas-coordonnees .liste-appels {
    grid-template-columns: minmax(0, 1fr);
  }
  .page-repas .tablee {
    padding: 0.8rem;
  }
  .page-repas .liste-presences-repas .ligne {
    display: grid;
    grid-template-columns: 9px minmax(0, 1fr);
    gap: 0.4rem 0.6rem;
    padding: 0.8rem;
  }
  .page-repas .liste-presences-repas .princ {
    grid-column: 2;
  }
  .page-repas .liste-presences-repas .ligne > .pointage,
  .page-repas .liste-presences-repas .actions-ligne {
    grid-column: 2;
    width: 100%;
  }
  .page-repas .liste-presences-repas .actions-ligne {
    flex-wrap: wrap;
  }
  .page-repas .liste-presences-repas .actions-ligne .pointage {
    width: 100%;
  }
  .page-repas .liste-presences-repas .pointe {
    flex: 1;
    padding-inline: 0.35rem;
    font-size: 0.875rem;
  }
  .page-repas .liste-motifs-repas .ligne {
    flex-direction: column;
    align-items: stretch;
    gap: 0.5rem;
    padding: 0.8rem;
  }
  .page-repas .liste-motifs-repas .forme-motif {
    max-width: none;
    width: 100%;
  }
  .page-repas .liste-motifs-repas .forme-motif input {
    font-size: 1rem;
    min-width: 0;
    flex: 1;
  }
}
.panneau-prochain {
  border-left: 3px solid var(--or);
}
.panneau-entete {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}
.panneau-entete .surtitre {
  display: block;
  font-size: 0.7rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--muet);
  font-weight: 600;
}
.date-prochain {
  margin: 0.25rem 0 0;
  font-size: 1.5rem;
}
.pastille-echeance {
  flex: none;
  background: var(--bleu-doux);
  color: var(--bleu);
  border: 1px solid #cddcf1;
  border-radius: 999px;
  padding: 0.3rem 0.85rem;
  font-size: 0.84rem;
  font-weight: 600;
  white-space: nowrap;
}
.panneau-lignes {
  margin-top: 1.2rem;
  border-top: 1px solid var(--bord);
}
.panneau-ligne {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.6rem 0;
  border-bottom: 1px solid var(--bord);
  font-size: 0.92rem;
}
.panneau-ligne:last-child {
  border-bottom: 0;
}
.panneau-ligne .cle {
  color: var(--muet);
}
.panneau-ligne .val {
  font-weight: 600;
  text-align: right;
}
.jauge {
  display: flex;
  height: 0.6rem;
  border-radius: 999px;
  overflow: hidden;
  background: #ece7da;
  margin-top: 1.25rem;
}
.jauge .part {
  display: block;
  transition: width 0.3s ease;
}
.jauge .part.ok {
  background: var(--vert);
}
.jauge .part.attente {
  background: var(--attente);
}
.jauge .part.non {
  background: var(--rouge);
}
.legende-jauge {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 1.2rem;
  margin-top: 0.6rem;
  font-size: 0.86rem;
  color: var(--muet);
}
.legende-jauge > span {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
}
.legende-jauge strong {
  color: var(--encre);
}
.bandeau-repas {
  background: var(--surface);
  border: 1px solid var(--bord);
  border-radius: var(--rayon);
  box-shadow: var(--ombre-carte);
  padding: 1rem 1.3rem 1.1rem;
  margin-bottom: 1.4rem;
}
.bandeau-repas .jauge {
  margin-top: 0;
}
.alertes {
  display: grid;
  gap: 0.6rem;
  margin: 1.4rem 0 2rem;
}
.alerte {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap;
  background: var(--or-doux);
  border: 1px solid #e6d7ad;
  border-radius: var(--rayon);
  padding: 0.7rem 1rem;
  font-size: 0.9rem;
}
.alerte .signe {
  flex: none;
  width: 1.4rem;
  height: 1.4rem;
  border-radius: 50%;
  background: var(--or);
  color: #fff;
  font-weight: 700;
  font-size: 0.85rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.alerte .texte {
  flex: 1;
  min-width: 12rem;
}
.alerte a {
  font-weight: 600;
  white-space: nowrap;
}
.stats-secondaires {
  margin-bottom: 1rem;
}
.stats-secondaires .stat {
  padding: 0.85rem 0.9rem;
}
.stats-secondaires .stat .n {
  font-size: 1.45rem;
}
.tablee .roles {
  max-width: none;
}
.tablee .role {
  align-items: flex-start;
  gap: 0.6rem;
  padding: 0.42rem 0.5rem;
  border-radius: 6px;
  flex-wrap: wrap;
}
.tablee .role .pointage {
  margin-left: auto;
}
.tablee .role .quoi {
  flex: none;
  min-width: 7.5rem;
}
.tablee .role .qui {
  flex: 1;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 0.45rem;
  flex-wrap: wrap;
}
.nom-equipe {
  font-weight: 600;
}
.presence-ok {
  background: var(--vert-doux);
}
.presence-non {
  background: var(--rouge-doux);
}
.presence-non .nom-equipe {
  text-decoration: line-through;
  text-decoration-color: var(--rouge);
  color: var(--muet);
}
.presence-non .motif {
  color: var(--rouge);
  font-size: 0.84rem;
  font-style: italic;
}
.liste .ligne.presence-ok:hover {
  background: #dfeee6;
}
.liste .ligne.presence-non:hover {
  background: #f6e2df;
}
.pointage {
  display: inline-flex;
  flex: none;
  border: 1px solid var(--bord-fort);
  border-radius: 999px;
  background: var(--surface);
}
.pointage form:first-child .pointe {
  border-radius: 999px 0 0 999px;
}
.pointage form:last-child .pointe {
  border-radius: 0 999px 999px 0;
}
.pointage form {
  margin: 0;
  max-width: none;
  display: contents;
}
.pointage form + form .pointe {
  border-left: 1px solid var(--bord);
}
.pointe {
  min-height: 44px;
  padding: 0 0.75rem;
  border: 0;
  border-radius: 0;
  background: transparent;
  font-family: var(--fonte-texte);
  font-size: 0.82rem;
  white-space: nowrap;
  color: var(--muet);
  font-size: 1rem;
  line-height: 1;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background 0.12s ease, border-color 0.12s ease, color 0.12s ease;
}
.pointe:hover {
  background: var(--bleu-doux);
  color: var(--bleu);
}
.pointe:focus-visible {
  outline: 2px solid var(--anneau);
  outline-offset: -3px;
}
.pointe.ok.choisi {
  background: var(--vert);
  color: #fff;
}
.pointe.attente.choisi {
  background: var(--bord-fort);
  color: var(--encre);
}
.pointe.non.choisi {
  background: var(--rouge);
  color: #fff;
}
.pointe.choisi:hover {
  color: inherit;
}
.pointe.ok.choisi:hover, .pointe.non.choisi:hover {
  background: var(--bleu-nuit);
  color: #fff;
}
.forme-motif {
  display: flex;
  gap: 0.4rem;
  align-items: center;
  margin: 0;
  max-width: 26rem;
  flex: 1;
}
.forme-motif input {
  padding: 0.42rem 0.6rem;
  font-size: 0.88rem;
}
.forme-motif button {
  flex: none;
}
.bouton.avec-icone {
  display: inline-flex;
  align-items: center;
  gap: 0.42rem;
}
.bouton.icone-seule {
  gap: 0;
  padding: 0;
  width: 44px;
  min-width: 44px;
  justify-content: center;
}
.liens-discrets {
  margin-top: 1.6rem;
  text-align: center;
  font-size: 0.9rem;
}
.liens-discrets p {
  margin: 0.5rem 0;
  color: var(--muet);
}
.liens-discrets form {
  margin: 0;
  max-width: none;
}
.lien-bouton {
  border: none;
  background: none;
  padding: 0;
  font: inherit;
  color: var(--rouge);
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.lien-bouton:hover {
  color: #82332d;
}
.sr-seulement {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}
.carte-profil {
  padding: 1.6rem 1.6rem 0.4rem;
}
.profil-entete {
  display: flex;
  align-items: center;
  gap: 1.1rem;
  padding-bottom: 1.3rem;
  border-bottom: 1px solid var(--bord);
}
.profil-entete > div {
  min-width: 0;
}
.profil-email {
  font-family: var(--fonte-titre);
  font-size: 1.3rem;
  font-weight: 600;
  color: var(--bleu);
  margin-bottom: 0.3rem;
  overflow-wrap: anywhere;
}
.avatar-grand {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--or-clair);
  background: linear-gradient(160deg, var(--bleu-nuit), #1e3a6e);
  border: 1px solid rgba(211, 180, 92, 0.4);
  flex: none;
}
.profil-lignes {
  padding: 0.4rem 0 0.9rem;
}
.profil-ligne {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.7rem 0;
  border-bottom: 1px dashed var(--bord);
  font-size: 0.93rem;
}
.profil-ligne:last-child {
  border-bottom: 0;
}
.profil-ligne .cle {
  color: var(--muet);
}
.profil-ligne .val {
  font-weight: 600;
  text-align: right;
}
.liste-casquettes {
  list-style: none;
  padding-left: 0;
  margin: 0.4rem 0 0.9rem;
}
.liste-casquettes .ligne {
  margin: 0;
}
.liste-casquettes form {
  margin: 0;
  max-width: none;
}
.liste-casquettes .bouton {
  min-height: 44px;
}
.tableau-paroisses {
  overflow-x: auto;
}
.tableau-paroisses .bouton {
  min-height: 44px;
  white-space: nowrap;
}
.tableau-paroisses td form {
  margin: 0;
  max-width: none;
}
.entrer-participant {
  display: flex;
  gap: 0.5rem;
  align-items: center;
}
.entrer-participant select {
  min-width: 11rem;
  min-height: 44px;
}
.contenu-participant {
  max-width: 34rem;
}
.message-retour {
  background: var(--vert-doux);
  border-left: 3px solid var(--vert);
  color: #23603d;
  padding: 0.6rem 0.9rem;
  font-weight: 500;
}
.entete-participant {
  display: flex;
  justify-content: center;
  margin-bottom: 1.4rem;
}
.tel {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0 0.4rem;
  color: var(--bleu);
  font-variant-numeric: tabular-nums;
  text-decoration: none;
  border-bottom: 1px dotted var(--bord-fort);
  white-space: nowrap;
}
.tel:hover {
  color: var(--bleu-nuit);
  border-bottom-color: var(--bleu);
}
.tels {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.15rem;
  font-size: 0.86rem;
}
.tels .muet {
  font-size: 0.82rem;
  font-style: italic;
}
.coord {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  line-height: 1.2;
}
.qui-tel {
  color: var(--muet);
  font-size: 0.78rem;
  padding-left: 0.4rem;
}
.tablee .role .qui .tels {
  flex-basis: 100%;
  margin-left: 0;
  padding-left: 0.9rem;
}
.coords-ligne {
  display: flex;
  flex-wrap: wrap;
  gap: 0 0.55rem;
}
.coord-ligne + .coord-ligne::before {
  content: '· ';
  color: var(--bord-fort);
}
.coord-ligne .num {
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
@container (max-width: 25rem) {
  .tablee .role {
    flex-wrap: wrap;
  }
  .tablee .role .quoi {
    min-width: 100%;
    font-size: 0.8rem;
    letter-spacing: 0.03em;
    margin-bottom: 0.1rem;
  }
  .tablee .role .qui .tels {
    margin-left: 0;
  }
  .tablee .role .pointage {
    width: 100%;
    margin-left: 0;
  }
  .tablee .role .pointage .pointe {
    flex: 1;
    padding: 0 0.4rem;
  }
}
.mes-convives {
  margin-top: 1.4rem;
  border-top: 1px solid var(--bord);
  padding-top: 1rem;
}
.mes-convives h2 {
  font-family: var(--fonte-titre);
  font-size: 1.25rem;
  color: var(--bleu);
  margin: 0 0 0.2rem;
}
.mes-convives .muet {
  font-size: 0.86rem;
  margin: 0 0 0.6rem;
}
.liste-convives {
  list-style: none;
  margin: 0;
  padding: 0;
}
.liste-convives .convive {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.3rem 0.8rem;
  padding: 0.3rem 0;
}
.liste-convives .convive + .convive {
  border-top: 1px dashed var(--bord);
}
.liste-convives .identite {
  display: flex;
  flex-direction: column;
}
.liste-convives .identite small {
  color: var(--muet);
  font-size: 0.82rem;
}
.liste-convives .membres-convive {
  color: var(--encre);
  font-size: 0.84rem;
}
.liste-convives .numeros {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0 0.5rem;
}
.liste-convives .convive.absent .nom-equipe {
  text-decoration: line-through;
  text-decoration-color: var(--rouge);
  color: var(--muet);
}
.mes-convives .titre-convives {
  font-family: var(--fonte-titre);
  font-size: 1.2rem;
  color: var(--bleu);
  margin: 0 0 0.2rem;
}
.page-mes-repas {
  max-width: 38rem;
}
.entete-mes-repas {
  margin-bottom: 1.6rem;
}
.entete-mes-repas h1 {
  font-size: 1.7rem;
  margin-bottom: 0.2rem;
}
.entete-mes-repas p {
  margin: 0;
  font-size: 0.92rem;
}
.groupe-mes-repas {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.groupe-mes-repas.passes {
  margin-top: 2rem;
}
.titre-passes {
  font-family: var(--fonte-titre);
  font-size: 1.15rem;
  font-weight: 500;
  color: var(--muet);
  letter-spacing: 0.04em;
  margin: 0 0 0.2rem;
}
.mon-repas {
  background: var(--surface);
  border: 1px solid var(--bord);
  border-left: 3px solid var(--or-clair);
  border-radius: var(--rayon);
  box-shadow: var(--ombre-carte);
  padding: 1.1rem 1.3rem;
}
.mon-repas.passe {
  border-left-color: var(--bord-fort);
  box-shadow: none;
  background: transparent;
  padding: 0.7rem 1.3rem;
}
.mon-repas-titre {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0 0.45rem;
  font-family: var(--fonte-titre);
  font-size: 1.3rem;
  color: var(--bleu);
  margin: 0 0 0.45rem;
}
.mon-repas.passe .mon-repas-titre {
  font-size: 1.1rem;
  color: var(--muet);
  margin-bottom: 0.15rem;
}
.mon-repas-titre .rang {
  font-weight: 600;
}
.mon-repas-titre .separateur {
  color: var(--bord-fort);
}
.mon-repas-titre .jour {
  font-weight: 400;
}
.etiquette-passe {
  font-family: var(--fonte-texte);
  font-size: 0.72rem;
  font-weight: 600;
  padding: 0.15rem 0.55rem;
  border-radius: 999px;
  background: var(--bord);
  color: var(--muet);
  white-space: nowrap;
}
.mon-repas-part {
  margin: 0 0 0.35rem;
}
.mon-repas.passe .mon-repas-part {
  margin: 0;
  color: var(--muet);
  font-size: 0.92rem;
}
.mon-repas-lieu {
  margin: 0 0 0.2rem;
}
.mon-repas-attente {
  margin: 0.5rem 0 0;
  padding: 0.55rem 0.8rem;
  border-radius: var(--rayon);
  background: var(--bleu-doux);
  color: var(--bleu);
  font-size: 0.9rem;
}
.mes-repas-vide {
  color: var(--muet);
}
.ligne-tirage {
  font-size: 0.86rem;
  margin: 0.2rem 0 1rem;
}
.compte-tirages {
  font-size: 0.86rem;
  margin: 0 0 0.7rem;
}
.note-tirages {
  font-size: 0.82rem;
  margin: 0.7rem 0 0;
}
.liste .ligne.tirage.courant {
  box-shadow: inset 3px 0 0 var(--or);
  background: var(--or-doux);
}
.liste .ligne.tirage.courant:hover {
  background: var(--or-doux);
}
.chiffres-tirage {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  color: var(--muet);
  font-size: 0.82rem;
  text-align: right;
}
.liste .ligne.tirage .bouton {
  min-height: 44px;
}
.panneau-phase {
  border-left: 3px solid var(--or);
}
.panneau-pied {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.9rem 1.2rem;
  flex-wrap: wrap;
  margin-top: 1.2rem;
  padding-top: 0.95rem;
  border-top: 1px solid var(--bord);
}
.panneau-pied-note {
  color: var(--muet);
  font-size: 0.88rem;
  line-height: 1.4;
  flex: 1 1 12rem;
  min-width: 0;
}
.panneau-pied-forme {
  margin: 0;
  max-width: none;
  flex: none;
}
.panneau-pied .bouton {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}
@media (max-width: 34rem) {
  .panneau-pied {
    flex-direction: column;
    align-items: stretch;
  }
  .panneau-pied-note {
    flex: none;
  }
  .panneau-pied-forme {
    width: 100%;
  }
  .panneau-pied .bouton {
    width: 100%;
    justify-content: center;
  }
}
.rangee-phase {
  margin-top: 1.1rem;
  justify-content: flex-end;
}
.rangee-phase .bouton,
.rangee-forcage .bouton {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}
.carte-forcage {
  padding: 1.2rem 1.4rem;
}
.rangee-forcage {
  margin-top: 0.9rem;
}
.bandeau-force {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap;
  background: var(--or-doux);
  border: 1px solid var(--or-clair);
  border-left: 4px solid var(--or);
  border-radius: var(--rayon);
  padding: 0.8rem 1.1rem;
  margin-bottom: 1.4rem;
  font-size: 0.9rem;
  color: var(--or-encre);
}
.bandeau-force .signe {
  flex: none;
  display: inline-flex;
  color: var(--or-encre);
}
.bandeau-force .texte {
  flex: 1;
  min-width: 14rem;
  color: var(--encre);
}
.bandeau-force strong {
  color: var(--or-encre);
}
.bandeau-force a {
  font-weight: 600;
  white-space: nowrap;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}
.carte-taches {
  padding: 1.3rem 1.4rem 1.4rem;
}
.taches-entete {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.4rem;
}
.taches-entete h2 {
  margin: 0;
  color: var(--bleu);
  font-size: 1.3rem;
}
.compteur-taches {
  flex: none;
  background: var(--bleu-doux);
  color: var(--bleu);
  border-radius: 999px;
  padding: 0.22rem 0.75rem;
  font-size: 0.84rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
.taches {
  list-style: none;
  padding: 0;
  margin: 0.6rem 0 0;
}
.tache {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  border-bottom: 1px solid var(--bord);
}
.tache:last-child {
  border-bottom: 0;
}
.case-tache {
  flex: 1;
  min-width: 0;
  display: flex;
  align-items: flex-start;
  gap: 0.7rem;
  min-height: 44px;
  padding: 0.5rem 0.3rem;
  background: none;
  border: 0;
  font: inherit;
  text-align: left;
  color: inherit;
}
.tache-bascule {
  flex: 1;
  min-width: 0;
  display: flex;
}
button.case-tache {
  cursor: pointer;
  border-radius: 6px;
}
button.case-tache:hover {
  background: var(--bleu-doux);
}
button.case-tache:focus-visible {
  outline: 2px solid var(--anneau);
  outline-offset: 2px;
}
.case-tache-deduite {
  cursor: default;
}
.tache .coche {
  flex: none;
  margin-top: 0.12rem;
  width: 22px;
  height: 22px;
  border-radius: 6px;
  border: 1.5px solid var(--bord-fort);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.85rem;
  font-weight: 700;
  color: #fff;
  line-height: 1;
}
.tache.faite .coche {
  background: var(--vert);
  border-color: var(--vert);
}
.case-tache-deduite .coche {
  border-radius: 50%;
  border-style: dashed;
}
.tache.faite .case-tache-deduite .coche {
  border-style: solid;
}
.tache-texte {
  min-width: 0;
}
.tache.faite .tache-texte {
  color: var(--muet);
}
.tache-precision {
  display: block;
  color: var(--muet);
  font-size: 0.8rem;
  margin-top: 0.12rem;
}
.taches-legende {
  margin: 0 0 0.2rem;
  font-size: 0.82rem;
  color: var(--muet);
  line-height: 1.45;
}
.taches-legende .rond,
.taches-legende .carre {
  display: inline-block;
  width: 11px;
  height: 11px;
  border: 1.5px solid var(--bord-fort);
  vertical-align: -1px;
  margin-right: 0.15rem;
}
.taches-legende .rond {
  border-radius: 50%;
  border-style: dashed;
}
.taches-legende .carre {
  border-radius: 3px;
}
.tache-fin {
  flex: none;
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.tache-fin a {
  font-size: 0.85rem;
  font-weight: 600;
  white-space: nowrap;
}
.retirer-tache {
  width: 44px;
  height: 44px;
  border: 0;
  background: none;
  color: var(--muet);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  cursor: pointer;
  border-radius: 6px;
}
.retirer-tache svg {
  width: 18px;
  height: 18px;
}
.retirer-tache:hover {
  background: var(--rouge-doux);
  color: var(--rouge-encre);
}
.retirer-tache:focus-visible {
  outline: 2px solid var(--anneau);
  outline-offset: 2px;
}
.ajout-tache {
  display: flex;
  gap: 0.6rem;
  max-width: none;
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--bord);
}
.ajout-tache input {
  flex: 1;
  min-width: 0;
  min-height: 44px;
}
.ajout-tache .bouton {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}
.note-inerte {
  margin: 1rem 0 0;
  padding-top: 1rem;
  border-top: 1px solid var(--bord);
  font-size: 0.86rem;
}
.contenu-inscription {
  max-width: 40rem;
  padding-top: 1.5rem;
}
.entete-inscription {
  text-align: center;
  margin-bottom: 1.15rem;
}
.entete-inscription .blason {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--or-doux);
  color: var(--or-encre);
  margin-bottom: 0.4rem;
}
.entete-inscription .sur-titre {
  margin: 0;
  color: var(--muet);
  font-size: 0.86rem;
  text-transform: uppercase;
  letter-spacing: 0.09em;
}
.entete-inscription h1 {
  margin-top: 0.15rem;
}
.carte-explication {
  border-left: 3px solid var(--or-clair);
  background: var(--or-doux);
}
.carte-explication p:last-child {
  margin-bottom: 0;
}
.formulaire-inscription {
  max-width: 100%;
}
.formulaire-inscription fieldset {
  border: 1px solid var(--bord);
  border-radius: var(--rayon);
  padding: 0.2rem 1rem 1rem;
  margin: 1.4rem 0 0;
}
.formulaire-inscription legend {
  font-family: var(--fonte-titre);
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--bleu);
  padding: 0 0.4rem;
}
.formulaire-inscription .aide-champ {
  font-size: 0.86rem;
  margin: 0.4rem 0 0;
}
.formulaire-inscription .message-erreur ul {
  margin: 0.4rem 0 0;
}
.formulaire-inscription .message-erreur p {
  margin: 0;
}
.formulaire-inscription .bouton {
  min-height: 44px;
  padding: 0.75rem 1.5rem;
  font-size: 1rem;
}
.titre-merci {
  margin-top: 0;
}
.case-a-cocher {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 0.55rem;
  min-height: 44px;
  margin-top: 1.4rem;
  cursor: pointer;
}
.case-a-cocher input[type="checkbox"],
.case-a-cocher input[type="radio"] {
  width: 22px;
  height: 22px;
  flex: none;
}
label:has(> input[type="radio"]) {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 0.55rem;
  min-height: 44px;
  cursor: pointer;
}
.piege {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
.lien-inscription {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  align-items: stretch;
  margin: 0.8rem 0;
}
.lien-inscription .champ-lien {
  flex: 1 1 20rem;
  min-height: 44px;
  font-size: 0.86rem;
  font-family: ui-monospace, "SFMono-Regular", Menlo, monospace;
  background: var(--fond);
  color: var(--muet);
}
.lien-inscription .bouton {
  flex: none;
  min-height: 44px;
}
.affiche-qr {
  display: block;
  width: 100%;
  max-width: 17rem;
  height: auto;
  margin: 0 auto;
  border: 1px solid var(--bord-fort);
  border-radius: var(--rayon);
}
.affiche-emportable {
  margin-top: 1.2rem;
}
.affiche-emportable .rangee-actions {
  justify-content: center;
  margin-top: 0.8rem;
}
.affiche-emportable p[role='status'] {
  min-height: 1.2rem;
  margin: 0.4rem 0 0;
  text-align: center;
  font-size: 0.84rem;
}
.affiche-cliquable {
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  background: none;
  cursor: pointer;
  border-radius: var(--rayon);
}
.affiche-cliquable:hover .affiche-qr {
  border-color: var(--bleu);
}
.affiche-cliquable:focus-visible {
  outline: 2px solid var(--bleu);
  outline-offset: 3px;
}
.fenetre-diffusion {
  max-width: 30rem;
}
.fenetre-equipe {
  max-width: 34rem;
}
.fenetre-diffusion .lien-inscription {
  margin-top: 1rem;
}
.salutation-avec-action {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  text-align: left;
}
.salutation-avec-action .salutation-mots {
  flex: 1;
}
.salutation-gestes {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex: none;
}
@media (max-width: 40rem) {
  .salutation-avec-action {
    flex-direction: column;
    align-items: stretch;
  }
  .salutation-avec-action:has(.salutation-gestes) {
    flex-direction: row;
    align-items: flex-start;
  }
  .salutation-gestes {
    justify-content: flex-end;
  }
}
.rangee-import {
  margin: 0.9rem 0 0;
  justify-content: center;
}
.detail-demande {
  display: block;
  font-size: 0.84rem;
  color: var(--muet);
}
.carte-saison h3 {
  margin-top: 0;
  margin-bottom: 0.35rem;
}
.carte-saison h3 .tag {
  vertical-align: middle;
  font-size: 0.75rem;
}
.carte-saison .rangee-actions {
  margin-top: 0.9rem;
}
.reglages-paroisse {
  border-left: 3px solid var(--or-clair);
}
.reglages-paroisse .case-a-cocher {
  margin-top: 0.6rem;
}
.temoin-enregistre {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  margin-left: 0.6rem;
  color: var(--vert);
  font-size: 0.85rem;
  font-weight: 600;
  animation: temoin-parait 0.18s ease-out;
}
@keyframes temoin-parait {
  from {
    opacity: 0;
    transform: translateX(-4px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@media (prefers-reduced-motion: reduce) {
  .temoin-enregistre {
    animation: none;
  }
}
.reglage-auto input[type="checkbox"]:disabled {
  opacity: 0.55;
  cursor: progress;
}
.infobulle {
  margin: 0.8rem 0;
  border: 1px solid var(--bord);
  border-radius: var(--rayon);
  background: var(--bleu-doux);
}
.infobulle > summary {
  cursor: pointer;
  padding: 0.6rem 0.9rem;
  min-height: 44px;
  display: flex;
  align-items: center;
  gap: 0.55rem;
  font-size: 0.9rem;
  color: var(--bleu);
  font-weight: 600;
  list-style: none;
}
.infobulle > summary::-webkit-details-marker {
  display: none;
}
.infobulle-signe {
  flex: none;
  color: var(--or-encre);
}
.infobulle-question {
  flex: 1;
  min-width: 0;
}
.infobulle-chevron {
  flex: none;
  color: var(--bleu);
  transition: transform 150ms ease;
}
.infobulle[open] > summary .infobulle-chevron {
  transform: rotate(180deg);
}
@media (prefers-reduced-motion: reduce) {
  .infobulle-chevron {
    transition: none;
  }
}
.infobulle > summary:focus-visible {
  outline: 2px solid var(--anneau);
  outline-offset: -2px;
  border-radius: var(--rayon);
}
.infobulle[open] > summary {
  border-bottom: 1px solid var(--bord);
}
.infobulle-corps {
  padding: 0.3rem 0.9rem 0.7rem;
}
@supports selector(::details-content) {
  .infobulle::details-content {
    block-size: 0;
    overflow: hidden;
    opacity: 0;
    transition: block-size 240ms cubic-bezier(0.22, 0.61, 0.36, 1),
      opacity 180ms ease-out,
      content-visibility 240ms allow-discrete;
  }
  .infobulle[open]::details-content {
    block-size: auto;
    opacity: 1;
  }
}
:root {
  interpolate-size: allow-keywords;
}
@media (prefers-reduced-motion: reduce) {
  .infobulle::details-content {
    transition: none;
  }
}
.infobulle-corps p {
  margin: 0.6rem 0;
  font-size: 0.88rem;
  line-height: 1.55;
}
.infobulle-corps h3 {
  margin: 1.1rem 0 0.35rem;
  padding-left: 0.55rem;
  border-left: 3px solid var(--or-clair);
  font-family: var(--fonte-titre);
  font-size: 0.98rem;
  font-weight: 600;
  color: var(--bleu);
  line-height: 1.3;
}
.infobulle-corps > h3:first-child {
  margin-top: 0.5rem;
}
.infobulle-corps ul {
  margin: 0.4rem 0 0.6rem;
  padding-left: 1.1rem;
  font-size: 0.88rem;
  line-height: 1.55;
}
.infobulle-corps li {
  margin: 0.2rem 0;
}
.infobulle-corps li::marker {
  color: var(--or-encre);
}
.reglage-en-ligne {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0;
}
.reglage-en-ligne input[type="checkbox"] {
  width: 22px;
  height: 22px;
  margin: 0;
}
@media (max-width: 640px) {
  .tache {
    flex-wrap: wrap;
  }
  .tache-fin:has(a) {
    margin-left: 2.9rem;
    padding-bottom: 0.4rem;
  }
  .ajout-tache {
    flex-wrap: wrap;
  }
  .ajout-tache input {
    min-width: 100%;
  }
  .rangee-forcage .bouton {
    width: 100%;
    justify-content: center;
  }
  .contenu {
    padding: 1.5rem 1rem 4rem;
  }
  h1 {
    font-size: 1.7rem;
  }
  .entete-paroisse {
    padding: 0.8rem 1.1rem 0.75rem;
  }
  .entete-paroisse .devise {
    display: none;
  }
  .nav-admin {
    justify-content: flex-start;
    gap: 0.9rem;
    padding: 0 0.9rem;
  }
  .carte {
    padding: 1.1rem 1.1rem;
    --rentree-reelle: 1.1rem;
  }
  .stats {
    grid-template-columns: 1fr;
  }
  .stats.stats-secondaires {
    grid-template-columns: repeat(2, 1fr);
  }
  form, form.carte {
    max-width: 100%;
  }
  .date-prochain {
    font-size: 1.25rem;
  }
  .forme-motif {
    flex-wrap: wrap;
  }
  .carte {
    overflow-x: auto;
  }
  .liste .ligne.tirage {
    flex-wrap: wrap;
    gap: 0.5rem;
  }
  .liste .ligne.tirage .princ {
    min-width: 100%;
  }
  .chiffres-tirage {
    text-align: left;
  }
}
:root {
  --flottant-bas: 1rem;
  --flottant-pile: calc(44px + 0.7rem);
}
.volet-taches {
  position: fixed;
  right: var(--flottant-bas);
  bottom: calc(var(--flottant-bas) + var(--flottant-pile));
  z-index: 30;
  max-width: min(26rem, calc(100vw - 2.5rem));
  display: flex;
  flex-direction: column-reverse;
  align-items: flex-end;
  gap: 0.6rem;
}
.volet-taches-pastille {
  list-style: none;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin-left: auto;
  padding: 0.6rem 0.95rem;
  border-radius: 999px;
  background: var(--bleu);
  color: #fff;
  font-size: 0.85rem;
  font-weight: 500;
  box-shadow: 0 6px 20px rgba(16, 34, 61, 0.28);
  border: 1px solid rgba(211, 180, 92, 0.45);
  min-height: 44px;
  transition: background 0.15s ease, box-shadow 0.15s ease;
}
.volet-taches-pastille::-webkit-details-marker {
  display: none;
}
.volet-taches-pastille:hover {
  background: var(--bleu-nuit);
}
.volet-taches-pastille:focus-visible {
  outline: 2px solid var(--or);
  outline-offset: 2px;
}
.volet-taches-nombre {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.5rem;
  height: 1.5rem;
  padding: 0 0.35rem;
  border-radius: 999px;
  background: var(--or);
  color: var(--bleu-nuit);
  font-weight: 700;
  font-size: 0.8rem;
}
.volet-taches-corps {
  width: min(26rem, calc(100vw - 2.5rem));
  max-height: min(60vh, 32rem);
  overflow-y: auto;
  border-radius: var(--rayon);
  box-shadow: 0 10px 34px rgba(16, 34, 61, 0.22);
}
.volet-taches-corps .carte-taches {
  margin: 0;
  box-shadow: none;
}
@media (max-width: 40rem) {
  :root {
    --flottant-bas: 0.75rem;
  }
  .volet-taches {
    left: 0.75rem;
    max-width: none;
  }
  .volet-taches-corps {
    width: 100%;
  }
}
.contenu {
  padding-bottom: calc(6.5rem + var(--flottant-pile));
}
.niveaux {
  border: none;
  padding: 0;
  margin: 1.1rem 0 0;
}
.niveaux > legend {
  padding: 0;
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--encre);
}
.niveaux .niveau {
  display: flex;
  align-items: flex-start;
  gap: 0.6rem;
  margin: 0.5rem 0 0;
  padding: 0.7rem 0.85rem;
  border: 1px solid var(--bord);
  border-radius: var(--rayon, 8px);
  background: var(--surface);
  cursor: pointer;
  font-weight: 400;
}
.niveaux .niveau:hover {
  border-color: var(--bleu);
  background: var(--bleu-doux);
}
.niveaux .niveau input {
  width: auto;
  margin-top: 0.2rem;
  accent-color: var(--bleu);
  flex: none;
}
.niveaux .niveau span {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}
.niveaux .niveau strong {
  font-size: 0.9375rem;
}
.niveaux .niveau small {
  color: var(--muet);
  font-size: 0.84rem;
}
.niveaux .niveau:has(input:checked) {
  border-color: var(--bleu);
  background: var(--bleu-doux);
}
.niveaux .niveau:has(input:focus-visible) {
  outline: 2px solid var(--anneau);
  outline-offset: 2px;
}
.legende-jauge .lien-jauge {
  margin-left: auto;
  font-size: 0.86rem;
  font-weight: 600;
  color: var(--bleu);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.legende-jauge .lien-jauge:hover {
  color: var(--bleu-nuit);
}
.liste .ligne .actions-ligne {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex: none;
}
.paire-personnes {
  margin-bottom: 1rem;
}
.raison-paire {
  margin: 0 0 0.7rem;
  color: var(--muet);
  font-size: 0.9rem;
}
.deux-fiches {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}
@media (max-width: 40rem) {
  .deux-fiches {
    grid-template-columns: 1fr;
  }
}
.fiche-personne {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  padding: 0.7rem 0.8rem;
  background: var(--fond);
  border: 1px solid var(--bord);
  border-radius: var(--rayon);
}
.fiche-personne small {
  font-size: 0.84rem;
  line-height: 1.35;
}
.avis-desinscription {
  margin: 0.8rem 0 0;
  padding: 0.55rem 0.7rem;
  background: var(--or-doux);
  color: var(--or-encre);
  border-radius: var(--rayon);
  font-size: 0.9rem;
}
.paire-personnes .rangee-actions {
  margin-top: 0.9rem;
}
.bouton.danger {
  background: var(--rouge-doux);
  color: var(--rouge-encre);
  border: 1px solid var(--rouge);
}
.bouton.danger:hover {
  background: var(--rouge);
  color: var(--surface);
}
.allergies-tablee {
  margin: 0.7rem 0;
  padding: 0.55rem 0.7rem;
  background: var(--or-doux);
  color: var(--or-encre);
  border-radius: var(--rayon);
  font-size: 0.92rem;
}
.avertissement-geste {
  margin: 0.5rem 0 0;
  color: var(--muet);
  font-size: 0.86rem;
  line-height: 1.5;
  max-width: 46rem;
}
.jour-et-heure {
  display: flex;
  gap: 0.75rem;
  align-items: flex-end;
  flex-wrap: wrap;
}
.jour-et-heure > span:first-child {
  flex: 1 1 12rem;
}
.jour-et-heure > span:last-child {
  flex: 0 0 8rem;
}
.jour-et-heure label {
  margin-top: 0.95rem;
}
.membre-allergies {
  grid-column: 1 / -1;
}
.membre-cases {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem 1.2rem;
  margin-top: 0.5rem;
  padding-top: 0.5rem;
  border-top: 1px dashed var(--bord);
}
.membre-cases .case-a-cocher {
  margin: 0;
  font-size: 0.88rem;
}
.forme-mot-de-passe-compte {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  min-width: 15rem;
}
.forme-mot-de-passe-compte label {
  margin-top: 0.3rem;
}
.forme-mot-de-passe-compte .rangee-actions {
  margin: 0.5rem 0 0;
}
.pile-serree {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  align-items: flex-start;
}
.aide-mot-de-passe {
  font-size: 0.84rem;
  margin: 0.3rem 0 0;
  max-width: 22rem;
}
.liste-xxl .ligne-xxl {
  padding: 0.75rem 1rem;
  border-bottom: 1px solid var(--bord);
}
.liste-xxl .ligne-xxl:last-child {
  border-bottom: none;
}
.entete-xxl {
  display: flex;
  flex-wrap: wrap;
  gap: 0.9rem 1.4rem;
  align-items: flex-start;
}
.entete-xxl .princ {
  display: flex;
  flex-direction: column;
  min-width: 11rem;
  flex: 1 1 11rem;
}
.entete-xxl .princ small {
  color: var(--muet);
  margin-top: 0.15rem;
}
.reponse-xxl {
  display: flex;
  gap: 0.35rem;
  flex-wrap: wrap;
}
.reponse-xxl form {
  margin: 0;
  max-width: none;
}
.bouton-reponse-xxl {
  min-height: 44px;
  padding: 0 0.75rem;
  border: 1px solid var(--bord-fort);
  border-radius: 8px;
  background: var(--surface);
  color: var(--muet);
  font: inherit;
  font-size: 0.82rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.12s ease, border-color 0.12s ease, color 0.12s ease;
}
.bouton-reponse-xxl:hover {
  border-color: var(--bleu);
  color: var(--bleu);
}
.bouton-reponse-xxl:focus-visible {
  outline: 2px solid var(--anneau);
  outline-offset: 2px;
}
.bouton-reponse-xxl.vient.choisi {
  background: var(--vert);
  border-color: var(--vert);
  color: #fff;
}
.bouton-reponse-xxl.sans_reponse.choisi {
  background: var(--attente);
  border-color: var(--attente);
  color: #fff;
}
.bouton-reponse-xxl.absent.choisi {
  background: var(--rouge);
  border-color: var(--rouge);
  color: #fff;
}
.repartition-xxl {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 0.5rem;
  margin: 0;
  max-width: none;
  flex: 1 1 20rem;
}
.repartition-xxl label {
  margin: 0 0 0.3rem;
  font-size: 0.82rem;
}
.repartition-xxl select {
  min-width: 9rem;
  min-height: 44px;
}
.repartition-xxl input {
  min-width: 9rem;
  min-height: 44px;
}
.repartition-xxl > span,
.repartition-xxl label {
  flex: 1 1 9rem;
}
.derogation-xxl {
  margin-top: 0.6rem;
  border-top: 1px dashed var(--bord);
  padding-top: 0.5rem;
}
.derogation-xxl > summary {
  cursor: pointer;
  min-height: 44px;
  display: flex;
  align-items: center;
  font-size: 0.85rem;
  color: var(--bleu);
  font-weight: 600;
}
.derogation-corps {
  padding: 0.3rem 0 0;
}
.derogation-corps > p {
  margin: 0 0 0.6rem;
  font-size: 0.86rem;
}
.ligne-personne-xxl {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  padding: 0.4rem 0;
  border-top: 1px solid var(--bord);
}
.ligne-personne-xxl:first-of-type {
  border-top: none;
}
.ligne-personne-xxl .nom-personne-xxl {
  flex: 1 1 10rem;
  font-weight: 600;
  font-size: 0.9rem;
}
.ligne-personne-xxl select,
.ligne-personne-xxl input {
  flex: 1 1 9rem;
  min-height: 44px;
  margin: 0;
}
.derogation-formulaire {
  margin: 0;
  max-width: none;
}
@media (hover: none) {
  .tag.signe .mot {
    position: static;
    width: auto;
    height: auto;
    margin: 0;
    overflow: visible;
    clip-path: none;
    white-space: normal;
  }
  .tag.signe {
    padding: 0.24rem 0.6rem;
  }
}
@media (max-width: 34rem) {
  .tag.signe .mot {
    position: static;
    width: auto;
    height: auto;
    margin: 0;
    overflow: visible;
    clip-path: none;
    white-space: normal;
  }
  .tag.signe {
    padding: 0.24rem 0.6rem;
  }
  .pointage {
    display: flex;
    width: 100%;
  }
  .pointage .pointe {
    flex: 1;
    padding: 0 0.4rem;
  }
}
.rangee-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin: 0.2rem 0 1rem;
}
.liste-reconduction {
  list-style: none;
  margin: 1.1rem 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
}
.ligne-reconduction {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem 0.6rem;
  padding: 0.6rem 0.2rem;
}
.ligne-reconduction + .ligne-reconduction {
  border-top: 1px dashed var(--bord);
}
.ligne-reconduction .nom-equipe {
  font-weight: 600;
  flex: 1;
  min-width: 8rem;
}
.ligne-reconduction .motif {
  color: var(--muet);
  font-size: 0.84rem;
  font-style: italic;
}
.ligne-reconduction .petit {
  font-size: 0.8rem;
}
.ligne-reconduction .pointe {
  min-height: 36px;
  font-size: 0.78rem;
  padding: 0 0.6rem;
}
.depliant {
  margin-top: 1.3rem;
}
.depliant > summary {
  cursor: pointer;
  color: var(--bleu);
  font-weight: 600;
  font-size: 0.92rem;
  padding: 0.35rem 0;
}
.depliant > summary:focus-visible {
  outline: 2px solid var(--anneau);
  outline-offset: 2px;
  border-radius: 4px;
}
.liste-dates {
  list-style: none;
  margin: 0.6rem 0 1rem;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  text-align: left;
}
.liste-dates li {
  font-size: 0.92rem;
  padding-left: 0.95rem;
  position: relative;
}
.liste-dates li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.62em;
  width: 0.34rem;
  height: 0.34rem;
  border-radius: 50%;
  background: var(--or);
}
.bulle-radix {
  z-index: 60;
  max-width: 14rem;
  width: max-content;
  padding: 0.42rem 0.65rem;
  border-radius: 7px;
  background: var(--bulle-fond);
  color: var(--surface);
  backdrop-filter: blur(2px);
  font-family: var(--fonte-texte);
  font-size: 0.79rem;
  font-weight: 500;
  line-height: 1.35;
  letter-spacing: 0;
  text-transform: none;
  text-align: center;
  text-wrap: balance;
  box-shadow: 0 4px 14px rgba(35, 42, 53, 0.22);
  pointer-events: none;
}
.bulle-radix-pointe {
  fill: var(--bulle-fond);
}
@keyframes bulle-radix-entree {
  from {
    opacity: 0;
    transform: translateY(2px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
.bulle-radix[data-state="delayed-open"],
.bulle-radix[data-state="instant-open"] {
  animation: bulle-radix-entree 120ms ease-out;
}
@media (prefers-reduced-motion: reduce) {
  .bulle-radix[data-state="delayed-open"],
  .bulle-radix[data-state="instant-open"] {
    animation: none;
  }
}
.entete-avec-aide {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
}
.point-aide {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  padding: 4px;
  box-sizing: content-box;
  margin: -4px;
  border: none;
  background: none;
  border-radius: 999px;
  color: var(--muet);
  cursor: help;
  transition: color 120ms ease, background-color 120ms ease;
}
.point-aide svg {
  width: 15px;
  height: 15px;
  display: block;
}
.point-aide:hover {
  color: var(--bleu);
  background: var(--bleu-doux);
}
.point-aide:focus-visible {
  outline: 2px solid var(--anneau);
  outline-offset: 1px;
  color: var(--bleu);
}
.tag.tag-nombre {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.2rem 0.5rem;
  font-variant-numeric: tabular-nums;
}
.tag.tag-nombre svg {
  flex: none;
  display: block;
}
.tag.tag-nombre:focus-visible {
  outline: 2px solid var(--anneau);
  outline-offset: 2px;
}
@media (max-width: 52rem) {
  .tag.tag-nombre {
    justify-self: start;
  }
}
[data-bulle] {
  position: relative;
}
[data-bulle]::after,
[data-bulle]::before {
  display: none;
  opacity: 0;
  transition: opacity 120ms ease, display 120ms allow-discrete;
  pointer-events: none;
  position: absolute;
  z-index: 40;
}
[data-bulle]::after {
  content: attr(data-bulle);
  bottom: calc(100% + 0.5rem);
  left: 50%;
  transform: translateX(-50%);
  background: var(--bulle-fond);
  backdrop-filter: blur(2px);
  color: #fff;
  font-family: var(--fonte-texte);
  font-size: 0.79rem;
  font-weight: 500;
  line-height: 1.35;
  letter-spacing: 0;
  text-transform: none;
  padding: 0.42rem 0.65rem;
  border-radius: 7px;
  box-shadow: 0 4px 14px rgba(35, 42, 53, 0.22);
  width: max-content;
  max-width: 17rem;
  white-space: normal;
  text-align: center;
}
[data-bulle]::before {
  content: "";
  bottom: calc(100% + 0.15rem);
  left: 50%;
  transform: translateX(-50%);
  border: 5px solid transparent;
  border-top-color: var(--bulle-fond);
}
[data-bulle]:hover::after,
[data-bulle]:hover::before,
[data-bulle]:focus-visible::after,
[data-bulle]:focus-visible::before,

[data-bulle].bulle-tenue::after,
[data-bulle].bulle-tenue::before {
  display: block;
  opacity: 1;
}
@starting-style {
  [data-bulle]:hover::after,
  [data-bulle]:hover::before,
  [data-bulle]:focus-visible::after,
  [data-bulle]:focus-visible::before {
    opacity: 0;
  }
}
@media (hover: none) {
  [data-bulle]::after,
  [data-bulle]::before {
    content: none;
  }
}
.mot-tactile {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}
@media (hover: none) {
  .bouton.icone-seule:has(.mot-tactile),
  .cellule-actions .bouton.icone-seule:has(.mot-tactile) {
    width: auto;
    min-width: 44px;
    gap: 0.42rem;
    padding: 0 0.85rem;
  }
  .mot-tactile {
    position: static;
    width: auto;
    height: auto;
    overflow: visible;
    clip-path: none;
    font-size: 0.88rem;
  }
}
@media (prefers-reduced-motion: reduce) {
  [data-bulle]::after,
  [data-bulle]::before {
    transition: none;
  }
}
.choix-recherche {
  position: relative;
  margin: 0.2rem 0 0.9rem;
}
.choix-retenu {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  min-height: 44px;
  padding: 0.35rem 0.4rem 0.35rem 0.75rem;
  border: 1px solid var(--bord-champ);
  border-radius: var(--rayon);
  background: var(--surface);
}
.choix-retenu-nom {
  flex: 1;
  min-width: 0;
  font-weight: 600;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.choix-effacer {
  flex: none;
  width: 34px;
  height: 34px;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: var(--muet);
  font-size: 1.15rem;
  line-height: 1;
  cursor: pointer;
}
.choix-effacer:hover {
  background: var(--bleu-doux);
  color: var(--bleu);
}
.choix-effacer:focus-visible {
  outline: 2px solid var(--anneau);
  outline-offset: 2px;
}
.choix-liste {
  position: fixed;
  z-index: 30;
  margin: 0.25rem 0 0;
  padding: 0.25rem;
  list-style: none;
  background: var(--surface);
  border: 1px solid var(--bord-fort);
  border-radius: var(--rayon);
  box-shadow: 0 10px 28px rgba(35, 42, 53, 0.16);
  max-height: 17rem;
  overflow-y: auto;
}
.choix-ligne {
  display: block;
  width: 100%;
  text-align: left;
  border: 0;
  background: transparent;
  padding: 0.55rem 0.65rem;
  border-radius: 6px;
  font-family: var(--fonte-texte);
  font-size: 0.92rem;
  color: var(--encre);
  cursor: pointer;
}
.choix-ligne.survolee {
  background: var(--bleu-doux);
  color: var(--bleu);
}
.choix-ligne mark {
  background: var(--or-doux);
  color: var(--or-encre);
  font-weight: 700;
  border-radius: 3px;
  padding: 0 1px;
}
.choix-vide {
  padding: 0.7rem 0.65rem;
  font-size: 0.9rem;
  color: var(--muet);
  font-style: italic;
}
.rattachement {
  margin: 0;
  max-width: 16rem;
  display: flex;
  align-items: center;
  gap: 0.4rem;
}
.rattachement .choix-recherche {
  margin: 0;
  flex: 1;
  min-width: 0;
}
.rattachement .choix-recherche > label {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}
.rattachement-actions {
  display: flex;
  align-items: center;
  gap: 0.6rem;
}
.rattachement-fait {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.2rem;
  color: var(--vert);
  animation: coche-fugace 2.5s ease-out forwards;
}
.rattachement-fait svg {
  width: 16px;
  height: 16px;
}
.rattachement-fait.en-cours {
  animation: none;
}
@keyframes coche-fugace {
  0% {
    opacity: 0;
    transform: scale(0.8);
  }
  12% {
    opacity: 1;
    transform: scale(1);
  }
  75% {
    opacity: 1;
    transform: scale(1);
  }
  100% {
    opacity: 0;
    transform: scale(1);
  }
}
@media (prefers-reduced-motion: reduce) {
  .rattachement-fait {
    animation: none;
  }
}
.stats-journal {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
  gap: 0.9rem;
  margin: 1.2rem 0;
}
.stat-journal {
  background: var(--surface);
  border: 1px solid var(--bord);
  border-left: 3px solid var(--bleu);
  border-radius: var(--rayon);
  box-shadow: var(--ombre-carte);
  padding: 0.9rem 1.1rem;
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}
.stat-journal.alerte {
  border-left-color: var(--rouge);
}
.stat-journal.alerte .n {
  color: var(--rouge-encre);
}
.stat-journal .n {
  font-family: var(--fonte-texte);
  font-size: 1.8rem;
  font-weight: 600;
  line-height: 1;
  color: var(--bleu);
  font-variant-numeric: tabular-nums;
}
.stat-journal .l {
  font-size: 0.82rem;
  color: var(--muet);
}
.barres-journal {
  list-style: none;
  margin: 0.6rem 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}
.barres-journal li {
  display: grid;
  grid-template-columns: minmax(9rem, 14rem) 1fr 3rem;
  gap: 0.7rem;
  align-items: center;
}
.barre-libelle {
  font-size: 0.88rem;
}
.barre-piste {
  background: var(--fond);
  border-radius: 999px;
  height: 0.6rem;
  overflow: hidden;
}
.barre-part {
  display: block;
  height: 100%;
  background: var(--or);
  border-radius: 999px;
}
.barre-nombre {
  font-size: 0.85rem;
  color: var(--muet);
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.liste-journal {
  list-style: none;
  margin: 0.6rem 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
}
.ligne-journal {
  display: grid;
  grid-template-columns: 1.2rem 6.5rem minmax(9rem, 14rem) 1fr auto;
  gap: 0.7rem;
  align-items: baseline;
  padding: 0.5rem 0.2rem;
  font-size: 0.88rem;
}
.ligne-journal + .ligne-journal {
  border-top: 1px dashed var(--bord);
}
.ligne-journal .journal-signe {
  color: var(--vert);
  align-self: center;
}
.ligne-journal.echouee {
  background: var(--rouge-doux);
  border-radius: 6px;
}
.ligne-journal.echouee .journal-signe {
  color: var(--rouge-encre);
}
.journal-quand {
  color: var(--muet);
  font-size: 0.82rem;
  white-space: nowrap;
}
.journal-qui {
  color: var(--encre);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.journal-quoi {
  color: var(--muet);
}
.journal-sujet {
  color: var(--encre);
  font-style: italic;
}
@media (max-width: 46rem) {
  .ligne-journal {
    grid-template-columns: 1.2rem 1fr;
  }
  .ligne-journal .journal-quand {
    grid-column: 2;
  }
}
@keyframes voile-paraitre {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes boite-paraitre {
  from {
    opacity: 0;
    transform: scale(0.97);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}
.voile-dialogue[data-state='open'] {
  animation: voile-paraitre 140ms ease-out;
}
.boite-dialogue {
  max-height: calc(100vh - 2rem);
  overflow-y: auto;
}
.boite-dialogue[data-state='open'] {
  animation: boite-paraitre 140ms cubic-bezier(0.22, 0.61, 0.36, 1);
}
@media (prefers-reduced-motion: reduce) {
  .voile-dialogue[data-state='open'],
  .boite-dialogue[data-state='open'] {
    animation: none;
  }
}
@keyframes menu-paraitre {
  from {
    opacity: 0;
    transform: scale(0.96) translateY(-3px);
  }
  to {
    opacity: 1;
    transform: scale(1) translateY(0);
  }
}
.boite-menu {
  transform-origin: var(--radix-dropdown-menu-content-transform-origin);
  font-size: 0.92rem;
  color: var(--encre);
}
.boite-menu[data-state='open'] {
  animation: menu-paraitre 130ms cubic-bezier(0.22, 0.61, 0.36, 1);
}
@media (prefers-reduced-motion: reduce) {
  .boite-menu[data-state='open'] {
    animation: none;
  }
}
.menu-entete {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  padding: 0.6rem 0.75rem 0.55rem;
}
.menu-courriel {
  font-weight: 600;
  color: var(--bleu);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 17rem;
}
.menu-casquette {
  font-size: 0.82rem;
  color: var(--muet);
}
.menu-separateur {
  height: 1px;
  background: var(--bord);
  margin: 0.3rem 0.25rem;
}
.menu-entree {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  min-height: 44px;
  padding: 0 0.75rem;
  border-radius: calc(var(--rayon) - 2px);
  color: inherit;
  text-decoration: none;
  cursor: pointer;
  outline: none;
  user-select: none;
}
.menu-entree[data-highlighted] {
  background: var(--bleu-doux);
  color: var(--bleu);
}
.menu-signe {
  flex: none;
  color: var(--muet);
}
.menu-entree[data-highlighted] .menu-signe {
  color: var(--bleu);
}
.menu-entree-sortie[data-highlighted] {
  background: var(--rouge-doux);
  color: var(--rouge-encre);
}
.menu-entree-sortie[data-highlighted] .menu-signe {
  color: var(--rouge-encre);
}
.bouton-visite {
  gap: 0.5rem;
}
.bouton-visite svg {
  flex: none;
  color: var(--or-encre);
}
.menu-intertitre {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.45rem 0.75rem 0.3rem;
  font-size: 0.76rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--muet);
  font-weight: 600;
}
.menu-casquette-entree {
  justify-content: space-between;
}
.menu-casquette-nom {
  display: flex;
  flex-direction: column;
  line-height: 1.25;
  min-width: 0;
}
.menu-casquette-lieu {
  font-size: 0.8rem;
  color: var(--muet);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.menu-casquette-entree[data-highlighted] .menu-casquette-lieu {
  color: var(--bleu);
}
.menu-casquette-entree[data-disabled] {
  cursor: default;
}
.menu-casquette-coche {
  flex: none;
  color: var(--vert);
}
@media (max-width: 52rem) {
  .table-repliable,
  .table-repliable tbody,
  .table-repliable tr,
  .table-repliable td {
    display: block;
    width: auto;
  }
  .table-repliable thead {
    display: none;
  }
  .table-repliable tr {
    border: 1px solid var(--bord);
    border-radius: var(--rayon);
    padding: 0.75rem 0.9rem;
    margin-bottom: 0.7rem;
    background: var(--surface);
  }
  .table-repliable td {
    border: 0;
    padding: 0.22rem 0;
    display: grid;
    grid-template-columns: 8rem 1fr;
    gap: 0.6rem;
    align-items: baseline;
  }
  .table-repliable td::before {
    content: attr(data-libelle);
    color: var(--muet);
    font-size: 0.82rem;
    line-height: 1.35;
  }
  .table-repliable td:first-child {
    display: block;
    font-family: var(--fonte-titre);
    font-size: 1.15rem;
    font-weight: 600;
    color: var(--bleu);
    margin-bottom: 0.35rem;
  }
  .table-repliable td:first-child::before {
    content: none;
  }
  .table-repliable td:first-child {
    white-space: normal;
  }
}
@media (max-width: 26rem) {
  .table-repliable td {
    grid-template-columns: 1fr;
    gap: 0.1rem;
  }
  .table-repliable td::before {
    font-size: 0.78rem;
  }
  .table-repliable td.cellule-actions {
    display: flex;
    justify-content: flex-end;
    gap: 0.4rem;
    margin-top: 0.5rem;
    padding-top: 0.55rem;
    border-top: 1px dashed var(--bord);
  }
  .table-repliable td.cellule-actions::before {
    content: none;
  }
  .carte:has(> .table-repliable) {
    padding: 0.9rem 0.9rem 0.3rem;
  }
  .table-repliable .cellule-adresse {
    display: block;
    -webkit-line-clamp: none;
    overflow: visible;
    max-width: none;
  }
}
.nav-tiroir-bouton.entete-tiroir {
  display: none;
}
@media (max-width: 52rem) {
  .nav-admin {
    display: none;
  }
  .nav-tiroir-bouton.entete-tiroir {
    display: flex;
    color: #fff;
    width: auto;
    min-height: 44px;
    min-width: 44px;
    padding: 0;
    margin-left: -0.35rem;
    justify-content: center;
  }
  .nav-tiroir-bouton.entete-tiroir[data-state="open"] {
    background: none;
    opacity: 0.75;
  }
}
.nav-tiroir-bouton {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  width: 100%;
  min-height: 52px;
  padding: 0 1.1rem;
  border: 0;
  background: none;
  font-family: var(--fonte-texte);
  font-size: 0.98rem;
  font-weight: 600;
  color: var(--bleu);
  cursor: pointer;
  text-align: left;
}
.nav-tiroir-signe {
  display: grid;
  gap: 3px;
  flex: none;
}
.nav-tiroir-signe span {
  display: block;
  width: 17px;
  height: 2px;
  border-radius: 1px;
  background: currentColor;
}
.nav-tiroir-bouton[data-state="open"] {
  background: var(--bleu-doux);
}
@keyframes tiroir-entrer {
  from {
    transform: translateX(-100%);
  }
  to {
    transform: translateX(0);
  }
}
.boite-tiroir[data-state='open'] {
  animation: tiroir-entrer 180ms cubic-bezier(0.22, 0.61, 0.36, 1);
}
@media (prefers-reduced-motion: reduce) {
  .boite-tiroir[data-state='open'] {
    animation: none;
  }
}
.tiroir-entete {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  padding: 1.2rem 1.25rem 1rem;
  background: linear-gradient(180deg, var(--bleu-nuit) 0%, var(--bleu) 100%);
  color: #fff;
}
.tiroir-marque {
  font-family: var(--fonte-titre);
  font-size: 1.25rem;
  font-weight: 600;
}
.tiroir-lieu {
  font-size: 0.7rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #c8d4ea;
}
.tiroir-liens {
  display: flex;
  flex-direction: column;
  padding: 0.5rem 0.6rem;
  overflow-y: auto;
}
.tiroir-liens a {
  display: flex;
  align-items: center;
  min-height: 48px;
  padding: 0 0.8rem;
  border-radius: var(--rayon);
  color: var(--encre);
  text-decoration: none;
  font-size: 1rem;
}
.tiroir-liens a:hover {
  background: var(--bleu-doux);
  color: var(--bleu);
}
.tiroir-liens a.actif {
  color: var(--bleu);
  font-weight: 600;
  background: var(--bleu-doux);
  box-shadow: inset 3px 0 0 var(--or);
}
.annonce {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  width: max-content;
  max-width: min(30rem, calc(100vw - 2rem));
  padding: 0.7rem 1.05rem;
  border-radius: 999px;
  background: var(--vert);
  color: #fff;
  box-shadow: 0 6px 22px rgba(35, 42, 53, 0.18);
  font-family: var(--fonte-texte);
  font-size: 0.92rem;
  font-weight: 500;
}
.annonce [data-icon] {
  display: flex;
  flex: none;
}
.annonce [data-icon] svg {
  width: 17px;
  height: 17px;
}
.annonce-titre {
  line-height: 1.3;
}
.bulle-visite {
  background: var(--surface);
  color: var(--encre);
  border: 1px solid var(--bord-fort);
  border-radius: var(--rayon);
  box-shadow: 0 10px 34px rgba(22, 41, 79, 0.28);
  max-width: 22rem;
  padding: 1.05rem 1.15rem 0.9rem;
  font-family: var(--fonte-texte);
  display: block !important;
}
.bulle-visite .driver-popover-title {
  font-family: var(--fonte-titre);
  font-size: 1.32rem;
  font-weight: 600;
  color: var(--bleu);
  line-height: 1.2;
  margin-bottom: 0.35rem;
}
.bulle-visite .driver-popover-description {
  font-size: 0.93rem;
  line-height: 1.5;
  color: var(--encre);
  margin-bottom: 0.9rem;
}
.bulle-visite .driver-popover-description p {
  margin: 0 0 0.6rem;
}
.bulle-visite .driver-popover-description p:last-child {
  margin-bottom: 0;
}
.bulle-visite .driver-popover-arrow-side-top {
  border-top-color: var(--surface);
}
.bulle-visite .driver-popover-arrow-side-bottom {
  border-bottom-color: var(--surface);
}
.bulle-visite .driver-popover-arrow-side-left {
  border-left-color: var(--surface);
}
.bulle-visite .driver-popover-arrow-side-right {
  border-right-color: var(--surface);
}
.bulle-visite .driver-popover-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.6rem;
}
.bulle-visite .driver-popover-progress-text {
  font-size: 0.78rem;
  color: var(--muet);
  font-variant-numeric: tabular-nums;
}
.bulle-visite .driver-popover-navigation-btns {
  display: flex;
  gap: 0.45rem;
}
.bulle-visite .driver-popover-navigation-btns button {
  font-family: var(--fonte-texte);
  font-size: 0.9rem;
  font-weight: 600;
  min-height: 40px;
  padding: 0 0.95rem;
  border-radius: 999px;
  border: 1px solid var(--bleu);
  background: var(--bleu);
  color: #fff;
  text-shadow: none;
  cursor: pointer;
}
.bulle-visite .driver-popover-navigation-btns button:hover {
  background: var(--bleu-nuit);
}
.bulle-visite .driver-popover-navigation-btns button:focus-visible {
  outline: 2px solid var(--anneau);
  outline-offset: 2px;
}
.bulle-visite .driver-popover-prev-btn {
  background: var(--surface);
  color: var(--bleu);
  border-color: var(--bord-fort);
}
.bulle-visite .driver-popover-prev-btn:hover {
  background: var(--bleu-doux);
}
.bulle-visite .driver-popover-close-btn {
  color: var(--muet);
  font-size: 1.5rem;
  line-height: 1;
  width: 34px;
  height: 34px;
  top: 4px;
  right: 4px;
}
.bulle-visite .driver-popover-close-btn:hover {
  color: var(--rouge-encre);
  background: var(--rouge-doux);
}
.driver-active-element {
  outline: 2px solid var(--or-clair) !important;
  outline-offset: 3px;
}
@media (prefers-reduced-motion: reduce) {
  .driver-popover, .driver-overlay {
    transition: none !important;
    animation: none !important;
  }
}
.bouton-signalement {
  position: fixed;
  right: var(--flottant-bas);
  bottom: var(--flottant-bas);
  z-index: 40;
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  min-height: 44px;
  padding: 0 0.9rem;
  border: 1px solid var(--bord-fort);
  border-radius: 999px;
  background: var(--surface);
  color: var(--muet);
  font-family: var(--fonte-texte);
  font-size: 0.86rem;
  font-weight: 600;
  cursor: pointer;
  box-shadow: 0 4px 14px rgba(22, 41, 79, 0.14);
}
.bouton-signalement:hover {
  color: var(--rouge-encre);
  border-color: var(--rouge-encre);
  background: var(--rouge-doux);
}
.bouton-signalement:focus-visible {
  outline: 2px solid var(--anneau);
  outline-offset: 2px;
}
.bouton-signalement svg {
  width: 16px;
  height: 16px;
  flex: none;
}
@media (max-width: 30rem) {
  .bouton-signalement span {
    display: none;
  }
  .bouton-signalement {
    padding: 0;
    width: 44px;
    justify-content: center;
  }
}
.panneau-signalement {
  max-width: 34rem;
}
.champ-signalement {
  margin: 1rem 0 0.6rem;
}
.champ-signalement label {
  display: block;
  font-weight: 600;
  font-size: 0.92rem;
  margin-bottom: 0.3rem;
}
.champ-signalement textarea {
  width: 100%;
  font-family: var(--fonte-texte);
  font-size: 0.95rem;
  padding: 0.55rem 0.65rem;
  border: 1px solid var(--bord-champ);
  border-radius: var(--rayon);
  background: var(--surface);
  color: var(--encre);
  resize: vertical;
}
.capture-signalement {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  padding: 0.7rem;
  border: 1px dashed var(--bord-fort);
  border-radius: var(--rayon);
  background: var(--fond);
}
.capture-signalement small {
  color: var(--muet);
  font-size: 0.8rem;
  line-height: 1.45;
}
.capture-signalement .bouton {
  align-self: flex-start;
}
.apercu-capture {
  margin: 0;
}
.apercu-capture img {
  display: block;
  width: 100%;
  max-height: 12rem;
  object-fit: contain;
  object-position: top left;
  border: 1px solid var(--bord);
  border-radius: var(--rayon);
  background: var(--surface);
}
.apercu-capture figcaption {
  font-size: 0.78rem;
  color: var(--muet);
  margin-top: 0.3rem;
}
.signalement {
  border-left: 4px solid var(--bord-fort);
}
.signalement.statut-nouveau {
  border-left-color: var(--rouge);
}
.signalement.statut-vu {
  border-left-color: var(--or);
}
.signalement.statut-traite {
  border-left-color: var(--vert);
}
.signalement-entete {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.5rem;
  margin-bottom: 0.7rem;
}
.signalement-quand {
  font-size: 0.85rem;
  color: var(--muet);
}
.signalement-qui {
  font-size: 0.85rem;
  color: var(--encre);
}
.signalement-qui em {
  color: var(--muet);
  font-style: normal;
}
.signalement-mot {
  margin: 0 0 0.8rem;
  padding: 0.6rem 0.9rem;
  border-left: 3px solid var(--or-clair);
  background: var(--or-doux);
  border-radius: 0 var(--rayon) var(--rayon) 0;
  font-family: var(--fonte-titre);
  font-size: 1.05rem;
  line-height: 1.45;
  white-space: pre-wrap;
}
.signalement-page {
  font-size: 0.88rem;
  margin: 0 0 0.6rem;
}
.signalement-page code, .signalement-contexte code {
  font-size: 0.82rem;
  background: var(--fond);
  padding: 0.1rem 0.3rem;
  border-radius: 4px;
  word-break: break-all;
}
.signalement-capture {
  margin: 0 0 0.8rem;
}
.signalement-capture img {
  display: block;
  width: 100%;
  max-height: 22rem;
  object-fit: contain;
  object-position: top left;
  border: 1px solid var(--bord);
  border-radius: var(--rayon);
  background: var(--surface);
}
.signalement-contexte {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.2rem 0.8rem;
  margin: 0 0 0.8rem;
  font-size: 0.85rem;
}
.signalement-contexte dt {
  color: var(--muet);
  font-weight: 600;
}
.signalement-contexte dd {
  margin: 0;
}
.signalement-trace {
  margin-bottom: 0.8rem;
}
.signalement-trace h3 {
  font-family: var(--fonte-texte);
  font-size: 0.82rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--muet);
  margin: 0 0 0.3rem;
}
.signalement-trace pre {
  margin: 0;
  max-height: 14rem;
  overflow: auto;
  padding: 0.55rem 0.7rem;
  background: var(--fond);
  border: 1px solid var(--bord);
  border-radius: var(--rayon);
  font-size: 0.78rem;
  line-height: 1.5;
  white-space: pre-wrap;
  word-break: break-word;
}
.signalement-reponse {
  margin-bottom: 0.8rem;
  padding: 0.6rem 0.8rem;
  background: var(--vert-doux);
  border-radius: var(--rayon);
}
.signalement-reponse h3 {
  font-family: var(--fonte-texte);
  font-size: 0.82rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--vert);
  margin: 0 0 0.3rem;
}
.signalement-reponse p {
  margin: 0 0 0.2rem;
  white-space: pre-wrap;
}
.signalement-gestes {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 0.7rem;
  padding-top: 0.7rem;
  border-top: 1px solid var(--bord);
}
.signalement-formulaire {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  flex: 1 1 20rem;
}
.signalement-formulaire label {
  font-size: 0.82rem;
  color: var(--muet);
  font-weight: 600;
}
.signalement-formulaire textarea {
  width: 100%;
  font-family: var(--fonte-texte);
  font-size: 0.9rem;
  padding: 0.45rem 0.6rem;
  border: 1px solid var(--bord-champ);
  border-radius: var(--rayon);
  background: var(--surface);
  color: var(--encre);
  resize: vertical;
}
.signalement-formulaire .bouton {
  align-self: flex-start;
}
.legende-courriels {
  list-style: none;
  margin: 1rem 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
  gap: 0.9rem 1.4rem;
}
.legende-courriels li {
  display: flex;
  align-items: center;
  gap: 0.7rem;
}
.legende-courriels strong {
  display: block;
  font-size: 0.92rem;
}
.legende-courriels small {
  display: block;
  color: var(--muet);
  font-size: 0.82rem;
}
.jeton-courriel {
  flex: none;
  width: 2.4rem;
  height: 2.4rem;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--or-doux);
  color: var(--or-encre);
  box-shadow: inset 0 0 0 1px var(--or-clair);
}
.jeton-courriel svg {
  width: 18px;
  height: 18px;
}
.fil-courriels {
  list-style: none;
  margin: 0;
  padding: 0;
}
.station {
  position: relative;
  display: flex;
  gap: 1rem;
  padding: 0 0 1.5rem;
}
.station:last-child {
  padding-bottom: 0;
}
.station:not(:last-child)::before {
  content: "";
  position: absolute;
  left: 1.2rem;
  top: 2.6rem;
  bottom: 0.2rem;
  width: 2px;
  margin-left: -1px;
  background: var(--bord-fort);
}
.station-envoye:not(:last-child)::before {
  background: var(--vert);
}
.station-annule:not(:last-child)::before {
  background: none;
  border-left: 2px dashed var(--bord-fort);
  width: 0;
}
.station-envoye > .jeton-courriel {
  background: var(--vert-doux);
  color: var(--vert);
  box-shadow: inset 0 0 0 1px var(--vert);
}
.station-annule > .jeton-courriel {
  background: var(--fond);
  color: var(--muet);
  box-shadow: inset 0 0 0 1px var(--bord-fort);
}
.station-annule .station-tete strong {
  text-decoration: line-through;
  color: var(--muet);
}
.station-corps {
  flex: 1 1 auto;
  min-width: 0;
  padding-top: 0.15rem;
}
.station-tete {
  margin: 0;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.station-tete strong {
  font-size: 1rem;
}
.station-quand {
  margin: 0.3rem 0 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.75rem;
  font-size: 0.9rem;
  color: var(--encre);
  font-variant-numeric: tabular-nums;
}
.station-quand > span + span {
  position: relative;
  padding-left: 0.85rem;
}
.station-quand > span + span::before {
  content: "·";
  position: absolute;
  left: 0.2rem;
  color: var(--bord-fort);
}
.station-quand .echeance {
  font-family: var(--fonte-texte);
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--or-encre);
  background: var(--or-doux);
  border-radius: 999px;
  padding: 0.15rem 0.55rem;
}
.station-quand .echeance + span {
  padding-left: 0;
}
.station-quand .echeance + span::before {
  content: none;
}
.station-quoi {
  margin: 0.35rem 0 0;
  font-size: 0.86rem;
  color: var(--muet);
}
.lien-apercu {
  white-space: nowrap;
  font-weight: 500;
}
.apercu-courriel {
  margin: 0.6rem 0 0;
  border: 1px solid var(--bord);
  border-left: 3px solid var(--or);
  border-radius: 6px;
  background: var(--fond);
  padding: 0.7rem 0.8rem;
}
.apercu-entete {
  margin: 0 0 0.5rem;
  font-size: 0.86rem;
  color: var(--muet);
}
.apercu-impossible p {
  margin: 0 0 0.3rem;
  display: flex;
  align-items: center;
  gap: 0.4rem;
}
.apercu-impossible p:last-child {
  margin: 0;
  display: block;
}
.apercu-un {
  border-top: 1px solid var(--bord);
  padding: 0.5rem 0 0;
}
.apercu-un:first-of-type {
  border-top: 0;
  padding-top: 0;
}
.apercu-un > summary {
  cursor: pointer;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.2rem 0.6rem;
  padding: 0.25rem 0;
}
.apercu-sujet {
  font-weight: 600;
  color: var(--encre);
}
.apercu-a {
  font-size: 0.82rem;
  color: var(--muet);
}
.apercu-cadre {
  width: 100%;
  height: 22rem;
  margin: 0.4rem 0 0;
  border: 1px solid var(--bord);
  border-radius: 4px;
  background: #ffffff;
}
.apercu-texte {
  margin: 0.4rem 0 0;
  padding: 0.6rem;
  border: 1px solid var(--bord);
  border-radius: 4px;
  background: var(--surface);
  font-size: 0.82rem;
  line-height: 1.5;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  max-height: 22rem;
  overflow-y: auto;
}
.apercu-brut > summary {
  cursor: pointer;
  font-size: 0.82rem;
  color: var(--muet);
  padding: 0.35rem 0 0;
}
@media (max-width: 52rem) {
  .sequence-courriels .section-modele {
    padding-inline: 0;
  }
  .variante-courriel {
    border: 0;
    border-left: 3px solid var(--or);
    border-radius: 0;
    background: transparent;
    padding: 0.85rem 0 0.85rem 0.7rem;
  }
  .variante-courriel .apercu-cadre,
  .variante-courriel .apercu-texte {
    margin-inline: calc(-0.7rem - 3px - var(--rentree-reelle)) calc(-1 * var(--rentree-reelle));
    width: calc(100% + 0.7rem + 3px + 2 * var(--rentree-reelle));
    border-inline: 0;
    border-radius: 0;
  }
  .apercu-cadre {
    height: min(30rem, 62vh);
  }
}
.station-echec {
  margin: 0.5rem 0 0;
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.86rem;
  color: var(--rouge-encre);
  background: var(--rouge-doux);
  border-radius: var(--rayon);
  padding: 0.45rem 0.65rem;
}
.station-echec svg {
  flex: none;
}
.station-note {
  margin: 0.5rem 0 0;
  font-size: 0.8rem;
  color: var(--muet);
}
.station-gestes {
  margin-top: 0.7rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem;
}
.report-courriel {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  flex-wrap: wrap;
}
.report-courriel input[type="date"],
.report-courriel input[type="time"] {
  min-height: 44px;
  height: 44px;
  margin: 0;
  padding: 0.5rem 0.7rem;
  border-radius: 8px;
  border: 1px solid var(--bord-champ);
  background: var(--surface);
  font: inherit;
  font-size: 0.9rem;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}
.report-courriel input[type="date"] {
  width: 9.5rem;
}
.report-courriel input[type="time"] {
  width: 7rem;
}
.carte-horizon {
  border-left: 3px solid var(--or-clair);
}
.carte-horizon p {
  margin: 0 0 0.5rem;
}
.carte-horizon p:last-child {
  margin-bottom: 0;
}
.carte-horizon svg {
  vertical-align: -2px;
  color: var(--or-encre);
}
@media (max-width: 40rem) {
  .station {
    gap: 0.7rem;
  }
  .jeton-courriel {
    width: 2rem;
    height: 2rem;
  }
  .jeton-courriel svg {
    width: 15px;
    height: 15px;
  }
  .station:not(:last-child)::before {
    left: 1rem;
    top: 2.2rem;
  }
  .report-courriel input[type="date"],
  .report-courriel input[type="time"] {
    flex: 1 1 8rem;
    width: auto;
  }
}
.fiche-personne {
  position: relative;
  transition: opacity 260ms cubic-bezier(0.4, 0, 0.6, 1),
    transform 260ms cubic-bezier(0.4, 0, 0.6, 1),
    border-color 220ms ease-out,
    background-color 220ms ease-out;
}
.fiche-personne[data-choix="gardee"] {
  border-color: var(--or-clair);
  background: var(--or-doux);
}
.fiche-personne[data-choix="absorbee"] {
  opacity: 0.12;
  transform: translateX(calc(var(--sens, 0) * 1.4rem)) scale(0.97);
}
.sceau-gardee {
  position: absolute;
  top: 0.55rem;
  right: 0.6rem;
  color: var(--or-encre);
  opacity: 0;
  transform: scale(0.7);
  transition: opacity 220ms ease-out, transform 220ms ease-out;
}
.fiche-personne[data-choix="gardee"] .sceau-gardee {
  opacity: 1;
  transform: scale(1);
}
.paire-personnes[data-choisi="true"] .rangee-actions {
  opacity: 0.25;
  transition: opacity 180ms ease-out;
}
.paire-personnes .bouton:disabled {
  cursor: default;
}
.annonce-choix {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}
@media (max-width: 40rem) {
  .fiche-personne[data-choix="absorbee"] {
    transform: translateY(calc(var(--sens, 0) * 0.9rem)) scale(0.97);
  }
}
@media (prefers-reduced-motion: reduce) {
  .fiche-personne,
  .sceau-gardee,
  .paire-personnes[data-choisi="true"] .rangee-actions {
    transition: none;
  }
  .fiche-personne[data-choix="absorbee"] {
    transform: none;
    opacity: 0.25;
  }
  .sceau-gardee {
    transform: none;
  }
}
.carte-accord {
  border-left: 3px solid var(--bleu);
  background: var(--bleu-doux);
}
.carte-accord p {
  margin: 0 0 0.5rem;
}
.carte-accord p:last-child {
  margin-bottom: 0;
}
.accord-titre {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  font-family: var(--fonte-titre);
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--bleu-nuit);
}
.accord-signe {
  width: 16px;
  height: 16px;
  flex: none;
}
.carte-accord em {
  font-style: italic;
  font-weight: 600;
}
.accord-compte {
  font-weight: 600;
  color: var(--encre);
}
.station-a-envoyer > .jeton-courriel {
  background: var(--rouge-doux);
  color: var(--rouge-encre);
  box-shadow: inset 0 0 0 1px var(--rouge-encre);
}
.oe-chapo {
  max-width: 42rem;
  margin-top: -0.2rem;
}
.oe-capital {
  border-left: 3px solid var(--or);
  background: linear-gradient(100deg, var(--or-doux) 0%, var(--surface) 55%);
}
.oe-capital h2 {
  display: flex;
  align-items: center;
  gap: 0.55rem;
}
.oe-signe {
  width: 1.15em;
  height: 1.15em;
  flex: none;
  color: var(--or-encre);
}
.oe-interdits {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
  gap: 0.9rem;
  margin-top: 1rem;
}
.oe-interdit {
  display: flex;
  gap: 0.7rem;
  align-items: flex-start;
  padding: 0.85rem 0.95rem;
  border: 1px solid var(--bord);
  border-radius: var(--rayon);
  background: var(--rouge-doux);
}
.oe-interdit .oe-signe {
  color: var(--rouge-encre);
  margin-top: 0.15rem;
}
.oe-interdit strong {
  display: block;
  line-height: 1.35;
}
.oe-interdit p {
  margin: 0.25rem 0 0;
  font-size: 0.9rem;
}
.oe-bareme {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  margin: 1.1rem 0 1.4rem;
}
.oe-tarif {
  display: flex;
  gap: 1rem;
  align-items: baseline;
  padding: 0.75rem 0.9rem;
  border: 1px solid var(--bord);
  border-radius: var(--rayon);
  background: var(--surface);
}
.oe-prix {
  font-family: var(--fonte-titre);
  font-size: 1.35rem;
  font-weight: 600;
  color: var(--or-encre);
  flex: none;
  min-width: 5.4rem;
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.oe-tarif.interdit {
  background: var(--rouge-doux);
  border-color: var(--rouge);
}
.oe-tarif.interdit .oe-prix {
  color: var(--rouge-encre);
}
.oe-tarif.appuye {
  border-color: var(--bord-fort);
}
.oe-tarif-texte {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}
.oe-tarif-texte strong {
  line-height: 1.35;
}
.oe-tarif-texte .muet {
  font-size: 0.9rem;
  line-height: 1.5;
}
.oe-morale {
  border-left: 3px solid var(--bord-fort);
  padding-left: 0.9rem;
  max-width: 44rem;
}
.oe-exemple {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
  gap: 0.9rem;
  margin: 1rem 0;
}
.oe-variante {
  border: 1px solid var(--bord);
  border-radius: var(--rayon);
  padding: 0.9rem 1rem;
  background: var(--surface);
}
.oe-variante.retenue {
  border-color: var(--vert);
  background: var(--vert-doux);
}
.oe-variante-titre {
  display: block;
  font-size: 0.78rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muet);
}
.oe-total {
  display: block;
  font-family: var(--fonte-titre);
  font-size: 2rem;
  font-weight: 600;
  color: var(--bleu);
  line-height: 1.1;
  font-variant-numeric: tabular-nums;
}
.oe-variante.retenue .oe-total {
  color: var(--vert);
}
.oe-variante ul {
  margin: 0.5rem 0 0;
  padding-left: 1.1rem;
  font-size: 0.92rem;
  color: var(--muet);
}
.oe-verdict {
  display: inline-block;
  margin-top: 0.7rem;
  font-size: 0.86rem;
  font-weight: 600;
  color: var(--vert);
}
.oe-temps {
  margin: 1rem 0 0;
  padding-left: 1.3rem;
}
.oe-temps > li {
  margin-bottom: 1rem;
}
.oe-temps > li::marker {
  font-family: var(--fonte-titre);
  font-weight: 600;
  color: var(--or-encre);
}
.oe-temps p {
  margin: 0.25rem 0 0;
  max-width: 44rem;
}
.oe-graduation {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(8.5rem, 1fr));
  gap: 0.6rem;
  margin: 1rem 0;
}
.oe-cran {
  border: 1px solid var(--bord);
  border-radius: var(--rayon);
  padding: 0.7rem 0.8rem;
  background: var(--or-doux);
  text-align: center;
}
.oe-cran-quand {
  display: block;
  font-size: 0.82rem;
  color: var(--muet);
  line-height: 1.35;
}
.oe-cran-poids {
  display: block;
  margin-top: 0.3rem;
  font-family: var(--fonte-titre);
  font-size: 1.45rem;
  font-weight: 600;
  color: var(--or-encre);
  font-variant-numeric: tabular-nums;
}
.oe-cran:has(.oublie) {
  background: var(--fond);
}
.oe-cran-poids.oublie {
  font-size: 1.05rem;
  color: var(--muet);
  font-style: italic;
}
.oe-faits {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
  gap: 0.6rem;
  margin: 1rem 0 0;
}
.oe-faits > div {
  border: 1px solid var(--bord);
  border-radius: var(--rayon);
  padding: 0.7rem 0.85rem;
  background: var(--surface);
}
.oe-faits dt {
  font-size: 0.84rem;
  color: var(--muet);
  line-height: 1.35;
}
.oe-faits dd {
  margin: 0.25rem 0 0;
  font-family: var(--fonte-titre);
  font-size: 1.6rem;
  font-weight: 600;
  color: var(--bleu);
  font-variant-numeric: tabular-nums;
}
.oe-faits > .oe-fait-grave {
  background: var(--rouge-doux);
  border-color: var(--rouge);
}
.oe-faits > .oe-fait-grave dd {
  color: var(--rouge-encre);
}
.oe-alerte {
  margin-top: 0.9rem;
  padding: 0.75rem 0.9rem;
  border-left: 3px solid var(--rouge);
  background: var(--rouge-doux);
  border-radius: var(--rayon);
}
@media (max-width: 34rem) {
  .oe-tarif {
    flex-direction: column;
    gap: 0.3rem;
  }
  .oe-prix {
    text-align: left;
    min-width: 0;
  }
}
.choix-genre {
  display: grid;
  gap: 0.4rem;
  margin: 1rem 0 0;
  padding: 0;
  border: 0;
}
.choix-genre legend {
  padding: 0;
  font-weight: 600;
  font-size: 0.92rem;
  color: var(--encre);
}
.choix-genre label:has(> input[type="radio"]) {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: start;
  column-gap: 0.55rem;
  row-gap: 0.1rem;
  min-height: 44px;
  padding: 0.5rem 0.6rem;
  border: 1px solid var(--bord-champ);
  border-radius: var(--rayon);
  background: var(--surface);
  cursor: pointer;
}
.choix-genre label > input[type="radio"] {
  grid-row: 1 / span 2;
  align-self: center;
  width: 20px;
  height: 20px;
  flex: none;
  margin: 0;
  accent-color: var(--bleu);
}
.choix-genre-nom {
  font-weight: 600;
  font-size: 0.92rem;
  color: var(--encre);
}
.choix-genre-quoi {
  color: var(--muet);
  font-size: 0.8rem;
  line-height: 1.4;
}
.choix-genre label.actif {
  border-color: var(--bleu);
  box-shadow: inset 0 0 0 1px var(--bleu);
  background: var(--fond);
}
.choix-genre label:focus-within {
  outline: 2px solid var(--anneau);
  outline-offset: 2px;
}
.capture-signalement.repliable {
  padding: 0;
  border: 0;
  background: none;
}
.capture-repliee > summary {
  cursor: pointer;
  color: var(--muet);
  font-size: 0.82rem;
  min-height: 44px;
  display: flex;
  align-items: center;
}
.capture-repliee[open] > summary {
  margin-bottom: 0.5rem;
}
.capture-repliee[open] {
  padding: 0.7rem;
  border: 1px dashed var(--bord-fort);
  border-radius: var(--rayon);
  background: var(--fond);
}
.capture-repliee[open] > summary {
  margin-top: -0.2rem;
}
.capture-repliee {
  display: flex;
  flex-direction: column;
}
.capture-repliee > summary {
  flex: none;
}
.capture-repliee > :not(summary) {
  margin-bottom: 0.45rem;
}
.capture-repliee > :last-child {
  margin-bottom: 0;
}
.capture-pourquoi {
  color: var(--muet);
  font-size: 0.8rem;
  line-height: 1.45;
}
.filtre-genre {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin: 0 0 1rem;
}
.filtre-genre a {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  min-height: 44px;
  padding: 0 0.8rem;
  border: 1px solid var(--bord-champ);
  border-radius: 999px;
  background: var(--surface);
  color: var(--muet);
  font-size: 0.88rem;
  font-weight: 600;
  text-decoration: none;
}
.filtre-genre a:hover {
  border-color: var(--bleu);
  color: var(--bleu);
}
.filtre-genre a:focus-visible {
  outline: 2px solid var(--anneau);
  outline-offset: 2px;
}
.filtre-genre a.actif {
  background: var(--bleu);
  border-color: var(--bleu);
  color: var(--surface);
}
.filtre-genre-total {
  font-variant-numeric: tabular-nums;
  font-weight: 700;
}
.filtre-genre-neufs {
  display: inline-flex;
  align-items: baseline;
  gap: 0.25rem;
  padding: 0.05rem 0.4rem;
  border-radius: 999px;
  background: var(--rouge-doux);
  color: var(--rouge-encre);
  font-size: 0.76rem;
  font-weight: 700;
}
.filtre-genre a.actif .filtre-genre-neufs {
  background: var(--surface);
}
@media (max-width: 30rem) {
  .filtre-genre-mot {
    display: none;
  }
  .filtre-genre a {
    padding: 0 0.6rem;
    font-size: 0.84rem;
  }
}
.signalement.genre-amelioration {
  border-left: 3px solid var(--or-encre);
}
.apercu-capture figcaption {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.6rem;
}
.apercu-capture figcaption > span {
  min-width: 0;
}
.retirer-capture {
  flex: none;
  min-height: 44px;
  padding: 0 0.7rem;
  border: 1px solid var(--bord-champ);
  border-radius: var(--rayon);
  background: var(--surface);
  color: var(--muet);
  font-family: var(--fonte-texte);
  font-size: 0.78rem;
  font-weight: 600;
  cursor: pointer;
}
.retirer-capture:hover {
  color: var(--rouge-encre);
  border-color: var(--rouge-encre);
  background: var(--rouge-doux);
}
.retirer-capture:focus-visible {
  outline: 2px solid var(--anneau);
  outline-offset: 2px;
}
.brouillon-retrouve {
  margin: 0.9rem 0 0;
  padding: 0.55rem 0.7rem;
  border-left: 3px solid var(--or-encre);
  border-radius: var(--rayon);
  background: var(--or-doux);
  color: var(--or-encre);
  font-size: 0.82rem;
  line-height: 1.5;
}
.nav-admin a {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
}
.nav-icone {
  flex: none;
  width: 16px;
  height: 16px;
}
.nav-admin {
  gap: 0.9rem;
  -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 2.5rem), transparent);
  mask-image: linear-gradient(to right, #000 calc(100% - 2.5rem), transparent);
  padding-right: 3rem;
  scroll-snap-type: x proximity;
}
.nav-admin a {
  scroll-snap-align: start;
}
.tiroir-liens a {
  gap: 0.75rem;
}
.tiroir-liens .nav-icone {
  color: var(--muet);
}
.tiroir-liens a:hover .nav-icone,
.tiroir-liens a.actif .nav-icone {
  color: var(--bleu);
}
.nav-tiroir-bouton {
  width: auto;
  min-width: 52px;
  justify-content: flex-start;
}
.carte-reponse-presence .rangee-actions {
  margin-top: 0.4rem;
}
.champ-motif-absence {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  align-items: flex-start;
  margin-top: 0.8rem;
}
.champ-motif-absence input {
  max-width: 26rem;
  width: 100%;
}
.reponse-mon-repas {
  margin-top: 0.9rem;
  padding-top: 0.8rem;
  border-top: 1px solid var(--bord);
}
.reponse-mon-repas-etat {
  margin: 0 0 0.5rem;
}
.reponse-mon-repas .rangee-actions {
  margin-bottom: 0;
}
.mon-repas-reponse-passee {
  margin-top: 0.6rem;
}
.invitation-compte {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  align-items: flex-start;
}
.invitation-compte .message-retour,
.invitation-compte .message-erreur {
  margin: 0;
}
.table-couverts {
  margin: 1.6rem 0 0;
}
.titre-icone {
  width: 1.05em;
  height: 1.05em;
  flex: none;
  vertical-align: -0.12em;
  stroke-width: 1.7;
}
.table-titre {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-family: var(--fonte-titre);
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--bleu);
  margin: 0 0 0.2rem;
}
.couverts {
  list-style: none;
  margin: 1.1rem 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.9rem;
}
.couvert {
  display: flex;
  gap: 0.9rem;
  align-items: flex-start;
}
.couvert-jeton {
  flex: none;
  width: 2.3rem;
  height: 2.3rem;
  margin-top: calc(0.9rem + 0.76rem - 1.15rem + 3.2px);
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--fonte-titre);
  font-size: 1.05rem;
  font-weight: 600;
  line-height: 1;
  padding-top: 2px;
  background: var(--or-doux);
  color: var(--or-encre);
  box-shadow: inset 0 0 0 1px var(--or-clair);
}
.couvert-jeton.vide {
  background: transparent;
  box-shadow: none;
  border: 1px dashed var(--or-clair);
  font-size: 1.3rem;
  line-height: 1;
}
.couvert-corps {
  flex: 1 1 auto;
  min-width: 0;
  border: 1px solid var(--bord);
  border-radius: var(--rayon);
  background: var(--surface);
  padding: 0.9rem 1rem 1rem;
}
.couvert-qui {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.6rem;
  margin: 0 0 0.6rem;
  font-family: var(--fonte-titre);
  font-size: 1.14rem;
  font-weight: 600;
  color: var(--bleu);
}
.couvert-retirer {
  border: none;
  background: none;
  padding: 0.35rem 0.2rem;
  min-height: 32px;
  font: inherit;
  font-family: var(--fonte-texte);
  font-size: 0.82rem;
  font-weight: 500;
  color: var(--muet);
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
}
.couvert-retirer:hover {
  color: var(--rouge-encre);
}
.couvert-retirer:focus-visible {
  outline: 2px solid var(--anneau);
  outline-offset: 2px;
}
.couvert-champs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.2rem 0.8rem;
}
.couvert-champs .champ-large {
  grid-column: 1 / -1;
}
.couvert-champs p {
  margin: 0 0 0.5rem;
}
.couvert-champs label {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.88rem;
  font-weight: 600;
  margin-bottom: 0.25rem;
}
.etiquette-icone {
  width: 0.95rem;
  height: 0.95rem;
  flex-shrink: 0;
  stroke-width: 1.6;
  color: var(--muet);
}
label:has(> .etiquette-icone) {
  display: flex;
  align-items: center;
  gap: 0.4rem;
}
.couvert-champs input {
  width: 100%;
}
.choix-effectif {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.7rem;
  margin: 1rem 0 0.4rem;
}
.choix-reception {
  display: flex;
  flex-direction: column;
  gap: 0.7rem;
  margin: 0.9rem 0 0;
}
.soirees-titre {
  margin: 0.9rem 0 0.3rem;
  font-family: var(--fonte-texte);
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--or-encre);
}
.soirees-annoncees {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem 0.6rem;
}
.soirees-annoncees li {
  font-size: 0.9rem;
  font-variant-numeric: tabular-nums;
  background: var(--surface);
  border: 1px solid var(--or-clair);
  border-radius: 999px;
  padding: 0.2rem 0.7rem;
}
.effectif {
  display: flex;
  align-items: flex-start;
  gap: 0.6rem;
  padding: 0.85rem 0.9rem;
  border: 1px solid var(--bord);
  border-radius: var(--rayon);
  background: var(--surface);
  cursor: pointer;
}
.effectif.retenu {
  border-color: var(--or-clair);
  background: var(--or-doux);
}
.effectif input {
  width: 20px;
  height: 20px;
  flex: none;
  margin-top: 0.15rem;
}
.effectif strong {
  display: block;
  font-family: var(--fonte-titre);
  font-size: 1rem;
  color: var(--bleu);
}
.effectif small {
  display: block;
  font-size: 0.84rem;
  color: var(--muet);
  margin-top: 0.15rem;
}
.effectif:focus-within {
  outline: 2px solid var(--anneau);
  outline-offset: 2px;
}
.case-en-avant {
  margin-top: 0.9rem;
  padding: 0.2rem 0.9rem;
  border-left: 3px solid var(--or-clair);
}
@media (max-width: 30rem) {
  .choix-effectif {
    grid-template-columns: 1fr;
  }
}
.couvert-vide .couvert-ajouter {
  display: flex;
  align-items: center;
  gap: 0.9rem;
  width: 100%;
  min-height: 44px;
  padding: 0.7rem 1rem 0.7rem 0;
  border: none;
  background: none;
  font: inherit;
  text-align: left;
  cursor: pointer;
  color: var(--encre);
  border-radius: var(--rayon);
}
.couvert-ajouter strong {
  display: block;
  font-family: var(--fonte-titre);
  font-size: 1.02rem;
  color: var(--bleu);
}
.couvert-ajouter small {
  display: block;
  font-size: 0.84rem;
  color: var(--muet);
}
.couvert-ajouter:hover .couvert-jeton.vide {
  border-style: solid;
  background: var(--or-doux);
  color: var(--or-encre);
}
.couvert-ajouter:focus-visible {
  outline: 2px solid var(--anneau);
  outline-offset: 2px;
}
@media (max-width: 30rem) {
  .couvert-champs {
    grid-template-columns: 1fr;
  }
  .couvert {
    gap: 0.6rem;
  }
  .couvert-jeton {
    width: 2rem;
    height: 2rem;
    font-size: 0.95rem;
    margin-top: calc(0.9rem + 0.76rem - 1rem + 3.2px);
  }
}
.champ-allergies {
  margin: 0.9rem 0 1.1rem;
}
.question-fermee {
  margin: 0 0 0.45rem;
  font-size: 1rem;
  font-weight: 600;
  color: var(--encre);
}
.question-oui-non {
  display: flex;
  gap: 0.6rem;
  flex-wrap: wrap;
}
.aide-question {
  font-size: 0.86rem;
  margin: 0 0 0.55rem;
}
.question-fermee:has(+ .aide-question) {
  margin-bottom: 0.15rem;
}
.bloc-question {
  margin-top: 1.1rem;
}
.question-oui-non label.question-choix {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  min-height: 44px;
  padding: 0.4rem 0.9rem;
  border: 1px solid var(--bord-champ);
  border-radius: var(--rayon);
  background: var(--surface);
  cursor: pointer;
  font-size: 0.95rem;
  white-space: nowrap;
}
.question-oui-non label.question-choix.retenu {
  border-color: var(--bleu);
  background: var(--bleu-doux);
  color: var(--bleu);
  font-weight: 600;
}
.question-oui-non label.question-choix input[type="radio"] {
  flex: none;
  width: 1.15rem;
  height: 1.15rem;
  margin: 0;
}
.question-oui-non label.question-choix:has(input:focus-visible) {
  outline: 2px solid var(--anneau);
  outline-offset: 2px;
}
.allergies-saisie {
  position: relative;
  margin: 0.75rem 0 0;
}
.allergies-saisie > label {
  display: block;
  margin-bottom: 0.35rem;
  font-size: 0.9rem;
  color: var(--muet);
}
.allergies-pastilles {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin: 0 0 0.5rem;
  padding: 0;
  list-style: none;
}
.allergie-pastille {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  min-height: 36px;
  padding: 0.25rem 0.25rem 0.25rem 0.65rem;
  border: 1px solid var(--or-clair);
  border-radius: 999px;
  background: var(--or-doux);
  color: var(--or-encre);
  font-size: 0.9rem;
}
.allergie-dessin {
  flex: none;
}
.allergie-nom {
  white-space: nowrap;
}
.allergie-retirer {
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: var(--or-encre);
  font-size: 1.1rem;
  line-height: 1;
  cursor: pointer;
}
.allergie-retirer:hover {
  background: var(--surface);
}
.allergie-retirer:focus-visible {
  outline: 2px solid var(--anneau);
  outline-offset: 2px;
}
.allergies-champ {
  width: 100%;
  min-height: 44px;
  padding: 0.55rem 0.75rem;
  border: 1px solid var(--bord-champ);
  border-radius: var(--rayon);
  background: var(--surface);
  font-family: var(--fonte-texte);
  font-size: 1rem;
  color: var(--encre);
}
.allergies-champ:focus-visible {
  outline: 2px solid var(--anneau);
  outline-offset: 1px;
}
.allergies-aide {
  margin: 0.35rem 0 0;
  font-size: 0.85rem;
  color: var(--muet);
}
.allergies-refus {
  margin: 0.35rem 0 0;
  font-size: 0.85rem;
  color: var(--rouge-encre);
}
.allergies-propositions {
  position: fixed;
  z-index: 30;
  margin: 0;
  padding: 0.25rem;
  list-style: none;
  background: var(--surface);
  border: 1px solid var(--bord-fort);
  border-radius: var(--rayon);
  box-shadow: 0 10px 28px rgba(35, 42, 53, 0.16);
  max-height: 18rem;
  overflow-y: auto;
}
.allergies-proposition {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  width: 100%;
  min-height: 44px;
  text-align: left;
  border: 0;
  background: transparent;
  padding: 0.5rem 0.65rem;
  border-radius: 6px;
  font-family: var(--fonte-texte);
  font-size: 0.95rem;
  color: var(--encre);
  cursor: pointer;
}
.allergies-proposition.survolee {
  background: var(--bleu-doux);
  color: var(--bleu);
}
.allergies-proposition mark {
  background: var(--or-doux);
  color: var(--or-encre);
  font-weight: 700;
  border-radius: 3px;
  padding: 0 1px;
}
.allergies-vide {
  padding: 0.7rem 0.65rem;
  font-size: 0.9rem;
  color: var(--muet);
  font-style: italic;
}
@media (max-width: 30rem) {
  .question-oui-non {
    flex-direction: column;
  }
  .question-oui-non label.question-choix {
    width: 100%;
  }
  .allergie-nom {
    white-space: normal;
  }
}
.adresse-propositions {
  position: fixed;
  z-index: 30;
  margin: 0.25rem 0 0;
  padding: 0.25rem;
  list-style: none;
  background: var(--surface);
  border: 1px solid var(--bord-fort);
  border-radius: var(--rayon);
  box-shadow: 0 10px 28px rgba(35, 42, 53, 0.16);
  max-height: 17rem;
  overflow-y: auto;
}
.adresse-proposition {
  display: block;
  width: 100%;
  text-align: left;
  border: 0;
  background: transparent;
  padding: 0.55rem 0.65rem;
  border-radius: 6px;
  font-family: var(--fonte-texte);
  font-size: 0.92rem;
  color: var(--encre);
  cursor: pointer;
}
.adresse-proposition.survolee {
  background: var(--bleu-doux);
  color: var(--bleu);
}
.champ-adresse .adresse-source {
  font-size: 0.8rem;
  margin: 0.3rem 0 0;
  line-height: 1.45;
}
.jalons {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.15rem 0.55rem;
  list-style: none;
  margin: 0 0 0.4rem;
  padding: 0;
}
.jalon-bouton {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  min-height: 32px;
  padding: 0.15rem;
  border: none;
  border-radius: 999px;
  background: none;
  font: inherit;
  cursor: pointer;
}
.jalon-bouton:disabled {
  cursor: default;
}
.jalon-bouton:focus-visible {
  outline: 2px solid var(--anneau);
  outline-offset: 2px;
}
.jalon-fait .jalon-bouton:hover .jalon-puce {
  border-color: var(--or);
  background: var(--bleu-doux);
}
.jalon-puce {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
  flex-shrink: 0;
  border-radius: 50%;
  border: 1px solid var(--bord-fort);
  background: var(--surface);
  font-size: 0.78rem;
  font-weight: 600;
  line-height: 1;
  padding-top: 0.5px;
  color: var(--muet);
}
.jalon-courant .jalon-puce {
  border-color: var(--or-clair);
  background: var(--or-doux);
  color: var(--or-encre);
}
.jalon-fait .jalon-puce {
  border-color: var(--or-clair);
  background: var(--or-doux);
  color: var(--or-encre);
}
.jalon-coche {
  width: 0.85rem;
  height: 0.85rem;
  stroke-width: 2.4;
}
.etape-compte {
  margin: 0 0 1.1rem;
  font-size: 0.8rem;
  color: var(--muet);
}
.etape-courante {
  animation: etape-entre 240ms ease-out both;
}
.etape-courante[data-sens='arriere'] {
  animation-name: etape-entre-arriere;
}
@keyframes etape-entre {
  from {
    opacity: 0;
    transform: translateX(14px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@keyframes etape-entre-arriere {
  from {
    opacity: 0;
    transform: translateX(-14px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
.etape-titre {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0 0 0.9rem;
  font-family: var(--fonte-titre);
  font-size: 1.35rem;
  font-weight: 600;
  color: var(--bleu);
  outline: none;
}
.etape-titre:focus-visible {
  outline: none;
}
.etapes-marche {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.8rem;
  margin-top: 1.6rem;
  padding-top: 1.1rem;
  border-top: 1px solid var(--bord);
}
.etapes-marche .bouton {
  border: 1px solid transparent;
}
.etapes-marche .bouton.secondaire {
  border-color: var(--bord-fort);
}
.bouton-icone {
  width: 1rem;
  height: 1rem;
  flex-shrink: 0;
  stroke-width: 2;
}
.etapes-marche .bouton {
  gap: 0.45rem;
}
@media (max-width: 34rem) {
  .etapes-marche .bouton {
    flex: 1;
  }
}
@media (prefers-reduced-motion: reduce) {
  .etape-courante {
    animation: none;
  }
}
.nav-pastille {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.15rem;
  height: 1.15rem;
  padding: 0 0.32rem;
  border-radius: 999px;
  background: var(--rouge);
  color: var(--surface);
  font-size: 0.72rem;
  font-weight: 700;
  line-height: 1;
  font-variant-numeric: tabular-nums;
  flex: none;
}
.tiroir-liens .nav-pastille {
  margin-left: auto;
}
.echanger-equipes {
  margin-top: 1.4rem;
  border: 1px solid var(--bord);
  border-radius: var(--rayon);
  padding: 0.7rem 0.9rem;
}
.echanger-equipes summary {
  cursor: pointer;
  font-weight: 600;
  color: var(--bleu);
}
.echanger-equipes p {
  margin: 0.6rem 0 0.8rem;
}
.echanger-equipes form {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  align-items: center;
  max-width: none;
}
.echanger-equipes select {
  min-width: 14rem;
  min-height: 44px;
}
.echanger-equipes label {
  margin: 0;
}
.fleche-echange {
  color: var(--or-encre);
  font-size: 1.2rem;
}
@media (max-width: 40rem) {
  .echanger-equipes form {
    flex-direction: column;
    align-items: stretch;
  }
  .echanger-equipes select {
    width: 100%;
    min-width: 0;
  }
  .fleche-echange {
    text-align: center;
  }
}
.rangee-annuaire-vues,
.rangee-annuaire-gestes {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.6rem;
  min-width: 0;
}
.rangee-annuaire-vues {
  flex: 1 1 22rem;
}
.choix-saisons {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem;
}
.choix-saisons[data-navigation='en-cours'] {
  opacity: 0.6;
}
.pastille-saison {
  gap: 0.4rem;
  padding: 0 0.85rem;
  font-size: 0.88rem;
}
.pastille-saison[data-filtre='modifie'] {
  background: var(--bleu);
  border-color: var(--bleu);
  color: var(--surface);
}
.pastille-saison[data-filtre='modifie']:hover {
  background: var(--bleu-nuit);
  border-color: var(--bleu-nuit);
  color: var(--surface);
}
.menu-note {
  margin: 0;
  padding: 0.35rem 0.75rem 0.5rem 2.1rem;
  font-size: 0.82rem;
  line-height: 1.4;
  color: var(--muet);
}
.menu-titre {
  padding: 0.35rem 0.75rem 0.2rem;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--muet);
}
.menu-case {
  padding-left: 2.1rem;
  position: relative;
}
.menu-case-marque {
  position: absolute;
  left: 0.7rem;
  display: inline-flex;
  color: var(--bleu);
}
.menu-case[data-highlighted] .menu-case-marque {
  color: var(--bleu);
}
.menu-entree-action {
  font-weight: 600;
  color: var(--bleu);
  min-height: 38px;
}
.recherche-equipes {
  position: relative;
  display: flex;
  flex: 1 1 16rem;
  min-width: 0;
}
.recherche-equipes input {
  width: 100%;
  min-height: 44px;
  padding: 0 2.5rem 0 2.35rem;
  border: 1px solid var(--bord-champ);
  border-radius: 999px;
  background: var(--surface);
  color: var(--encre);
  font: inherit;
  font-size: 0.9rem;
}
.recherche-equipes input:focus-visible {
  outline: 2px solid var(--anneau);
  outline-offset: 2px;
}
.recherche-equipes input::-webkit-search-cancel-button {
  display: none;
}
.recherche-loupe {
  position: absolute;
  left: 0.8rem;
  top: 50%;
  transform: translateY(-50%);
  color: var(--muet);
  pointer-events: none;
}
.recherche-effacer {
  position: absolute;
  right: 0.3rem;
  top: 50%;
  transform: translateY(-50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: var(--muet);
  cursor: pointer;
}
.recherche-effacer:hover {
  background: var(--bleu-doux);
  color: var(--bleu);
}
.recherche-effacer:focus-visible {
  outline: 2px solid var(--anneau);
  outline-offset: 2px;
}
.recherche-compte {
  margin: 0 0 0.6rem;
  font-size: 0.86rem;
  color: var(--muet);
}
.recherche-bredouille {
  margin: 0;
  padding: 1rem var(--carte-rentree);
}
.recherche-bredouille .lien-bouton {
  color: var(--bleu);
}
.recherche-bredouille .lien-bouton:hover {
  color: var(--bleu-nuit);
}
mark.releve {
  background: var(--or-doux);
  color: var(--or-encre);
  font-weight: 700;
  border-radius: 3px;
  padding: 0 1px;
}
.detail-releve {
  display: block;
  font-size: 0.84rem;
  color: var(--muet);
}
@media (max-width: 46rem) {
  .recherche-equipes {
    flex: 1 1 100%;
  }
}
@media (max-width: 52rem) {
  .table-inimities td > .tag {
    justify-self: start;
  }
  .table-inimities tr {
    position: relative;
  }
  .table-inimities td.cellule-actions {
    position: absolute;
    top: 0.5rem;
    right: 0.5rem;
    display: block;
    margin: 0;
    padding: 0;
    border-top: 0;
  }
  .table-inimities td:first-child {
    padding-right: 3rem;
  }
}
.niveaux > legend {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.4rem;
}
.aide-deux-niveaux {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  text-align: left;
  text-wrap: pretty;
}
.gestes-compte {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem;
}
.table-comptes td.cellule-actions {
  text-align: right;
}
.table-comptes td.cellule-actions .gestes-compte {
  justify-content: flex-end;
}
.gestes-compte .geste-compte-mot,
.gestes-compte .message-retour,
.gestes-compte .message-erreur {
  flex-basis: 100%;
}
.gestes-compte .rangee-actions .bouton-discret {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  min-height: 44px;
}
@media (max-width: 52rem) {
  .table-comptes .rattachement {
    max-width: none;
    width: 100%;
    min-width: 0;
    position: relative;
    gap: 0;
  }
  .table-comptes .rattachement .choix-retenu-nom {
    min-width: 0;
  }
  .table-comptes .rattachement .rattachement-actions {
    position: absolute;
    top: -1.4rem;
    right: 0;
  }
  .table-comptes td.cellule-actions {
    display: block;
    margin-top: 0.55rem;
    padding-top: 0.6rem;
    border-top: 1px dashed var(--bord);
    white-space: normal;
    text-align: left;
  }
  .table-comptes td.cellule-actions::before {
    content: none;
  }
  .table-comptes td.cellule-actions .mention-vous {
    display: block;
    text-align: left;
  }
  .gestes-compte {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(8.5rem, 1fr));
    gap: 0.5rem;
    align-items: start;
  }
  .gestes-compte > * {
    min-width: 0;
  }
  .gestes-compte form {
    margin: 0;
    display: block !important;
    max-width: none;
  }
  .gestes-compte .invitation-compte {
    display: contents;
  }
  .table-comptes .gestes-compte .bouton.icone-seule {
    width: 100%;
    min-width: 0;
    gap: 0.42rem;
    padding: 0 0.6rem;
    border-radius: var(--rayon);
    border: 1px solid var(--bord-fort);
    background: var(--surface);
    color: var(--encre);
  }
  .table-comptes .gestes-compte .bouton.danger.icone-seule {
    border-color: var(--rouge);
    background: var(--rouge-doux);
    color: var(--rouge-encre);
  }
  .gestes-compte .geste-compte-mot,
  .gestes-compte .message-retour,
  .gestes-compte .message-erreur {
    grid-column: 1 / -1;
  }
  .gestes-compte .forme-mot-de-passe-compte {
    max-width: none;
  }
}
.jetons-personnes {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.25rem 0.4rem;
}
.jeton-personne {
  font-family: inherit;
  font-size: inherit;
  line-height: 1.3;
  color: var(--encre);
  background: none;
  border: 0;
  border-radius: 6px;
  padding: 0.3rem 0.35rem;
  margin: 0;
  cursor: pointer;
  text-decoration: underline dotted var(--bord-fort);
  text-underline-offset: 3px;
}
.jeton-personne:hover,
.jeton-personne:focus-visible {
  background: var(--bleu-doux);
  color: var(--bleu);
  text-decoration-color: var(--bleu);
}
.jeton-ajout {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border: 1px dashed var(--bord-fort);
  border-radius: 999px;
  background: none;
  color: var(--muet);
  cursor: pointer;
}
.jeton-ajout:hover,
.jeton-ajout:focus-visible {
  border-style: solid;
  border-color: var(--bleu);
  background: var(--bleu-doux);
  color: var(--bleu);
}
.dialogue-composition .etiquette-champ {
  margin: 1.1rem 0 0.4rem;
  font-weight: 600;
  font-size: 0.9rem;
  color: var(--muet);
}
.recherche-dans-dialogue {
  width: 100%;
}
.liste-choix {
  list-style: none;
  margin: 0.5rem 0 0;
  padding: 0;
  max-height: 38vh;
  overflow-y: auto;
  border: 1px solid var(--bord);
  border-radius: var(--rayon);
}
.liste-choix li + li {
  border-top: 1px solid var(--bord);
}
.liste-choix-vide {
  padding: 0.75rem;
  color: var(--muet);
  font-size: 0.9rem;
}
.choix {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  width: 100%;
  min-height: 44px;
  padding: 0.5rem 0.75rem;
  border: 0;
  background: none;
  font-family: inherit;
  font-size: 0.95rem;
  color: var(--encre);
  text-align: left;
  cursor: pointer;
}
.choix:hover,
.choix:focus-visible {
  background: var(--bleu-doux);
  color: var(--bleu);
}
.choix svg {
  flex: none;
  color: var(--muet);
}
.choix:hover svg, .choix:focus-visible svg {
  color: var(--bleu);
}
.choix-nom {
  flex: 1 1 auto;
}
.choix-detail {
  flex: none;
  font-size: 0.8rem;
  color: var(--muet);
}
.formulaire-personne-neuve {
  margin-top: 0.75rem;
}
.formulaire-personne-neuve .rangee-actions {
  margin-bottom: 0;
}
@media (max-width: 30rem) {
  .choix {
    flex-wrap: wrap;
    row-gap: 0.15rem;
  }
  .choix-nom {
    flex: 1 1 100%;
  }
  .choix-detail {
    flex: 1 1 100%;
    padding-left: 1.5rem;
  }
}
.liste-soupcons,
.liste-relecture {
  list-style: none;
  margin: 0.9rem 0 0;
  padding: 0;
}
.liste-soupcons > li + li,
.liste-relecture > li + li {
  margin-top: 0.9rem;
  padding-top: 0.9rem;
  border-top: 1px solid var(--bord);
}
.soupcon-question {
  margin: 0;
  font-weight: 600;
  color: var(--encre);
}
.soupcon-explication {
  margin: 0.25rem 0 0.6rem;
  color: var(--muet);
  font-size: 0.92rem;
}
.relecture-nom {
  margin: 0;
  font-weight: 600;
}
.relecture-contact {
  margin: 0.2rem 0 0.6rem;
  color: var(--muet);
  font-size: 0.92rem;
}
.relecture-manque {
  color: var(--or-encre);
  font-style: italic;
}
.bandeau-version {
  position: sticky;
  top: 0;
  z-index: 40;
  display: flex;
  align-items: center;
  gap: 0.6rem;
  flex-wrap: wrap;
  padding: 0.6rem 0.9rem;
  background: var(--or-doux);
  color: var(--or-encre);
  border-bottom: 1px solid var(--or-clair);
}
.bandeau-version svg {
  flex: none;
}
.bandeau-version-mots {
  flex: 1 1 12rem;
  font-size: 0.93rem;
  line-height: 1.35;
}
.bandeau-version .bouton {
  min-height: 44px;
}
@property --tw-translate-x {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}
@property --tw-translate-y {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}
@property --tw-translate-z {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}
@property --tw-rotate-x {
  syntax: "*";
  inherits: false;
}
@property --tw-rotate-y {
  syntax: "*";
  inherits: false;
}
@property --tw-rotate-z {
  syntax: "*";
  inherits: false;
}
@property --tw-skew-x {
  syntax: "*";
  inherits: false;
}
@property --tw-skew-y {
  syntax: "*";
  inherits: false;
}
@property --tw-border-style {
  syntax: "*";
  inherits: false;
  initial-value: solid;
}
@property --tw-leading {
  syntax: "*";
  inherits: false;
}
@property --tw-font-weight {
  syntax: "*";
  inherits: false;
}
@property --tw-ordinal {
  syntax: "*";
  inherits: false;
}
@property --tw-slashed-zero {
  syntax: "*";
  inherits: false;
}
@property --tw-numeric-figure {
  syntax: "*";
  inherits: false;
}
@property --tw-numeric-spacing {
  syntax: "*";
  inherits: false;
}
@property --tw-numeric-fraction {
  syntax: "*";
  inherits: false;
}
@property --tw-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}
@property --tw-shadow-color {
  syntax: "*";
  inherits: false;
}
@property --tw-shadow-alpha {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 100%;
}
@property --tw-inset-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}
@property --tw-inset-shadow-color {
  syntax: "*";
  inherits: false;
}
@property --tw-inset-shadow-alpha {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 100%;
}
@property --tw-ring-color {
  syntax: "*";
  inherits: false;
}
@property --tw-ring-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}
@property --tw-inset-ring-color {
  syntax: "*";
  inherits: false;
}
@property --tw-inset-ring-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}
@property --tw-ring-inset {
  syntax: "*";
  inherits: false;
}
@property --tw-ring-offset-width {
  syntax: "<length>";
  inherits: false;
  initial-value: 0px;
}
@property --tw-ring-offset-color {
  syntax: "*";
  inherits: false;
  initial-value: #fff;
}
@property --tw-ring-offset-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}
@property --tw-outline-style {
  syntax: "*";
  inherits: false;
  initial-value: solid;
}
@property --tw-blur {
  syntax: "*";
  inherits: false;
}
@property --tw-brightness {
  syntax: "*";
  inherits: false;
}
@property --tw-contrast {
  syntax: "*";
  inherits: false;
}
@property --tw-grayscale {
  syntax: "*";
  inherits: false;
}
@property --tw-hue-rotate {
  syntax: "*";
  inherits: false;
}
@property --tw-invert {
  syntax: "*";
  inherits: false;
}
@property --tw-opacity {
  syntax: "*";
  inherits: false;
}
@property --tw-saturate {
  syntax: "*";
  inherits: false;
}
@property --tw-sepia {
  syntax: "*";
  inherits: false;
}
@property --tw-drop-shadow {
  syntax: "*";
  inherits: false;
}
@property --tw-drop-shadow-color {
  syntax: "*";
  inherits: false;
}
@property --tw-drop-shadow-alpha {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 100%;
}
@property --tw-drop-shadow-size {
  syntax: "*";
  inherits: false;
}
@property --tw-backdrop-blur {
  syntax: "*";
  inherits: false;
}
@property --tw-backdrop-brightness {
  syntax: "*";
  inherits: false;
}
@property --tw-backdrop-contrast {
  syntax: "*";
  inherits: false;
}
@property --tw-backdrop-grayscale {
  syntax: "*";
  inherits: false;
}
@property --tw-backdrop-hue-rotate {
  syntax: "*";
  inherits: false;
}
@property --tw-backdrop-invert {
  syntax: "*";
  inherits: false;
}
@property --tw-backdrop-opacity {
  syntax: "*";
  inherits: false;
}
@property --tw-backdrop-saturate {
  syntax: "*";
  inherits: false;
}
@property --tw-backdrop-sepia {
  syntax: "*";
  inherits: false;
}
@property --tw-duration {
  syntax: "*";
  inherits: false;
}
@property --tw-ease {
  syntax: "*";
  inherits: false;
}
@layer properties {
  @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {
    *, ::before, ::after, ::backdrop {
      --tw-translate-x: 0;
      --tw-translate-y: 0;
      --tw-translate-z: 0;
      --tw-rotate-x: initial;
      --tw-rotate-y: initial;
      --tw-rotate-z: initial;
      --tw-skew-x: initial;
      --tw-skew-y: initial;
      --tw-border-style: solid;
      --tw-leading: initial;
      --tw-font-weight: initial;
      --tw-ordinal: initial;
      --tw-slashed-zero: initial;
      --tw-numeric-figure: initial;
      --tw-numeric-spacing: initial;
      --tw-numeric-fraction: initial;
      --tw-shadow: 0 0 #0000;
      --tw-shadow-color: initial;
      --tw-shadow-alpha: 100%;
      --tw-inset-shadow: 0 0 #0000;
      --tw-inset-shadow-color: initial;
      --tw-inset-shadow-alpha: 100%;
      --tw-ring-color: initial;
      --tw-ring-shadow: 0 0 #0000;
      --tw-inset-ring-color: initial;
      --tw-inset-ring-shadow: 0 0 #0000;
      --tw-ring-inset: initial;
      --tw-ring-offset-width: 0px;
      --tw-ring-offset-color: #fff;
      --tw-ring-offset-shadow: 0 0 #0000;
      --tw-outline-style: solid;
      --tw-blur: initial;
      --tw-brightness: initial;
      --tw-contrast: initial;
      --tw-grayscale: initial;
      --tw-hue-rotate: initial;
      --tw-invert: initial;
      --tw-opacity: initial;
      --tw-saturate: initial;
      --tw-sepia: initial;
      --tw-drop-shadow: initial;
      --tw-drop-shadow-color: initial;
      --tw-drop-shadow-alpha: 100%;
      --tw-drop-shadow-size: initial;
      --tw-backdrop-blur: initial;
      --tw-backdrop-brightness: initial;
      --tw-backdrop-contrast: initial;
      --tw-backdrop-grayscale: initial;
      --tw-backdrop-hue-rotate: initial;
      --tw-backdrop-invert: initial;
      --tw-backdrop-opacity: initial;
      --tw-backdrop-saturate: initial;
      --tw-backdrop-sepia: initial;
      --tw-duration: initial;
      --tw-ease: initial;
    }
  }
}

