/* Feuille de style de l'application Kinôme, relevée sur le prototype et
   cloisonnée sous « .appli ». Ce fichier n'est pas écrit à la main : il est
   produit par outils/assembler-demo.py à partir d'une capture du prototype.
   Toute correction se fait dans l'application, puis on recapture.

   La feuille est reprise en entier, et non filtrée sur les règles utilisées :
   le parcours traverse six écrans, le tri n'économiserait plus grand-chose
   mais garderait tout son risque — une règle oubliée donne un écran sans
   style, et rien ne le signale. C'est par ailleurs un fichier mis en cache,
   pas du balisage recopié dans la page. */

.appli{ --page-bg: #e9e9e1; --bg: #f1f2ed; --surface: #fff6; --surface-plein: #fff; --carte-fond: #f7f7f4; --voile: #ffffff52; --voile-leger: #ffffff1f; --voile-dense: #fffffff0; --voile-menu: #ffffff61; --menu-fond: linear-gradient(180deg, #fff 0%, #ecece4 100%); --voile-fin: #ffffff57; --text: #16233f; --text-muted: #3c4a66; --border: #e6e5dd; --accent: #e8963c; --accent-ink: #8a5a1e; --accent-soft: #fbeedc; --on-accent: #16233f; --ok: #4f7a63; --ok-ink: #3a5c4a; --ok-soft: #e4ede7; --alert: #bd4b3c; --alert-ink: #97382b; --alert-soft: #f7e4e0; --on-ok: #f1f2ed; --on-alert: #f1f2ed; --select: #3c4a66; --select-soft: #e7eaf0; --select-ink: #16233f; --on-select: #f1f2ed; --data: #e8963c; --data-voile: #e8963c1f; --grille: #e4e3da; --shadow: 0 10px 30px #16233f1a; --shadow-lg: 0 25px 60px #16233f33; --shadow-soft: 0 8px 22px #16233f12; --radius-lg: 26px; --radius-md: 16px; --radius-sm: 12px; --texte: "Libre Franklin", system-ui, -apple-system, sans-serif; --display: "Bricolage Grotesque", system-ui, sans-serif; --mono: "Azeret Mono", ui-monospace, monospace; --serif: "Source Serif 4", Georgia, "Times New Roman", serif; --manuscrit: "Mrs Saint Delafield", "Segoe Script", cursive; }
.appli[data-theme="dark"]{ --page-bg: #0e1526; --bg: #16233f; --surface: #1e2c4c61; --surface-plein: #1e2c4c; --carte-fond: #22335a; --voile: #1e2c4c52; --voile-leger: #1e2c4c1f; --voile-dense: #1e2c4cf0; --voile-menu: #1e2c4c6b; --menu-fond: linear-gradient(180deg, #283658 0%, #141f37 100%); --voile-fin: #1e2c4c61; --text: #f1f2ed; --text-muted: #a9b3c9; --border: #263248; --accent: #f0a855; --accent-ink: #f7ce9c; --accent-soft: #3a2c18; --on-accent: #16233f; --ok: #7fa98f; --ok-ink: #a8c9b4; --data: #c8762a; --data-voile: #c8762a38; --grille: #2a3a5a; --ok-soft: #1e3328; --alert: #e0796a; --alert-ink: #f0a99c; --alert-soft: #3a211c; --on-ok: #16233f; --on-alert: #16233f; --select: #a9b3c9; --select-soft: #26344f; --select-ink: #f1f2ed; --on-select: #16233f; --shadow: 0 10px 30px #00000073; --shadow-lg: 0 25px 60px #0009; --shadow-soft: 0 8px 22px #00000047; }
.appli, .appli *{ box-sizing: border-box; }
.appli a{ color: var(--accent-ink); text-decoration: none; }
.appli button{ cursor: pointer; font-family: inherit; }
.appli input{ font-family: inherit; }
.appli ::-webkit-scrollbar{ width: 0px; height: 0px; }
.appli .rig{ flex-direction: column; align-items: center; gap: 16px; width: 100%; max-width: 820px; padding: 28px 16px 48px; display: flex; }
.appli .rig-top{ justify-content: space-between; align-items: center; gap: 12px; width: 100%; max-width: 412px; display: flex; }
.appli .rig-label{ letter-spacing: 0.04em; text-transform: uppercase; color: var(--text-muted); align-items: center; gap: 8px; font-size: 12px; font-weight: 700; display: flex; }
.appli .rig-label .dot{ background: var(--text-muted); border-radius: 50%; width: 6px; height: 6px; }
.appli .theme-toggle{ background: var(--surface); border: 1px solid var(--border); border-radius: 999px; flex-shrink: 0; gap: 3px; padding: 3px; display: flex; }
.appli .theme-toggle button{ color: var(--text-muted); background: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; border-radius: 999px; align-items: center; gap: 6px; padding: 6px 12px; font-size: 11.5px; font-weight: 700; display: flex; }
.appli .theme-toggle button.on{ background: var(--accent); color: var(--on-accent); }
.appli .theme-toggle button svg{ flex-shrink: 0; }
.appli .phone{ background: var(--bg); width: 100%; max-width: 412px; height: 844px; max-height: calc(100dvh - 150px); box-shadow: var(--shadow-lg); border-radius: 36px; flex-direction: column; display: flex; position: relative; overflow: hidden; }
.appli .app{ flex-direction: column; flex: 1 1 0%; min-width: 0px; min-height: 0px; transition: opacity 0.16s; display: flex; }
@media (prefers-reduced-motion: reduce) {
  .appli .app{ transition: none; }
}
.appli .screen{ flex-direction: column; flex: 1 1 0%; min-width: 0px; min-height: 0px; display: flex; }
.appli .scroll{ flex: 1 1 0%; min-height: 0px; overflow-y: auto; }
.appli .modal-fond{ z-index: 60; background: rgba(22, 35, 63, 0.45); justify-content: center; align-items: flex-end; animation: 0.18s ease 0s 1 normal none running modalFond; display: flex; position: absolute; inset: 0px; }
.appli .modal{ background: var(--surface-plein); width: 100%; box-shadow: var(--shadow-lg); border-radius: 22px 22px 0px 0px; padding: 14px 22px 26px; animation: 0.24s cubic-bezier(0.22, 1, 0.36, 1) 0s 1 normal none running modalMonte; }
.appli .modal-poignee{ background: var(--border); border-radius: 999px; width: 38px; height: 4px; margin: 0px auto 16px; }
@keyframes modalMonte { 
  .appli 0%{ transform: translateY(100%); }
  .appli 100%{ transform: translateY(0px); }
}
@keyframes modalFond { 
  .appli 0%{ opacity: 0; }
  .appli 100%{ opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .appli .modal, .appli .modal-fond{ animation: auto ease 0s 1 normal none running none; }
}
.appli .topbar{ justify-content: space-between; align-items: center; padding: 18px 22px 4px; display: flex; }
.appli .gonio-btn{ cursor: pointer; color: var(--text); -webkit-tap-highlight-color: transparent; background: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; flex-shrink: 0; justify-content: center; align-items: center; padding: 0px; display: flex; }
.appli .gonio-btn svg{ width: 29px; height: 29px; display: block; }
.appli .gonio-btn:active{ transform: scale(0.94); }
.appli .brand{ font-family: var(--display); letter-spacing: -0.02em; align-items: center; gap: 9px; font-size: 20px; font-weight: 700; display: flex; }
.appli .brand .o{ color: var(--accent); }
.appli .brand svg{ flex-shrink: 0; width: 30px; height: 30px; }
.appli .icon-btn{ width: 38px; height: 38px; color: var(--text-muted); cursor: pointer; background: none; border: 1px solid rgba(0, 0, 0, 0); border-radius: 12px; flex-shrink: 0; justify-content: center; align-items: center; transition: background 0.16s, color 0.16s; display: flex; position: relative; }
@media (hover: hover) {
  .appli .icon-btn:hover{ background: var(--select-soft); color: var(--select-ink); }
}
.appli .icon-btn:active{ background: var(--select-soft); color: var(--select-ink); }
@media (prefers-reduced-motion: reduce) {
  .appli .icon-btn{ transition: none; }
}
.appli .icon-btn:focus-visible, .appli button:focus-visible, .appli input:focus-visible{ outline: 2px solid var(--text); outline-offset: 2px; }
.appli .icon-btn--attire{ color: var(--accent); }
.appli .icon-btn--attire::after{ content: ""; border-radius: inherit; border: 2px solid var(--accent); pointer-events: none; animation: 1.6s ease-out 0s infinite normal none running icon-attire; position: absolute; inset: 0px; }
@keyframes icon-attire { 
  .appli 0%{ opacity: 0.55; transform: scale(1); }
  .appli 100%{ opacity: 0; transform: scale(1.5); }
}
@media (prefers-reduced-motion: reduce) {
  .appli .icon-btn--attire::after{ display: none; }
}
.appli .vues-row{ justify-content: flex-end; gap: 3px; padding: 2px 18px 6px; display: flex; }
.appli .vue-btn{ width: 32px; height: 32px; color: var(--text-muted); cursor: pointer; background: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; border-radius: 9px; justify-content: center; align-items: center; transition: background 0.14s, color 0.14s; display: flex; }
.appli .vue-btn:hover{ background: var(--surface); color: var(--text); }
.appli .vue-btn.on{ background: var(--select-soft); color: var(--select-ink); }
.appli .vue-btn svg{ width: 17px; height: 17px; }
.appli .header{ background: none; align-items: center; gap: 10px; padding: 20px 22px 14px; display: flex; }
.appli .header-back{ color: var(--text); background: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; flex-shrink: 0; justify-content: center; align-items: center; padding: 2px; display: flex; }
.appli .header-title{ font-family: var(--display); letter-spacing: -0.01em; font-size: 18px; font-weight: 700; }
.appli .header-sub{ font-family: var(--mono); letter-spacing: 0.03em; text-transform: uppercase; color: var(--text-muted); margin-top: 4px; font-size: 11px; }
.appli .chip{ border: 1.5px solid var(--border); background: var(--surface); color: var(--text); cursor: pointer; border-radius: 999px; padding: 9px 14px; font-size: 13.5px; font-weight: 600; }
.appli .chip.on{ border-color: var(--select); background: var(--select-soft); color: var(--select-ink); }
.appli .chip-row{ flex-wrap: wrap; gap: 8px; display: flex; }
.appli .opt-row{ border-radius: var(--radius-sm); border: 1.5px solid var(--border); background: var(--surface); cursor: pointer; justify-content: space-between; align-items: center; padding: 13px 14px; font-size: 14.5px; font-weight: 700; display: flex; }
.appli .opt-row.on{ border-color: var(--select); background: var(--select-soft); }
.appli .opt-dot{ border: 2px solid var(--border); border-radius: 50%; flex-shrink: 0; width: 18px; height: 18px; }
.appli .opt-dot.on{ border-color: var(--select); background: var(--select); }
.appli .btn-primary{ border-radius: var(--radius-md); width: 100%; color: var(--on-accent); background: var(--accent); box-shadow: var(--shadow); border-width: medium; border-style: none; border-color: currentcolor; border-image: none; padding: 15px; font-size: 15px; font-weight: 700; }
.appli .btn-pass{ border-radius: var(--radius-md); background: var(--alert); color: var(--on-alert); box-shadow: var(--shadow); cursor: pointer; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; padding: 15px; font-family: inherit; font-size: 15px; font-weight: 700; }
.appli .btn-like{ border-radius: var(--radius-md); background: var(--ok); color: var(--on-ok); box-shadow: var(--shadow); cursor: pointer; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; padding: 15px; font-family: inherit; font-size: 15px; font-weight: 700; }
.appli .btn-ghost{ border: 1.5px solid var(--border); border-radius: var(--radius-md); width: 100%; color: var(--text); background: none; padding: 15px; font-size: 15px; font-weight: 700; }
.appli .field-label{ font-family: var(--mono); letter-spacing: 0.07em; text-transform: uppercase; color: var(--text-muted); margin-bottom: 7px; font-size: 10px; display: block; }
.appli .champ-rdv{ flex: 0 1 auto; width: auto; min-width: 0px; padding: 10px 12px; font-size: 13.5px; }
.appli .btn-ghost svg, .appli .btn-primary svg{ flex-shrink: 0; }
.appli .btn-calendrier{ border-radius: var(--radius-sm); border: 1.5px solid var(--border); background: var(--surface); width: 40px; height: 40px; color: var(--text-muted); cursor: pointer; flex-shrink: 0; justify-content: center; align-items: center; display: flex; }
@media (hover: hover) {
  .appli .btn-calendrier:hover{ background: var(--select-soft); color: var(--select-ink); border-color: var(--select); }
}
.appli .btn-calendrier.on{ background: var(--select-soft); color: var(--select-ink); border-color: var(--select); }
.appli .zone-rdv{ margin-top: 12px; }
.appli .cal-pop{ border: 1.5px solid var(--select); border-radius: var(--radius-sm); background: var(--surface-plein); box-shadow: var(--shadow-soft); max-width: 320px; margin-top: 10px; padding: 10px 11px 12px; }
.appli .cal-tete{ text-transform: capitalize; justify-content: space-between; align-items: center; gap: 8px; padding: 0px 2px 8px; font-size: 13px; font-weight: 700; display: flex; }
.appli .cal-fleche{ width: 28px; height: 28px; color: var(--text-muted); cursor: pointer; background: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; border-radius: 8px; flex-shrink: 0; justify-content: center; align-items: center; display: flex; }
@media (hover: hover) {
  .appli .cal-fleche:hover{ background: var(--bg); color: var(--text); }
}
.appli .cal-grille{ grid-template-columns: repeat(7, 1fr); gap: 2px; display: grid; }
.appli .cal-jours span{ text-align: center; font-family: var(--mono); letter-spacing: 0.04em; color: var(--text-muted); padding-bottom: 4px; font-size: 9.5px; }
.appli .cal-jour{ aspect-ratio: 1 / 1; min-height: 32px; color: var(--text); cursor: pointer; background: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; border-radius: 9px; justify-content: center; align-items: center; font-family: inherit; font-size: 12.5px; font-weight: 600; display: flex; }
@media (hover: hover) {
  .appli .cal-jour:hover:not(:disabled){ background: var(--bg); }
}
.appli .cal-jour:disabled{ color: var(--text-muted); opacity: 0.35; cursor: default; }
.appli .cal-jour.auj{ box-shadow: inset 0 0 0 1.5px var(--border); }
.appli .cal-jour.on{ background: var(--select); color: var(--on-select); box-shadow: none; }
.appli .cal-heure{ border-top: 1px solid var(--border); color: var(--text-muted); align-items: center; gap: 9px; margin-top: 9px; padding-top: 9px; font-size: 12.5px; display: flex; }
.appli .cal-heure input{ border: 1.5px solid var(--border); background: var(--surface); color: var(--text); border-radius: 9px; flex: 0 1 auto; padding: 7px 9px; font-family: inherit; font-size: 13px; }
.appli .rail-texte .dd-compact, .appli .rail-texte .dd-compact > .dd{ width: 100%; }
.appli .rail-texte .dd-compact > .dd > .dd-trigger{ gap: 8px; width: 100%; margin: 0px; padding: 8px 10px; font-size: 13px; }
.appli .rail-texte .dd-compact > .dd > .dd-panel{ width: 100%; min-width: 0px; max-width: none; left: 0px; right: auto; }
.appli .rail-texte .dd-court{ width: min(100%, 212px); }
.appli .rail-texte .dd-compact > .dd-trigger{ gap: 8px; width: 100%; margin: 0px; padding: 8px 10px; font-size: 13px; }
.appli .rail-texte .dd-compact > .dd-trigger .dd-summary{ text-overflow: ellipsis; white-space: nowrap; overflow: hidden; }
.appli .rail-texte .dd-compact > .dd-panel{ width: 100%; min-width: 0px; max-width: none; left: 0px; right: auto; }
.appli .rail-texte .field-input.champ-compact{ width: 100%; margin: 0px; padding: 8px 10px; font-size: 13px; }
.appli .rail-texte > div > .field-input{ width: calc(100% + 19px); margin-left: -9.5px; margin-right: -9.5px; padding-left: 8px; padding-right: 8px; }
.appli .rail-texte > div > .dd{ width: 100%; }
.appli .rail-texte > div > .dd > .dd-trigger .dd-summary{ text-overflow: ellipsis; white-space: nowrap; overflow: hidden; }
.appli .rail-texte > div > .dd > .dd-trigger{ gap: 8px; width: min(100%, 212px); margin: 0px; padding: 8px 10px; font-size: 13px; }
.appli .rail-texte > div > .dd > .dd-panel{ width: min(100%, 212px); min-width: 0px; max-width: none; left: 0px; right: auto; }
.appli .rail-texte > div > .dd > .dd-panel .dd-opt > span{ overflow-wrap: anywhere; }
.appli .criteres-champs .field-input.champ-compact{ padding: 12px 14px; font-size: 14px; }
.appli .criteres-champs .field-input.champ-compact:focus-within{ border-color: var(--text); }
.appli .criteres-champs .montant-saisie::placeholder{ color: var(--text-muted); opacity: 0.7; }
.appli .criteres-champs .dd-compact > .dd > .dd-trigger{ padding: 12px 14px; font-size: 14px; }
.appli .criteres-champs .dd-court{ width: 100%; }
.appli .field-input{ border-radius: var(--radius-sm); border: 1.5px solid var(--border); background: var(--surface); width: 100%; color: var(--text); outline: none; padding: 13px 14px; font-family: inherit; font-size: 14.5px; }
.appli .field-input::placeholder{ color: var(--text-muted); opacity: 0.7; }
.appli .field-input:focus{ border-color: var(--text); }
.appli .carte-fr{ --carte-eau: #a8d3f0; --carte-terre: #f1eee8; --carte-trait: #dcd8d0; --carte-route: #fff; --carte-route-bord: #e3ded4; --carte-axe: #f8dc9b; --carte-axe-bord: #e7c878; --carte-etiquette: #5f6368; --carte-halo: #fff; }
.appli[data-theme="dark"] .carte-fr{ --carte-eau: #17263c; --carte-terre: #232b36; --carte-trait: #39424f; --carte-route: #39434f; --carte-route-bord: #2c343e; --carte-axe: #5a4f32; --carte-axe-bord: #6b5d3a; --carte-etiquette: #9aa0a6; --carte-halo: #232b36; }
.appli .carte-bulle{ z-index: 6; background: var(--voile-dense); border: 1px solid rgba(0, 0, 0, 0); border-radius: 12px; width: max-content; max-width: min(72%, 250px); padding: 10px 11px; position: absolute; transform: translate(-50%, -100%); box-shadow: rgba(22, 35, 63, 0.18) 0px 10px 26px; }
.appli .carte-bulle::after{ content: ""; background: var(--voile-dense); border-radius: 2px; width: 12px; height: 12px; position: absolute; bottom: -6px; left: 50%; transform: translateX(-50%) rotate(45deg); }
.appli .carte-bulle.sous{ transform: translate(-50%); }
.appli .carte-bulle.sous::after{ top: -6px; bottom: auto; }
.appli .carte-bulle .titre{ padding-right: 18px; font-size: 13px; font-weight: 700; line-height: 1.25; }
.appli .carte-bulle .sous{ color: var(--text-muted); margin-top: 2px; font-size: 11.5px; line-height: 1.35; }
.appli .carte-bulle .chiffres{ font-family: var(--mono); letter-spacing: 0.04em; text-transform: uppercase; color: var(--text-muted); margin-top: 6px; font-size: 9.5px; }
.appli .carte-bulle .fermer{ width: 20px; height: 20px; color: var(--text-muted); cursor: pointer; background: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; padding: 0px; font-size: 15px; line-height: 1; position: absolute; top: 4px; right: 5px; }
.appli .carte-bulle .ouvrir{ background: var(--select-soft); width: 100%; color: var(--select-ink); cursor: pointer; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; border-radius: 9px; align-items: center; gap: 7px; margin-top: 9px; padding: 7px 9px; font-family: inherit; font-size: 12px; font-weight: 700; display: flex; }
.appli .champs-paire{ grid-template-rows: auto auto; grid-auto-columns: minmax(0px, 1fr); grid-auto-flow: column; column-gap: 9px; display: grid; }
.appli .champs-paire > .champ{ display: contents; }
.appli .champs-paire .field-input{ box-sizing: border-box; min-width: 0px; max-width: 100%; }
.appli .champs-paire input[type="date"]{ appearance: none; }
.appli .link-btn{ color: var(--accent-ink); cursor: pointer; background: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; padding: 0px; font-family: inherit; font-size: 13.5px; font-weight: 700; }
.appli .demo-btn{ border-radius: var(--radius-md); border: 1.5px solid var(--border); background: var(--surface); color: var(--text); cursor: pointer; flex-direction: column; flex: 1 1 0%; align-items: center; gap: 7px; padding: 14px 8px; font-family: inherit; font-size: 12.5px; font-weight: 700; display: flex; }
.appli .demo-btn svg{ color: var(--text-muted); }
.appli .demo-btn:hover{ border-color: var(--accent); background: var(--accent-soft); }
.appli .logo-needle{ transform-box: view-box; transform-origin: 60px 86px; transition: transform 1.5s cubic-bezier(0.34, 1.28, 0.42, 1); }
@media (prefers-reduced-motion: reduce) {
  .appli .logo-needle{ transition: none; }
}
.appli .dd{ position: relative; }
.appli .dd-trigger{ border-radius: var(--radius-sm); border: 1.5px solid var(--border); background: var(--surface); width: 100%; color: var(--text); text-align: left; cursor: pointer; align-items: center; gap: 10px; padding: 12px 14px; font-family: inherit; font-size: 14px; font-weight: 600; display: flex; }
.appli .dd-trigger.open{ background: var(--voile-menu); border-color: rgba(0, 0, 0, 0); }
.appli .dd-summary{ flex: 1 1 0%; }
.appli .dd-summary.empty{ color: var(--text-muted); font-weight: 400; }
.appli .dd-caret{ color: var(--text-muted); transition: transform 0.18s; display: flex; transform: rotate(90deg); }
.appli .dd-trigger.open .dd-caret{ transform: rotate(270deg); }
@media (prefers-reduced-motion: reduce) {
  .appli .dd-caret{ transition: none; }
}
.appli .dd-panel{ z-index: 30; isolation: isolate; background: none; border: 1px solid rgba(0, 0, 0, 0); border-radius: 14px; position: absolute; top: calc(100% + 6px); left: 0px; right: 0px; overflow: hidden; box-shadow: rgba(22, 35, 63, 0.13) 0px 10px 30px; }
.appli .dd-panel::before{ content: ""; z-index: -1; border-radius: inherit; background: var(--voile-menu); position: absolute; inset: 0px; }
@supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
  .appli .dd-panel::before{ background: var(--voile-dense); }
}
.appli .actions-haut{ flex-shrink: 0; gap: 2px; display: flex; }
.appli .dd-profil{ flex-shrink: 0; position: relative; }
.appli .dd-profil-btn{ width: 38px; height: 38px; color: var(--text-muted); cursor: pointer; background: none; border: 1px solid rgba(0, 0, 0, 0); border-radius: 12px; justify-content: center; align-items: center; padding: 0px; font-family: inherit; transition: background 0.16s, color 0.16s; display: flex; }
@media (hover: hover) {
  .appli .dd-profil-btn:hover{ background: var(--select-soft); color: var(--select-ink); }
}
.appli .dd-profil-btn:active, .appli .dd-profil-btn.open{ background: var(--select-soft); color: var(--select-ink); }
.appli .dd-profil-panel{ z-index: 40; background: var(--voile); width: max-content; min-width: 116px; max-width: 72vw; box-shadow: var(--shadow-soft); border-width: medium; border-style: none; border-color: currentcolor; border-image: none; border-radius: 11px; margin-top: 0px; padding: 4px; position: absolute; top: calc(100% + 5px); left: auto; right: 0px; }
.appli .dd-profil-panel .dd-profil-opt{ white-space: nowrap; text-overflow: ellipsis; width: 100%; color: var(--text-muted); border-radius: 8px; padding: 6px 10px; font-size: 12.5px; line-height: 1.3; display: block; overflow: hidden; }
@media (hover: hover) {
  .appli .dd-profil-panel .dd-profil-opt:hover{ color: var(--text); background: none; }
}
.appli .dd-profil-panel .dd-profil-opt.on{ color: var(--select-ink); background: none; font-weight: 700; }
.appli .dd-profil-panel .dd-profil-ajout{ border-top: 1px solid var(--border); color: var(--accent-ink); border-radius: 0px 0px 8px 8px; margin-top: 2px; padding-top: 6px; font-weight: 600; }
.appli .dd-search{ appearance: none; width: 100%; box-shadow: none; color: var(--text); background: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; outline: none; padding: 12px 14px 6px; font-family: inherit; font-size: 14px; }
.appli .dd-search:focus, .appli .dd-search:focus-visible{ box-shadow: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; outline: none; }
.appli .dd-list{ max-height: 208px; padding: 6px; overflow-y: auto; }
.appli .dd-opt{ width: 100%; color: var(--text); text-align: left; cursor: pointer; background: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; border-radius: 10px; align-items: center; gap: 10px; padding: 10px; font-family: inherit; font-size: 14px; display: flex; }
.appli .dd-opt:hover{ background: var(--surface); }
.appli .dd-opt[hidden], .appli .dd-empty[hidden], .appli .cond[hidden]{ display: none !important; }
.appli .dd-opt .dd-box{ color: rgba(0, 0, 0, 0); background: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; flex-shrink: 0; justify-content: center; align-items: center; width: 18px; height: 18px; display: flex; }
.appli .dd-opt.on{ color: var(--select-ink); font-weight: 700; }
.appli .dd-opt.on .dd-box{ color: var(--select-ink); }
.appli .dd-empty{ text-align: center; color: var(--text-muted); padding: 14px; font-size: 13px; }
.appli .dd-autre{ border-top: 1px solid var(--voile); padding: 6px; }
.appli .dd-autre-btn{ width: 100%; color: var(--accent-ink); text-align: left; cursor: pointer; background: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; border-radius: 10px; align-items: center; gap: 10px; padding: 10px; font-family: inherit; font-size: 14px; font-weight: 600; display: flex; }
.appli .dd-autre-btn .dd-plus{ border: 1.5px dashed var(--border); width: 19px; height: 19px; color: var(--text-muted); border-radius: 6px; flex-shrink: 0; justify-content: center; align-items: center; font-size: 14px; line-height: 1; display: flex; }
.appli .dd-autre.ouverte{ align-items: stretch; gap: 7px; display: flex; }
.appli .dd-autre-input{ border: 1.5px solid var(--select); background: var(--surface); min-width: 0px; color: var(--text); border-radius: 10px; outline: none; flex: 1 1 auto; padding: 10px 12px; font-family: inherit; font-size: 14px; }
.appli .dd-autre-ok{ background: var(--select); color: var(--on-select); cursor: pointer; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; border-radius: 10px; flex: 0 0 auto; padding: 0px 14px; font-family: inherit; font-size: 13px; font-weight: 700; }
.appli .dd-chips{ flex-wrap: wrap; gap: 7px; margin-top: 9px; display: flex; }
.appli .dd-chip{ background: var(--select-soft); color: var(--select-ink); border-radius: 999px; align-items: center; gap: 5px; padding: 6px 7px 6px 11px; font-size: 12.5px; font-weight: 600; display: inline-flex; }
.appli .dd-chip button{ color: inherit; cursor: pointer; background: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; padding: 0px 3px; font-size: 15px; line-height: 1; }
.appli .dd-chip.principale{ background: var(--accent-soft); color: var(--accent-ink); }
.appli .dd-chip.libre{ background: var(--surface); color: var(--text); border: 1px dashed var(--border); }
.appli .dd-chip-star{ color: var(--text-muted); align-items: center; display: inline-flex; padding: 0px 1px 0px 0px !important; }
.appli .dd-chip-star svg{ width: 13px; height: 13px; }
.appli .dd-chip-star.on{ color: var(--accent); }
.appli .set-row{ border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--surface); width: 100%; color: var(--text); text-align: left; cursor: pointer; align-items: center; gap: 13px; padding: 14px 15px; font-family: inherit; font-size: 14.5px; font-weight: 600; display: flex; }
.appli .set-row:hover{ border-color: var(--select); }
.appli .set-row .ico{ background: var(--bg); width: 34px; height: 34px; color: var(--text-muted); border-radius: 10px; flex-shrink: 0; justify-content: center; align-items: center; display: flex; }
.appli .set-row .chev{ color: var(--text-muted); flex-shrink: 0; margin-left: auto; display: flex; }
.appli .set-row .sub{ color: var(--text-muted); margin-top: 2px; font-size: 12.5px; font-weight: 400; display: block; }
.appli .set-row.danger{ color: var(--alert-ink); }
.appli .set-row.danger .ico{ background: var(--alert-soft); color: var(--alert-ink); }
.appli .set-group{ font-family: var(--mono); letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-muted); margin: 22px 0px 10px; font-size: 10px; }
.appli .set-group:first-of-type{ margin-top: 4px; }
.appli .switch{ background: var(--border); cursor: pointer; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; border-radius: 999px; flex-shrink: 0; width: 44px; height: 26px; padding: 0px; transition: background 0.18s; position: relative; }
.appli .switch.on{ background: var(--ok); }
.appli .switch .knob{ background: var(--surface-plein); border-radius: 50%; width: 20px; height: 20px; transition: transform 0.18s; position: absolute; top: 3px; left: 3px; box-shadow: rgba(0, 0, 0, 0.25) 0px 1px 3px; }
.appli .switch.on .knob{ transform: translateX(18px); }
@media (prefers-reduced-motion: reduce) {
  .appli .switch, .appli .switch .knob{ transition: none; }
}
.appli .compl-bande{ z-index: 5; flex-shrink: 0; padding: 2px 22px 4px; position: relative; }
.appli .compl-fixe{ isolation: isolate; border-radius: var(--radius-md); background: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; padding: 13px 15px 16px; position: relative; }
.appli .compl-fixe::before{ content: ""; z-index: -1; border-radius: inherit; background: linear-gradient(to bottom, var(--voile-fin) 0%, var(--voile-fin) 58%, #0000 100%); position: absolute; inset: 0px; mask-image: linear-gradient(rgb(0, 0, 0) 0%, rgb(0, 0, 0) 58%, rgba(0, 0, 0, 0) 100%); }
@supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
  .appli .compl-fixe::before{ background: linear-gradient(to bottom, var(--voile) 0%, var(--voile) 58%, #0000 100%); }
}
.appli .menu-bulle{ background: var(--voile); width: max-content; box-shadow: var(--shadow-soft); border-width: medium; border-style: none; border-color: currentcolor; border-image: none; border-radius: 11px; padding: 4px; }
.appli .menu-bulle::before{ content: none; }
.appli .menu-bulle .dd-opt{ color: var(--text-muted); border-radius: 8px; padding: 6px 10px; font-size: 12.5px; }
@media (hover: hover) {
  .appli .menu-bulle .dd-opt:hover{ color: var(--text); background: none; }
}
.appli .info-hote{ align-items: center; display: inline-flex; position: relative; }
.appli .info-picto{ cursor: pointer; width: 18px; height: 18px; color: var(--text-muted); background: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; justify-content: center; align-items: center; padding: 0px; transition: color 0.15s; display: flex; }
.appli .info-hote.on .info-picto{ color: var(--select-ink); }
.appli .info-bulle svg{ width: 9px; height: 9px; }
.appli .info-bulle{ z-index: 40; background: var(--voile); width: max-content; max-width: min(74vw, 268px); box-shadow: var(--shadow-soft); font-family: var(--texte); letter-spacing: 0px; text-transform: none; color: var(--text-muted); white-space: normal; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; border-radius: 11px; padding: 10px 12px; font-size: 12.5px; line-height: 1.45; display: none; position: absolute; top: calc(100% + 7px); left: -9px; }
.appli .info-hote.on .info-bulle{ display: block; }
@media (hover: hover) {
  .appli .info-hote:hover .info-bulle, .appli .info-hote:focus-within .info-bulle{ display: block; }
}
.appli .photo-grid img, .appli .photo-grid video{ -webkit-user-drag: none; user-select: none; }
.appli .jauge-comp{ background: var(--border); border-radius: 999px; height: 5px; overflow: hidden; }
.appli .jauge-comp > span{ border-radius: 999px; height: 100%; transition: width 0.5s cubic-bezier(0.22, 1, 0.36, 1); display: block; }
.appli .badge-pill{ cursor: pointer; text-align: left; border-radius: 999px; align-items: center; gap: 6px; width: 100%; padding: 6px 9px 6px 6px; font-family: inherit; font-size: 11px; font-weight: 600; line-height: 1.25; transition: box-shadow 0.15s; display: flex; }
.appli .badge-pill .rond{ border-radius: 50%; flex-shrink: 0; justify-content: center; align-items: center; width: 15px; height: 15px; display: inline-flex; }
.appli .badge-pill .rond svg{ width: 10px; height: 10px; }
.appli .emoji-pan{ border-bottom: 1px solid var(--border); background: var(--bg); max-height: 184px; padding: 10px 14px 4px; overflow-y: auto; }
.appli .emoji-grp{ font-family: var(--mono); letter-spacing: 0.06em; text-transform: uppercase; color: var(--text-muted); margin: 6px 0px; font-size: 9px; }
.appli .emoji-row{ flex-wrap: wrap; gap: 2px; display: flex; }
.appli .emoji-btn{ cursor: pointer; background: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; border-radius: 10px; justify-content: center; align-items: center; width: 36px; height: 36px; font-size: 20px; line-height: 1; display: flex; }
.appli .emoji-btn:hover{ background: var(--select-soft); }
.appli .msg-outil{ background: var(--bg); width: 38px; height: 38px; color: var(--text-muted); cursor: pointer; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; border-radius: 50%; flex-shrink: 0; justify-content: center; align-items: center; display: flex; }
.appli .msg-outil.on{ background: var(--select-soft); color: var(--select-ink); }
.appli .msg-piece{ background: var(--surface); border: 1px solid var(--border); text-align: left; cursor: pointer; max-width: 252px; color: var(--text); border-radius: 16px; align-items: center; gap: 11px; padding: 10px 12px; font-family: inherit; display: flex; }
.appli .msg-piece .ext{ background: var(--accent-soft); width: 38px; height: 38px; color: var(--accent-ink); font-family: var(--mono); letter-spacing: 0.02em; border-radius: 11px; flex-shrink: 0; justify-content: center; align-items: center; font-size: 9px; font-weight: 600; display: flex; }
.appli .msg-piece .nom{ text-overflow: ellipsis; white-space: nowrap; font-size: 13px; font-weight: 600; display: block; overflow: hidden; }
.appli .msg-piece .poids{ font-family: var(--mono); letter-spacing: 0.04em; color: var(--text-muted); margin-top: 2px; font-size: 10px; display: block; }
.appli .msg-piece.piece-remplacee{ animation: 1.6s ease-out 0s 1 normal both running piece-flash; }
@keyframes piece-flash { 
  .appli 0%{ border-color: var(--ok); box-shadow: 0 0 0 3px var(--ok-soft); }
  .appli 100%{ border-color: var(--border); box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 3px; }
}
.appli .piece-maj{ white-space: nowrap; color: var(--ok-ink); background: var(--ok-soft); border-radius: 999px; flex-shrink: 0; align-items: center; gap: 5px; padding: 4px 9px; font-size: 11.5px; font-weight: 700; animation: 1.7s ease-out 0s 1 normal both running piece-maj; display: inline-flex; }
@keyframes piece-maj { 
  .appli 0%{ opacity: 0; transform: translateX(-5px); }
  .appli 12%{ opacity: 1; transform: translateX(0px); }
  .appli 72%{ opacity: 1; transform: translateX(0px); }
  .appli 100%{ opacity: 0; transform: translateX(0px); }
}
@media (prefers-reduced-motion: reduce) {
  .appli .msg-piece.piece-remplacee, .appli .piece-maj{ animation: auto ease 0s 1 normal none running none; }
}
.appli .carte-stat{ background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-md); padding: 15px 16px; }
.appli .cartes-douces .carte-stat, .appli .cartes-douces .set-row, .appli .cartes-douces .ligne-recherche, .appli .cartes-douces [style*="background:var(--surface)"]{ background: var(--voile) !important; border-color: rgba(0, 0, 0, 0) !important; }
.appli .cartes-douces .set-row:hover{ border-color: var(--select) !important; }
.appli .stat-titre{ font-size: 14px; font-weight: 700; }
.appli .stat-sous{ color: var(--text-muted); margin-top: 3px; font-size: 12px; line-height: 1.5; }
.appli .graph-bulle{ pointer-events: none; background: var(--text); color: var(--page-bg); white-space: nowrap; box-shadow: var(--shadow-soft); z-index: 4; border-radius: 9px; padding: 7px 10px; font-size: 11.5px; line-height: 1.35; position: absolute; }
.appli .graph-bulle b{ font-family: var(--display); font-size: 14px; }
.appli .carte-douce{ background: var(--voile); border-radius: var(--radius-md); border: 1px solid rgba(0, 0, 0, 0); padding: 2px 14px; }
.appli .notif-carte{ background: var(--voile); border-radius: var(--radius-md); border-width: 1px 1px 1px 3px; border-style: solid; border-color: rgba(0, 0, 0, 0); border-image: none; flex-direction: column; gap: 11px; padding: 13px 14px; display: flex; }
.appli .notif-carte.neuve{ border-left-color: var(--accent); }
.appli .notif-carte .btn-decline{ border-radius: var(--radius-sm); border: 1px solid var(--border); color: var(--alert-ink); cursor: pointer; background: none; flex: 1 1 0%; padding: 9px; font-family: inherit; font-size: 12.5px; font-weight: 700; }
.appli .notif-row{ border-bottom: 1px solid var(--voile-dense); align-items: center; gap: 14px; padding: 14px 0px; display: flex; }
.appli .notif-row:last-child{ border-bottom-width: medium; border-bottom-style: none; border-bottom-color: currentcolor; }
.appli .gauge-needle{ transform-box: view-box; transform-origin: 60px 86px; animation: 1s cubic-bezier(0.33, 1.15, 0.45, 1) 0s 1 normal both running gauge-sweep; }
@keyframes gauge-sweep { 
  .appli 0%{ transform: rotate(0deg); }
  .appli 100%{ transform: rotate(var(--gauge-deg, 0deg)); }
}
@media (prefers-reduced-motion: reduce) {
  .appli .gauge-needle{ transform: rotate(var(--gauge-deg, 0deg)); animation: auto ease 0s 1 normal none running none; }
}
.appli .barre-actions{ background: none; flex-direction: column; gap: 10px; padding: 14px 24px 22px; display: flex; }
.appli .navbar{ padding: 11px 16px calc(16px + env(safe-area-inset-bottom, 0px)); background: none; justify-content: center; display: flex; }
.appli .navbar .pastille-nav{ background: var(--voile); max-width: 420px; box-shadow: var(--shadow-soft); border: 1px solid rgba(0, 0, 0, 0); border-radius: 999px; flex: 1 1 0%; justify-content: space-around; align-items: center; padding: 5px; display: flex; position: relative; }
.appli .navbar .galet{ background: var(--select-soft); opacity: 0; pointer-events: none; border-radius: 999px; transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1), width 0.3s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.2s; position: absolute; top: 0px; left: 0px; }
@media (prefers-reduced-motion: reduce) {
  .appli .navbar .galet{ transition: none; }
}
.appli .navbar .item{ z-index: 1; height: 46px; color: var(--text-muted); cursor: pointer; -webkit-tap-highlight-color: transparent; background: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; border-radius: 999px; justify-content: center; align-items: center; padding: 0px 26px; font-family: inherit; transition: background 0.18s, color 0.18s; display: flex; position: relative; }
.appli .navbar .item svg{ width: 25px; height: 25px; display: block; }
.appli .navbar .item.active{ color: var(--select-ink); }
.appli .navbar .item:active{ transform: scale(0.94); }
.appli .navbar .brandtab{ background: none; width: 77px; padding: 0px; position: relative; }
.appli .navbar .brandtab.active{ background: none; }
.appli .navbar .brandmark{ pointer-events: none; justify-content: center; align-items: center; transition: transform 0.2s cubic-bezier(0.22, 1, 0.36, 1); display: flex; position: absolute; top: 50%; left: 50%; transform: translate(-50%, calc(-50% - 5px)) scale(0.82); }
.appli .navbar .brandmark svg{ width: 72px; height: 72px; }
.appli .navbar .brandtab.active .brandmark{ transform: translate(-50%, calc(-50% - 5px)) scale(1.06); }
.appli .navbar.egal .brandmark, .appli .navbar.egal .brandtab.active .brandmark{ transform: translate(-50%, calc(-50% - 5px)) scale(0.82); }
@media (prefers-reduced-motion: reduce) {
  .appli .navbar .brandmark{ transition: none; }
}
.appli .navbar .point{ background: var(--accent); min-width: 16px; height: 16px; color: var(--on-accent); border: 2px solid var(--bg); font-family: var(--mono); border-radius: 999px; justify-content: center; align-items: center; padding: 0px 4px; font-size: 9px; font-weight: 700; line-height: 1; display: flex; position: absolute; top: 6px; left: calc(50% + 2px); }
.appli .navbar .item.active .point{ border-color: var(--select-soft); }
@media (prefers-reduced-motion: reduce) {
  .appli .navbar .item{ transition: none; }
  .appli .navbar .item:active{ transform: none; }
}
.appli .kanban{ scroll-snap-type: x mandatory; gap: 12px; min-width: 0px; padding: 2px 0px 8px; display: flex; overflow-x: auto; }
.appli .kan-col{ scroll-snap-align: center; flex-direction: column; flex: 0 0 84%; gap: 8px; min-width: 0px; display: flex; }
.appli .kan-tete{ align-items: baseline; gap: 5px; padding: 0px 3px; display: flex; }
.appli .kan-tete b{ font-size: 13px; font-weight: 700; }
.appli .kan-tete .n{ color: inherit; font-size: 13px; font-weight: 700; }
.appli .kan-piste{ background: var(--bg); border-radius: var(--radius-md); border: 1px solid rgba(0, 0, 0, 0); flex-direction: column; flex: 1 1 0%; gap: 9px; min-height: 104px; padding: 9px; display: flex; }
.appli .kan-piste.fin{ background: none; border-style: dashed; flex: 0 0 auto; min-height: 0px; }
.appli .kan-piste.fin.recrute{ border-color: var(--ok); }
.appli .kan-piste.fin.refuse{ border-color: var(--alert); }
.appli .kan-carte{ background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-sm); text-align: left; width: 100%; color: var(--text); cursor: grab; user-select: none; flex-direction: column; gap: 9px; padding: 10px 11px; font-family: inherit; display: flex; }
.appli .kan-carte:hover{ border-color: var(--select); }
.appli .kan-carte.fantome{ opacity: 0.32; }
.appli .kan-vol{ z-index: 90; pointer-events: none; background: var(--surface-plein); border: 1.5px solid var(--accent); border-radius: var(--radius-sm); cursor: grabbing; flex-direction: column; gap: 9px; padding: 10px 11px; display: flex; position: fixed; transform: rotate(-1.5deg); box-shadow: rgba(22, 35, 63, 0.22) 0px 14px 32px; }
.appli .kan-piste.cible{ border-style: solid; border-color: var(--accent); background: var(--accent-soft); }
.appli .kanban.glisse{ scroll-snap-type: none; user-select: none; }
.appli .filtres-board{ flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 12px; display: flex; }
.appli .dd-fiche{ flex-shrink: 0; width: auto; }
.appli .dd-fiche .dd-panel::before{ content: none; }
.appli .fiche-trigger{ border-width: 1px; gap: 5px; width: auto; padding: 6px 8px; font-size: 11.5px; font-weight: 700; }
.appli .fiche-trigger svg{ flex-shrink: 0; width: 15px; height: 15px; }
.appli .fiche-trigger .dd-summary{ text-overflow: ellipsis; white-space: nowrap; flex: 0 1 auto; max-width: 106px; overflow: hidden; }
.appli .dd-etapes{ flex: 1 1 230px; min-width: 0px; max-width: 300px; position: relative; }
.appli .etape-trigger{ border-width: 1px; gap: 9px; padding: 9px 12px; font-size: 13px; font-weight: 700; }
.appli .etape-trigger.on{ background: var(--select-soft); color: var(--select-ink); border-color: rgba(0, 0, 0, 0); }
.appli .etape-trigger .dd-summary{ text-overflow: ellipsis; white-space: nowrap; overflow: hidden; }
.appli .etape-point{ background: var(--select); border-radius: 50%; flex-shrink: 0; width: 8px; height: 8px; }
.appli .etape-point.recrute{ background: var(--ok); }
.appli .etape-point.refuse{ background: var(--alert); }
.appli .etape-point.tout{ border: 1.5px solid var(--text-muted); background: none; }
.appli .etape-n{ font-family: var(--mono); color: var(--text-muted); flex-shrink: 0; font-size: 11px; font-weight: 600; }
.appli .etape-trigger.on .etape-n{ color: var(--select-ink); }
.appli .etape-panel{ box-shadow: rgba(22, 35, 63, 0.13) 0px 10px 30px; }
.appli .dd-list{ padding-bottom: 7px; }
.appli .etape-panel .dd-list{ max-height: none; padding: 5px; }
.appli .etape-opt{ gap: 11px; padding: 9px 11px; font-size: 13.5px; }
.appli .etape-opt .lbl{ text-overflow: ellipsis; white-space: nowrap; flex: 1 1 0%; min-width: 0px; overflow: hidden; }
.appli .etape-opt .etape-n{ font-size: 11.5px; }
.appli .etape-opt.on{ color: var(--select-ink); font-weight: 700; }
.appli .etape-opt.on .etape-n{ color: var(--select-ink); }
.appli .etape-opt.vide .lbl, .appli .etape-opt.vide .etape-n{ color: var(--text-muted); }
.appli .etape-opt.vide .etape-point{ opacity: 0.4; }
.appli .lien-attente{ font-family: inherit; font-size: inherit; font-weight: 700; line-height: inherit; color: var(--accent-ink); cursor: pointer; text-align: left; background: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; padding: 0px; display: inline; }
.appli .lien-attente:hover{ text-decoration: underline; }
.appli .lien-attente.on{ background: var(--accent-soft); border-radius: 999px; padding: 2px 9px; text-decoration: none; }
.appli .lien-attente.on:hover{ text-decoration: none; }
.appli .kanban.seule{ overflow-x: visible; }
.appli .kanban.seule .kan-col{ flex: 1 1 100%; }
.appli[data-format="bureau"] .encart-recrutement{ display: none; }
.appli .kan-carte.bouge{ border-color: var(--ok); box-shadow: 0 0 0 3px var(--ok-soft); animation: 1.5s ease-out 0s 1 normal both running carte-bouge; }
@keyframes carte-bouge { 
  .appli 0%{ transform: scale(0.96); }
  .appli 45%{ transform: scale(1); }
  .appli 100%{ transform: scale(1); box-shadow: rgba(0, 0, 0, 0) 0px 0px 0px 3px; }
}
@media (prefers-reduced-motion: reduce) {
  .appli .kan-carte.bouge{ animation: auto ease 0s 1 normal none running none; }
}
.appli .kan-vide{ color: var(--text-muted); text-align: center; padding: 16px 6px; font-size: 12px; line-height: 1.5; }
.appli .kan-agir{ border-radius: var(--radius-sm); border: 1.5px solid var(--accent); background: var(--accent-soft); width: 100%; color: var(--accent-ink); cursor: pointer; justify-content: center; align-items: center; gap: 6px; padding: 8px; font-family: inherit; font-size: 12px; font-weight: 700; display: flex; }
.appli .kan-etat{ align-items: center; gap: 8px; min-width: 0px; display: flex; }
.appli .kan-etat .puce-tour{ text-overflow: ellipsis; white-space: nowrap; min-width: 0px; display: block; overflow: hidden; }
.appli .kan-duree{ color: var(--text-muted); white-space: nowrap; flex-shrink: 0; font-size: 11.5px; }
.appli .puce-tour{ border-radius: 999px; align-items: center; gap: 5px; padding: 3px 9px; font-size: 10.5px; font-weight: 700; line-height: 1.3; display: inline-flex; }
.appli .frise{ flex-direction: column; display: flex; }
.appli .frise-pas{ gap: 12px; display: flex; }
.appli .frise-rail{ flex-direction: column; flex-shrink: 0; align-items: center; width: 22px; display: flex; }
.appli .frise-rond{ border: 2px solid var(--border); background: var(--surface); width: 22px; height: 22px; color: var(--text-muted); border-radius: 50%; flex-shrink: 0; justify-content: center; align-items: center; display: flex; }
.appli .frise-rond svg{ width: 12px; height: 12px; }
.appli .frise-rond.fait{ background: var(--ok); border-color: var(--ok); color: var(--on-ok); }
.appli .frise-rond.ici{ background: var(--accent); border-color: var(--accent); color: var(--on-accent); }
.appli .frise-trait{ background: var(--border); flex: 1 1 0%; width: 2px; min-height: 14px; }
.appli .frise-trait.fait{ background: var(--ok); }
.appli .frise-corps{ flex: 1 1 0%; min-width: 0px; padding-bottom: 16px; }
.appli .frise-titre{ font-size: 13.5px; font-weight: 700; line-height: 1.25; display: block; }
.appli .frise-note{ color: var(--text-muted); margin-top: 3px; font-size: 11.5px; line-height: 1.5; display: block; }
.appli .frise-tete{ text-align: left; width: 100%; color: inherit; cursor: pointer; background: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; align-items: flex-start; gap: 10px; margin: 0px; padding: 0px; font-family: inherit; display: flex; }
.appli .frise-tete:hover .frise-titre{ color: var(--accent-ink) !important; }
.appli .frise-tete.fixe{ cursor: default; }
.appli .frise-tete.fixe:hover .frise-titre{ color: inherit !important; }
.appli .pieces-tete{ width: 100%; color: var(--text); text-align: left; cursor: pointer; background: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; align-items: center; gap: 10px; padding: 0px; font-family: inherit; display: flex; }
.appli .pieces-tete .field-label{ flex: 1 1 0%; min-width: 0px; }
.appli .pieces-chev{ color: var(--text-muted); flex-shrink: 0; display: flex; }
.appli .pieces-chev svg{ transition: transform 0.18s; }
.appli .pieces-tete.ouvert .pieces-chev svg{ transform: rotate(90deg); }
@media (prefers-reduced-motion: reduce) {
  .appli .pieces-chev svg{ transition: none; }
}
.appli .parcours-tete{ width: 100%; color: var(--text); text-align: left; cursor: pointer; background: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; align-items: center; gap: 12px; padding: 0px; font-family: inherit; display: flex; }
.appli .parcours-chev{ color: var(--text-muted); flex-shrink: 0; display: flex; }
.appli .parcours-chev svg{ transition: transform 0.18s; }
.appli .parcours-tete.ouvert .parcours-chev svg{ transform: rotate(90deg); }
@media (prefers-reduced-motion: reduce) {
  .appli .parcours-chev svg{ transition: none; }
}
.appli .frise-chev{ color: var(--text-muted); flex-shrink: 0; align-items: center; gap: 7px; margin-top: 1px; display: flex; }
.appli .frise-chev svg{ transition: transform 0.16s; }
.appli .frise-tete.ouvert .frise-chev svg{ transform: rotate(90deg); }
.appli .frise-nb{ font-family: var(--mono); background: var(--accent-soft); min-width: 17px; height: 17px; color: var(--accent-ink); border-radius: 999px; justify-content: center; align-items: center; padding: 0px 5px; font-size: 9.5px; font-weight: 700; display: flex; }
.appli .frise-contenu{ border-top: 1px solid var(--border); margin-top: 11px; padding-top: 11px; }
@media (prefers-reduced-motion: reduce) {
  .appli .frise-chev svg{ transition: none; }
}
.appli .piece-ligne{ text-align: left; width: 100%; color: var(--text); cursor: pointer; background: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; align-items: flex-start; gap: 10px; padding: 8px 0px; font-family: inherit; display: flex; }
.appli .piece-case{ border: 1.5px solid var(--border); background: var(--surface); width: 20px; height: 20px; color: var(--on-ok); border-radius: 6px; flex-shrink: 0; justify-content: center; align-items: center; margin-top: 1px; display: flex; }
.appli .piece-case svg{ width: 12px; height: 12px; }
.appli .piece-case.on{ background: var(--ok); border-color: var(--ok); }
.appli .piece-bloc{ border-bottom: 1px solid var(--border); }
.appli .piece-bloc:last-child{ border-bottom-width: medium; border-bottom-style: none; border-bottom-color: currentcolor; }
.appli .piece-jointe{ align-items: center; gap: 8px; margin: 0px 0px 9px 30px; display: flex; }
.appli .piece-joindre{ border: 1.5px solid var(--border); background: var(--surface); color: var(--text-muted); cursor: pointer; border-radius: 999px; align-items: center; gap: 7px; margin: 0px 0px 9px 30px; padding: 6px 11px; font-family: inherit; font-size: 12px; font-weight: 600; display: inline-flex; }
.appli .piece-joindre:hover{ border-color: var(--accent); color: var(--accent-ink); }
.appli .piece-joindre svg{ width: 14px; height: 14px; }
.appli .piece-attente{ color: var(--text-muted); margin: 0px 0px 9px 30px; font-size: 11.5px; line-height: 1.5; }
.appli[data-format="bureau"] .kanban{ scroll-snap-type: none; }
.appli[data-format="bureau"] .kan-col{ flex: 0 0 198px; }
.appli[data-format="bureau"] .kanban.seule .kan-col{ flex: 0 0 min(100%, 420px); }
.appli .avatar-circle{ background: var(--bg); color: var(--text); border-radius: 50%; flex-shrink: 0; justify-content: center; align-items: center; font-weight: 800; display: flex; }
.appli .avatar-sq{ background: var(--accent-soft); color: var(--accent-ink); border-radius: 20%; flex-shrink: 0; justify-content: center; align-items: center; display: flex; }
.appli .tag{ background: var(--bg); color: var(--text-muted); border: 1px solid var(--border); border-radius: 999px; padding: 6px 11px; font-size: 12px; font-weight: 600; }
.appli .tag.principale{ background: var(--accent-soft); color: var(--accent-ink); border-color: var(--accent); align-items: center; gap: 5px; font-weight: 700; display: inline-flex; }
.appli .tag.principale svg{ flex-shrink: 0; width: 12px; height: 12px; }
.appli .gal-video{ z-index: 2; color: rgb(255, 255, 255); font-family: var(--mono); letter-spacing: 0.05em; text-transform: uppercase; pointer-events: none; background: rgba(10, 16, 30, 0.62); border-radius: 999px; align-items: center; gap: 5px; padding: 4px 10px; font-size: 9.5px; display: inline-flex; position: absolute; bottom: 12px; left: 12px; }
.appli .gal-voile{ z-index: 1; pointer-events: none; background: linear-gradient(rgba(22, 35, 63, 0.3) 0%, rgba(22, 35, 63, 0.1) 55%, rgba(22, 35, 63, 0) 100%); height: 52px; position: absolute; top: 0px; left: 0px; right: 0px; }
.appli .gal{ touch-action: pan-y; user-select: none; }
.appli .gal img, .appli .photo-plein img{ pointer-events: none; -webkit-user-drag: none; user-select: none; }
.appli .gal-bars{ z-index: 2; pointer-events: none; gap: 4px; display: flex; position: absolute; top: 8px; left: 10px; right: 10px; }
.appli .gal-bar{ background: rgba(255, 255, 255, 0.45); border-radius: 999px; flex: 1 1 0%; height: 3px; }
.appli .gal-bar.on{ background: rgb(255, 255, 255); }
.appli .gal-zone{ cursor: pointer; z-index: 1; -webkit-tap-highlight-color: transparent; background: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; width: 34%; padding: 0px; position: absolute; top: 0px; bottom: 0px; }
.appli .gal-zone.gauche{ left: 0px; }
.appli .gal-zone.droite{ right: 0px; }
.appli .gal-zone.centre{ justify-content: center; align-items: flex-end; width: 32%; padding-bottom: 10px; display: flex; left: 34%; }
.appli .gal-loupe{ color: rgb(255, 255, 255); backdrop-filter: blur(2px); background: rgba(22, 35, 63, 0.42); border-radius: 50%; justify-content: center; align-items: center; width: 30px; height: 30px; display: flex; }
.appli .match-intro{ z-index: 80; cursor: pointer; background: radial-gradient(circle at 50% 47%, var(--accent-soft) 0%, var(--bg) 68%); justify-content: center; align-items: center; animation: 0.22s ease-out 0s 1 normal both running mi-voile, 0.42s ease-in 1.3s 1 normal forwards running mi-sortie; display: flex; position: absolute; inset: 0px; }
.appli .match-intro .mi-logo{ width: min(58vw, 190px); height: auto; overflow: visible; }
.appli .mi-arc{ stroke-dasharray: 70; stroke-dashoffset: 70px; animation: 0.62s cubic-bezier(0.33, 1, 0.68, 1) 0.1s 1 normal forwards running mi-trace; }
.appli .mi-needle{ transform-box: view-box; transform-origin: 60px 86px; animation: 1.05s cubic-bezier(0.34, 1.32, 0.64, 1) 0.1s 1 normal forwards running mi-aiguille; transform: rotate(-52deg); }
.appli .mi-onde{ transform-box: view-box; transform-origin: 60px 86px; opacity: 0; animation: 0.85s cubic-bezier(0.22, 1, 0.36, 1) 0.78s 1 normal forwards running mi-onde; }
@keyframes mi-voile { 
  .appli 0%{ opacity: 0; }
  .appli 100%{ opacity: 1; }
}
@keyframes mi-sortie { 
  .appli 100%{ opacity: 0; transform: scale(1.07); }
}
@keyframes mi-trace { 
  .appli 100%{ stroke-dashoffset: 0; }
}
@keyframes mi-aiguille { 
  .appli 0%{ transform: rotate(-52deg); }
  .appli 42%{ transform: rotate(46deg); }
  .appli 72%{ transform: rotate(-31deg); }
  .appli 100%{ transform: rotate(-20deg); }
}
@keyframes mi-onde { 
  .appli 0%{ opacity: 0; transform: scale(0.45); }
  .appli 22%{ opacity: 0.55; }
  .appli 100%{ opacity: 0; transform: scale(4.4); }
}
.appli .sig-zone{ border: 1.5px dashed var(--border); border-radius: var(--radius-sm); background: var(--surface-plein); height: 150px; margin-top: 6px; position: relative; overflow: hidden; }
.appli .sig-zone canvas{ touch-action: none; cursor: crosshair; width: 100%; height: 100%; display: block; position: absolute; inset: 0px; }
.appli .sig-aide{ text-align: center; color: var(--text-muted); pointer-events: none; font-size: 11.5px; position: absolute; bottom: 9px; left: 0px; right: 0px; }
.appli .texte-edit{ resize: none; background: var(--surface-plein); width: 100%; color: var(--text); font-family: var(--mono); border-width: medium; border-style: none; border-color: currentcolor; border-image: none; outline: none; }
.appli .texte-plein{ z-index: 72; background: var(--surface-plein); flex-direction: column; animation: 0.18s ease 0s 1 normal none running modalFond; display: flex; position: absolute; inset: 0px; }
.appli .texte-tete{ border-bottom: 1px solid var(--border); flex-shrink: 0; align-items: center; gap: 12px; padding: 14px 16px; display: flex; }
.appli .texte-corps{ white-space: pre-wrap; color: var(--text); flex: 1 1 0%; padding: 18px 20px 28px; font-size: 12.5px; line-height: 1.65; overflow-y: auto; }
@media (prefers-reduced-motion: reduce) {
  .appli .texte-plein{ animation: auto ease 0s 1 normal none running none; }
}
.appli .photo-plein{ z-index: 70; touch-action: pan-y; user-select: none; background: rgba(10, 16, 30, 0.95); justify-content: center; align-items: center; animation: 0.18s ease 0s 1 normal none running modalFond; display: flex; position: absolute; inset: 0px; }
.appli .photo-plein img, .appli .photo-plein video{ object-fit: contain; max-width: 100%; max-height: 100%; display: block; }
.appli .photo-plein .gal-fleche{ display: none; }
.appli .photo-plein.a-video .gal-zone{ justify-content: center; align-items: center; width: 60px; height: 60px; display: flex; top: 50%; bottom: auto; transform: translateY(-50%); }
.appli .photo-plein.a-video .gal-fleche{ color: rgb(255, 255, 255); background: rgba(255, 255, 255, 0.18); border-radius: 50%; justify-content: center; align-items: center; width: 36px; height: 36px; display: flex; }
.appli .photo-plein .gal-bars{ top: 14px; }
.appli .photo-plein .gal-bar{ background: rgba(255, 255, 255, 0.32); }
.appli .photo-plein .gal-bar.on{ background: rgb(255, 255, 255); }
.appli .photo-fermer{ z-index: 3; color: rgb(255, 255, 255); cursor: pointer; background: rgba(255, 255, 255, 0.18); border-width: medium; border-style: none; border-color: currentcolor; border-image: none; border-radius: 50%; justify-content: center; align-items: center; width: 38px; height: 38px; display: flex; position: absolute; top: 12px; right: 14px; }
@media (prefers-reduced-motion: reduce) {
  .appli .photo-plein{ animation: auto ease 0s 1 normal none running none; }
}
.appli .swipe-zone{ flex-direction: column; flex: 1 1 0%; min-height: 0px; display: flex; position: relative; }
.appli .swipe-row{ pointer-events: none; background: none; justify-content: center; align-items: center; gap: 26px; padding: 10px 0px 6px; display: flex; position: absolute; bottom: 0px; left: 0px; right: 0px; }
.appli .swipe-row .swipe-btn{ pointer-events: auto; z-index: 1; position: relative; }
.appli .swipe-fond{ pointer-events: none; background: var(--bg); opacity: 0; height: 124px; transition: opacity 0.18s; position: absolute; bottom: 0px; left: 0px; right: 0px; mask-image: linear-gradient(rgba(0, 0, 0, 0) 0%, rgb(0, 0, 0) 58%); }
@media (prefers-reduced-motion: reduce) {
  .appli .swipe-fond{ transition: none; }
}
.appli .swipe-btn{ border-width: medium; border-style: none; border-color: currentcolor; border-image: none; border-radius: 50%; justify-content: center; align-items: center; display: flex; }
.appli .swipe-btn.pass{ background: var(--alert); width: 60px; height: 60px; box-shadow: 0 0 0 4px var(--bg), var(--shadow-soft); color: var(--on-alert); }
.appli .swipe-btn.like{ background: var(--ok); width: 68px; height: 68px; box-shadow: 0 0 0 4px var(--bg), var(--shadow-soft); color: var(--on-ok); }
.appli .rail{ display: none; }
.appli[data-format="bureau"] .rig{ max-width: 1240px; padding: 18px 20px 26px; }
.appli[data-format="bureau"] .rig-top{ max-width: 100%; }
.appli[data-format="bureau"] .phone{ border-radius: 20px; flex-direction: row; max-width: 100%; height: calc(100dvh - 116px); max-height: none; }
.appli[data-format="bureau"] .rail{ z-index: 8; background: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; flex-shrink: 0; width: 76px; padding: 0px; display: block; position: relative; }
.appli[data-format="bureau"] .rail:empty{ display: none; }
.appli[data-format="bureau"] #app{ background: var(--bg); }
.appli[data-format="bureau"] .screen{ border-inline: 1px solid var(--border); width: 100%; max-width: 720px; margin: 0px auto; }
.appli[data-format="bureau"] .screen.large{ max-width: 100%; }
.appli[data-format="bureau"] .navbar{ display: none; }
.appli[data-format="bureau"] .rail:empty + #app .screen{ max-width: 470px; }
.appli[data-format="bureau"] .photo-grid{ grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)) !important; }
.appli[data-format="bureau"] .gal{ height: 320px !important; }
.appli[data-format="bureau"] .carte-fr{ max-width: 430px; margin: 0px auto; }
.appli[data-format="bureau"] .swipe-zone .scroll{ padding-block-start: 20px !important; padding-inline: max(20px, 50% - 235px) !important; }
.appli[data-format="bureau"] .topbar, .appli[data-format="bureau"] .icon-btn[onclick="goNotifs()"], .appli[data-format="bureau"] .icon-btn[onclick="goSettings()"], .appli .screen.racine .header-back, .appli[data-format="bureau"] .screen.large .header-back, .appli[data-format="bureau"] .screen.racine-bureau .header-back{ display: none; }
.appli[data-format="bureau"] .vues-row{ padding-top: 14px; }
.appli[data-format="telephone"] .rig-label{ display: none; }
.appli .rail-panneau{ background: var(--voile); border-right: 1px solid rgba(0, 0, 0, 0); flex-direction: column; gap: 3px; width: 76px; padding: 18px 14px 16px; transition: width 0.22s cubic-bezier(0.22, 1, 0.36, 1), background 0.22s, border-color 0.22s, box-shadow 0.22s; display: flex; position: absolute; top: 0px; bottom: 0px; left: 0px; overflow: hidden; }
.appli .rail:hover .rail-panneau, .appli .rail:focus-within .rail-panneau{ background: var(--voile); width: 238px; box-shadow: var(--shadow-soft); border-right-color: rgba(0, 0, 0, 0); }
.appli .rail-verre:hover .rail-panneau, .appli .rail-verre:focus-within .rail-panneau{ background: var(--voile-leger); }
@supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
  .appli .rail:hover .rail-panneau, .appli .rail:focus-within .rail-panneau{ background: var(--voile-dense); }
}
@media (prefers-reduced-motion: reduce) {
  .appli .rail-panneau{ transition: none; }
}
.appli .rail-marque{ height: 46px; font-family: var(--display); white-space: nowrap; flex-shrink: 0; align-items: center; padding: 0px 13px 16px; font-size: 21px; font-weight: 700; display: flex; }
.appli .rail-item{ color: var(--text-muted); text-align: left; cursor: pointer; background: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; border-radius: 12px; flex-shrink: 0; align-items: center; gap: 12px; width: 100%; padding: 11px 12px; font-family: inherit; font-size: 14px; font-weight: 600; transition: background 0.14s; display: flex; position: relative; }
.appli .rail-item:hover{ background: var(--surface); }
.appli .rail-item.on{ background: var(--select-soft); color: var(--select-ink); font-weight: 700; }
.appli .rail-item svg{ flex-shrink: 0; width: 22px; height: 22px; }
.appli .rail-item.marque svg{ width: 44px; height: 44px; margin: -11px; }
.appli .rail-item > span:not(.pastille), .appli .rail-marque > span{ white-space: nowrap; opacity: 0; line-height: 1.3; transition: opacity 0.16s; }
.appli .rail:hover .rail-item > span:not(.pastille), .appli .rail:hover .rail-marque > span, .appli .rail:focus-within .rail-item > span:not(.pastille), .appli .rail:focus-within .rail-marque > span{ opacity: 1; }
.appli .rail-item .pastille{ background: var(--accent); min-width: 16px; height: 16px; color: var(--on-accent); font-family: var(--mono); border: 2px solid var(--bg); border-radius: 999px; justify-content: center; align-items: center; padding: 0px 4px; font-size: 9px; font-weight: 700; line-height: 1; display: flex; position: absolute; top: 6px; left: 25px; }
.appli .rail:hover .rail-item .pastille, .appli .rail:focus-within .rail-item .pastille{ border-color: var(--surface); }
.appli .rail-item.on .pastille{ border-color: var(--select-soft); }
.appli .rail-bas{ border-top: 1px solid var(--border); flex-direction: column; flex-shrink: 0; gap: 3px; margin-top: auto; padding-top: 12px; display: flex; }
.appli .rail-profil{ position: relative; }
.appli .rail-profil .dd-profil-panel{ width: auto; max-width: none; inset: auto 0px calc(100% + 6px); }
.appli .photo-grid{ grid-template-columns: repeat(3, 1fr); gap: 9px; display: grid; }
.appli .photo-tuile{ aspect-ratio: 1 / 1; border-radius: var(--radius-md); background: var(--bg); cursor: grab; touch-action: none; position: relative; overflow: hidden; }
.appli .photo-tuile:active{ cursor: grabbing; }
.appli .photo-tuile.bouge{ opacity: 0.45; }
.appli .photo-tuile img, .appli .photo-tuile video{ object-fit: cover; width: 100%; height: 100%; display: block; }
.appli .photo-tuile .photo-badge{ background: var(--voile-dense); color: var(--text); font-family: var(--mono); letter-spacing: 0.05em; text-transform: uppercase; border-radius: 999px; padding: 3px 7px; font-size: 8.5px; position: absolute; top: 6px; left: 6px; }
.appli .photo-tuile .photo-retirer{ background: var(--voile-dense); width: 24px; height: 24px; color: var(--alert-ink); cursor: pointer; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; border-radius: 50%; justify-content: center; align-items: center; display: flex; position: absolute; top: 5px; right: 5px; }
.appli .photo-ajout{ aspect-ratio: 1 / 1; border: 1.5px dashed var(--border); border-radius: var(--radius-md); background: var(--surface); width: 100%; color: var(--text-muted); cursor: pointer; justify-content: center; align-items: center; display: flex; }
.appli .photo-ajout:hover{ border-color: var(--select); color: var(--select-ink); }
.appli .photo-ajout:disabled{ opacity: 0.5; cursor: progress; }
.appli .dd-panel::before, .appli .menu-bulle, .appli .info-bulle, .appli .dd-trigger.open, .appli .dd-profil-panel{ background: var(--menu-fond); }
.appli .sr-only{ clip: rect(0px, 0px, 0px, 0px); white-space: nowrap; border: 0px; width: 1px; height: 1px; margin: -1px; padding: 0px; position: absolute; overflow: hidden; }
.appli .info-hote.sans-bulle:hover .info-bulle, .appli .info-hote.sans-bulle:focus-within .info-bulle{ display: none; }
.appli [aria-disabled="true"]{ opacity: 0.55; cursor: not-allowed; }
.appli[data-format="bureau"] .actions-haut .icon-btn.nav-globale{ display: none; }
.appli:not([data-format="telephone"]) .actions-haut .icon-btn.nav-globale{ display: none; }
.appli .icon-btn .pastille-cloche{ background: var(--accent); min-width: 15px; height: 15px; color: var(--on-accent); font-family: var(--mono); border-radius: 999px; justify-content: center; align-items: center; padding: 0px 3.5px; font-size: 9px; font-weight: 700; display: flex; position: absolute; top: -1px; right: -1px; }
@keyframes port-spin { 
  .appli 100%{ transform: rotate(360deg); }
}
.appli .btn-spinner{ border-width: 2px; border-style: solid; border-color: currentcolor color-mix(in srgb, currentcolor 35%, transparent 65%) color-mix(in srgb, currentcolor 35%, transparent 65%); border-image: none; border-radius: 50%; flex-shrink: 0; width: 15px; height: 15px; animation: 0.7s linear 0s infinite normal none running port-spin; }
@keyframes port-enregistre-pop { 
  .appli 0%{ transform: scale(1); }
  .appli 30%{ transform: scale(1.035); }
  .appli 100%{ transform: scale(1); }
}
.appli .btn-enregistre-ok{ animation: 0.6s ease 0s 1 normal none running port-enregistre-pop; }
.appli .btn-primary, .appli .btn-ghost{ transition: transform 0.12s, filter 0.14s, box-shadow 0.16s, background-color 0.16s, border-color 0.16s; }
.appli .btn-primary:active:not(:disabled):not([aria-disabled="true"]), .appli .btn-ghost:active:not(:disabled):not([aria-disabled="true"]){ transform: scale(0.975); }
.appli .btn-primary:active:not(:disabled):not([aria-disabled="true"]){ filter: brightness(0.97); }
@media (hover: hover) {
  .appli .btn-primary:hover:not(:disabled):not([aria-disabled="true"]){ filter: brightness(1.03); box-shadow: var(--shadow-lg); transform: translateY(-1px); }
  .appli .btn-ghost:hover:not(:disabled):not([aria-disabled="true"]){ border-color: var(--text-muted); transform: translateY(-1px); }
}
.appli .notif-carte .btn-decline{ transition: transform 0.12s, border-color 0.16s; }
.appli .notif-carte .btn-decline:active{ transform: scale(0.975); }
@media (hover: hover) {
  .appli .notif-carte .btn-decline:hover{ border-color: var(--text-muted); }
}
@media (prefers-reduced-motion: reduce) {
  .appli .btn-primary, .appli .btn-ghost, .appli .notif-carte .btn-decline{ transition: none; }
  .appli .btn-primary:active, .appli .btn-ghost:active, .appli .notif-carte .btn-decline:active{ transform: none; }
  .appli .btn-primary:hover, .appli .btn-ghost:hover{ box-shadow: none; transform: none; }
  .appli .btn-enregistre-ok{ animation: auto ease 0s 1 normal none running none; }
}
.appli .msg-ligne{ align-items: center; gap: 8px; display: flex; position: relative; }
.appli .msg-contenu{ flex-direction: column; gap: 6px; min-width: 0px; display: flex; }
.appli .msg-suppr{ width: 30px; height: 30px; color: var(--text-muted); cursor: pointer; opacity: 0; pointer-events: none; background: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; border-radius: 50%; flex-shrink: 0; justify-content: center; align-items: center; transition: opacity 0.15s, background 0.15s, color 0.15s; display: flex; }
@media (hover: hover) {
  .appli .msg-ligne.supprimable:hover .msg-suppr{ opacity: 1; pointer-events: auto; }
  .appli .msg-suppr:hover{ background: var(--alert-soft); color: var(--alert-ink); }
}
@media (hover: none) {
  .appli .msg-ligne.sans-texte .msg-suppr{ opacity: 0.7; pointer-events: auto; }
}
.appli .msg-ligne.choisi .msg-suppr{ opacity: 1; pointer-events: auto; background: var(--alert-soft); color: var(--alert-ink); }
.appli .msg-ligne.choisi .msg-contenu{ opacity: 0.72; transition: opacity 0.15s; }
.appli .msg-supprime{ color: var(--text-muted); background: var(--bg); border: 1px solid var(--border); align-items: center; gap: 7px; padding: 8px 13px; font-size: 12.5px; font-style: italic; display: inline-flex; }
.appli .msg-confirm{ z-index: 6; border-radius: var(--radius-sm); background: var(--menu-fond); border: 1px solid var(--border); width: 250px; max-width: calc(-48px + 100vw); box-shadow: var(--shadow); color: var(--text); text-align: left; transform-origin: 100% 100%; padding: 13px 14px 12px; animation: 0.16s ease-out 0s 1 normal both running msg-confirm-in; position: absolute; bottom: calc(100% + 8px); right: 0px; }
.appli .msg-confirm::after{ content: ""; background: inherit; border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); width: 10px; height: 10px; position: absolute; bottom: -6px; right: 22px; transform: rotate(45deg); }
.appli .msg-confirm.dessous{ transform-origin: 100% 0px; top: calc(100% + 8px); bottom: auto; }
.appli .msg-confirm.dessous::after{ border-right-width: medium; border-bottom-width: medium; border-right-style: none; border-bottom-style: none; border-right-color: currentcolor; border-bottom-color: currentcolor; border-image: none; border-left: 1px solid var(--border); border-top: 1px solid var(--border); top: -6px; bottom: auto; }
.appli .msg-confirm-annuler, .appli .msg-confirm-ok{ cursor: pointer; border-radius: 9px; flex: 1 1 0%; padding: 8px 10px; font-family: inherit; font-size: 12.5px; font-weight: 700; }
.appli .msg-confirm-annuler{ border: 1px solid var(--border); background: var(--surface); color: var(--text); }
.appli .msg-confirm-ok{ background: var(--alert); color: var(--on-alert); border-width: medium; border-style: none; border-color: currentcolor; border-image: none; }
.appli .msg-confirm-ok:disabled{ opacity: 0.6; cursor: progress; }
@keyframes msg-confirm-in { 
  .appli 0%{ opacity: 0; transform: translateY(4px) scale(0.97); }
  .appli 100%{ opacity: 1; transform: none; }
}
.appli .msg-confirm.dessous{ animation-name: msg-confirm-in-bas; }
@keyframes msg-confirm-in-bas { 
  .appli 0%{ opacity: 0; transform: translateY(-4px) scale(0.97); }
  .appli 100%{ opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .appli .msg-confirm{ animation: auto ease 0s 1 normal none running none; }
}
.appli .msg-heure{ font-family: var(--mono); letter-spacing: 0.04em; color: var(--text-muted); white-space: nowrap; opacity: 0; pointer-events: none; flex-shrink: 0; font-size: 9.5px; transition: opacity 0.15s; }
@media (hover: hover) {
  .appli .msg-ligne:hover .msg-heure{ opacity: 1; }
}
.appli .msg-ligne.heure-vue .msg-heure, .appli .msg-ligne.choisi .msg-heure{ opacity: 1; }
.appli .kn-compat{ background: var(--accent-soft); color: var(--accent-ink); font-family: var(--mono); letter-spacing: 0.02em; border-radius: 999px; flex-shrink: 0; padding: 4px 9px; font-size: 11px; font-weight: 700; }
.appli .kn-ligne{ border-radius: 12px; transition: background 0.14s; }
.appli .kn-carte{ transition: transform 0.18s, box-shadow 0.18s, border-color 0.18s; }
@media (hover: hover) {
  .appli .kn-ligne:hover{ background: var(--surface) !important; }
  .appli .kn-carte:hover{ box-shadow: var(--shadow-soft); transform: translateY(-2px); border-color: var(--select) !important; }
}
@media (prefers-reduced-motion: reduce) {
  .appli .kn-carte{ transition: none; }
  .appli .kn-carte:hover{ transform: none; }
}
.appli .rig, .appli[data-format] .rig{ gap: 0px; width: 100%; max-width: none; height: 100dvh; padding: 0px; }
.appli .phone, .appli[data-format] .phone{ width: 100%; max-width: none; height: 100dvh; max-height: none; box-shadow: none; border-radius: 0px; flex: 1 1 0%; min-height: 0px; }
.appli .carte-badges{ flex-wrap: wrap; gap: 6px; margin-top: 10px; display: flex; }
.appli .carte-badges span{ background: var(--ok-soft); color: var(--ok-ink); border-radius: 999px; align-items: center; gap: 5px; padding: 3px 9px 3px 4px; font-size: 11px; font-weight: 700; display: inline-flex; }
.appli .carte-badges svg{ background: var(--ok); width: 14px; height: 14px; color: var(--on-ok); border-radius: 50%; flex-shrink: 0; padding: 3px; }
.appli .carte-bref{ border-radius: var(--radius-sm); background: var(--bg); grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 10px 18px; margin: 14px 0px 0px; padding: 12px 14px; display: grid; }
.appli .carte-bref div{ min-width: 0px; }
.appli .carte-bref dt{ font-family: var(--mono); letter-spacing: 0.05em; text-transform: uppercase; color: var(--text-muted); font-size: 9.5px; }
.appli .carte-bref dd{ margin: 3px 0px 0px; font-size: 13px; line-height: 1.4; }
.appli .carte-glissable{ touch-action: pan-y; user-select: none; cursor: grab; will-change: transform; position: relative; }
.appli .carte-glissable.glisse{ cursor: grabbing; }
.appli .carte-glissable img, .appli .carte-glissable video{ -webkit-user-drag: none; }
.appli .carte-tampon{ z-index: 5; font-family: var(--display); letter-spacing: 0.06em; text-transform: uppercase; background: color-mix(in srgb, var(--surface) 70%, transparent); pointer-events: none; border: 3px solid; border-radius: 10px; padding: 6px 14px; font-size: 22px; font-weight: 800; position: absolute; top: 34px; }
.appli .carte-tampon.like{ color: var(--ok); left: 22px; }
.appli .carte-tampon.pass{ color: var(--alert); right: 22px; }
.appli .swipe-row{ padding-bottom: 22px !important; }
.appli[data-format="bureau"] .swipe-row{ padding-bottom: 34px !important; }
.appli .swipe-fond{ height: 150px; }
.appli .modal.sortie{ animation: 0.26s cubic-bezier(0.4, 0, 1, 1) 0s 1 normal forwards running modalDescend; }
.appli .modal-fond.sortie{ pointer-events: none; animation: 0.26s ease 0s 1 normal forwards running modalFondSort; }
@keyframes modalDescend { 
  .appli 0%{ transform: translateY(0px); }
  .appli 100%{ transform: translateY(100%); }
}
@keyframes modalFondSort { 
  .appli 0%{ opacity: 1; }
  .appli 100%{ opacity: 0; }
}
.appli .fait{ background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-sm); text-align: center; flex-direction: column; flex: 1 1 0px; justify-content: center; align-items: center; gap: 4px; min-width: min-content; padding: 10px 4px; display: flex; }
.appli .rdv-ligne{ flex-wrap: wrap; align-items: center; gap: 8px; padding: 7px 0px; font-size: 13px; display: flex; }
.appli .rdv-etat{ color: var(--text-muted); align-items: center; gap: 5px; font-size: 11.5px; font-weight: 600; display: inline-flex; }
.appli .rdv-etat.ok{ color: var(--ok-ink); }
.appli .rdv-decliner, .appli .btn-valider-rdv{ border-radius: var(--radius-sm); cursor: pointer; padding: 7px 12px; font-family: inherit; font-size: 12px; font-weight: 700; }
.appli .rdv-decliner{ background: var(--surface); border: 1px solid var(--border); color: var(--text); }
.appli .btn-valider-rdv{ background: var(--ok); color: var(--on-ok); border-width: medium; border-style: none; border-color: currentcolor; border-image: none; }
.appli .kan-groupe{ flex: 0 0 calc(168% + 12px); align-self: flex-start; gap: 12px; min-width: 0px; display: flex; position: relative; }
.appli .kan-groupe .kan-col{ flex: 1 1 0px; }
.appli[data-format="bureau"] .kan-groupe{ flex: 0 0 auto; }
.appli[data-format="bureau"] .kan-groupe .kan-col{ flex: 0 0 198px; }
.appli .kan-tete{ height: 18px; }
.appli .kan-groupe::after{ content: ""; pointer-events: none; border: 1px dashed color-mix(in srgb, var(--accent) 55%, transparent); border-radius: var(--radius-md); position: absolute; inset: 26px 0px 0px; }
.appli .kanban{ flex: 1 0 auto; }
.appli .rail-profil .rail-item-fiche{ padding-right: 44px; }
.appli .rail-fiche-textes{ flex-direction: column; min-width: 0px; display: flex; overflow: hidden; }
.appli .rail-fiche-textes > span{ text-overflow: ellipsis; white-space: nowrap; overflow: hidden; }
.appli .rail-fiche-nom{ color: var(--text-muted); font-size: 11.5px; font-weight: 500; }
.appli .rail-chevron{ width: 32px; height: 32px; color: var(--text-muted); cursor: pointer; opacity: 0; pointer-events: none; background: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; border-radius: 9px; justify-content: center; align-items: center; transition: opacity 0.16s, background 0.14s; display: flex; position: absolute; top: 50%; right: 6px; transform: translateY(-50%); }
.appli .rail-chevron svg{ transition: transform 0.18s; transform: rotate(90deg); }
.appli .rail-chevron.open svg{ transform: rotate(-90deg); }
.appli .rail:hover .rail-chevron, .appli .rail:focus-within .rail-chevron{ opacity: 1; pointer-events: auto; }
@media (hover: hover) {
  .appli .rail-chevron:hover{ background: var(--surface-plein); color: var(--text); }
}
.appli .rail-chevron.open{ background: var(--surface-plein); color: var(--select-ink); }
.appli .btn-etapes{ border: 1px solid var(--border); background: var(--surface); color: var(--text); cursor: pointer; border-radius: 999px; align-items: center; gap: 6px; padding: 8px 12px; font-family: inherit; font-size: 12.5px; font-weight: 600; display: inline-flex; }
.appli .btn-etapes:hover{ border-color: var(--accent); color: var(--accent-ink); }
.appli .kan-menu-hote{ align-self: center; margin-left: auto; position: relative; }
.appli .kan-menu-btn{ width: 26px; height: 22px; color: var(--text-muted); cursor: pointer; background: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; border-radius: 6px; justify-content: center; align-items: center; padding: 0px; display: flex; }
.appli .kan-menu-btn:hover, .appli .kan-menu-btn[aria-expanded="true"]{ background: var(--surface); color: var(--text); }
.appli .kan-menu{ z-index: 30; background: var(--surface-plein); border: 1px solid var(--border); border-radius: var(--radius-sm); min-width: 200px; box-shadow: var(--shadow-lg); flex-direction: column; padding: 4px; display: flex; position: absolute; top: calc(100% + 4px); right: 0px; }
.appli .kan-menu button{ text-align: left; color: var(--text); cursor: pointer; background: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; border-radius: 6px; padding: 9px 10px; font-family: inherit; font-size: 12.5px; font-weight: 600; }
.appli .kan-menu button:hover{ background: var(--bg); }
.appli .kan-masquee{ scroll-snap-align: center; flex-direction: column; flex: 0 0 38px; align-self: stretch; padding-top: 26px; display: flex; }
.appli .kan-masquee button{ border: 1px dashed var(--border); border-radius: var(--radius-md); min-height: 180px; max-height: 420px; color: var(--text-muted); cursor: pointer; background: none; flex-direction: column; flex: 1 1 0%; align-items: center; gap: 10px; padding: 12px 0px; font-family: inherit; font-size: 11.5px; font-weight: 600; display: flex; }
.appli .kan-masquee button:hover{ border-color: var(--accent); color: var(--accent-ink); background: var(--accent-soft); }
.appli .kan-masquee-txt{ writing-mode: vertical-rl; white-space: nowrap; transform: rotate(180deg); }
.appli .kan-passer{ color: var(--text-muted); cursor: pointer; text-underline-offset: 2px; background: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; align-self: center; padding: 2px 4px; font-family: inherit; font-size: 11.5px; font-weight: 600; text-decoration: underline; }
.appli .kan-passer:hover, .appli .kan-passer.arme{ color: var(--accent-ink); }
.appli .flash-annuler{ color: inherit; text-underline-offset: 2px; cursor: pointer; background: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; margin-left: 10px; padding: 0px; font-family: inherit; font-size: 12.5px; font-weight: 700; text-decoration: underline; }
.appli .etapes-liste{ flex-direction: column; gap: 8px; margin-top: 14px; display: flex; }
.appli .etapes-ligne{ border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--surface); align-items: center; gap: 12px; padding: 11px 12px; display: flex; }
.appli .etapes-ligne.off{ background: none; border-style: dashed; }
.appli .etapes-ligne.off .etapes-titre{ color: var(--text-muted); }
.appli .etapes-num{ width: 22px; height: 22px; font-family: var(--mono); background: var(--accent-soft); color: var(--accent-ink); border-radius: 50%; flex-shrink: 0; justify-content: center; align-items: center; font-size: 10.5px; font-weight: 700; display: flex; }
.appli .etapes-ligne.off .etapes-num{ color: var(--text-muted); border: 1px dashed var(--border); background: none; }
.appli .etapes-titre{ font-size: 13.5px; font-weight: 700; display: block; }
.appli .etapes-quoi{ color: var(--text-muted); margin-top: 2px; font-size: 11.5px; line-height: 1.45; display: block; }
.appli .etapes-effet{ color: var(--accent-ink); margin-top: 5px; font-size: 11.5px; font-weight: 600; line-height: 1.45; display: block; }
.appli .etapes-ordre{ flex-direction: column; flex-shrink: 0; gap: 2px; display: inline-flex; }
.appli .etapes-fleche{ border: 1px solid var(--border); background: var(--surface); width: 26px; height: 20px; color: var(--text-muted); cursor: pointer; border-radius: 6px; justify-content: center; align-items: center; padding: 0px; display: flex; }
.appli .etapes-fleche:disabled{ opacity: 0.3; cursor: default; }
@media (hover: hover) {
  .appli .etapes-fleche:hover:not(:disabled){ color: var(--select-ink); border-color: var(--select); background: var(--select-soft); }
}
.appli .etapes-oblig{ color: var(--text-muted); flex-shrink: 0; align-items: center; gap: 4px; font-size: 11px; font-weight: 600; display: inline-flex; }
.appli .frise-pas.saute .frise-titre{ color: var(--text-muted) !important; }
.appli .frise-rond.saute{ border: 2px dashed var(--border); color: var(--text-muted); background: none; }
.appli .btn-passer-etape{ color: var(--text-muted); cursor: pointer; text-underline-offset: 2px; background: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; margin: 12px auto 0px; padding: 4px 6px; font-family: inherit; font-size: 12.5px; font-weight: 600; text-decoration: underline; display: block; }
.appli .btn-passer-etape:hover, .appli .btn-passer-etape.arme{ color: var(--accent-ink); }
.appli .notes-privees{ --postit: color-mix(in srgb, #f2c94c 13%, var(--surface)); --postit-bord: color-mix(in srgb, #d9a917 38%, var(--border)); }
.appli .carte-stat.notes-privees{ background: var(--postit); border-color: var(--postit-bord); }
.appli .notes-prive{ color: var(--text-muted); background: var(--surface); border: 1px solid var(--postit-bord); border-radius: 999px; align-items: center; gap: 4px; padding: 3px 8px; font-size: 11px; font-weight: 600; display: inline-flex; }
.appli .notes-etapes{ flex-wrap: wrap; gap: 6px; margin-top: 12px; display: flex; }
.appli .notes-etape{ border: 1px solid var(--postit-bord); color: var(--text-muted); cursor: pointer; background: none; border-radius: 999px; align-items: center; gap: 5px; padding: 5px 10px; font-family: inherit; font-size: 12px; font-weight: 600; display: inline-flex; }
.appli .notes-etape.on{ background: var(--surface); color: var(--text); border-color: var(--text-muted); }
.appli .notes-n{ font-family: var(--mono); background: var(--accent-soft); min-width: 16px; height: 16px; color: var(--accent-ink); border-radius: 999px; justify-content: center; align-items: center; padding: 0px 4px; font-size: 9.5px; font-weight: 700; display: inline-flex; }
.appli .notes-liste{ flex-direction: column; gap: 7px; margin-top: 12px; display: flex; }
.appli .notes-vide{ color: var(--text-muted); padding: 4px 2px; font-size: 12.5px; }
.appli .note-item{ background: var(--surface); border: 1px solid var(--postit-bord); border-radius: var(--radius-sm); padding: 9px 11px; }
.appli .note-texte{ white-space: pre-wrap; overflow-wrap: anywhere; font-size: 13px; line-height: 1.5; }
.appli .note-meta{ color: var(--text-muted); align-items: center; gap: 8px; margin-top: 5px; font-size: 11px; display: flex; }
.appli .note-actions{ gap: 2px; margin-left: auto; display: flex; }
.appli .note-icone{ min-width: 26px; height: 26px; color: var(--text-muted); cursor: pointer; background: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; border-radius: 6px; justify-content: center; align-items: center; gap: 4px; padding: 0px 6px; font-family: inherit; font-size: 11px; font-weight: 700; display: inline-flex; }
.appli .note-icone:hover{ background: var(--bg); color: var(--text); }
.appli .note-icone.arme{ color: var(--alert-ink); background: var(--alert-soft); }
.appli .notes-saisie{ align-items: flex-end; gap: 8px; margin-top: 12px; display: flex; }
.appli .note-champ{ resize: vertical; border-radius: var(--radius-sm); border: 1px solid var(--postit-bord); background: var(--surface); width: 100%; min-width: 0px; color: var(--text); flex: 1 1 0%; padding: 9px 11px; font-family: inherit; font-size: 13px; line-height: 1.45; }
.appli .note-champ:focus{ outline: 2px solid color-mix(in srgb, var(--accent) 45%, transparent); outline-offset: 1px; }
.appli .note-btn{ border-radius: var(--radius-sm); background: var(--accent); color: var(--on-accent); cursor: pointer; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; padding: 9px 14px; font-family: inherit; font-size: 12.5px; font-weight: 700; }
.appli .note-btn:disabled{ opacity: 0.45; cursor: default; }
.appli .note-lien{ color: var(--text-muted); cursor: pointer; background: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; font-family: inherit; font-size: 12.5px; font-weight: 600; }
.appli .note-edition-pied{ flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 8px; display: flex; }
.appli .note-etape-choix{ color: var(--text-muted); align-items: center; gap: 6px; font-size: 11.5px; display: inline-flex; }
.appli .notes-compte{ color: var(--text-muted); text-align: right; margin-top: 4px; font-size: 11px; }
.appli .notes-rapides{ flex-wrap: wrap; gap: 6px; margin-top: 10px; display: flex; }
.appli .note-rapide{ border: 1px dashed var(--postit-bord); color: var(--text-muted); cursor: pointer; background: none; border-radius: 999px; padding: 5px 10px; font-family: inherit; font-size: 11.5px; font-weight: 600; }
.appli .note-rapide:hover{ background: var(--surface); color: var(--text); border-style: solid; }
.appli .notes-frise{ flex-direction: column; gap: 6px; display: flex; }
.appli .frise-notes{ color: var(--text-muted); align-items: center; gap: 4px; margin-top: 5px; margin-right: 8px; font-size: 11px; font-weight: 600; display: inline-flex; }
.appli .kan-note{ font-family: var(--mono); color: var(--text-muted); background: color-mix(in srgb, #f2c94c 18%, var(--surface)); border: 1px solid color-mix(in srgb, #d9a917 38%, var(--border)); cursor: pointer; border-radius: 999px; flex-shrink: 0; align-self: flex-start; align-items: center; gap: 3px; padding: 2px 7px; font-size: 10px; font-weight: 700; display: inline-flex; }
.appli .kan-note:hover, .appli .kan-note.on{ color: var(--text); border-color: color-mix(in srgb, #d9a917 70%, var(--border)); }
.appli .apercu-notes{ z-index: 80; border-radius: var(--radius-md); background: color-mix(in srgb, #f2c94c 9%, var(--surface-plein)); border: 1px solid color-mix(in srgb, #d9a917 38%, var(--border)); max-height: min(420px, -24px + 100vh); box-shadow: var(--shadow-lg); font-family: var(--texte); color: var(--text); flex-direction: column; animation: 0.14s ease 0s 1 normal none running apercuEntre; display: flex; position: fixed; overflow: hidden; }
.appli .apercu-notes.haut{ animation-name: apercuEntreHaut; }
@keyframes apercuEntre { 
  .appli 0%{ opacity: 0; transform: translateY(-4px); }
  .appli 100%{ opacity: 1; transform: none; }
}
@keyframes apercuEntreHaut { 
  .appli 0%{ opacity: 0; transform: translateY(4px); }
  .appli 100%{ opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .appli .apercu-notes{ animation: auto ease 0s 1 normal none running none; }
}
.appli .apercu-tete{ border-bottom: 1px solid color-mix(in srgb, #d9a917 25%, var(--border)); color: var(--text-muted); align-items: center; gap: 7px; padding: 11px 13px 9px; display: flex; }
.appli .apercu-titre{ color: var(--text); flex: 1 1 0%; align-items: center; gap: 6px; font-size: 13px; font-weight: 700; display: flex; }
.appli .apercu-n{ font-family: var(--mono); background: var(--accent-soft); min-width: 17px; height: 17px; color: var(--accent-ink); border-radius: 999px; justify-content: center; align-items: center; padding: 0px 5px; font-size: 9.5px; font-weight: 700; display: inline-flex; }
.appli .apercu-prive{ align-items: center; gap: 3px; font-size: 10.5px; font-weight: 600; display: inline-flex; }
.appli .apercu-corps{ overscroll-behavior: contain; padding: 4px 13px 10px; overflow-y: auto; }
.appli .apercu-etape{ padding-top: 9px; }
.appli .apercu-etape + .apercu-etape{ border-top: 1px dashed color-mix(in srgb, #d9a917 25%, var(--border)); margin-top: 3px; }
.appli .apercu-etape-titre{ font-family: var(--mono); letter-spacing: 0.06em; text-transform: uppercase; color: var(--text-muted); justify-content: space-between; align-items: center; margin-bottom: 6px; font-size: 10px; font-weight: 700; display: flex; }
.appli .apercu-note{ border-radius: var(--radius-sm); background: var(--surface); border: 1px solid color-mix(in srgb, #d9a917 22%, var(--border)); padding: 7px 9px; }
.appli .apercu-note + .apercu-note{ margin-top: 5px; }
.appli .apercu-texte{ white-space: pre-wrap; overflow-wrap: anywhere; font-size: 12.5px; line-height: 1.45; }
.appli .apercu-date{ color: var(--text-muted); margin-top: 3px; font-size: 10.5px; }
.appli .apercu-pied{ border-right-width: medium; border-bottom-width: medium; border-left-width: medium; border-right-style: none; border-bottom-style: none; border-left-style: none; border-right-color: currentcolor; border-bottom-color: currentcolor; border-left-color: currentcolor; border-image: none; border-top: 1px solid color-mix(in srgb, #d9a917 25%, var(--border)); text-align: left; color: var(--accent-ink); cursor: pointer; background: none; padding: 10px 13px; font-family: inherit; font-size: 12px; font-weight: 700; }
.appli .apercu-pied:hover{ background: color-mix(in srgb, #f2c94c 12%, var(--surface)); }
.appli .notes-etape.courante::before{ content: ""; background: var(--accent); border-radius: 50%; width: 6px; height: 6px; }
.appli .docs-compte{ font-family: var(--mono); color: var(--text-muted); flex-shrink: 0; font-size: 10.5px; font-weight: 700; }
.appli .docs-barre{ background: var(--border); border-radius: 999px; height: 4px; margin-top: 8px; overflow: hidden; }
.appli .docs-barre span{ border-radius: inherit; background: var(--ok); height: 100%; transition: width 0.25s; display: block; }
.appli .docs-liste{ margin-top: 4px; }
.appli .docs-ligne{ border-bottom: 1px solid var(--border); border-radius: var(--radius-sm); align-items: flex-start; gap: 10px; padding: 11px 0px; transition: background 0.12s; display: flex; }
.appli .docs-ligne:last-child{ border-bottom-width: medium; border-bottom-style: none; border-bottom-color: currentcolor; }
.appli .docs-ligne.glisse, .appli .docs-ajout.glisse{ background: var(--accent-soft); outline: 1.5px dashed var(--accent); outline-offset: -1.5px; }
.appli .docs-ligne .piece-case{ margin-top: 2px; }
.appli .docs-corps{ flex: 1 1 0%; min-width: 0px; }
.appli .docs-titre{ overflow-wrap: anywhere; font-size: 13px; font-weight: 600; line-height: 1.35; }
.appli .docs-autre-nom{ color: var(--text-muted); font-weight: 500; }
.appli .docs-statut{ color: var(--text-muted); margin-top: 2px; font-size: 11px; line-height: 1.4; }
.appli .docs-statut .ok{ color: var(--ok-ink); font-weight: 600; }
.appli .docs-statut .oblig{ color: var(--accent-ink); font-weight: 600; }
.appli .docs-fichier{ border: 1px solid var(--border); background: var(--surface); max-width: 100%; color: var(--text); border-radius: 10px; align-items: center; gap: 8px; margin-top: 7px; padding: 5px 10px 5px 5px; font-size: 12px; text-decoration: none; display: inline-flex; }
.appli .docs-fichier:hover{ border-color: var(--text-muted); }
.appli .docs-fichier .ext{ background: var(--accent-soft); width: 28px; height: 28px; color: var(--accent-ink); font-family: var(--mono); border-radius: 8px; flex-shrink: 0; justify-content: center; align-items: center; font-size: 8.5px; font-weight: 700; display: flex; }
.appli .docs-fichier .nom{ text-overflow: ellipsis; white-space: nowrap; min-width: 0px; font-weight: 600; overflow: hidden; }
.appli .docs-fichier .ouvrir{ font-family: var(--mono); letter-spacing: 0.04em; text-transform: uppercase; color: var(--text-muted); flex-shrink: 0; font-size: 9.5px; }
.appli .docs-numero{ gap: 7px; margin-top: 8px; display: flex; }
.appli .docs-numero .field-input{ flex: 1 1 0%; min-width: 0px; padding: 8px 11px; font-size: 13px; }
.appli .docs-actions{ flex-direction: column; flex-shrink: 0; align-items: flex-end; gap: 6px; display: flex; }
.appli .docs-actions:has(.docs-retirer){ flex-direction: row; align-items: center; }
.appli .docs-btn{ border: 1px solid var(--border); background: var(--surface); color: var(--text); cursor: pointer; white-space: nowrap; border-radius: 999px; align-items: center; gap: 5px; padding: 7px 12px; font-family: inherit; font-size: 12px; font-weight: 700; display: inline-flex; }
.appli .docs-btn:hover:not(:disabled){ border-color: var(--text-muted); }
.appli .docs-btn.plein{ background: var(--accent); border-color: var(--accent); color: var(--on-accent); }
.appli .docs-btn.plein:hover:not(:disabled){ filter: brightness(1.05); }
.appli .docs-btn:disabled{ opacity: 0.5; cursor: not-allowed; }
.appli .docs-lien{ color: var(--text-muted); cursor: pointer; background: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; padding: 0px; font-family: inherit; font-size: 11px; font-weight: 600; text-decoration: underline; }
.appli .docs-retirer{ border: 1px solid var(--border); background: var(--surface); width: 28px; height: 28px; color: var(--text-muted); cursor: pointer; border-radius: 50%; flex-shrink: 0; font-size: 15px; line-height: 1; }
.appli .docs-retirer:hover:not(:disabled){ color: var(--alert-ink); border-color: var(--alert-ink); }
.appli .docs-ajout{ border-radius: var(--radius-sm); border: 1.5px dashed var(--border); width: 100%; color: var(--text-muted); cursor: pointer; background: none; justify-content: center; align-items: center; gap: 7px; margin-top: 8px; padding: 10px 12px; font-family: inherit; font-size: 12.5px; font-weight: 700; display: flex; }
.appli .docs-ajout:hover:not(:disabled){ color: var(--text); border-color: var(--text-muted); }
@media (prefers-reduced-motion: reduce) {
  .appli .docs-barre span, .appli .docs-ligne{ transition: none; }
}
.appli .selecteur{ min-width: 0px; position: relative; }
.appli .selecteur-btn{ text-align: left; cursor: pointer; align-items: center; gap: 8px; width: 100%; display: flex; }
.appli .selecteur.compact .selecteur-btn{ border: 1px solid var(--border); background: var(--surface); width: auto; color: var(--text); border-radius: 8px; padding: 4px 8px; font-family: inherit; font-size: 12px; }
.appli .selecteur-valeur{ text-overflow: ellipsis; white-space: nowrap; flex: 1 1 0%; min-width: 0px; overflow: hidden; }
.appli .selecteur-chev{ color: var(--text-muted); flex-shrink: 0; display: flex; }
.appli .selecteur-chev svg{ transition: transform 0.15s; transform: rotate(90deg); }
.appli .selecteur.ouvert .selecteur-chev svg{ transform: rotate(-90deg); }
.appli .selecteur.ouvert .selecteur-btn{ border-color: var(--select); }
.appli .selecteur-liste{ z-index: 40; overscroll-behavior: contain; border-radius: var(--radius-sm); border: 1px solid var(--border); background: var(--surface-plein); max-height: 280px; box-shadow: var(--shadow-lg); outline: none; margin: 0px; padding: 5px; list-style: none; animation: 0.12s ease 0s 1 normal none running apercuEntre; position: absolute; top: calc(100% + 6px); left: 0px; right: 0px; overflow-y: auto; }
.appli .selecteur.compact .selecteur-liste{ min-width: 200px; right: auto; }
.appli .selecteur-option{ color: var(--text); cursor: pointer; border-radius: 8px; justify-content: space-between; align-items: center; gap: 10px; padding: 9px 11px; font-size: 13.5px; line-height: 1.35; display: flex; }
.appli .selecteur.compact .selecteur-option{ padding: 7px 9px; font-size: 12.5px; }
.appli .selecteur-option.actif{ background: var(--select-soft); }
.appli .selecteur-option.choisi{ color: var(--select-ink); font-weight: 700; }
.appli .selecteur-option svg{ color: var(--select-ink); flex-shrink: 0; }
@media (prefers-reduced-motion: reduce) {
  .appli .selecteur-liste{ animation: auto ease 0s 1 normal none running none; }
  .appli .selecteur-chev svg{ transition: none; }
}
.appli .contrat-cadre{ overscroll-behavior: contain; border-radius: var(--radius-md); background: var(--bg); border: 1px solid var(--border); max-height: 520px; padding: 14px; overflow-y: auto; }
.appli .contrat-feuille{ --papier: #fdfcf8; --encre: #1f2633; --encre-douce: #5b6170; background: var(--papier); color: var(--encre); font-family: var(--serif); hyphens: auto; font-optical-sizing: auto; border-radius: 4px; max-width: 640px; margin: 0px auto; padding: 40px 42px 34px; font-size: 14px; line-height: 1.62; box-shadow: rgba(22, 35, 63, 0.08) 0px 1px 2px, rgba(22, 35, 63, 0.08) 0px 8px 24px; }
.appli .contrat-titre{ hyphens: manual; text-wrap: balance; font-family: var(--serif); letter-spacing: 0.06em; text-transform: uppercase; text-align: center; margin: 0px 0px 6px; font-size: 19px; font-weight: 600; line-height: 1.35; }
.appli .contrat-titre::after{ content: ""; background: var(--encre-douce); opacity: 0.6; width: 42px; height: 1px; margin: 14px auto 22px; display: block; }
.appli .contrat-intertitre{ font-family: var(--serif); letter-spacing: 0.12em; text-transform: uppercase; color: var(--encre); margin: 20px 0px 8px; font-size: 11.5px; font-weight: 600; }
.appli .contrat-article{ hyphens: manual; font-family: var(--serif); margin: 22px 0px 6px; font-size: 15px; font-weight: 600; line-height: 1.35; }
.appli .contrat-article span{ letter-spacing: 0.12em; text-transform: uppercase; color: var(--encre-douce); margin-bottom: 2px; font-size: 11px; font-weight: 600; display: block; }
.appli .contrat-p{ text-align: justify; margin: 0px 0px 9px; }
.appli .contrat-note{ color: var(--encre-douce); text-align: justify; border-top: 1px solid rgb(227, 225, 216); margin: 18px 0px 0px; padding-top: 12px; font-size: 12px; font-style: italic; }
.appli .contrat-intertitre + .contrat-note, .appli .contrat-note + .contrat-note{ border-top-width: medium; border-top-style: none; border-top-color: currentcolor; margin-top: 6px; padding-top: 0px; }
.appli .contrat-sep{ text-align: center; color: var(--encre-douce); letter-spacing: 0.3em; margin: 18px 0px 14px; font-size: 12px; }
.appli .contrat-puce{ margin: 0px 0px 4px; padding-left: 16px; position: relative; }
.appli .contrat-puce::before{ content: "·"; font-weight: 700; position: absolute; left: 4px; }
.appli .contrat-signatures{ border-top: 1px solid rgb(227, 225, 216); margin-top: 28px; padding-top: 16px; }
.appli .contrat-signatures-titre{ letter-spacing: 0.12em; text-transform: uppercase; color: var(--encre-douce); margin-bottom: 12px; font-size: 11px; font-weight: 600; }
.appli .contrat-signatures-grille{ grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 18px 22px; display: grid; }
.appli .contrat-sign-cote{ letter-spacing: 0.1em; text-transform: uppercase; color: var(--encre-douce); font-size: 10.5px; }
.appli .contrat-sign-zone{ border-bottom: 1px solid rgb(207, 204, 194); align-items: flex-end; height: 64px; margin: 4px 0px 6px; display: flex; }
.appli .contrat-sign-zone img{ object-fit: contain; max-width: 100%; max-height: 60px; }
.appli .contrat-sign-zone span{ color: rgb(154, 157, 166); padding-bottom: 6px; font-size: 12px; font-style: italic; }
.appli .contrat-sign-nom{ font-size: 13.5px; font-weight: 600; line-height: 1.3; }
.appli .contrat-sign-qualite{ color: var(--encre-douce); font-size: 12px; }
.appli .contrat-sign-date{ color: var(--encre-douce); margin-top: 3px; font-size: 11px; font-style: italic; }
.appli .contrat-feuille.compact{ box-shadow: none; padding: 22px 20px; font-size: 13px; }
.appli .contrat-edition{ font-family: var(--serif); font-size: 13.5px; line-height: 1.6; }
.appli .contrat-frise{ counter-reset: none; grid-template-columns: repeat(4, 1fr); gap: 6px; margin: 14px 0px 2px; padding: 0px; list-style: none; display: grid; }
.appli .contrat-frise li{ text-align: center; color: var(--text-muted); flex-direction: column; align-items: center; gap: 5px; font-size: 10.5px; line-height: 1.3; display: flex; position: relative; }
.appli .contrat-frise li:not(:last-child)::after{ content: ""; background: var(--border); height: 1.5px; position: absolute; top: 10px; left: calc(50% + 14px); right: calc(-50% + 14px); }
.appli .contrat-frise li.frise-fait:not(:last-child)::after{ background: var(--ok); }
.appli .contrat-frise-point{ width: 21px; height: 21px; font-family: var(--mono); border: 1.5px solid var(--border); background: var(--surface); color: var(--text-muted); border-radius: 50%; justify-content: center; align-items: center; font-size: 10px; font-weight: 700; display: flex; }
.appli .contrat-frise li.frise-fait .contrat-frise-point{ background: var(--ok); border-color: var(--ok); color: var(--on-ok); }
.appli .contrat-frise li.frise-courant .contrat-frise-point{ border-color: var(--accent); color: var(--accent-ink); background: var(--accent-soft); }
.appli .contrat-frise li.frise-courant{ color: var(--text); font-weight: 700; }
.appli .contrat-modifier{ border-radius: var(--radius-sm); border: 1px dashed var(--border); width: 100%; color: var(--text); text-align: left; cursor: pointer; background: none; flex-direction: column; gap: 2px; margin-top: 13px; padding: 10px 12px; font-family: inherit; font-size: 12.5px; font-weight: 700; display: flex; }
.appli .contrat-modifier span{ color: var(--text-muted); font-size: 11.5px; font-weight: 500; }
.appli .contrat-modifier:hover{ border-color: var(--text-muted); }
.appli .contrat-avert{ border-radius: var(--radius-sm); background: var(--alert-soft); color: var(--alert-ink); align-items: flex-start; gap: 8px; margin-top: 12px; padding: 10px 12px; font-size: 12px; line-height: 1.5; display: flex; }
.appli .contrat-avert svg{ flex-shrink: 0; margin-top: 1px; }
.appli .contrat-attente{ border-radius: var(--radius-sm); background: var(--bg); color: var(--text-muted); margin-top: 14px; padding: 11px 12px; font-size: 12.5px; line-height: 1.55; }
.appli .signataires{ margin-top: 16px; }
.appli .signataires-tete{ justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 4px; display: flex; }
.appli .signataire{ border-bottom: 1px solid var(--border); align-items: center; gap: 11px; padding: 11px 0px; display: flex; }
.appli .signataire-avatar{ background: var(--select-soft); width: 34px; height: 34px; color: var(--select-ink); border-radius: 50%; flex-shrink: 0; justify-content: center; align-items: center; font-size: 11.5px; font-weight: 700; display: flex; }
.appli .signataire.signe .signataire-avatar{ background: var(--ok-soft); color: var(--ok-ink); }
.appli .signataire-corps{ flex: 1 1 0%; min-width: 0px; }
.appli .signataire-nom{ flex-wrap: wrap; align-items: center; gap: 6px; font-size: 13.5px; font-weight: 600; line-height: 1.3; display: flex; }
.appli .signataire-vous{ font-family: var(--mono); letter-spacing: 0.04em; text-transform: uppercase; background: var(--bg); color: var(--text-muted); border-radius: 999px; padding: 1px 6px; font-size: 9.5px; font-weight: 600; }
.appli .signataire-etat{ color: var(--text-muted); margin-top: 2px; font-size: 11.5px; line-height: 1.4; }
.appli .signataire.signe .signataire-etat{ color: var(--ok-ink); }
.appli .signataire-liens{ gap: 12px; margin-top: 4px; display: flex; }
.appli .signataire-actions{ flex-direction: column; flex-shrink: 0; align-items: flex-end; gap: 5px; display: flex; }
.appli .signataire-img{ object-fit: contain; flex-shrink: 0; max-width: 110px; height: 38px; }
.appli[data-theme="dark"] .signataire-img, .appli[data-theme="dark"] .resume-sign-img{ filter: invert() hue-rotate(180deg); }
.appli .signataire-form{ border-bottom: 1px solid var(--border); flex-direction: column; gap: 8px; padding: 12px 0px; display: flex; }
.appli .signataire-form .field-input{ padding: 10px 12px; font-size: 13.5px; }
.appli .signataires-flash{ border-radius: var(--radius-sm); background: var(--ok-soft); color: var(--ok-ink); margin-top: 9px; padding: 9px 11px; font-size: 12px; font-weight: 600; }
.appli .resume-sign{ margin-top: 10px; }
.appli .resume-sign-ligne{ border-bottom: 1px solid var(--border); align-items: center; gap: 10px; padding: 8px 0px; display: flex; }
.appli .resume-sign-ligne:last-child{ border-bottom-width: medium; border-bottom-style: none; border-bottom-color: currentcolor; }
.appli .resume-sign-nom{ font-size: 13px; font-weight: 600; display: block; }
.appli .resume-sign-etat{ color: var(--text-muted); margin-top: 1px; font-size: 11px; display: block; }
.appli .resume-sign-ligne.signe .resume-sign-etat{ color: var(--ok-ink); }
.appli .resume-sign-img{ object-fit: contain; max-width: 96px; height: 30px; }
.appli .fenetre-sign{ overscroll-behavior: contain; max-width: 600px; max-height: 94%; overflow-y: auto; }
.appli .fenetre-sign-tete{ align-items: center; gap: 10px; margin-bottom: 12px; display: flex; }
.appli .fenetre-sign-titre{ font-family: var(--display); flex: 1 1 0%; font-size: 18px; font-weight: 700; }
.appli .fenetre-sign-fermer{ border: 1px solid var(--border); background: var(--surface); width: 32px; height: 32px; color: var(--text-muted); cursor: pointer; border-radius: 50%; font-size: 17px; line-height: 1; }
.appli .panneau-sign{ flex-direction: column; gap: 14px; display: flex; }
.appli .panneau-sign-qui{ align-items: center; gap: 11px; display: flex; }
.appli .panneau-sign-avatar{ background: var(--select-soft); width: 38px; height: 38px; color: var(--select-ink); border-radius: 50%; flex-shrink: 0; justify-content: center; align-items: center; font-size: 13px; font-weight: 700; display: flex; }
.appli .panneau-sign-nom{ font-size: 14.5px; font-weight: 700; display: block; }
.appli .panneau-sign-qualite{ color: var(--text-muted); font-size: 12px; display: block; }
.appli .zone-sign-tete{ justify-content: space-between; align-items: flex-end; gap: 10px; margin-bottom: 7px; display: flex; }
.appli .zone-sign-libelle{ font-size: 13.5px; font-weight: 700; }
.appli .zone-sign-aide{ color: var(--text-muted); margin-top: 1px; font-size: 11.5px; line-height: 1.4; }
.appli .zone-sign-modes{ background: var(--bg); border: 1px solid var(--border); border-radius: 999px; flex-shrink: 0; padding: 3px; display: inline-flex; }
.appli .zone-sign-modes button{ color: var(--text-muted); cursor: pointer; background: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; border-radius: 999px; padding: 5px 11px; font-family: inherit; font-size: 11.5px; font-weight: 700; }
.appli .zone-sign-modes button.on{ background: var(--surface-plein); color: var(--text); box-shadow: rgba(22, 35, 63, 0.12) 0px 1px 2px; }
.appli .zone-sign-cadre{ border-radius: var(--radius-sm); border: 1.5px solid var(--border); background: rgb(253, 252, 248); justify-content: center; align-items: center; width: 100%; display: flex; position: relative; overflow: hidden; }
.appli .zone-sign-cadre img{ object-fit: contain; width: 100%; height: 100%; }
.appli .zone-sign-cadre.dessin{ cursor: crosshair; border-style: dashed; }
.appli .zone-sign-cadre canvas{ touch-action: none; width: 100%; height: 100%; position: absolute; inset: 0px; }
.appli .zone-sign-ligne{ pointer-events: none; background: rgb(214, 211, 201); height: 1px; position: absolute; bottom: 22%; left: 8%; right: 8%; }
.appli .zone-sign-vide{ color: rgb(154, 157, 166); pointer-events: none; font-size: 12px; position: absolute; }
.appli .zone-sign-effacer{ color: rgb(91, 97, 112); cursor: pointer; background: rgb(255, 255, 255); border: 1px solid rgb(214, 211, 201); border-radius: 999px; padding: 4px 9px; font-family: inherit; font-size: 11px; font-weight: 700; position: absolute; top: 6px; right: 6px; }
.appli .zone-sign-champ{ margin-top: 7px; padding: 9px 12px; font-size: 13.5px; }
.appli .panneau-sign-accord{ cursor: pointer; align-items: flex-start; gap: 10px; font-size: 12.5px; line-height: 1.5; display: flex; }
.appli .panneau-sign-accord input{ width: 18px; height: 18px; accent-color: var(--select); flex-shrink: 0; margin-top: 1px; }
.appli .panneau-sign-erreur{ color: var(--alert-ink); font-size: 12.5px; }
.appli .panneau-sign-actions{ gap: 9px; display: flex; }
.appli .panneau-sign-actions .btn-ghost{ flex: 0 0 auto; width: auto; padding: 13px 18px; }
.appli .panneau-sign-actions .btn-primary{ flex: 1 1 0%; }
.appli .panneau-sign-actions .btn-primary:disabled{ opacity: 0.45; cursor: not-allowed; }
.appli .panneau-sign-preuve{ color: var(--text-muted); font-size: 11px; line-height: 1.5; }
.appli .panneau-sign-doc{ border-radius: var(--radius-sm); max-height: 280px; overflow-y: auto; }
.appli .signature-distance{ padding: 34px 22px 30px; }
.appli .signature-distance > *{ max-width: 640px; margin-left: auto; margin-right: auto; }
.appli .signature-distance-titre{ font-family: var(--display); margin: 22px auto 4px; font-size: 24px; font-weight: 700; }
.appli .signature-distance-sous{ color: var(--text-muted); margin: 0px auto; font-size: 13.5px; line-height: 1.55; }
.appli .zone-sign.petit .zone-sign-cadre, .appli .zone-sign.petit .zone-sign-champ{ max-width: 250px; }
.appli .notes-etape.retiree{ opacity: 0.8; border-style: dashed; }
.appli .champ-rdv::-webkit-calendar-picker-indicator{ display: none; }
.appli .cal-heure .selecteur.compact .selecteur-liste{ min-width: 96px; max-height: 220px; }
.appli .zone-rdv{ position: relative; }
.appli .zone-rdv .cal-pop{ z-index: 50; width: 320px; box-shadow: var(--shadow-lg); margin-top: 0px; animation: 0.14s ease 0s 1 normal none running apercuEntre; position: absolute; top: calc(100% + 8px); right: 0px; }
@media (prefers-reduced-motion: reduce) {
  .appli .zone-rdv .cal-pop{ animation: auto ease 0s 1 normal none running none; }
}
.appli .zone-date{ position: relative; }
.appli .zone-date .champ-date{ width: 100%; padding-right: 46px; }
.appli .champ-date::-webkit-calendar-picker-indicator{ display: none; }
.appli .zone-date .btn-calendrier.dans{ background: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; width: 34px; height: 34px; position: absolute; top: 50%; right: 6px; transform: translateY(-50%); }
.appli .zone-date .btn-calendrier.dans.on{ background: var(--select-soft); }
.appli .zone-date .cal-pop{ z-index: 50; width: 300px; max-width: calc(-32px + 100vw); box-shadow: var(--shadow-lg); margin-top: 0px; animation: 0.14s ease 0s 1 normal none running apercuEntre; position: absolute; top: calc(100% + 8px); left: 0px; }
@media (prefers-reduced-motion: reduce) {
  .appli .zone-date .cal-pop{ animation: auto ease 0s 1 normal none running none; }
}
.appli .cal-pied{ border-top: 1px solid var(--border); justify-content: space-between; margin-top: 8px; padding-top: 8px; display: flex; }
.appli .cal-lien{ color: var(--select-ink); cursor: pointer; background: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; border-radius: 8px; padding: 6px 8px; font-family: inherit; font-size: 12.5px; font-weight: 600; }
@media (hover: hover) {
  .appli .cal-lien:hover{ background: var(--bg); }
}
.appli .kan-tete[data-ordonnable]{ cursor: grab; user-select: none; }
.appli .kanban.ordonne, .appli .kanban.ordonne *{ cursor: grabbing !important; }
.appli .kan-col.fantome-col{ opacity: 0.45; }
.appli .kan-col.cible-ordre, .appli .kan-masquee.cible-ordre{ outline: 2px dashed var(--select); outline-offset: 3px; border-radius: var(--radius-sm); }
.appli .kan-tete-vol{ z-index: 1000; pointer-events: none; border-radius: var(--radius-sm); background: var(--surface-plein); border: 1.5px solid var(--select); box-shadow: var(--shadow-lg); color: var(--text); align-items: center; gap: 6px; padding: 8px 12px; font-size: 13px; display: flex; position: fixed; }
.appli .kan-tete-vol .kan-menu-hote{ display: none; }
.appli .kan-type{ background: var(--select-soft); color: var(--select-ink); border-radius: 999px; align-self: flex-start; align-items: center; gap: 5px; padding: 3px 9px 3px 7px; font-size: 11px; font-weight: 700; display: inline-flex; }
@media (hover: hover) {
  .appli .kan-tete[data-ordonnable]{ position: relative; }
  .appli .kan-tete[data-ordonnable]::before{ content: ""; opacity: 0; width: 6px; height: 12px; color: var(--text-muted); background-image: radial-gradient(currentcolor 1.1px, rgba(0, 0, 0, 0) 1.3px); background-size: 3px 4px; transition: opacity 0.14s; position: absolute; top: 50%; left: -11px; transform: translateY(-50%); }
  .appli .kan-tete[data-ordonnable]:hover::before{ opacity: 0.8; }
}
.appli .kan-carte img{ -webkit-user-drag: none; user-select: none; }
.appli .fenetre-arrivee{ max-width: 560px; position: relative; }
.appli .arrivee-fermer{ position: absolute; top: 14px; right: 16px; }
.appli .arrivee-tete{ text-align: center; padding: 4px 28px 0px; }
.appli .arrivee-sceau{ background: var(--ok-soft); width: 54px; height: 54px; color: var(--ok-ink); border-radius: 50%; justify-content: center; align-items: center; margin: 0px auto 12px; animation: 0.5s cubic-bezier(0.22, 1.4, 0.36, 1) 0s 1 normal none running arrivee-sceau; display: flex; }
@keyframes arrivee-sceau { 
  .appli 0%{ opacity: 0; transform: scale(0.4); }
  .appli 100%{ opacity: 1; transform: scale(1); }
}
.appli .arrivee-titre{ font-family: var(--display); font-size: 21px; font-weight: 700; line-height: 1.2; }
.appli .arrivee-sous{ color: var(--text-muted); margin: 6px 0px 0px; font-size: 14px; line-height: 1.5; }
.appli .arrivee-sous strong{ color: var(--text); font-weight: 600; }
.appli .arrivee-liste{ grid-template-columns: repeat(2, minmax(0px, 1fr)); gap: 8px; margin-top: 20px; display: grid; }
.appli .arrivee-service{ border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--surface); transition: border-color 0.15s; }
.appli .arrivee-service.ouvert{ border-color: var(--accent); }
.appli .arrivee-ligne{ width: 100%; color: inherit; font: inherit; text-align: left; cursor: pointer; align-items: center; gap: 10px; padding: 11px 12px; display: flex; }
.appli .arrivee-icone{ background: var(--accent-soft); width: 36px; height: 36px; color: var(--accent-ink); border-radius: 10px; flex-shrink: 0; justify-content: center; align-items: center; display: flex; }
.appli .arrivee-texte{ flex-direction: column; flex: 1 1 0%; gap: 2px; min-width: 0px; display: flex; }
.appli .arrivee-nom{ overflow-wrap: break-word; flex: 1 1 0%; min-width: 0px; font-size: 14px; font-weight: 700; line-height: 1.25; }
.appli .arrivee-detail{ color: var(--text-muted); font-size: 12.5px; line-height: 1.4; }
.appli .arrivee-chevron{ color: var(--text-muted); transition: transform 0.2s; display: flex; }
.appli .arrivee-service.ouvert .arrivee-chevron{ transform: rotate(90deg); }
.appli .arrivee-options{ border: 1px solid var(--accent); border-radius: var(--radius-md); background: var(--surface); flex-direction: column; grid-column: 1 / -1; gap: 6px; padding: 10px; animation: 0.18s ease 0s 1 normal none running arrivee-deplie; display: flex; }
@keyframes arrivee-deplie { 
  .appli 0%{ opacity: 0; transform: translateY(-4px); }
  .appli 100%{ opacity: 1; transform: none; }
}
.appli .arrivee-ligne:focus-visible, .appli .arrivee-acces:focus-visible{ outline: 2px solid var(--accent); outline-offset: -2px; border-radius: var(--radius-sm); }
.appli .arrivee-option{ border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--surface-plein); align-items: stretch; transition: border-color 0.12s, background 0.12s; display: flex; }
.appli .arrivee-option:hover{ border-color: var(--accent); }
.appli .arrivee-acces{ min-width: 0px; color: inherit; cursor: pointer; flex: 1 1 0%; align-items: center; gap: 10px; padding: 10px 14px; text-decoration: none; display: flex; }
.appli .arrivee-option.bientot .arrivee-acces{ cursor: default; }
.appli .arrivee-aller{ color: var(--accent-ink); flex-shrink: 0; align-items: center; gap: 2px; font-size: 12.5px; font-weight: 700; display: flex; }
.appli .arrivee-option.bientot .arrivee-aller{ color: var(--text-muted); font-weight: 600; }
.appli .arrivee-option-nom{ flex-wrap: wrap; align-items: center; gap: 6px; font-size: 14px; font-weight: 600; display: flex; }
.appli .arrivee-pied{ gap: 10px; margin-top: 18px; display: flex; }
.appli .arrivee-pied .btn-ghost, .appli .arrivee-pied .btn-primary{ cursor: pointer; flex: 1 1 0%; }
@media (prefers-reduced-motion: reduce) {
  .appli .arrivee-sceau, .appli .arrivee-options{ animation: auto ease 0s 1 normal none running none; }
}
.appli .services-recrute .stat-sous{ margin: 4px 0px 0px; }
.appli .services-recrute .arrivee-liste{ margin-top: 14px; }
.appli .msg-lien{ border: 1.5px solid var(--accent); background: var(--accent-soft); color: var(--accent-ink); border-radius: 999px; align-self: flex-start; align-items: center; gap: 4px; margin-top: 6px; padding: 8px 14px; font-size: 13px; font-weight: 700; text-decoration: none; display: inline-flex; }
.appli .msg-lien:hover{ background: var(--accent); color: var(--on-accent); }
.appli .msg-lien:focus-visible{ outline: 2px solid var(--accent); outline-offset: 2px; }
.appli .bandeau-cookies{ z-index: 200; left: 50%; bottom: calc(16px + env(safe-area-inset-bottom)); border-radius: var(--radius-lg); background: var(--surface-plein); width: min(560px, -32px + 100vw); color: var(--text); border: 1px solid var(--border); box-shadow: var(--shadow-lg); padding: 16px 18px; animation: 0.3s cubic-bezier(0.22, 1, 0.36, 1) 0s 1 normal none running bandeau-monte; position: fixed; transform: translateX(-50%); }
.appli[data-format="telephone"] .bandeau-cookies{ bottom: calc(96px + env(safe-area-inset-bottom)); }
.appli .bandeau-cookies-titre{ font-family: var(--display); font-size: 16px; font-weight: 700; }
.appli .bandeau-cookies-texte{ color: var(--text-muted); margin: 6px 0px 0px; font-size: 13px; line-height: 1.5; }
.appli .bandeau-cookies-actions{ gap: 10px; margin-top: 14px; display: flex; }
.appli .bandeau-cookies-actions .btn-ghost, .appli .bandeau-cookies-actions .btn-primary{ box-sizing: border-box; cursor: pointer; flex: 1 1 0px; width: auto; min-width: 0px; padding: 12px; font-size: 14px; }
.appli .bandeau-cookies-actions .btn-primary{ border: 1.5px solid rgba(0, 0, 0, 0); }
@keyframes bandeau-monte { 
  .appli 0%{ opacity: 0; transform: translate(-50%, 12px); }
  .appli 100%{ opacity: 1; transform: translate(-50%); }
}
@media (prefers-reduced-motion: reduce) {
  .appli .bandeau-cookies{ animation: auto ease 0s 1 normal none running none; }
}

@font-face { font-family: __nextjs-Geist; font-style: normal; font-weight: 400 600; font-display: swap; src: url("/__nextjs_font/geist-latin-ext.woff2") format("woff2"); unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "__nextjs-Geist Mono"; font-style: normal; font-weight: 400 600; font-display: swap; src: url("/__nextjs_font/geist-mono-latin-ext.woff2") format("woff2"); unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: __nextjs-Geist; font-style: normal; font-weight: 400 600; font-display: swap; src: url("/__nextjs_font/geist-latin.woff2") format("woff2"); unicode-range: U+0-FF, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "__nextjs-Geist Mono"; font-style: normal; font-weight: 400 600; font-display: swap; src: url("/__nextjs_font/geist-mono-latin.woff2") format("woff2"); unicode-range: U+0-FF, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
