/* Suivi des interventions — thème Athome. Police Plus Jakarta Sans (titres et texte), auto-hébergée, licence SIL OFL */
@font-face{font-family:"Plus Jakarta Sans";src:url("fonts/PlusJakartaSans-latin.woff2") format("woff2");font-weight:200 800;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Plus Jakarta Sans";src:url("fonts/PlusJakartaSans-latin-ext.woff2") format("woff2");font-weight:200 800;font-style:normal;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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}

:root{
  --bg:#f8f3f6;--card:#fff;--ink:#1d1d1f;--muted:#6e6e73;--line:rgba(100,44,68,.10);--field:#ddd0d7;
  --pri:#d1006f;--pri-hover:#b8005f;--pri-soft:#fce8f2;--pri-ink:#fff;
  --ok:#1d7a36;--ok-bg:#e9f7ee;--bad:#d70015;--bad-bg:#fff1f1;--warn:#b25000;--warn-bg:#fff5e6;
  --radius:18px;--radius-sm:12px;
  --shadow:0 1px 2px rgba(100,44,68,.06),0 8px 26px rgba(100,44,68,.09);
  --shadow-pop:0 14px 44px rgba(100,44,68,.20),0 2px 8px rgba(100,44,68,.08);
  --font:"Plus Jakarta Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --font-title:var(--font);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--font);font-size:15px;line-height:1.47;letter-spacing:-.011em;background:var(--bg);color:var(--ink);
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv11","ss03"}
a{color:var(--pri);text-decoration:none}
a:hover{text-decoration:underline}
main{max-width:1180px;margin:0 auto;padding:28px 20px 48px}
h1{font-size:2rem;line-height:1.15;font-weight:700;letter-spacing:-.028em;margin:.1em 0 .7em}
h2{font-size:1.2rem;font-weight:650;letter-spacing:-.02em;margin:0 0 .8em}
h3{font-size:1rem;font-weight:650;letter-spacing:-.015em;margin:1.4em 0 .6em}
::selection{background:#f9cfe3}
input[type=checkbox],input[type=radio]{accent-color:var(--pri)}

/* ---------- Barre du haut ---------- */
.top{position:sticky;top:0;z-index:50;background:rgba(255,251,253,.78);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);
  border-bottom:1px solid var(--line);padding-top:env(safe-area-inset-top,0px)}
.top-inner{max-width:1180px;margin:0 auto;padding:10px 20px;display:flex;align-items:center;gap:18px}
.brand{display:flex;align-items:center;gap:10px;color:var(--ink);font-weight:650;font-size:1rem;letter-spacing:-.02em;white-space:nowrap}
.brand:hover{text-decoration:none}
.logo{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;background:linear-gradient(180deg,#ec047c,#c8006a);box-shadow:0 1px 3px rgba(209,0,111,.35)}
.logo svg{width:18px;height:18px}
.tabs{display:flex;gap:2px;padding:3px;margin:0 auto;background:rgba(0,0,0,.05);border-radius:999px;overflow-x:auto;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tabs a{position:relative;padding:6px 14px;border-radius:999px;color:var(--ink);opacity:.78;font-size:.9rem;font-weight:500;white-space:nowrap;transition:background .15s,opacity .15s}
.tabs a:hover{opacity:1;text-decoration:none;background:rgba(255,255,255,.55)}
.tabs a.active{opacity:1;background:#fff;font-weight:600;box-shadow:0 1px 3px rgba(0,0,0,.12),0 0 0 .5px rgba(0,0,0,.04)}
.account{display:flex;align-items:center;gap:12px;white-space:nowrap}
.avatar{display:flex;align-items:center;gap:8px;color:var(--ink);font-size:.88rem;font-weight:500}
.avatar:hover{text-decoration:none}
.avatar span.initials{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#e8e8ed;color:#424245;font-size:.72rem;font-weight:700;letter-spacing:0}
.avatar.active span.initials{background:var(--pri);color:#fff}
.top .link{color:var(--muted);font-size:.85rem}
.top .link:hover{color:var(--ink)}

/* ---------- Cartes, textes ---------- */
.card{background:var(--card);border-radius:var(--radius);padding:22px;margin:0 0 18px;box-shadow:var(--shadow)}
.narrow{max-width:520px;margin-left:auto;margin-right:auto}
.muted{color:var(--muted)}
.small{font-size:.84rem}
.bad{color:var(--bad)}
.nowrap{white-space:nowrap}
.inline{display:inline}
.wide{width:100%}
code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.76rem;word-break:break-all;color:#515154}

/* ---------- Formulaires ---------- */
label{display:flex;flex-direction:column;gap:6px;margin:0 0 12px;font-size:.82rem;font-weight:500;color:var(--muted)}
label.check{flex-direction:row;align-items:center;gap:9px;color:var(--ink);font-size:.92rem;font-weight:400}
label.check>input{flex-shrink:0}
input,select,textarea{font:inherit;letter-spacing:inherit;padding:9px 12px;border:1px solid var(--field);border-radius:10px;background:#fff;color:var(--ink);
  min-height:42px;max-width:100%;transition:border-color .15s,box-shadow .15s}
input::placeholder,textarea::placeholder{color:#a1a1a6}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--pri);box-shadow:0 0 0 4px rgba(209,0,111,.16)}
select{-webkit-appearance:none;appearance:none;padding-right:34px;
  background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%236e6e73' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 12px center}
textarea{min-height:80px}
input[type=checkbox]{min-height:auto;width:20px;height:20px;margin:0;box-shadow:none}
input[type=search]{-webkit-appearance:none;appearance:none}

/* ---------- Boutons (pilules) ---------- */
button,.btn{font:inherit;letter-spacing:inherit;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 18px;min-height:40px;
  border:0;border-radius:999px;background:#e8e8ed;color:var(--ink);font-weight:500;cursor:pointer;text-decoration:none;transition:background .15s,transform .05s}
button:hover,.btn:hover{background:#dedee3;text-decoration:none}
button:active,.btn:active{transform:scale(.98)}
button:focus-visible,.btn:focus-visible,.tabs a:focus-visible{outline:none;box-shadow:0 0 0 4px rgba(209,0,111,.28)}
button.primary,.btn.primary,.btn.next{background:var(--pri);color:var(--pri-ink)}
button.primary:hover,.btn.primary:hover,.btn.next:hover{background:var(--pri-hover)}
button.danger{background:var(--bad-bg);color:var(--bad)}
button.danger:hover{background:#ffe2e2}
button.ghost{background:transparent;color:var(--muted)}
button.ghost:hover{background:rgba(0,0,0,.05);color:var(--ink)}
button.link{background:none;padding:0;min-height:0;border-radius:0;color:var(--pri);font-weight:500}
button.link:hover{background:none;text-decoration:underline}
button:disabled{opacity:.4;cursor:not-allowed;transform:none}
button.small,.btn.small{padding:5px 13px;min-height:32px;font-size:.84rem}
.round{width:46px;height:46px;border-radius:50%;padding:0;font-size:1.35rem;font-weight:400}

/* ---------- Messages, pastilles ---------- */
.flash{padding:12px 16px;border-radius:var(--radius-sm);margin:0 0 14px;background:#fff;box-shadow:var(--shadow);font-size:.93rem}
.flash.success{background:var(--ok-bg);color:#14532d;box-shadow:none}
.flash.error{background:var(--bad-bg);color:#8a0010;box-shadow:none}
.flash.warning{background:var(--warn-bg);color:#7a3600;box-shadow:none}
.badge{display:inline-block;padding:2px 9px;border-radius:999px;font-size:.74rem;font-weight:600;letter-spacing:0;background:#ececf0;color:#48484a;white-space:nowrap;vertical-align:1px}
.badge.warn{background:var(--warn-bg);color:var(--warn)}
.badge.danger{background:var(--bad-bg);color:var(--bad)}
.st-brouillon{background:#ececf0;color:#48484a}.st-transmise{background:var(--pri-soft);color:#a41c5c}
.st-validee{background:var(--ok-bg);color:var(--ok)}.st-a_corriger{background:var(--bad-bg);color:var(--bad)}
.badge.auto{background:var(--warn-bg);color:var(--warn)}.badge.manual{background:var(--pri-soft);color:#a41c5c}
#offline{background:#ff9f0a;color:#1d1d1f;padding:9px 16px;text-align:center;font-weight:500}

/* ---------- Mise en page ---------- */
.daynav{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:6px}
.row{display:flex;gap:12px;align-items:flex-end}
.row.wrap{flex-wrap:wrap}
.formbar{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;margin-top:10px}
.grid2{display:grid;grid-template-columns:1fr;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:18px}
.grid2>*{min-width:0}
.grid2 .card{margin:0 0 18px}
.filters{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}.filters label{margin:0}
.checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:6px 14px;margin-bottom:14px}
.pwgen{display:flex;gap:8px;min-width:0;max-width:100%}
.pwgen input{flex:1 1 auto;min-width:0;width:100%}
.pwgen button{flex:none}
.row>label{min-width:0;max-width:100%}
.danger-zone{box-shadow:var(--shadow),inset 0 0 0 1px #ffd0d0}
.alert-line{margin:.4em 0}

/* ---------- Listes de saisie ---------- */
.list{display:grid;gap:10px;margin-bottom:10px}
.item{border-radius:14px;padding:12px 14px;display:grid;gap:5px;background:#fafafc;box-shadow:inset 0 0 0 1px var(--line)}
.item.alert,tr.alert td{background:#fff6f6}
.item .actions{display:flex;gap:8px;margin-top:4px}
.comment{margin-top:4px;color:var(--bad);font-size:.88rem}
.rows .row{flex-wrap:wrap;border-radius:14px;padding:12px;margin-bottom:10px;background:#fafafc;box-shadow:inset 0 0 0 1px var(--line)}
.rows .row label{margin:0}
.duree{font-weight:650;min-width:72px;padding:0 4px 11px;font-variant-numeric:tabular-nums}
.counter{display:flex;align-items:center;gap:12px;padding:10px 0}
.counter strong{min-width:90px}
.count{min-width:30px;text-align:center;font-size:1.3rem;font-weight:650;font-variant-numeric:tabular-nums}

/* ---------- Chiffres clés ---------- */
.stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;margin-bottom:18px}
.stat{background:var(--card);border-radius:16px;padding:14px 16px;color:var(--muted);font-size:.82rem;text-decoration:none;box-shadow:var(--shadow);transition:transform .15s}
a.stat:hover{text-decoration:none;transform:translateY(-1px)}
.stat span{display:block;font-size:1.5rem;font-weight:650;letter-spacing:-.025em;color:var(--ink);font-variant-numeric:tabular-nums;margin-bottom:2px}
.stat.bad span{color:var(--bad)}

/* ---------- Tableaux ---------- */
.scroll{overflow-x:auto}
table{border-collapse:collapse;width:100%}
th,td{padding:10px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
th{background:#fff;color:var(--muted);font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}
tr:last-child td{border-bottom:0}
tbody tr:hover td,table tr:hover td{background-color:#fafafc}
td.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
tr.total td{font-weight:650;background:#f7f7fa}
tr.inactive td,.inactive{opacity:.5}
table.small td{font-size:.82rem}
.sticky-actions{position:-webkit-sticky;position:sticky;top:58px;top:calc(env(safe-area-inset-top,0px) + 58px);z-index:5;display:flex;flex-wrap:wrap;gap:8px;align-items:center;
  background:rgba(255,255,255,.86);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}
.sticky-actions input[name=comment]{flex:1;min-width:200px}

/* ---------- Suggestions d'adresses ---------- */
.ac{position:relative;display:block}
.ac input{width:100%}
.ac-list,.combo-list{position:absolute;left:0;right:0;top:100%;margin:6px 0 0;padding:6px;list-style:none;background:rgba(255,255,255,.96);
  -webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:14px;box-shadow:var(--shadow-pop),0 0 0 .5px rgba(0,0,0,.08);overflow:auto}
.ac-list{z-index:70;max-height:290px}
.ac-list li{padding:9px 12px;border-radius:9px;cursor:pointer;color:var(--ink);font-size:.92rem}
.ac-list li.active,.ac-list li[data-label]:hover{background:var(--pri);color:#fff}
.ac-list li.ac-hint{cursor:default;color:var(--muted);font-size:.8rem;margin-top:4px;border-top:1px solid var(--line);border-radius:0}
.ac-list li.ac-hint:hover{background:none;color:var(--muted)}
.ac-list .ac-far{margin-left:8px;padding:1px 7px;border-radius:999px;font-size:.72rem;font-weight:600;background:var(--warn-bg);color:var(--warn)}
label.grow{flex:1 1 240px}
.km-status{flex-basis:100%;font-size:.82rem;color:var(--muted)}
.km-status:empty{display:none}
.km-status.ok{color:var(--ok)}.km-status.bad{color:var(--warn)}

[hidden]{display:none!important}

/* ---------- Suivi du traitement : vert = traité, rouge = modifié après traitement, blanc = à traiter ---------- */
.st-dot{display:inline-block;width:11px;height:11px;border-radius:50%;box-shadow:inset 0 0 0 1.5px #c7c7cc;background:#fff;vertical-align:-1px}
.state-traite .st-dot{background:#30b158;box-shadow:none}
.state-modifie .st-dot{background:#ff3b30;box-shadow:none}
option.state-traite{background:#e9f7ee;color:#14532d}
option.state-modifie{background:#fff1f1;color:#8a0010}
.legend{display:flex;flex-wrap:wrap;gap:16px;flex-basis:100%;margin:0;color:var(--muted)}
.combo{position:relative;min-width:260px}
.combo input{width:100%;padding-left:32px}
.combo::before{content:"";position:absolute;left:12px;top:50%;width:11px;height:11px;margin-top:-5.5px;border-radius:50%;box-shadow:inset 0 0 0 1.5px #c7c7cc;background:#fff;pointer-events:none;z-index:1}
.combo[data-state=traite]::before{background:#30b158;box-shadow:none}
.combo[data-state=modifie]::before{background:#ff3b30;box-shadow:none}
.combo[data-state=traite] input{background:#f1faf4}
.combo[data-state=modifie] input{background:#fff5f5}
.combo-list{z-index:70;max-height:50vh;max-height:min(360px,50vh)}
.combo-list li{display:flex;align-items:center;gap:9px;padding:8px 12px;border-radius:9px;cursor:pointer;color:var(--ink)}
.combo-list li small{color:var(--muted);margin-left:auto}
.combo-list li.state-traite{background:#f1faf4}
.combo-list li.state-modifie{background:#fff5f5}
.combo-list li.active,.combo-list li[data-value]:hover{background:var(--pri);color:#fff}
.combo-list li.active small,.combo-list li[data-value]:hover small{color:rgba(255,255,255,.8)}
.combo-list li.selected{font-weight:650}
.combo-list li.combo-empty{cursor:default;color:var(--muted)}
.treat-box{box-shadow:var(--shadow),inset 0 0 0 2px #e5e5ea}
.treat-box.state-traite{background:#f4fbf6;box-shadow:var(--shadow),inset 0 0 0 2px #30b158}
.treat-box.state-modifie{background:#fff7f7;box-shadow:var(--shadow),inset 0 0 0 2px #ff3b30}
.treat-box label.big{font-size:1.05rem;margin:0}
.treat-box label.big input{width:24px;height:24px}
.treat-box .treat-msg{margin:.7em 0}
.treat-box.state-modifie .treat-msg{color:var(--bad);font-weight:600}
.treat-box.state-traite .treat-msg{color:var(--ok)}
.progress{display:flex;height:8px;border-radius:999px;background:#e8e8ed;overflow:hidden;margin:6px 0 10px}
.progress .p-traite{background:#30b158}.progress .p-modifie{background:#ff3b30}
.board-tools{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:12px}
.board-tools input[type=search]{flex:1 1 220px}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{min-height:34px;padding:5px 14px;font-size:.86rem}
a.chip{text-decoration:none}
.chip.active{background:var(--ink);color:#fff}
.chip.active:hover{background:#000}
.board-scroll{max-height:70vh;overflow:auto;border-radius:12px}
table.board th{position:sticky;top:0;z-index:1}
table.board td{vertical-align:middle}
table.board tr.state-traite td{background:#f4fbf6}
table.board tr.state-modifie td{background:#fff5f5}
table.board tr.nodata td{color:var(--muted)}
table.board input[type=checkbox]{width:22px;height:22px;cursor:pointer}
tr.changed td{background:#fff5f5}
.reset-bar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:14px}

/* ---------- Ma journée : choix du client puis saisie ---------- */
.client-choice{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}
.client-card{display:flex;flex-direction:column;gap:3px;padding:16px;border-radius:16px;text-decoration:none;color:var(--ink);background:#fafafc;
  box-shadow:inset 0 0 0 1px var(--line);transition:transform .15s,box-shadow .15s}
.client-card:hover{text-decoration:none;transform:translateY(-1px);box-shadow:inset 0 0 0 1px rgba(209,0,111,.35),0 6px 18px rgba(0,0,0,.06)}
.client-card strong{font-size:1.08rem;font-weight:650;letter-spacing:-.02em;color:var(--ink)}
.client-card.has-data{background:#f4fbf6;box-shadow:inset 0 0 0 1px rgba(48,177,88,.35)}
.client-search{width:100%;margin-bottom:12px}
.client-head{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between}
.client-code{font-size:1.45rem;font-weight:700;letter-spacing:-.025em}

/* ---------- Notifications ---------- */
.notif-count{display:inline-grid;place-items:center;min-width:18px;height:18px;margin-left:4px;padding:0 5px;border-radius:999px;background:#ff3b30;color:#fff;
  font-size:.68rem;font-weight:700;letter-spacing:0;vertical-align:1px}
table.notifs tr.unread td{background:#fdf1f7;font-weight:600}
.unread-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--pri)}
.bulk-bar{align-items:center;margin-bottom:12px}
select.type-none{color:var(--muted)}

/* ---------- Téléphone ---------- */
@media (max-width:820px){
  .top-inner{flex-wrap:wrap;gap:10px;padding:10px 14px}
  .brand{order:1}
  .account{order:2;margin-left:auto}
  .tabs{order:3;width:100%;margin:0}
  .avatar .name{display:none}
}
@media (max-width:640px){
  main{padding:18px 14px 40px}
  h1{font-size:1.6rem}
  .card{padding:16px;border-radius:16px}
  .rows .row>label{flex:1 1 45%}
  .stats{grid-template-columns:repeat(2,1fr)}
  /* Trajets : adresses sur toute la largeur, aucun champ ne dépasse de la carte */
  .rows .row>label{min-width:0}
  .rows .row>label.grow{flex:1 1 100%}
  .rows .row>label:not(.check)>input{width:100%}
  /* Passages véhicule : le code client sur sa ligne, les boutons dessous */
  .counter{flex-wrap:wrap;row-gap:6px}
  .counter strong{flex:1 0 100%}
  /* Suivi du traitement : la case « Traité » reste visible */
  table.board .col-opt{display:none}
}
/* ---------- Connexion ---------- */
.login{max-width:420px;margin:7vh auto 0}
.login-head{text-align:center;margin-bottom:22px}
.login-head h1{font-size:1.75rem;margin:16px 0 6px}
.login-head p{margin:0}
.logo.big{width:64px;height:64px;border-radius:16px;margin:0 auto;box-shadow:0 8px 24px rgba(209,0,111,.3)}
.logo.big svg{width:38px;height:38px}
.login .card{padding:26px}
.login button.primary{min-height:46px;font-size:1rem}
.center{text-align:center}
@media (max-width:640px){ .daynav .lbl{display:none} .daynav .btn{min-width:44px}
  .daynav form.inline{flex:1 1 0;min-width:0} .daynav form.inline input{width:100%} }
/* ---------- Téléphone : barre d'onglets en bas, comme une application iPhone ---------- */
.tabbar{display:none}
.logout-form{margin:6px 0 14px}
@media (max-width:820px){
  .tabs{display:none}
  .top-inner{flex-wrap:nowrap;padding:10px 16px}
  .account{margin-left:auto}
  .account form{display:none}
  .tabbar{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;position:fixed;left:0;right:0;bottom:0;z-index:60;
    background:rgba(255,250,252,.9);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);
    border-top:1px solid var(--line);padding:6px 4px;padding:6px 4px calc(6px + env(safe-area-inset-bottom,0px))}
  .tabbar-track>a{position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;padding:3px 0;
    color:#8e8e93;font-size:.68rem;font-weight:500;letter-spacing:0;text-decoration:none;cursor:pointer;-webkit-tap-highlight-color:transparent}
  .tabbar svg{width:27px;height:27px}
  .tabbar-track>a.active{color:var(--pri)}
  .tabbar .notif-count{position:absolute;top:-2px;left:calc(50% + 5px);margin:0}
  .tabbar details{position:relative}
  .tabbar summary{list-style:none}
  .tabbar summary::-webkit-details-marker{display:none}
  .more-menu{position:absolute;right:4px;bottom:calc(100% + 12px);min-width:220px;padding:6px;display:grid;gap:2px;background:#fff;
    -webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:16px;box-shadow:var(--shadow-pop),0 0 0 .5px rgba(0,0,0,.08)}
  .more-menu a,.more-menu button{display:block;width:100%;padding:12px 14px;border-radius:10px;color:var(--ink);font-size:1rem;font-weight:500;text-align:left;
    background:none;min-height:0;text-decoration:none}
  .more-menu a:hover,.more-menu button:hover{background:#f2f2f7;text-decoration:none}
  .more-menu .danger-text{color:var(--bad)}
  main{padding-bottom:100px;padding-bottom:calc(100px + env(safe-area-inset-bottom,0px))}
}
@media (max-width:820px),(max-height:500px){
  /* Téléphone : la barre d'actions des relevés ne reste plus collée (elle masquait la moitié de l'écran) */
  .sticky-actions{position:static}
}
/* ---------- Relevés intervenant / client ---------- */
.export-bar{display:flex;flex-wrap:wrap;gap:12px 22px;align-items:center}
.export-group{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.doc-head{display:flex;flex-wrap:wrap;gap:14px 24px;align-items:center;justify-content:space-between}
.doc-who{font-size:1.1rem;margin-bottom:2px}
.period-nav{display:flex;flex-wrap:wrap;gap:6px;align-items:center;min-width:0;max-width:100%}
.period-nav input[type=month]{flex:0 1 auto;min-width:0}
.doc-actions{display:flex;gap:8px;flex-wrap:wrap}
table.doc-table td,table.doc-table th{font-size:.95rem}
table.doc-table tr.total td{font-size:1rem}
th.num{text-align:right}
/* Logo Athome (illustration) */
.logo-img{height:36px;width:auto;display:block}
.logo-login{height:110px;width:auto;display:block;margin:0 auto}
/* Relevés : tableau de synthèse lisible sur téléphone */
@media (max-width:640px){
  table.doc-table th{font-size:.62rem;letter-spacing:0;white-space:normal;padding:8px 4px;word-break:break-word;-webkit-hyphens:auto;hyphens:auto}
  table.doc-table td{font-size:.8rem;padding:8px 4px}
  table.doc-table td.num{white-space:normal}
  table.doc-table tr.total td{font-size:.85rem}
  table.doc-table td .muted{display:block}
}
@media (max-width:360px){
  main{padding-left:10px;padding-right:10px}
  .card.doc-card{padding:12px 6px}
}
/* Retransmission après traitement */
.chip.chip-alert{background:var(--bad-bg);color:var(--bad)}
.chip.chip-alert.active{background:var(--bad);color:#fff}
table.notifs tr.retrans.unread td{background:#fff3f3}
.preprod-banner{background:repeating-linear-gradient(45deg,#ff9f0a,#ff9f0a 12px,#ffb340 12px,#ffb340 24px);color:#1d1d1f;font-weight:700;text-align:center;padding:6px 12px;font-size:.85rem}
/* ---------- Compatibilité navigateurs (téléphones) ---------- */
button,.btn,a,summary,label,input[type=checkbox]{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
@media (max-width:820px){
  /* iPhone : Safari zoome automatiquement sur un champ dont le texte fait moins de 16 px */
  input,select,textarea{font-size:16px}
}
@supports (-webkit-touch-callout:none){
  /* iOS : champs date / heure à la bonne hauteur, texte aligné à gauche */
  input[type=date],input[type=time],input[type=month]{-webkit-appearance:none;appearance:none;min-height:42px;line-height:1.25;background:#fff}
  input::-webkit-date-and-time-value{text-align:left;min-height:1.25em}
}
input[type=search]::-webkit-search-decoration{-webkit-appearance:none}
.month-fallback{display:inline-flex;gap:6px}
.month-fallback select{min-width:0}
/* Mot de passe généré / compte bloqué */
.newpw-box{box-shadow:var(--shadow),inset 0 0 0 2px #30b158;background:#f4fbf6}
.newpw{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:1.6rem;font-weight:700;letter-spacing:.06em;margin:.2em 0 .5em;user-select:all;-webkit-user-select:all}
.lock-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.manual-pw{margin-top:12px}
.manual-pw summary{cursor:pointer;color:var(--muted)}
.tags{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
.tag{display:inline-flex;align-items:center;gap:4px;padding:4px 4px 4px 12px;border-radius:999px;background:#eef1f6;font-weight:500;font-size:.92rem}
.tag.inactive{opacity:.55}
.tag small{color:var(--muted)}
button.tag-x{min-height:28px;width:28px;padding:0;border-radius:50%;background:transparent;color:var(--muted);font-size:.85rem}
button.tag-x:hover{background:#dfe3ea;color:var(--bad)}
.add-assign{max-width:520px}
.add-assign .combo{min-width:0}
.combo.no-state::before{display:none}
.combo.no-state input{padding-left:12px}
/* Ancres (#trajets, #traitement…) : le titre n'est plus caché sous l'en-tête collant */
html{scroll-padding-top:70px;scroll-padding-top:calc(env(safe-area-inset-top,0px) + 70px)}
/* Clients : actions groupées (type de prestation, secteur) ; synthèses */
.bulk-bar .bulk-line{align-items:center;gap:8px 12px;margin-bottom:8px}
.bulk-bar .bulk-line select{width:auto;max-width:100%}
.synth-chips{margin:0 0 14px}
/* ---------- Confirmation dans la page (remplace la fenêtre confirm() du navigateur) ---------- */
.confirm-veil{position:fixed;left:0;top:0;right:0;bottom:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(0,0,0,.38)}
.confirm-box{background:#fff;border-radius:var(--radius);padding:22px;width:100%;max-width:420px;box-shadow:var(--shadow-pop)}
.confirm-msg{margin:0 0 18px;font-size:1rem;line-height:1.45;white-space:pre-line;overflow-wrap:anywhere}
.confirm-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px}
/* Connexion : aide si les cookies sont bloqués */
.help-list{margin:8px 0;padding-left:18px}
.help-list li{margin:4px 0}
#open-browser{margin-top:4px}
/* ---------- Compatibilité : anciens navigateurs ---------- */
/* Sans flou d'arrière-plan (Firefox ancien, vieux Android) : fonds opaques pour rester lisible */
@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){
  .top{background:rgba(255,251,253,.97)}
  .tabbar{background:rgba(255,250,252,.98)}
  .sticky-actions,.ac-list,.combo-list,.more-menu{background:#fff}
}
/* Flexbox sans « gap » (iPhone avant iOS 14.5, Android 4) : espacement par marges */
@supports not (inset:0){
  .top-inner>*,.brand>*,.account>*,.avatar>*,.row>*,.daynav>*,.formbar>*,.filters>*,.pwgen>*,.item .actions>*,.counter>*,.sticky-actions>*,
  .export-bar>*,.export-group>*,.doc-head>*,.doc-actions>*,.period-nav>*,.chips>*,.tags>*,.lock-actions>*,.board-tools>*,.client-head>*,
  .legend>*,.bulk-line>*,.reset-bar>*,.month-fallback>*,.confirm-actions>*{margin-right:10px}
  .brand>*:last-child,.account>*:last-child,.avatar>*:last-child,.pwgen>*:last-child,.confirm-actions>*:last-child{margin-right:0}
  label.check>input,.combo-list li>.st-dot,.tag>*{margin-right:8px}
  .tabs a{margin-right:2px}
  .rows .row>label,.chips>*,.tags>*,.daynav>*,.formbar>*,.filters>*,.export-bar>*,.lock-actions>*,.board-tools>*{margin-bottom:8px}
  .rows .row>label,.filters>label{margin-right:10px}  /* plus précis que « .rows .row label{margin:0} » */
  .top-inner>.tabs{margin-right:auto}  /* les onglets restent centrés sur ordinateur */
}
/* ---------- Espace client : validation / contestation des heures ---------- */
.badge.cst-a_valider{background:var(--warn-bg);color:var(--warn)}
.badge.cst-validee,.badge.cst-auto{background:var(--ok-bg);color:var(--ok)}
.badge.cst-contestee{background:var(--bad-bg);color:var(--bad)}
.badge.cst-traitee{background:var(--pri-soft);color:#a41c5c}
.badge.agency{background:var(--pri-soft);color:#a41c5c}
.badge.acc-aucun{background:#ececf0;color:#48484a}.badge.acc-temporaire,.badge.acc-conditions{background:var(--warn-bg);color:var(--warn)}
.badge.acc-actif{background:var(--ok-bg);color:var(--ok)}.badge.acc-bloque{background:var(--bad-bg);color:var(--bad)}
a.badge:hover{text-decoration:none;filter:brightness(.95)}
.deadline-box{box-shadow:var(--shadow),inset 0 0 0 2px #e5e5ea}
.deadline-box.open{background:#fff8ee;box-shadow:var(--shadow),inset 0 0 0 2px #ff9f0a}
.deadline-box p{margin:0 0 10px}
.client-chips{margin:0 0 14px}
h2.day-head{margin:18px 0 8px;font-size:1rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.line-card{padding:16px 18px;margin-bottom:10px;box-shadow:var(--shadow),inset 4px 0 0 #e5e5ea}
.line-card.st-a_valider{box-shadow:var(--shadow),inset 4px 0 0 #ff9f0a}
.line-card.st-validee,.line-card.st-auto{box-shadow:var(--shadow),inset 4px 0 0 #30b158}
.line-card.st-contestee{box-shadow:var(--shadow),inset 4px 0 0 #ff3b30}
.line-card.st-traitee{box-shadow:var(--shadow),inset 4px 0 0 var(--pri)}
.line-main{display:grid;gap:5px}
.line-what{font-size:1rem}
.line-state{font-size:.9rem}
.line-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}
button.ok-btn,.btn.ok-btn{background:var(--ok);color:#fff}
button.ok-btn:hover,.btn.ok-btn:hover{background:#166a2d}
button.bad-btn,.btn.bad-btn{background:var(--bad);color:#fff}
button.bad-btn:hover,.btn.bad-btn:hover{background:#b80012}
.contest-item{margin:10px 0 14px}
.contest-motif{white-space:pre-line;overflow-wrap:anywhere;padding:10px 12px;border-radius:12px;background:#fafafc;box-shadow:inset 0 0 0 1px var(--line);margin:8px 0}
.contest-reponse{margin-top:6px;padding:10px 12px;border-radius:12px;background:var(--pri-soft);overflow-wrap:anywhere}
.contest-card.ouverte{box-shadow:var(--shadow),inset 4px 0 0 #ff3b30}
.contest-card.traitee{box-shadow:var(--shadow),inset 4px 0 0 var(--pri)}
.pieces{margin:6px 0;padding-left:18px}
.pieces li{margin:4px 0;overflow-wrap:anywhere}
table.contest-table td.motif-cell{max-width:360px;overflow-wrap:anywhere}
.consent-text ul{padding-left:20px}
.consent-text li{margin:8px 0}
.consent label.big{font-size:1rem;margin:16px 0;align-items:flex-start}
.consent label.big input{width:24px;height:24px;margin-top:2px}
.access-box ul.access-info{margin:4px 0 10px;padding-left:18px}
.access-box ul.access-info li{margin:3px 0}
.agency-box strong{display:block}
.user-tabs{margin:0 0 16px}
input[type=file]{padding:8px 10px}
@media (max-width:640px){
  .line-actions form,.line-actions .btn,.line-actions button{flex:1 1 45%}
  .line-actions button{width:100%}
  .deadline-box button{width:100%}
}
/* Espace client : les pastilles d'état, longues, passent à la ligne sur petit écran */
.line-card .badge,.contest-card .badge,.deadline-box .badge{white-space:normal;vertical-align:baseline;line-height:1.35}
.avatar span.initials svg{width:17px;height:17px}
/* Nom du client sous son code (choix du client, Ma journée) */
.client-card .client-code-sub{color:var(--muted)}
a.client-link{color:var(--ink)}
/* ===================== Mise à jour du 27/10/2026 ===================== */
/* En-tête de l'agence (8 onglets) : les onglets passent sur leur propre ligne, rien n'est jamais caché */
@media (min-width:821px){
  .top-many .top-inner{flex-wrap:wrap;row-gap:0}
  .top-many .brand{order:1}
  .top-many .account{order:2;margin-left:auto}
  /* passage à la ligne forcé, puis un fond gris qui épouse exactement les onglets (centré) */
  .top-many .top-inner::after{content:"";order:2;flex:0 0 100%;height:0}
  .top-many .tabs{order:3;flex:0 1 auto;width:auto;max-width:100%;margin:8px auto 0;flex-wrap:wrap;justify-content:center;border-radius:20px;overflow:visible}
  .top-many .tabs a{padding:6px 13px}
}
/* Téléphone : barre du bas défilante (glisser de droite à gauche), plus de menu « Plus » */
.tabbar-track{display:contents}
@media (max-width:820px){
  .tabbar{display:block;padding:0;padding-bottom:env(safe-area-inset-bottom,0px)}
  .tabbar-track{display:flex;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;
    scrollbar-width:none;padding:6px 4px;overscroll-behavior-x:contain}
  .tabbar-track::-webkit-scrollbar{display:none}
  .tabbar-track>a{flex:1 0 auto;min-width:72px;scroll-snap-align:start;padding:3px 6px}
  .tabbar-scroll .tabbar-track>a{flex:0 0 auto;min-width:78px}
  .tabbar-scroll::before,.tabbar-scroll::after{content:"";position:absolute;top:0;bottom:0;width:22px;pointer-events:none;z-index:1;opacity:0;transition:opacity .2s}
  .tabbar-scroll::before{left:0;background:linear-gradient(90deg,rgba(255,250,252,.98),rgba(255,250,252,0))}
  .tabbar-scroll::after{right:0;background:linear-gradient(270deg,rgba(255,250,252,.98),rgba(255,250,252,0))}
  .tabbar-scroll.more-left::before,.tabbar-scroll.more-right::after{opacity:1}
  .tabbar .notif-count{left:calc(50% + 6px)}
  .site-foot{margin-bottom:calc(84px + env(safe-area-inset-bottom,0px))}
}
.tabbar-track>a{position:relative}
/* Pied de page : pages légales */
.site-foot{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 18px;padding:8px 16px 26px;font-size:.8rem}
.site-foot a{color:var(--muted)}
.legal{max-width:820px;margin:0 auto}
.legal-nav{margin:0 0 14px;justify-content:center}
.legal-text h1{font-size:1.6rem}
.legal-text h2{margin-top:1.4em}
.legal-text li{margin:5px 0}
.legal-text ul ul{margin-top:4px}
.legal-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:0 14px}
/* Badges */
.badge.vp{background:#fce8f2;color:#a41c5c}
.badge.indiv{background:#fff4e0;color:#8a4b00;white-space:normal}
.badge.cst-a_venir{background:#ececf0;color:#48484a}
.badge.cst-refusee{background:#f3e8ff;color:#6b21a8}
.line-card.st-refusee{box-shadow:var(--shadow),inset 4px 0 0 #8b5cf6}
.line-card.st-a_venir{box-shadow:var(--shadow),inset 4px 0 0 #c7c7cc}
.contest-card.refusee{box-shadow:var(--shadow),inset 4px 0 0 #8b5cf6}
/* Question « véhicule personnel » en arrivant chez le client */
.vp-question{border-radius:16px;padding:16px;background:#fdf1f7;box-shadow:inset 0 0 0 1px rgba(209,0,111,.25);margin:4px 0 8px}
.vp-question p{margin:0 0 8px}
.vp-answers{display:flex;gap:10px;flex-wrap:wrap}
.vp-answers .btn{min-width:110px;min-height:46px;font-size:1.05rem}
label.check.vp-check{flex-basis:100%;font-size:.9rem}
/* Duplication sur d'autres jours */
details.dup>summary{list-style:none;cursor:pointer;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px}
details.dup>summary::-webkit-details-marker{display:none}
details.dup>summary h2{margin:0}
details.dup>summary::after{content:"›";margin-left:auto;font-size:1.4rem;color:var(--muted);transform:rotate(90deg);transition:transform .15s}
details.dup[open]>summary::after{transform:rotate(-90deg)}
.dup-form fieldset{border:0;padding:0;margin:16px 0 0;min-width:0}
.dup-form legend{font-weight:650;margin-bottom:8px;padding:0}
.dup-cats,.dup-lines,.dup-tools{display:flex;flex-wrap:wrap;gap:8px 18px;margin-bottom:10px}
.dup-lines label{background:#fafafc;border-radius:10px;padding:6px 10px;box-shadow:inset 0 0 0 1px var(--line)}
.dup-lines label.off{opacity:.45}
table.dup-cal{width:auto;min-width:100%;table-layout:fixed}
table.dup-cal th{text-align:center;padding:4px 2px}
table.dup-cal td{padding:3px;border:0;text-align:center}
.dup-day{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:52px;min-width:40px;margin:0;border-radius:12px;
  background:#fafafc;box-shadow:inset 0 0 0 1px var(--line);cursor:pointer;color:var(--ink);font-size:.95rem;position:relative}
.dup-day input{width:22px;height:22px}
.dup-day .dup-num small{color:var(--muted);font-size:.68rem}
.dup-day.is-source{background:var(--pri-soft);box-shadow:inset 0 0 0 2px var(--pri);cursor:default}
.dup-day .dup-src{font-size:.66rem;color:#a41c5c;font-weight:600}
.dup-day.has-data::after{content:"";position:absolute;top:5px;right:6px;width:7px;height:7px;border-radius:50%;background:#30b158}
.dup-day:has(input:checked){background:#e9f7ee;box-shadow:inset 0 0 0 2px #30b158}
@media (max-width:420px){ .dup-day{min-width:0;min-height:48px} .dup-day input{width:20px;height:20px} table.dup-cal td{padding:2px} }
/* Pièces jointes : bouton « Choisir des fichiers » */
.file-pick{margin:0 0 12px}
.file-pick-label{display:block;font-size:.82rem;font-weight:500;color:var(--muted);margin-bottom:6px}
.file-pick input[type=file]{display:block;width:100%;max-width:100%;min-height:0;padding:10px;border:1.5px dashed var(--field);border-radius:12px;background:#fafafc;
  font-size:.92rem;color:var(--muted)}
.file-pick input[type=file]::file-selector-button{font:inherit;font-weight:600;border:0;border-radius:999px;padding:8px 16px;margin-right:12px;
  background:var(--pri);color:#fff;cursor:pointer}
.file-pick input[type=file]::-webkit-file-upload-button{font:inherit;font-weight:600;border:0;border-radius:999px;padding:8px 16px;margin-right:12px;
  background:var(--pri);color:#fff;cursor:pointer}
.file-pick.enhanced input[type=file]{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden;pointer-events:none}
.file-pick .fp-zone{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:12px;border:1.5px dashed var(--field);border-radius:14px;background:#fafafc}
.file-pick.has-files .fp-zone{border-color:#30b158;background:#f4fbf6}
.file-pick.focus .fp-zone{box-shadow:0 0 0 4px rgba(209,0,111,.2);border-color:var(--pri)}
.file-pick .fp-names{flex:1 1 180px;min-width:0;font-size:.9rem;color:var(--muted);overflow-wrap:anywhere}
.file-pick.has-files .fp-names{color:var(--ink)}
.file-pick .fp-names li{margin:2px 0}
.file-pick .fp-names ul{margin:0;padding-left:18px}
.file-pick .fp-error{flex-basis:100%;color:var(--bad);font-size:.85rem}
.file-pick-help{margin:6px 0 0}
/* Champ mot de passe avec œil */
.pw-field{position:relative;display:block}
.pw-field input{width:100%;padding-right:52px}
.pw-eye{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:44px;height:38px;min-height:0;padding:0;border-radius:10px;background:transparent;color:var(--muted)}
.pw-eye:hover{background:rgba(0,0,0,.05)}
.pw-eye svg{width:22px;height:22px}
.pw-eye[aria-pressed=true]{color:var(--pri)}
/* Contestation : décision de l'agence, pièces */
.decision-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}
.pieces form{margin-left:6px}
ul.snap{margin:6px 0 0;padding-left:18px}
/* Notifications du client */
.notif-list{display:grid;gap:10px}
a.notif-card{display:grid;gap:6px;color:var(--ink);text-decoration:none;padding:14px 16px;margin:0}
a.notif-card:hover{text-decoration:none;box-shadow:var(--shadow-pop)}
a.notif-card.unread{background:#fdf1f7;box-shadow:var(--shadow),inset 4px 0 0 var(--pri)}
.notif-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.card-actions{margin:0 0 12px}
/* Historique : recherche */
.hist-cats{border:0;padding:0;margin:4px 0 0;display:flex;flex-wrap:wrap;gap:6px 16px;min-width:0}
.hist-cats legend{font-size:.82rem;font-weight:500;color:var(--muted);margin-bottom:6px;padding:0}
.hist-filters .row>label{flex:1 1 150px}
.hist-table code{display:inline-block;max-width:340px}
/* Téléphone : rien ne dépasse de l'écran */
@media (max-width:640px){
  .hist-filters .row>label{flex:1 1 100%}
  .decision-actions button{flex:1 1 100%}
  .vp-answers .btn{flex:1 1 40%}
  .daynav form.inline input[type=date]{min-width:0}
  table.contest-table td.motif-cell{max-width:220px}
}
@media (max-width:820px){ .tabbar-scroll .tabbar-track>a{min-width:74px;font-size:.66rem} }
/* Petits écrans d'ordinateur / tablettes en paysage (821 à 1000 px) : onglets plus compacts, sur une seule ligne */
@media (min-width:821px) and (max-width:1000px){
  .top-many .tabs{gap:0}
  .top-many .tabs a{padding:6px 8px;font-size:.84rem}
  .top-many .tabs .notif-count{margin-left:2px}
}
/* Historique : détail lisible « Champ : ancien → nouveau » */
ul.hist-detail{list-style:none;margin:0;padding:0}
ul.hist-detail li{margin:0 0 2px;overflow-wrap:anywhere}
ul.hist-detail .hl{color:var(--muted)}
ul.hist-detail .hold{color:var(--muted)}
table.hist-table td{vertical-align:top}
@media (max-width:640px){ table.hist-table{min-width:560px} }

/* ===================== Thème Athome : couleurs du logo et ombres douces ===================== */
/* Fuchsia #e4047c (robe), rose #e48cb4 (peau), prune #642c44 (cheveux), framboise #a41c5c (chaussures) */
:root{--brand:#e4047c;--plum:#642c44;--rasp:#a41c5c;--blush:#e48cb4}
body{background:linear-gradient(180deg,#fbe9f2 0,#f8f3f6 360px) no-repeat,var(--bg)}
::selection{background:#f9cfe3}
h1{color:var(--plum)}
.brand{color:var(--plum)}
.top{box-shadow:0 1px 0 rgba(100,44,68,.06),0 6px 20px rgba(100,44,68,.06);border-bottom-color:rgba(100,44,68,.08)}
.tabs{background:rgba(100,44,68,.06)}
.tabs a.active{color:var(--rasp);box-shadow:0 2px 8px rgba(100,44,68,.14),0 0 0 .5px rgba(100,44,68,.06)}
.tabs a:hover{background:rgba(255,255,255,.7)}
.card,.stat,.flash{box-shadow:var(--shadow),0 0 0 1px rgba(100,44,68,.04)}
.flash.success,.flash.error,.flash.warning{box-shadow:0 2px 10px rgba(100,44,68,.05)}
.stat span{color:var(--plum)}
a.stat:hover,.client-card:hover{box-shadow:0 10px 28px rgba(100,44,68,.14),0 0 0 1px rgba(209,0,111,.25)}
button.primary,.btn.primary,.btn.next{background:linear-gradient(180deg,#e0067a,#c8006a);box-shadow:0 4px 14px rgba(209,0,111,.28)}
button.primary:hover,.btn.primary:hover,.btn.next:hover{background:linear-gradient(180deg,#d1006f,#b4005e)}
button.ok-btn,.btn.ok-btn{box-shadow:0 4px 14px rgba(29,122,54,.25)}
button.bad-btn,.btn.bad-btn{box-shadow:0 4px 14px rgba(215,0,21,.22)}
button,.btn{transition:background .15s,box-shadow .15s,transform .05s}
.chip.active{background:var(--plum)}
.chip.active:hover{background:#4f2134}
.avatar span.initials{background:#f6dbe8;color:var(--plum)}
.avatar.active span.initials{background:var(--pri)}
.item,.rows .row,.client-card{box-shadow:inset 0 0 0 1px var(--line),0 2px 8px rgba(100,44,68,.05)}
.client-card.has-data{box-shadow:inset 0 0 0 1px rgba(48,177,88,.35),0 2px 8px rgba(100,44,68,.05)}
th{color:#8a6a78}
.login .card{box-shadow:0 18px 50px rgba(100,44,68,.16),0 2px 8px rgba(100,44,68,.06)}
.login-head h1{color:var(--plum)}
.logo-login{filter:drop-shadow(0 8px 18px rgba(228,4,124,.18))}
.tabbar{box-shadow:0 -6px 20px rgba(100,44,68,.07)}
.confirm-box{box-shadow:0 24px 60px rgba(100,44,68,.28)}
.site-foot a:hover{color:var(--rasp)}
/* Colonne des actions toujours visible au bord droit des tableaux qui défilent (Gérer, Modifier, Traiter, Voir…) */
th.act,td.act{position:-webkit-sticky;position:sticky;right:0;z-index:1;background:var(--card);white-space:nowrap;
  box-shadow:-12px 0 12px -12px rgba(100,44,68,.35)}
th.act{z-index:2}
tr:hover td.act{background:#fdf7fa}
tr.alert td.act{background:#fff6f6}
tr.changed td.act{background:#fff5f5}
table.notifs tr.unread td.act{background:#fdf1f7}
tr.inactive td.act{opacity:1}
tr.inactive td.act>*{opacity:.75}
.act-group{display:flex;flex-wrap:nowrap;gap:6px;align-items:center}
.act-group form{display:inline}
/* Tableau des clients : compact, tout tient sur un écran d'ordinateur */
table.clients-table td{vertical-align:middle}
table.clients-table .cl-who{min-width:140px;max-width:230px}
table.clients-table .client-link{display:flex;flex-direction:column;color:var(--ink)}
table.clients-table .client-link:hover{text-decoration:none}
table.clients-table .client-link:hover strong{color:var(--pri)}
table.clients-table .cl-name{font-size:.84rem;color:var(--muted);overflow-wrap:anywhere}
table.clients-table select{max-width:180px;min-height:36px;padding-top:6px;padding-bottom:6px;font-size:.86rem}
table.clients-table select[name=secteur]{max-width:120px}
table.clients-table .cl-staff{max-width:180px;font-size:.86rem}
@media (max-width:820px){ table.clients-table select{font-size:16px} }
@media (max-width:640px){
  th.act,td.act{white-space:normal}
  .act-group{flex-wrap:wrap;max-width:200px}
}
/* ===================== Effets : ombres plus présentes, brillance et reflets ===================== */
:root{
  --shadow:0 1px 1px rgba(100,44,68,.05),0 2px 6px rgba(100,44,68,.07),0 12px 32px -6px rgba(100,44,68,.16);
  --shadow-pop:0 2px 6px rgba(100,44,68,.10),0 18px 48px -8px rgba(100,44,68,.30);
  --gloss:linear-gradient(180deg,rgba(255,255,255,.75) 0,rgba(255,255,255,0) 42%,rgba(252,232,242,.28) 100%);
  --hi:inset 0 1px 0 rgba(255,255,255,.95);
}
/* Fond : halos roses et prune très doux */
body{background:
  radial-gradient(900px 520px at 8% -8%,rgba(228,4,124,.10),rgba(228,4,124,0) 70%),
  radial-gradient(800px 500px at 100% 0,rgba(100,44,68,.08),rgba(100,44,68,0) 70%),
  linear-gradient(180deg,#fbe9f2 0,#f8f3f6 420px) no-repeat,var(--bg)}
/* Cartes : légèrement laquées (reflet en haut), ombre en relief */
.card,.stat{background-image:var(--gloss);box-shadow:var(--hi),var(--shadow),0 0 0 1px rgba(100,44,68,.05)}
.stat{transition:transform .2s,box-shadow .2s}
a.stat:hover{transform:translateY(-2px);box-shadow:var(--hi),var(--shadow-pop),0 0 0 1px rgba(209,0,111,.18)}
.stat span{background:linear-gradient(180deg,#7a3555,#4f2134);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.item,.rows .row,.client-card,.line-card,.dup-day,.vp-question,.contest-motif{background-image:var(--gloss)}
.item,.rows .row{box-shadow:var(--hi),inset 0 0 0 1px var(--line),0 3px 10px -2px rgba(100,44,68,.10)}
.client-card{box-shadow:var(--hi),inset 0 0 0 1px var(--line),0 4px 14px -4px rgba(100,44,68,.16);transition:transform .2s,box-shadow .2s}
.client-card:hover{transform:translateY(-2px);box-shadow:var(--hi),inset 0 0 0 1px rgba(209,0,111,.35),0 14px 30px -8px rgba(100,44,68,.28)}
.client-card.has-data{box-shadow:var(--hi),inset 0 0 0 1px rgba(48,177,88,.40),0 4px 14px -4px rgba(48,177,88,.20)}
/* En-tête et barre du bas : effet verre */
.top{background:linear-gradient(180deg,rgba(255,255,255,.94),rgba(255,244,249,.84));
  box-shadow:inset 0 -1px 0 rgba(255,255,255,.6),0 1px 0 rgba(100,44,68,.06),0 10px 28px -8px rgba(100,44,68,.18)}
.tabs{background:linear-gradient(180deg,rgba(100,44,68,.09),rgba(100,44,68,.04));box-shadow:inset 0 1px 3px rgba(100,44,68,.12),0 1px 0 rgba(255,255,255,.8)}
.tabs a.active{background:linear-gradient(180deg,#fff 0,#fff5fa 100%);box-shadow:var(--hi),0 3px 10px rgba(100,44,68,.20),0 0 0 .5px rgba(100,44,68,.08)}
.tabbar{background:linear-gradient(180deg,rgba(255,250,252,.88),rgba(255,255,255,.96));box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 -10px 28px -6px rgba(100,44,68,.16)}
/* Boutons : relief brillant */
button:not(.link):not(.ghost):not(.tag-x):not(.pw-eye):not(.chip),.btn:not(.chip){
  background-image:linear-gradient(180deg,#fff 0,#f1eaee 100%);
  box-shadow:inset 0 1px 0 #fff,0 0 0 1px rgba(100,44,68,.09),0 2px 6px -1px rgba(100,44,68,.16)}
button:not(.link):not(.ghost):not(.tag-x):not(.pw-eye):not(.chip):hover,.btn:not(.chip):hover{
  background-image:linear-gradient(180deg,#fff 0,#ebe1e7 100%);box-shadow:inset 0 1px 0 #fff,0 0 0 1px rgba(100,44,68,.12),0 6px 14px -4px rgba(100,44,68,.24)}
button.primary,.btn.primary,.btn.next{position:relative;overflow:hidden;
  background-image:linear-gradient(180deg,#ef2f95 0,#d6007a 48%,#c0006a 52%,#b30061 100%)!important;color:#fff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.45),inset 0 -2px 4px rgba(80,0,40,.18),0 6px 18px -4px rgba(209,0,111,.55),0 0 0 1px rgba(160,0,85,.35)!important}
button.primary:hover,.btn.primary:hover,.btn.next:hover{background-image:linear-gradient(180deg,#f2479f 0,#dc0a80 48%,#c4006c 52%,#b30061 100%)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.5),inset 0 -2px 4px rgba(80,0,40,.18),0 10px 24px -6px rgba(209,0,111,.65),0 0 0 1px rgba(160,0,85,.4)!important}
/* Reflet qui passe sur les boutons principaux au survol */
button.primary::after,.btn.primary::after,.btn.next::after{content:"";position:absolute;top:0;bottom:0;left:-60%;width:40%;pointer-events:none;
  background:linear-gradient(105deg,rgba(255,255,255,0) 0,rgba(255,255,255,.38) 50%,rgba(255,255,255,0) 100%);transform:skewX(-18deg);transition:left .6s ease}
button.primary:hover::after,.btn.primary:hover::after,.btn.next:hover::after{left:125%}
@media (prefers-reduced-motion:reduce){ button.primary::after,.btn.primary::after,.btn.next::after{display:none} .stat,.client-card{transition:none} }
button.primary:disabled{box-shadow:none!important}
button.ok-btn,.btn.ok-btn{background-image:linear-gradient(180deg,#34b05e 0,#1f8a3d 50%,#1d7a36 100%)!important;color:#fff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.4),0 6px 16px -4px rgba(29,122,54,.5),0 0 0 1px rgba(20,90,40,.3)!important}
button.bad-btn,.btn.bad-btn{background-image:linear-gradient(180deg,#f2435a 0,#d70015 52%,#c00012 100%)!important;color:#fff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.4),0 6px 16px -4px rgba(215,0,21,.45),0 0 0 1px rgba(150,0,15,.3)!important}
button.danger{background-image:linear-gradient(180deg,#fff7f8,#ffe3e6)!important;box-shadow:inset 0 1px 0 #fff,0 0 0 1px rgba(215,0,21,.16),0 2px 6px -1px rgba(215,0,21,.18)!important}
.chip{box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 0 0 1px rgba(100,44,68,.08),0 2px 5px -1px rgba(100,44,68,.12);background-image:linear-gradient(180deg,#fff,#f0e9ed)}
.chip.active{background-image:linear-gradient(180deg,#83405f 0,#642c44 55%,#55233a 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 5px 14px -4px rgba(100,44,68,.5)}
.chip.chip-alert{background-image:linear-gradient(180deg,#fff7f8,#ffe6e9)}
.round{box-shadow:inset 0 1px 0 #fff,0 0 0 1px rgba(100,44,68,.1),0 4px 10px -2px rgba(100,44,68,.2)}
/* Champs : légère ombre intérieure, halo à la saisie */
input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea{box-shadow:inset 0 1px 2px rgba(100,44,68,.08)}
input:focus,select:focus,textarea:focus{box-shadow:inset 0 1px 2px rgba(100,44,68,.06),0 0 0 4px rgba(209,0,111,.16)}
/* Pastilles : petit reflet */
.badge{background-image:linear-gradient(180deg,rgba(255,255,255,.55),rgba(255,255,255,0));box-shadow:inset 0 0 0 1px rgba(100,44,68,.05)}
.notif-count{background-image:linear-gradient(180deg,#ff6b6b,#e0263a);box-shadow:0 2px 6px rgba(224,38,58,.45)}
/* Tableaux : en-tête dégradé, survol lumineux */
th{background:linear-gradient(180deg,#fff,#fbf4f8)}
tbody tr:hover td,table tr:hover td{background-color:#fdf5f9}
/* Messages */
.flash{box-shadow:var(--hi),0 6px 18px -8px rgba(100,44,68,.25);background-image:var(--gloss)}
/* Connexion : carte en relief, logo lumineux */
.login .card{box-shadow:var(--hi),0 2px 6px rgba(100,44,68,.08),0 28px 60px -16px rgba(100,44,68,.32),0 0 0 1px rgba(100,44,68,.05)}
.logo-login{filter:drop-shadow(0 10px 22px rgba(228,4,124,.28))}
.logo-img{filter:drop-shadow(0 2px 4px rgba(228,4,124,.25))}
.avatar span.initials{background-image:linear-gradient(180deg,#fff,#f3d7e5);box-shadow:inset 0 1px 0 #fff,0 0 0 1px rgba(100,44,68,.10),0 2px 6px rgba(100,44,68,.15)}
.confirm-box{background-image:var(--gloss)}
.stat.bad span{background:none;-webkit-text-fill-color:var(--bad);color:var(--bad)}
/* Le fond (halos + dégradé) ne se répète pas en bas des pages courtes */
html{background-color:var(--bg)}
body{background-repeat:no-repeat;min-height:100vh}

/* ---------- v38 : boutons alignés sur les champs, largeur adaptée à l'écran ---------- */
/* Bouton placé après des champs : même hauteur que les champs (les étiquettes gardent 12 px de marge en bas) */
.row>label:not(.check)~button,.row>label:not(.check)~.btn{margin-bottom:12px}
.rows .row>label~button,.rows .row>label~.btn{margin-bottom:0}
/* Formulaires de création (Salariés, Clients) : les champs se partagent la ligne, le bouton « Créer » reste à côté */
form.create-form>label{flex:1 1 160px}
form.create-form>button{flex:none}
/* Espace agence : la page s'élargit avec l'écran (jusqu'à 1600 px) au lieu de rester à 1180 px */
body.wide main,body.wide .top-inner{max-width:1600px}
/* Tableau des clients : l'état de l'espace client passe à la ligne au lieu d'être caché sous la colonne des actions */
table.clients-table .badge{white-space:normal;line-height:1.35;text-align:center}
/* Écrans moyens (petit portable, tablette en paysage) : les boutons d'action passent sur deux lignes plutôt que de déborder */
@media (max-width:1100px){
  th.act,td.act{white-space:normal}
  .act-group{flex-wrap:wrap;max-width:210px;min-width:150px}
  table.clients-table select{max-width:150px}
  table.clients-table .cl-staff{max-width:140px}
}
/* Cases à cocher de la barre « Clients cochés » : centrées sur la ligne comme les menus et les boutons */
.bulk-bar .bulk-line>label{margin:0}
/* Accueil de l'agence : les tuiles de chiffres se partagent toute la largeur de l'écran */
@media (min-width:641px){ body.wide .stats{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))} }
/* ---------- v39 : en-tête de l'agence sur une seule ligne dès que l'écran le permet ---------- */
/* Logo à gauche, onglets au centre, compte à droite. app.js mesure la place réelle : s'il en manque, « top-compact »
   masque le texte du logo, sinon « top-mini » le nom (initiales seules), sinon les deux ; s'il en manque encore, « top-stack » remet les onglets sur leur propre ligne. */
@media (min-width:821px){
  /* trois colonnes : logo | onglets | compte ; les deux colonnes extérieures ont la même largeur, les onglets sont donc centrés sur la page */
  .top-many:not(.top-stack) .top-inner{display:grid;grid-template-columns:1fr auto 1fr;align-items:center}
  .top-many:not(.top-stack) .brand{justify-self:start}
  .top-many:not(.top-stack) .account{justify-self:end}
  .top-many:not(.top-stack) .top-inner::after{display:none}
  .top-many:not(.top-stack) .brand,.top-many:not(.top-stack) .tabs,.top-many:not(.top-stack) .account{order:0}
  .top-many:not(.top-stack) .account{margin-left:0}
  .top-many:not(.top-stack) .tabs{flex:0 1 auto;min-width:0;margin:0;flex-wrap:nowrap;border-radius:999px;overflow-x:auto;overflow-y:hidden}
  .top-many:not(.top-stack) .tabs a{padding:6px 12px}
  .top-many.top-compact .brand-text,.top-many.top-mini .avatar .name{display:none}
  .top-many.top-compact:not(.top-stack) .tabs a,.top-many.top-mini:not(.top-stack) .tabs a{padding:6px 9px}
}
@media (min-width:821px) and (max-width:1000px){ .top-many:not(.top-stack) .tabs a{padding:6px 8px} }
/* ---------- v42 : logo net (nouveau détourage), un peu plus grand, avec un reflet de lumière qui le traverse ---------- */
.logo-img{height:44px;width:auto;filter:none}
.logo-login{filter:none}
.logo-shine{position:relative;display:inline-block;line-height:0;flex:none;vertical-align:middle}
.logo-shine-login{display:block;width:79px;margin:0 auto}
/* Le reflet épouse exactement la forme du logo (masque) ; navigateurs sans masque : pas de reflet, logo normal */
@supports ((-webkit-mask-size:100% 100%) or (mask-size:100% 100%)){
  .logo-shine::after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;
    background:linear-gradient(105deg,rgba(255,255,255,0) 46.5%,rgba(255,255,255,.42) 50%,rgba(255,255,255,0) 53.5%) no-repeat;
    background-size:300% 100%;background-position:90% 0;
    -webkit-mask:url(logo-shape.png) center/100% 100% no-repeat;mask:url(logo-shape.png) center/100% 100% no-repeat;
    -webkit-animation:logo-shine 7s ease-in-out 1.2s infinite;animation:logo-shine 7s ease-in-out 1.2s infinite}
}
@-webkit-keyframes logo-shine{0%{background-position:90% 0}24%,100%{background-position:10% 0}}
@keyframes logo-shine{0%{background-position:90% 0}24%,100%{background-position:10% 0}}
@media (prefers-reduced-motion:reduce){ .logo-shine::after{-webkit-animation:none;animation:none;opacity:0} }
/* Boutons verts (valider) et rouges (refuser) : ils gardent leur couleur au survol (la règle rose des boutons principaux passait devant) */
button.ok-btn:hover,.btn.ok-btn:hover,button.primary.ok-btn:hover,.btn.primary.ok-btn:hover{
  background-image:linear-gradient(180deg,#3cbd67 0,#22964a 50%,#1f8540 100%)!important;color:#fff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.45),0 10px 22px -6px rgba(29,122,54,.6),0 0 0 1px rgba(20,90,40,.35)!important}
button.bad-btn:hover,.btn.bad-btn:hover,button.primary.bad-btn:hover,.btn.primary.bad-btn:hover{
  background-image:linear-gradient(180deg,#f5576b 0,#e0001a 52%,#c80014 100%)!important;color:#fff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.45),0 10px 22px -6px rgba(215,0,21,.55),0 0 0 1px rgba(150,0,15,.35)!important}
/* ---------- v45 : typographie (graisses et espacements, ajustés en v49) ---------- */
body{font-size:15.5px;letter-spacing:0;font-feature-settings:normal;text-rendering:optimizeLegibility}
h1,h2,h3,legend,.brand-text,.client-code,.client-card strong,.stat span,.tabs a,.tabbar-track>a,button,.btn,.chip,.badge,
.preprod-banner,.duree,.count,.notif-count,.avatar .initials,.confirm-box h2,details>summary{font-family:var(--font-title)}
h1{font-weight:800;letter-spacing:-.012em;line-height:1.15}
h2{font-weight:780;letter-spacing:-.005em}
h3{font-weight:760;letter-spacing:0}
.brand{font-weight:800;letter-spacing:-.004em}
.tabs a{font-weight:650}
.tabs a.active{font-weight:800}
button,.btn{font-weight:700;letter-spacing:.005em}
.chip{font-weight:700}
.badge{font-weight:750;letter-spacing:.01em}
.stat span{font-weight:850;letter-spacing:-.01em}
.client-card strong,.client-code{font-weight:800;letter-spacing:-.008em}
th{font-weight:750;letter-spacing:.06em}
label{font-weight:600}
input,select,textarea{font-weight:500}
strong,b{font-weight:750}
/* Champs date / mois / heure : largeur minimale. Sur iPhone, un champ vide était minuscule et grossissait après le choix */
input[type=date]{min-width:10.5em}
input[type=month]{min-width:9em}
input[type=time]{min-width:6.5em}
.period-nav input[type=month]{min-width:0}
@media (max-width:640px){ .daynav form.inline input[type=date]{min-width:0} }
/* ---------- v47 : téléphone — tableaux à actions affichés en fiches (une carte par ligne, boutons en bas) ---------- */
@media (max-width:640px){
  .scroll:has(> table.m-cards){overflow:visible}
  table.m-cards{display:block;width:100%;min-width:0!important;border:0;background:none}
  table.m-cards>tbody,table.m-cards>thead{display:block}
  table.m-cards tr.m-head{display:none}
  table.m-cards tr{display:block;background:#fff;border-radius:14px;padding:8px 14px;margin:0 0 10px;
    box-shadow:inset 0 0 0 1px var(--line),0 3px 10px -3px rgba(100,44,68,.14)}
  table.m-cards tr[hidden]{display:none}
  table.m-cards tr{position:relative}
  table.m-cards td{display:block;position:relative;padding:7px 0 7px 38%;border:0;min-height:1.6em;
    text-align:left!important;white-space:normal!important;max-width:none!important;min-width:0;background:none;overflow-wrap:anywhere}
  table.m-cards td::before{content:attr(data-label);position:absolute;left:0;top:9px;width:35%;color:var(--muted);font-family:var(--font-title);
    font-size:.68rem;font-weight:800;line-height:1.3;text-transform:uppercase;letter-spacing:.05em}
  table.m-cards td:not([data-label]){padding-left:0}
  table.m-cards td.m-check{position:absolute;top:8px;right:12px;padding:0;min-height:0}
  table.m-cards tr.m-has-check>td:nth-child(2){padding-right:40px}
  table.m-cards td:not([data-label])::before{content:none}
  table.m-cards td:empty{display:none}
  table.m-cards td.m-wide{display:block}
  table.m-cards td.act,table.m-cards th.act{position:static!important;box-shadow:none!important;background:none!important}
  table.m-cards td.act{display:block;border-top:1px solid var(--line);margin-top:6px;padding-top:10px}
  table.m-cards td.act:empty{display:none}
  table.m-cards .act-group{flex-wrap:wrap;max-width:none!important;min-width:0!important}
  table.m-cards td select{max-width:100%!important;width:100%}
  table.m-cards tr.inactive td{opacity:.75}
}
/* ---------- v49 : police unique Plus Jakarta Sans (élégante, très lisible, chiffres alignés dans les tableaux) ---------- */
body{font-size:15px;letter-spacing:-.003em}
h1{font-weight:800;letter-spacing:-.025em}
h2{font-weight:750;letter-spacing:-.015em}
h3{font-weight:700;letter-spacing:-.01em}
.brand{font-weight:800;letter-spacing:-.015em}
.tabs a{font-weight:600}
.tabs a.active{font-weight:750}
button,.btn{font-weight:650;letter-spacing:0}
.chip{font-weight:650}
.badge{font-weight:700;letter-spacing:0}
.stat span{font-weight:800;letter-spacing:-.02em}
.client-card strong,.client-code{font-weight:750;letter-spacing:-.015em}
th{font-weight:700;letter-spacing:.06em}
label{font-weight:600}
input,select,textarea{font-weight:500}
strong,b{font-weight:700}
td,.num,.duree,.count,.stat span,.notif-count{font-variant-numeric:tabular-nums}
/* Plus Jakarta Sans a des espaces étroits : un peu plus d'air entre les mots, sans resserrer les lettres */
body{letter-spacing:0;word-spacing:.09em}
.brand{letter-spacing:-.005em}
th{word-spacing:.04em}
button,.btn,.chip,.badge,h1,h2,h3,.tabs a{word-spacing:.12em}
h1{letter-spacing:-.018em}
h2{letter-spacing:-.008em}
/* ===== DÉBUT « style ballon » (v52) : grosses écritures en Fredoka. Pour revenir en arrière, supprimer ce bloc jusqu'à FIN. ===== */
@font-face{font-family:"Fredoka";src:url("fonts/Fredoka-latin.woff2") format("woff2");font-weight:300 700;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Fredoka";src:url("fonts/Fredoka-latin-ext.woff2") format("woff2");font-weight:300 700;font-style:normal;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
h1,.login-head h1,.stat span,.client-code{font-family:"Fredoka","Plus Jakarta Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
  font-weight:600;letter-spacing:.005em;word-spacing:.04em}
.stat span{font-weight:600}
/* ===== FIN « style ballon » ===== */
/* ---------- v53 : bulles de tailles harmonisées partout ---------- */
/* 3 familles : bouton (40 px), petit bouton et filtre (34 px, même texte), étiquette (22 px, une ligne) */
button:not(.link):not(.tag-x):not(.pw-eye):not(.small):not(.chip),.btn:not(.small):not(.chip){min-height:40px;font-size:14.5px;padding:8px 18px;line-height:1.2}
button.small,.btn.small,.chip{min-height:34px;font-size:13.5px;padding:6px 14px;line-height:1.2}
.badge{min-height:22px;font-size:12px;line-height:1.2;padding:3px 10px;display:inline-flex;align-items:center;white-space:nowrap;vertical-align:middle}
.line-card .badge,.contest-card .badge,.deadline-box .badge{white-space:nowrap}
.notif-count{font-size:11px}
/* Téléphone : boutons d'une ligne de relevé l'un sous l'autre plutôt que du texte coupé sur deux lignes */
@media (max-width:640px){
  .line-actions form,.line-actions .btn,.line-actions button{flex:1 1 100%}
  button,.btn{max-width:100%}
}
/* ---------- v59 : onglets du haut en bande prune (couleur foncée du logo), onglet ouvert en pastille blanche ---------- */
.tabs,.top-many:not(.top-stack) .tabs{background:linear-gradient(180deg,#7d3a59 0,#64294a 55%,#57223f 100%)!important;padding:4px!important;gap:2px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 6px 16px -6px rgba(87,34,63,.55)!important}
.tabs a{background:none;box-shadow:none;color:#f7e6ee;opacity:1;font-weight:600;transition:background .18s,color .18s}
.tabs a:hover{background:rgba(255,255,255,.13);color:#fff}
.tabs a.active,.tabs a.active:hover{background:linear-gradient(180deg,#fff,#fdf2f7);color:#c4006b;font-weight:750;
  box-shadow:0 2px 6px rgba(40,10,25,.28)}
.tabs a:focus-visible{box-shadow:0 0 0 3px rgba(255,255,255,.6)}
/* v60 : bande prune plus claire, avec reflet brillant sur la moitié haute */
.tabs,.top-many:not(.top-stack) .tabs{background:
  linear-gradient(180deg,rgba(255,255,255,.34) 0,rgba(255,255,255,.12) 48%,rgba(255,255,255,0) 52%),
  linear-gradient(180deg,#a65a7f 0,#8c4568 55%,#7a3a5b 100%)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.35),inset 0 -1px 0 rgba(60,15,35,.25),0 6px 16px -6px rgba(122,58,91,.55)!important}
.tabs a{color:#fff}
.tabs a:hover{background:rgba(255,255,255,.16)}
/* v61 : bande des onglets aux couleurs du logo (fuchsia de la robe vers framboise des chaussures), reflet conservé */
.tabs,.top-many:not(.top-stack) .tabs{background:
  linear-gradient(180deg,rgba(255,255,255,.32) 0,rgba(255,255,255,.10) 48%,rgba(255,255,255,0) 52%),
  linear-gradient(180deg,#e0207f 0,#c4126e 55%,#a41c5c 100%)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.4),inset 0 -1px 0 rgba(90,10,45,.25),0 6px 16px -6px rgba(196,18,110,.55)!important}
.tabs a.active .notif-count{background:#e4007e;color:#fff}
/* v62 : onglets en Fredoka (police ronde des grands titres) et reflet qui traverse l'onglet survolé */
.tabs a{font-family:"Fredoka","Plus Jakarta Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;font-weight:500;font-size:.9rem;
  letter-spacing:.01em;word-spacing:.04em;overflow:hidden}
.tabs a.active,.tabs a.active:hover{font-weight:600}
.tabs a::after{content:"";position:absolute;top:0;bottom:0;left:-70%;width:45%;pointer-events:none;transform:skewX(-20deg);
  background:linear-gradient(105deg,rgba(255,255,255,0) 0,rgba(255,255,255,.55) 50%,rgba(255,255,255,0) 100%);opacity:0}
.tabs a:hover::after{-webkit-animation:tab-shine .65s ease-out;animation:tab-shine .65s ease-out}
.tabs a.active::after{background:linear-gradient(105deg,rgba(255,255,255,0) 0,rgba(255,200,228,.7) 50%,rgba(255,255,255,0) 100%)}
@-webkit-keyframes tab-shine{0%{left:-70%;opacity:1}100%{left:130%;opacity:1}}
@keyframes tab-shine{0%{left:-70%;opacity:1}100%{left:130%;opacity:1}}
@media (prefers-reduced-motion:reduce){ .tabs a:hover::after{-webkit-animation:none;animation:none} }
/* v64 : police des onglets du haut — Quicksand (arrondie et élégante, s'accorde avec la silhouette du logo) */
@font-face{font-family:"Quicksand";src:url("fonts/Quicksand-latin.woff2") format("woff2");font-weight:300 700;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Quicksand";src:url("fonts/Quicksand-latin-ext.woff2") format("woff2");font-weight:300 700;font-style:normal;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
.tabs a{font-family:"Quicksand","Plus Jakarta Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;font-weight:650;font-size:.87rem;letter-spacing:.005em}
.tabs a.active,.tabs a.active:hover{font-weight:700}
/* ---------- v66 : mode maintenance ---------- */
.maint-banner{background:linear-gradient(90deg,#fff1e0,#ffe6ef);color:#7a3200;text-align:center;padding:8px 14px;font-size:.88rem;
  box-shadow:inset 0 -1px 0 rgba(178,80,0,.15)}
.maint-banner a{font-weight:700;margin-left:6px}
.maint-page{min-height:100vh;display:flex;align-items:center;justify-content:center}
.maint-wrap{max-width:520px;width:100%;padding:24px 16px;margin:0 auto}
.maint-card{text-align:center;padding:32px 24px}
.maint-card .logo-login{margin:0 auto 10px}
.maint-card h1{margin:.2em 0 .5em}
.maint-msg{font-weight:600}
.maint-legal{text-align:center;margin-top:16px}
.maint-form{margin-top:14px}
/* v67 : calendrier de duplication — jours d'une période terminée grisés (non sélectionnables) */
.dup-num.dup-off{color:#b9aab2;text-decoration:line-through;cursor:not-allowed}
.period-closed{font-weight:600}
/* v68 : « Synthèse totale des salariés » mise en avant en tête des exports */
.export-group.export-main{background:#fdf0f6;border-radius:12px;padding:6px 10px;box-shadow:inset 0 0 0 1px rgba(209,0,111,.15)}
/* v69 : calendrier de duplication — le mois affiché sous le numéro, dans chaque case */
.dup-day .dup-mois{font-size:.66rem;line-height:1;color:var(--muted);font-weight:600}
/* ---------- v70 : module « Logiciel » (fiches clients et salariés) et écran de choix après la connexion ---------- */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.opt{font-weight:400;opacity:.8}
.opt::before{content:"("}.opt::after{content:")"}
/* Écran de choix : suivi des heures ou Logiciel */
.choix-h1{text-align:center;margin:14px 0 26px}
.choix-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:22px;max-width:940px;margin:0 auto 22px}
.choix-card{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:28px 26px 24px;border-radius:24px;background:var(--card);
  background-image:var(--gloss);box-shadow:var(--shadow),0 0 0 1px rgba(100,44,68,.06);color:var(--ink);transition:transform .18s,box-shadow .18s}
.choix-card:hover{text-decoration:none;transform:translateY(-3px);box-shadow:var(--shadow-pop),0 0 0 1px rgba(209,0,111,.25)}
.choix-ico{display:grid;place-items:center;width:66px;height:66px;border-radius:20px;background:var(--pri-soft);color:var(--pri)}
.choix-ico svg{width:38px;height:38px}
.choix-titre{font-family:"Fredoka","Plus Jakarta Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;font-size:1.7rem;font-weight:600;color:var(--plum);line-height:1.15}
.choix-desc{color:var(--muted);font-size:.95rem}
.choix-infos{display:flex;flex-wrap:wrap;gap:6px}
.choix-go{margin-top:auto;padding-top:8px;color:var(--pri);font-weight:650}
.choix-aide{text-align:center}
/* En-tête d'une fiche */
.fiche-titre{margin-bottom:.35em}
.fiche-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 22px}
.fiche-links{display:inline-flex;flex-wrap:wrap;gap:8px;margin-left:auto}
.badge.compte{background:#eef1f6;color:#33415c;font-variant-numeric:tabular-nums}
.badge.pr-garde{background:#fce8f2;color:#a41c5c}
.badge.pr-menage{background:#e6f0fb;color:#1f4f96}
.badge.pr{background:var(--ok-bg);color:var(--ok)}
.badge.q-parent1,.badge.q-parent2{background:#f3ecf7;color:#5b2a7a}
.badge.q-beneficiaire{background:#e6f0fb;color:#1f4f96}
/* Blocs de la fiche : une ligne par élément, touchée elle s'ouvre pour être modifiée */
.fiche-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(390px,100%),1fr));gap:18px;align-items:start;margin-bottom:18px}
.fiche-grid>.card{margin:0}
.fiche-bloc h2{display:flex;align-items:center;gap:8px}
.fiche-bloc h2 .count{font-family:var(--font);font-size:.78rem;font-weight:650;color:var(--muted);background:rgba(100,44,68,.07);border-radius:999px;padding:1px 9px;letter-spacing:0}
details.fi{border-top:1px solid var(--line)}
details.fi>summary{list-style:none;display:flex;align-items:flex-start;gap:12px;padding:11px 6px;margin:0 -6px;cursor:pointer;border-radius:10px}
details.fi>summary::-webkit-details-marker{display:none}
details.fi>summary:hover{background:rgba(100,44,68,.035)}
.fi-main{flex:1;min-width:0;display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}
.fi-line{min-width:0;overflow-wrap:anywhere}
.fi-sub{flex-basis:100%}
.fi-tags{display:inline-flex;flex-wrap:wrap;gap:5px}
.fi-tags:empty{display:none}
.fi-toggle{flex-shrink:0;font-size:.82rem;font-weight:650;color:var(--pri);padding-top:2px}
.fi-close{display:none}
details.fi[open]>summary .fi-open{display:none}
details.fi[open]>summary .fi-close{display:inline}
.fi-body{padding:2px 0 14px}
.fi-form{background:rgba(252,232,242,.38);border-radius:14px;padding:14px 14px 2px;margin:0 0 8px}
.fi-btns{display:flex;flex-wrap:wrap;gap:8px;margin:2px 0 12px}
.fi-del{display:flex;justify-content:flex-end}
.fi-empty{margin:2px 0 10px}
details.fi-add{margin-top:12px}
details.fi-add>summary,details.fi-create>summary{list-style:none;cursor:pointer}
details.fi-add>summary::-webkit-details-marker,details.fi-create>summary::-webkit-details-marker{display:none}
details.fi-add[open]>summary{margin-bottom:10px}
details.fi-create>summary h2{margin:0;color:var(--pri)}
details.fi-create[open]>summary h2{margin-bottom:14px}
fieldset.checks{border:0;padding:0;margin:0 0 12px;display:flex;flex-wrap:wrap;gap:2px 18px;min-width:0}
fieldset.checks legend{font-size:.82rem;font-weight:500;color:var(--muted);padding:0;margin-bottom:4px;width:100%}
fieldset.checks label.check{margin:0 0 4px}
.geo-line{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:-6px 0 10px}
.geo-line:has(button[hidden]):has(span:empty){display:none}
.geo-btn svg{width:17px;height:17px}
.geo-status.ok{color:var(--ok)}.geo-status.bad{color:var(--warn)}
.age{font-weight:650;color:var(--plum)}
a.tel{font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
.num-input{max-width:11em}
table.fiches-table .cl-who{min-width:160px;max-width:260px}
table.fiches-table .client-link{display:flex;flex-direction:column;color:var(--ink)}
table.fiches-table .client-link:hover{text-decoration:none}
table.fiches-table .client-link:hover strong{color:var(--pri)}
table.fiches-table td{vertical-align:top}
table.fiches-table .cl-name{display:block;color:var(--muted);font-size:.82rem}
/* Paramètres : modes de règlement */
.modes-list{display:flex;flex-direction:column;margin:0 0 14px}
.mode-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;padding:8px 0;border-top:1px solid var(--line)}
.mode-row:first-child{border-top:0}
.mode-row.inactive input{color:var(--muted)}
.mode-rename{flex:1 1 240px;min-width:0;max-width:100%;margin:0;align-items:center}
.mode-rename label{flex:1 1 auto;min-width:0;margin:0}
.mode-rename input{width:100%;min-width:0}
.mode-info{display:inline-flex;gap:6px;align-items:center}
@media (max-width:640px){
  .fiche-links{margin-left:0}
  .fi-form{padding:12px 10px 2px}
  .choix-card{padding:22px 20px}
  .choix-h1{margin:6px 0 18px}
}
.top-spacer{flex:1 1 auto}  /* écran de choix : pas d’onglets, le compte reste à droite */
@media (max-width:820px){ .top-spacer{order:1} }
label>.lbl{display:block}
.fiche-col{display:flex;flex-direction:column;gap:18px;min-width:0}
.fiche-col>.card{margin:0}
.hist-list{list-style:none;margin:0 0 10px;padding:0}
.hist-list>li{display:flex;flex-direction:column;gap:2px;padding:10px 0;border-top:1px solid var(--line)}
.hist-list>li:first-child{border-top:0;padding-top:0}
.hist-what{font-weight:600}
.list-summary{display:flex;flex-wrap:wrap;gap:6px;margin:-8px 0 18px}
@media (max-width:640px){
  .choix-h1{font-size:1.55rem}
  .choix-grid{gap:14px}
  .choix-card{flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px 14px;padding:18px 18px 16px;border-radius:20px}
  .choix-ico{width:52px;height:52px;border-radius:16px}
  .choix-ico svg{width:30px;height:30px}
  .choix-titre{flex:1;font-size:1.45rem}
  .choix-desc,.choix-infos{flex-basis:100%}
  .choix-desc{font-size:.9rem}
  .choix-go{display:none}
}
.list-summary .badge{white-space:normal;text-align:left}
/* ---------- v71 : Logiciel — documents, CAF, main courante, notifications ---------- */
.doc-row{display:flex;align-items:center;gap:8px;padding:8px 0;border-top:1px solid var(--line)}
.doc-row:first-of-type{border-top:0}
.doc-open{flex:1;min-width:0;display:flex;align-items:center;gap:12px;color:var(--ink);border-radius:10px;padding:2px}
.doc-open:hover{text-decoration:none}
.doc-open:hover strong{color:var(--pri)}
.doc-ico{flex-shrink:0;display:grid;place-items:center;width:42px;height:48px;border-radius:9px;background:var(--pri-soft);color:var(--rasp);font-size:.66rem;font-weight:800;letter-spacing:.02em}
.doc-txt{display:flex;flex-direction:column;min-width:0;overflow-wrap:anywhere}
.caf-form{align-items:flex-end}
.caf-form label{margin-bottom:0}
textarea{font:inherit;line-height:1.45;min-height:3.2em;resize:vertical}
.badge.mc-a_traiter{background:var(--warn-bg);color:var(--warn)}
.badge.mc-en_cours{background:#e6f0fb;color:#1f4f96}
.badge.mc-traite{background:var(--ok-bg);color:var(--ok)}
a.badge:hover{text-decoration:none;filter:brightness(.97)}
.mc-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px;margin-bottom:6px}
.mc-head h2{margin:0;display:flex;align-items:center;gap:8px}
.mc-head h2 .count{font-family:var(--font);font-size:.78rem;font-weight:650;color:var(--muted);background:rgba(100,44,68,.07);border-radius:999px;padding:1px 9px}
.mc-list{display:flex;flex-direction:column;gap:10px;margin-top:12px}
.mc-item{border-radius:14px;padding:12px 14px 10px;background:#fff;box-shadow:inset 0 0 0 1px var(--line);border-left:4px solid #e2d4dc}
.mc-page .mc-item{box-shadow:var(--shadow),0 0 0 1px rgba(100,44,68,.05)}
.mc-item.mc-st-a_traiter{border-left-color:#f5a524}
.mc-item.mc-st-en_cours{border-left-color:#4a86d6}
.mc-item.mc-st-traite{border-left-color:#30b158}
.mc-top{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px}
.mc-date{font-weight:650}
.mc-who{font-weight:650}
.mc-with{color:var(--muted)}
.mc-with strong{color:var(--ink);font-weight:600}
.mc-demande,.mc-suivi{white-space:pre-line;overflow-wrap:anywhere;margin:8px 0 0}
.mc-suivi{padding:8px 10px;border-radius:10px;background:#f6f7fa}
.mc-meta{margin:8px 0 0}
.mc-actions{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px}
details.mc-edit[open]{flex-basis:100%}
details.mc-edit>summary{list-style:none;display:inline-flex;cursor:pointer}
details.mc-edit>summary::-webkit-details-marker{display:none}
details.mc-edit[open]>summary{margin-bottom:8px}
.mc-filtres{padding-bottom:10px}
.mc-filtres-btns{align-items:center}
#bloc-mc{margin:0 0 18px}
.notif-tools{align-items:center;margin-bottom:14px}
.notif-tools form{margin:0}
.lg-notifs{list-style:none;margin:0;padding:0}
.lg-notifs>li{border-top:1px solid var(--line)}
.lg-notifs>li:first-child{border-top:0}
.lg-notifs>li>a{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;padding:12px 4px;color:var(--ink)}
.lg-notifs>li>a:hover{text-decoration:none;background:rgba(100,44,68,.03)}
.lg-notifs>li.unread .nt-txt{font-weight:650}
.lg-notifs .nt-txt{flex:1 1 300px;min-width:0;overflow-wrap:anywhere}
.badge.nk-a_traiter{background:var(--warn-bg);color:var(--warn)}
.badge.nk-traite{background:var(--ok-bg);color:var(--ok)}
.badge.nk-rappel{background:#e6f0fb;color:#1f4f96}
fieldset.prest-q label.check{font-weight:600}
/* ---------- v72 : employeur — sélecteur de module « Suivi des heures | Logiciel » à côté du logo ---------- */
.brand-group{gap:12px}
.brand-link{display:inline-flex;align-items:center;color:inherit;line-height:0;border-radius:12px}
.brand-link:hover{text-decoration:none}
.module-switch{display:inline-flex;align-items:center;gap:2px;padding:3px;border-radius:999px;background:rgba(100,44,68,.07);
  box-shadow:inset 0 0 0 1px rgba(100,44,68,.10)}
.module-switch a{display:inline-flex;align-items:center;padding:6px 14px;border-radius:999px;font-size:.84rem;font-weight:700;letter-spacing:0;
  color:var(--plum);white-space:nowrap;line-height:1.2;transition:background .15s,color .15s,box-shadow .15s}
.module-switch a:hover{text-decoration:none;background:rgba(255,255,255,.85)}
.module-switch a.on{background:linear-gradient(180deg,#e0067a,#c8006a);color:#fff;box-shadow:0 3px 10px rgba(209,0,111,.30)}
.module-switch a:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(209,0,111,.30)}
.module-switch .ms-short{display:none}
/* Place comptée (app.js) : au premier palier « compact », libellés courts ; sur téléphone, toujours courts */
.top-many.top-compact .module-switch .ms-long{display:none}
.top-many.top-compact .module-switch .ms-short{display:inline}
@media (max-width:820px){
  .module-switch .ms-long{display:none}
  .module-switch .ms-short{display:inline}
  .module-switch a{padding:6px 12px}
}
@media (max-width:360px){ .brand-group{gap:8px} .module-switch a{padding:5px 10px;font-size:.8rem} }
/* ---------- v73 : fiche salarié — compétences par âge, date d'embauche, « ne pas présenter », commentaire ---------- */
fieldset.checks-col{flex-direction:column;align-items:flex-start;gap:2px}
fieldset.checks-col .comp-tache{margin-left:24px}
.anciennete{margin:0 0 12px;align-self:center}
.npp-bloc.npp-on{box-shadow:var(--shadow),inset 0 0 0 2px #f5a524;background:#fffaf0}
.npp-bloc.npp-on h2{color:#a24a00}
.comp-cell .badge{margin:0 2px 3px 0;white-space:normal;text-align:left;max-width:100%}
/* ---------- v74 : listes cliquables, bulles de documents, envoi par e-mail / WhatsApp ---------- */
table.fiches-table tr[data-href]{cursor:pointer}
table.fiches-table tr[data-href]:hover>td{background:rgba(209,0,111,.045)}
@media (max-width:640px){ table.m-cards tr[data-href]:active{box-shadow:inset 0 0 0 2px rgba(209,0,111,.35),0 3px 10px -3px rgba(100,44,68,.14)} }
.doc-bulles{display:flex;flex-wrap:wrap;gap:8px;margin:2px 0 6px}
.doc-bulle-form{margin:0}
.doc-bulle{display:inline-flex;align-items:center;gap:6px;min-height:34px;margin:0;padding:6px 14px;border-radius:999px;cursor:pointer;
  font-size:13.5px;font-weight:600;line-height:1.2;color:var(--plum);background:linear-gradient(180deg,#fff,#f6eef2);
  box-shadow:0 1px 2px rgba(100,44,68,.10),inset 0 0 0 1px rgba(100,44,68,.14);transition:box-shadow .15s,transform .1s;flex-direction:row}
.doc-bulle:hover{box-shadow:0 3px 10px rgba(209,0,111,.18),inset 0 0 0 1px rgba(209,0,111,.35)}
.doc-bulle:active{transform:scale(.97)}
.doc-bulle:focus-within{box-shadow:0 0 0 3px rgba(209,0,111,.30)}
.doc-bulle .db-plus{color:var(--pri);font-weight:800}
.doc-bulle .db-n{min-width:20px;padding:0 6px;border-radius:999px;background:var(--pri);color:#fff;font-size:11px;text-align:center;line-height:18px}
.doc-bulle.sending{opacity:.6;pointer-events:none}
.doc-bulle.sending::after{content:"envoi…";font-weight:500;color:var(--muted)}
.doc-aide{margin:2px 0 10px}
h3.doc-type{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:14px 0 2px}
.doc-row .doc-send{flex-shrink:0}
.doc-meta{margin-top:-8px}
.wa-list{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin:6px 0 10px}
.wa-btn{background:#e9f8ef;color:#13723b;white-space:normal;text-align:left}
.wa-btn:hover{background:#d8f2e2}
.wa-steps{margin:4px 0;padding-left:20px}
.mail-steps{padding-left:20px;margin:0 0 12px}
.mail-test{align-items:flex-end}
/* v75 : GE3 et GE2 de couleurs différentes dans la liste des salariés */
.badge.pr-ge3{background:#fce8f2;color:#a41c5c}
.badge.pr-ge2{background:#efe7fb;color:#5b2a9a}
/* v76 : main courante (types, interlocuteur, reçu par, conflit), secteurs et kilomètres, références */
fieldset.interloc{align-items:center}
.interloc-txt{flex:1 1 220px;min-width:0;margin:0 0 4px}
.dep-preciser{flex:1 1 180px;min-width:0;max-width:260px;margin:0 0 4px}
.badge.mc-type{background:#f3ecf7;color:#5b2a7a}
.conflit-box label.check{margin:6px 0 0}
.km-secteurs{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 4px}
.km-s{display:flex;flex-direction:column;padding:6px 12px;border-radius:12px;background:#f6f7fa;min-width:110px}
.km-s.km-mien{background:var(--pri-soft);box-shadow:inset 0 0 0 1px rgba(209,0,111,.3)}
.badge.ref-verifiees{background:var(--ok-bg);color:var(--ok)}
.badge.ref-sans{background:var(--warn-bg);color:var(--warn)}
.badge.ref-aucun{background:#ececf0;color:#48484a}
.npp-client a{color:#a24a00;font-weight:600}
/* v77 : distances domicile salarié → client, demande d'affectation (intervenante) */
.km-liste{list-style:none;margin:8px 0 4px;padding:0}
.km-liste li{display:flex;justify-content:space-between;gap:12px;padding:5px 0;border-top:1px solid var(--line)}
.km-liste li:first-child{border-top:0}
.demande-client-lien{margin:0 0 12px}
/* v82 : assistant façon messagerie (iMessage), aux couleurs du site — bulle d'ouverture, panneau, discussion */
.chat-widget{position:fixed;right:20px;bottom:20px;z-index:70;display:flex;flex-direction:column;align-items:flex-end;gap:12px}
.chat-bouton{display:inline-flex;align-items:center;gap:10px;border-radius:999px;padding:16px 26px!important;min-height:0!important;border:0;font-weight:600;font-size:1.1rem!important;cursor:pointer}
.chat-bouton svg{position:relative;z-index:1;flex:none;width:27px;height:27px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.chat-bouton[aria-expanded=true]{filter:brightness(.92)}
.chat-panneau{position:relative;width:min(480px,calc(100vw - 40px));height:min(780px,calc(100vh - 190px));min-height:420px;background:#fff;border-radius:24px;
  overflow:hidden;box-shadow:0 28px 70px -14px rgba(100,44,68,.42),0 0 0 .5px rgba(100,44,68,.14)}
.chat-panneau[hidden]{display:none}
.chat-cadre{display:block;width:100%;height:100%;border:0;background:#fff}
button.chat-fermer{position:absolute;top:17px;right:14px;z-index:2;width:30px!important;height:30px;min-height:0!important;padding:0!important;border:0;
  border-radius:50%;display:grid;place-items:center;background:rgba(120,120,128,.14)!important;background-image:none!important;box-shadow:none!important;
  color:#55555a;cursor:pointer}
button.chat-fermer:hover{background:rgba(120,120,128,.24)!important}
.chat-fermer svg{flex:none;width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round}
.chat-erreur{margin:84px 24px 0;font-size:.95rem;text-align:center;color:var(--muted)}
body.has-chat main{padding-bottom:84px}
@media (max-width:820px){
  .chat-widget{right:12px;bottom:calc(76px + env(safe-area-inset-bottom,0px))}
  .chat-bouton{padding:17px!important}
  .chat-bouton svg{width:30px;height:30px}
  .chat-bouton span{display:none}
  .chat-bouton[aria-expanded=true]{display:none}
  /* téléphone : la discussion prend tout l'écran, comme Messages */
  .chat-panneau{position:fixed;top:0;right:0;bottom:0;left:0;width:auto;height:auto;border-radius:0;z-index:80;
    padding:env(safe-area-inset-top,0px) 0 env(safe-area-inset-bottom,0px)}
  button.chat-fermer{top:calc(env(safe-area-inset-top,0px) + 17px)}
}

/* La discussion (dans le panneau ou en page entière) */
.imsg-cache{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
html.assistant-panneau-html,body.assistant-panneau{height:100%;margin:0;padding:0;background:#fff}
.imsg{display:flex;flex-direction:column;background:#fff;color:var(--ink);font-size:16.5px;line-height:1.38;letter-spacing:-.012em}
.imsg-panneau{position:fixed;top:0;right:0;bottom:0;left:0}
.imsg-page{height:calc(100vh - 200px);min-height:320px;max-width:880px;margin:0 auto;border-radius:24px;overflow:hidden;
  box-shadow:var(--hi),var(--shadow),0 0 0 1px rgba(100,44,68,.06)}
@supports (height:100dvh){.imsg-page{height:calc(100dvh - 200px)}}
/* en-tête : avatar rond et nom au centre, comme une conversation Messages */
.imsg-tete{flex:none;display:grid;grid-template-columns:64px 1fr 64px;align-items:center;padding:8px 10px 7px;position:relative;z-index:1;
  background:rgba(251,249,250,.94);-webkit-backdrop-filter:saturate(180%) blur(18px);backdrop-filter:saturate(180%) blur(18px);
  border-bottom:.5px solid rgba(60,60,67,.18)}
.imsg-panneau .imsg-tete{grid-template-columns:96px 1fr 96px}
.imsg-panneau .imsg-droite{padding-right:44px}
.imsg-cote{display:flex;align-items:center;min-width:0}
.imsg-droite{justify-content:flex-end}
.imsg-tete form{margin:0}
.imsg-qui{display:flex;flex-direction:column;align-items:center;gap:3px;min-width:0}
.imsg-avatar{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;color:#fff;
  background:linear-gradient(180deg,#f2479f 0,#d6007a 55%,#b30061 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.4),0 3px 10px -2px rgba(209,0,111,.45)}
.imsg-avatar svg{width:22px;height:22px;fill:currentColor}
.imsg-nom{font-size:.78rem;font-weight:500;color:#3c3c43}
.imsg .imsg-icone{width:38px!important;height:38px;min-height:0!important;padding:0!important;border:0;border-radius:50%;display:grid;place-items:center;color:var(--pri);
  background:transparent!important;background-image:none!important;box-shadow:none!important;cursor:pointer}
.imsg .imsg-icone:hover{background:rgba(209,0,111,.08)!important}
.imsg-icone svg{flex:none;width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
/* fil : bulles roses pour vos messages, gris rosé pour l'assistant, petite queue sur le dernier d'une suite */
.imsg-fil{flex:1;min-height:0;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;
  display:flex;flex-direction:column;padding:12px 16px 10px;background:#fff}
.imsg-heure{align-self:center;margin:14px 0 6px;font-size:.72rem;color:#8e8e93;text-align:center}
.imsg-heure strong{font-weight:600}
.imsg-b{position:relative;max-width:78%;margin:1.5px 0;padding:8px 14px;border-radius:20px;overflow-wrap:anywhere}
.imsg-b.moi{align-self:flex-end;color:#fff;white-space:pre-wrap;background:var(--pri)}
.imsg-b.assistant{align-self:flex-start;color:#1d1d1f;background:#f0eaee}
.imsg-b.queue{margin-bottom:9px}
.imsg-b.queue.moi::before,.imsg-b.queue.assistant::before{content:"";position:absolute;bottom:0;width:20px;height:20px}
.imsg-b.queue.moi::after,.imsg-b.queue.assistant::after{content:"";position:absolute;bottom:0;width:26px;height:20px;background:#fff}
.imsg-b.queue.moi::before{right:-7px;background:var(--pri);border-bottom-left-radius:16px 14px}
.imsg-b.queue.moi::after{right:-26px;border-bottom-left-radius:10px}
.imsg-b.queue.assistant::before{left:-7px;background:#f0eaee;border-bottom-right-radius:16px 14px}
.imsg-b.queue.assistant::after{left:-26px;border-bottom-right-radius:10px}
.imsg-b p{margin:0 0 7px}.imsg-b p:last-child{margin:0}
.imsg-b ul{margin:2px 0 7px;padding-left:20px}.imsg-b ul:last-child{margin-bottom:0}
.imsg-b li{margin:2px 0}
.imsg-b strong{font-weight:650}
.imsg-doc{align-self:flex-end;max-width:78%;margin:1.5px 0;padding:9px 14px;border-radius:18px;background:#fff;border:1px solid rgba(100,44,68,.16);
  font-size:.9rem;color:#1d1d1f;overflow-wrap:anywhere}
/* action préparée : carte à confirmer, côté assistant */
.imsg-action{align-self:flex-start;max-width:86%;margin:4px 0 10px;padding:12px 14px 13px;border-radius:20px;background:#fff;
  border:1px solid rgba(100,44,68,.14);box-shadow:0 3px 12px -6px rgba(100,44,68,.25)}
.imsg-action.st-proposee{background:#fffaf2;border-color:rgba(178,80,0,.30)}
.imsg-action p{margin:0 0 9px}
.imsg-action .imsg-action-titre{margin:0 0 4px;font-size:.7rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--warn)}
.imsg-action.st-faite .imsg-action-titre{color:var(--ok)}
.imsg-action.st-annulee .imsg-action-titre{color:#8e8e93}
.imsg-action .imsg-action-res{margin:0;font-size:.86rem;color:var(--muted)}
.imsg-action-boutons{display:flex;flex-wrap:wrap;gap:8px}
.imsg-acces{margin:10px 0 0;padding:11px 12px 12px;border-radius:14px;background:var(--bg,#faf7f9);border:1px dashed rgba(0,0,0,.18)}
.imsg-acces p{margin:0 0 8px}
.imsg-acces-lib{display:block;font-size:.72rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--muted)}
.imsg-acces-val{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:1.08rem;letter-spacing:.03em;
  word-break:break-all;-webkit-user-select:all;user-select:all}
.imsg-acces .imsg-acces-note{font-size:.8rem;color:var(--muted)}
.imsg-action-boutons form{margin:0}
/* « l'assistant écrit… » */
.imsg-tape{align-self:flex-start;display:inline-flex;gap:5px;margin:4px 0 10px;padding:13px 15px;border-radius:20px;background:#f0eaee}
.imsg-tape span{width:8px;height:8px;border-radius:50%;background:#a69aa2;animation:imsg-points 1.2s infinite ease-in-out}
.imsg-tape span:nth-child(2){animation-delay:.16s}.imsg-tape span:nth-child(3){animation-delay:.32s}
@keyframes imsg-points{0%,60%,100%{opacity:.35;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}
@media (prefers-reduced-motion:reduce){.imsg-tape span{animation:none}}
/* messages du site (erreur, confirmation) : petite note centrée */
.imsg .imsg-note{align-self:center;max-width:92%;margin:8px 0;padding:8px 13px;border-radius:14px;font-size:.84rem;line-height:1.35;text-align:center;
  background:#f4f0f2;background-image:none;box-shadow:none;color:#55555a}
.imsg .imsg-note.error{background:var(--bad-bg);color:#8a0010}
.imsg .imsg-note.success{background:var(--ok-bg);color:#14532d}
.imsg .imsg-note.warning{background:var(--warn-bg);color:#7a3600}
/* saisie : « + » pour joindre, champ arrondi, flèche d'envoi */
.imsg-saisie{flex:none;margin:0;padding:8px 12px 10px;background:rgba(251,249,250,.96);border-top:.5px solid rgba(60,60,67,.16)}
.imsg-panneau .imsg-saisie{padding-bottom:calc(10px + env(safe-area-inset-bottom,0px))}
.imsg-barre{display:flex;align-items:flex-end;gap:8px}
.imsg-plus{flex:none;width:36px;height:36px;margin-bottom:1px;border-radius:50%;display:grid;place-items:center;background:#ece5ea;color:#6e6e73;cursor:pointer}
.imsg-plus:hover{background:#e3d9e0;color:var(--pri)}
.imsg-plus svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.3;stroke-linecap:round}
.imsg-fichiers{position:absolute;top:0;left:0;width:1px;height:1px;opacity:0;overflow:hidden;clip:rect(0 0 0 0)}
.imsg-fichiers:focus-visible+.imsg-champ,.imsg-plus:focus-within{box-shadow:0 0 0 4px rgba(209,0,111,.22)}
.imsg-champ{flex:1;min-width:0;display:flex;align-items:flex-end;gap:6px;min-height:38px;padding:3px 3px 3px 15px;border:1px solid rgba(60,60,67,.24);
  border-radius:20px;background:#fff}
.imsg-champ:focus-within{border-color:rgba(209,0,111,.5)}
.imsg-champ textarea{flex:1;min-width:0;min-height:0;max-height:160px;margin:0;padding:6px 0;border:0;border-radius:0;outline:0;resize:none;
  background:transparent;box-shadow:none;font:inherit;font-size:16px;line-height:1.35;color:var(--ink)}
.imsg-champ textarea:focus{box-shadow:none;border:0}
.imsg-champ textarea::placeholder{color:#a1a1a6}
.imsg button.imsg-envoi{flex:none;width:31px!important;height:31px;min-height:0!important;padding:0!important;border-radius:50%;display:grid;place-items:center;margin:0}
.imsg-envoi svg{flex:none;width:17px;height:17px;fill:none;stroke:#fff;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;position:relative;z-index:1}
.imsg-saisie.vide .imsg-envoi{opacity:.3;pointer-events:none}
.imsg-pj{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 8px 44px}
.imsg-pj[hidden]{display:none}
.imsg-pj span{max-width:100%;padding:5px 11px;border-radius:14px;background:#fff;border:1px solid rgba(100,44,68,.16);font-size:.84rem;overflow-wrap:anywhere}
.imsg-pj span.imsg-pj-err{background:var(--bad-bg);border-color:transparent;color:#8a0010}
.imsg .imsg-pj-retirer{min-height:0!important;padding:4px 10px!important;font-size:.8rem!important;border-radius:14px;background:transparent!important;background-image:none!important;
  box-shadow:none!important;color:var(--pri)}
@media (max-width:820px){
  .imsg-page{height:calc(100vh - 210px);border-radius:20px}
  @supports (height:100dvh){.imsg-page{height:calc(100dvh - 210px)}}
  .imsg-b,.imsg-doc{max-width:84%}
}
/* v84 : liens vers les fiches, raccourcis, menu du « + », réponse en cours, pastille */
.imsg-b.assistant a,.imsg-action a{color:var(--pri);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;font-weight:600}
.imsg-raccourcis{display:flex;flex-wrap:wrap;gap:8px;margin:2px 0 8px}
.imsg .imsg-raccourci{min-height:0!important;padding:8px 14px!important;font-size:.9rem!important;border-radius:18px;border:1px solid rgba(209,0,111,.28);
  background:#fff!important;background-image:none!important;box-shadow:none!important;color:var(--pri);font-weight:600}
.imsg .imsg-raccourci:hover{background:#fdf0f6!important}
.imsg-barre{position:relative}
.imsg-menu{position:absolute;left:0;bottom:46px;z-index:3;display:flex;flex-direction:column;min-width:220px;padding:6px;border-radius:16px;background:#fff;
  box-shadow:0 12px 34px -8px rgba(100,44,68,.35),0 0 0 .5px rgba(100,44,68,.15)}
.imsg-menu[hidden]{display:none}
.imsg-menu label{padding:12px 14px;border-radius:11px;font-size:1rem;cursor:pointer;color:var(--ink)}
.imsg-menu label:hover,.imsg-menu label:active{background:#f6eff3}
.imsg-partiel{white-space:pre-wrap}
.chat-pastille{position:absolute;right:-3px;bottom:46px;z-index:2;width:18px;height:18px;border-radius:50%;background:#ff3b30;border:2.5px solid #fff;
  box-shadow:0 2px 6px rgba(0,0,0,.25);pointer-events:none}
.chat-pastille[hidden]{display:none}
@media (max-width:820px){ .chat-pastille{bottom:48px;right:-2px} }
/* v86 : devis et planning */
.planning-liste{list-style:none;margin:0 0 8px;padding:0}
.planning-liste li{display:flex;align-items:center;gap:10px;padding:5px 0;border-bottom:1px solid var(--line)}
.planning-liste li form{margin:0 0 0 auto}
.planning-jour{min-width:84px;font-weight:600}
.planning-jours{display:flex;flex-wrap:wrap;gap:4px 14px}
.planning-calcul{margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}
.planning-calcul h3{margin:0 0 6px;font-size:.95rem}
.planning-resultat{margin:10px 0 0;padding:10px 12px;border-radius:12px;background:var(--pri-soft);font-size:.92rem}
.planning-moyenne{color:var(--pri);font-size:1.05rem}
.planning-report{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px}
.devis-ligne{padding:12px 0 14px;border-bottom:1px solid var(--line)}
.devis-ligne textarea{min-height:56px}
.devis-chiffres{align-items:flex-end}
.devis-chiffres .num-input{max-width:110px}
.devis-total{margin:0 0 6px auto;display:flex;flex-direction:column;align-items:flex-end}
.devis-total strong{font-size:1.05rem}
.devis-ajout{margin-top:10px;align-items:flex-end}
.devis-totaux{width:100%;max-width:360px;margin:12px 0 14px auto;border-collapse:collapse}
.devis-totaux td{padding:4px 0}
.devis-totaux td:last-child{text-align:right;white-space:nowrap}
.devis-ttc td{font-weight:700;font-size:1.05rem;border-top:1px solid var(--line);padding-top:6px}
.devis-suivi{list-style:none;margin:10px 0 0;padding:0}
.devis-suivi li{padding:6px 0;border-bottom:1px solid var(--line)}
.devis-suivi-date{display:inline-block;min-width:84px;color:var(--muted);font-variant-numeric:tabular-nums}
.badge.dv-brouillon{background:#f1edf0;color:#55555a}
.badge.dv-envoye{background:#e8f0fe;color:#1f4fa8}
.badge.dv-accepte{background:var(--ok-bg);color:var(--ok)}
.badge.dv-refuse{background:var(--bad-bg);color:#8a0010}
.badge.dv-client{background:var(--pri-soft);color:var(--pri)}
.devis-presta input{min-width:0;width:100%}
.devis-presta td{padding:3px 4px;vertical-align:top}
.devis-presta td:nth-child(3),.devis-presta td:nth-child(4){width:90px}
fieldset.checks.dv-articles{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:6px 24px;align-items:start}
fieldset.checks.dv-articles[hidden]{display:none!important}
.dv-article{display:flex!important;align-items:flex-start;gap:8px;margin:0}
.dv-article input{margin-top:3px;flex:none}
@media (max-width:640px){ fieldset.checks.dv-articles{grid-template-columns:1fr} }
.dv-articles legend,.dv-articles>p{grid-column:1/-1}
.dv-article[hidden]{display:none!important}
.dv-article span{line-height:1.35}
.devis-presta .dv-ref{width:120px}
.devis-presta td:nth-child(2){min-width:260px}
/* v88 : question d'abord, trajets, enfants du devis */
.dv-question{border:0;padding:0;margin:0 0 16px;display:flex;flex-wrap:wrap;gap:12px}
.dv-question legend{font-weight:700;font-size:1.05rem;margin-bottom:10px;padding:0}
.dv-choix{position:relative;flex:1 1 220px;cursor:pointer}
.dv-choix input{position:absolute;opacity:0;width:1px;height:1px}
.dv-choix span{display:flex;align-items:center;justify-content:center;gap:8px;min-height:64px;padding:14px 18px;border-radius:18px;
  border:2px solid var(--line);background:#fff;font-size:1.08rem;font-weight:600;transition:border-color .15s,background .15s}
.dv-choix:hover span{border-color:rgba(209,0,111,.35)}
.dv-choix input:checked+span{border-color:var(--pri);background:var(--pri-soft);color:var(--pri)}
.dv-choix input:focus-visible+span{box-shadow:0 0 0 4px rgba(209,0,111,.22)}
.planning-resultat p{margin:0 0 4px}
.planning-resultat p:last-child{margin:0}
.pr-lbl{display:inline-block;min-width:96px;font-weight:600;color:var(--muted)}
.trajets{margin-top:16px;padding-top:12px;border-top:1px solid var(--line)}
.trajets h3{margin:0 0 8px;font-size:.95rem}
.trajet{padding:10px 12px;margin:0 0 10px;border:1px solid var(--line);border-radius:14px;background:#fff}
.trajet-entete{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 6px}
.trajet-nom{flex:1 1 180px;min-width:0}
.trajet-jours{display:flex;flex-wrap:wrap;gap:2px 10px;font-size:.85rem}
.trajet-etapes{margin:6px 0;padding-left:22px}
.trajet-etapes li{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:4px 0}
.etape-adr{flex:1 1 200px;min-width:0}
.etape-km{display:flex;align-items:center;gap:4px;margin:0}
.etape-km .num-input{width:70px}
.etape-x{margin:0}
.etape-ajout{margin:4px 0 6px}
.trajet-total{margin:4px 0}
.enfant{padding:8px 0;border-bottom:1px solid var(--line)}
.enfant summary{cursor:pointer;list-style:none}
.enfant summary::-webkit-details-marker{display:none}
.enfant-lieu{display:block;color:var(--muted)}
/* v89 : complément d'adresse */
.adr-complement{color:var(--muted)}
/* v89 : fiche client — trois colonnes équilibrées, puis le planning en large à côté des devis et des documents */
.fiche-grid.fg-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.fiche-grid.fg-21{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}
@media (max-width:1100px){
  .fiche-grid.fg-3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fiche-grid.fg-3>.fiche-col:nth-child(3){grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
  .fiche-grid.fg-21{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:760px){
  .fiche-grid.fg-3{grid-template-columns:minmax(0,1fr)}
  .fiche-grid.fg-3>.fiche-col:nth-child(3){display:flex;align-items:stretch}  /* cartes à la largeur de l'écran */
}
/* v89 : enregistrement sans rechargement — message en haut de l'écran, formulaire grisé pendant l'envoi */
.toasts{position:fixed;left:50%;top:76px;transform:translateX(-50%);z-index:75;display:flex;flex-direction:column;gap:8px;
  width:min(560px,calc(100vw - 32px));pointer-events:none}
.toasts .flash{margin:0;pointer-events:auto;cursor:pointer;animation:toast-in .18s ease-out;box-shadow:0 12px 32px -10px rgba(60,20,40,.35)}
@keyframes toast-in{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.toasts .flash{animation:none}}
form.envoi-en-cours{opacity:.55;pointer-events:none;transition:opacity .15s}
/* v89 : heures réalisées comparées au planning (fiche client) */
.volume{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.volume-liste{list-style:none;margin:0 0 8px;padding:0}
.volume-liste li{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 12px;padding:6px 0;border-top:1px dashed var(--line);font-variant-numeric:tabular-nums}
.volume-liste li:first-child{border-top:0}
.volume-liste li.alerte{color:#8a0010}
.volume-liste li.alerte .vol-pct{font-weight:700;background:var(--bad-bg);border-radius:999px;padding:0 8px}
.badge.nk-volume{background:var(--bad-bg);color:#8a0010}
.badge.nk-comptes{background:#eef1f6;color:#33415c}
.badge.nk-feuille{background:#e6f0fb;color:#1f4f96}
/* v89 : feuilles de présence */
.feuilles-liste{list-style:none;margin:0 0 10px;padding:0}
.feuilles-liste li{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;padding:8px 0;border-top:1px solid var(--line)}
.feuilles-liste li:first-child{border-top:0}
.badge.fs-a_lire{background:var(--warn-bg);color:#7a3600}
.badge.fs-lue{background:var(--ok-bg);color:#14532d}
.badge.fs-illisible,.badge.fs-erreur{background:var(--bad-bg);color:#8a0010}
.badge.fe-conforme{background:var(--ok-bg);color:#14532d}
.badge.fe-saisie{background:#e6f0fb;color:#1f4f96}
.badge.fe-ecart,.badge.fe-manquante{background:var(--warn-bg);color:#7a3600}
.badge.fe-absente,.badge.fe-illisible{background:var(--bad-bg);color:#8a0010}
.badge.feuille{background:#e6f0fb;color:#1f4f96}
.fe-resume{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px}
.fe-table td{vertical-align:top;font-variant-numeric:tabular-nums}
.fe-table tr.fe-ecart td,.fe-table tr.fe-manquante td{background:rgba(255,200,120,.10)}
.fe-table tr.fe-absente td,.fe-table tr.fe-illisible td{background:rgba(255,120,120,.08)}
.fe-table .fe-choix{width:2.5em;text-align:center}
.fe-table .fe-suppr{margin:4px 0 0 6px;padding:2px 10px}
.fe-suppr-form{margin:0}
.fe-in{max-width:9.5em;padding:6px 8px}
.fe-in.fe-h{max-width:5.2em;text-align:center}
.fe-doute{color:#7a3600}
.fe-lu{margin-top:12px;padding:10px 14px;border-radius:12px;background:rgba(100,44,68,.04)}
.fe-lu h3{margin:0 0 6px}
.fe-lu p{margin:2px 0}
.attente-msg{margin:10px 0 0;font-weight:600;color:var(--pri)}
/* v90 : aides, reste à charge et contrat de garde d'enfants */
.devis-rac{background:rgba(252,232,242,.55);border-radius:12px;margin:12px 0 8px}
.devis-rac td{padding:7px 12px}
.contrat-form>.card{margin-bottom:16px}
.contrat-choix{flex-direction:column;align-items:flex-start;gap:8px}
.contrat-ligne{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
.contrat-ligne label.check{margin:0}
.contrat-enfant{border-top:1px dashed var(--line);padding-top:8px}
.contrat-enfant:first-child{border-top:0;padding-top:0}
.badge.fe-autre{background:#eef1f6;color:#33415c}
.fe-table tr.fe-autre td{background:rgba(120,140,180,.07)}
/* v91 : assistant — discussions gardées, PDF créés */
.imsg-boite{display:flex;flex-direction:column;background:#fff;color:var(--ink);font-size:16.5px;line-height:1.38;letter-spacing:-.012em}
.imsg-discussions{list-style:none;margin:12px 0;padding:0;display:flex;flex-direction:column;gap:8px}
.imsg-discussions li{display:flex;align-items:center;gap:8px}
.imsg-discussions li.muted{display:block;padding:12px 4px}
.imsg-disc-ouvrir{flex:1;min-width:0;margin:0}
.imsg-discussions button.imsg-disc{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;
  padding:11px 14px!important;border-radius:16px;background:#f4f1f3;border:1px solid transparent;color:var(--ink);box-shadow:none;font-weight:400;min-height:0}
.imsg-discussions button.imsg-disc strong{font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.imsg-discussions button.imsg-disc .small{color:var(--muted)}
.imsg-discussions li.courante button.imsg-disc{border-color:var(--pri);background:rgba(252,232,242,.6)}
.imsg-discussions button.imsg-disc:hover{background:rgba(252,232,242,.8)}
.imsg-disc-nouvelle{margin:6px 0 0}
.imsg-disc-aide{margin-top:14px}
.imsg-fichier{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:6px 0 10px;padding:10px 12px;border-radius:16px;
  background:#f4f1f3;max-width:92%}
.imsg-fichier-ico{flex:none;width:40px;height:48px;border-radius:8px;background:var(--pri);color:#fff;font-weight:700;font-size:.8rem;
  display:flex;align-items:center;justify-content:center;letter-spacing:.04em}
.imsg-fichier-txt{flex:1 1 160px;min-width:0;display:flex;flex-direction:column;gap:2px}
.imsg-fichier-txt strong{overflow-wrap:anywhere}
.imsg-fichier-txt .small{color:var(--muted)}
.imsg-fichier-btns{display:flex;gap:6px;flex-wrap:wrap}
.imsg-reprise,.imsg-suite{background:rgba(252,232,242,.55)}

/* Disponibilités, missions (recherche d'intervenante), demandes de retrait */
.dp-liste{list-style:none;margin:0 0 12px;padding:0;display:grid;gap:8px}
.dp-liste li{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 12px;padding:9px 12px;border-radius:12px;background:#fafafc;box-shadow:inset 0 0 0 1px var(--line)}
.dp-liste li.dp-passee{opacity:.65}
.dp-quand{flex:1 1 220px;min-width:0}
.dp-messages{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.dp-messages li{display:grid;gap:2px;padding:8px 12px;border-radius:12px;background:#fafafc;box-shadow:inset 0 0 0 1px var(--line)}
.dp-messages li.dp-nonlu{background:#fff8ee;box-shadow:inset 0 0 0 1px rgba(178,80,0,.28)}
.dp-mission{padding:12px 14px;margin:0 0 12px;border-radius:14px;background:#fafafc;box-shadow:inset 0 0 0 1px var(--line)}
.dp-mission.dp-attente{background:#fffaf2;box-shadow:inset 0 0 0 1px rgba(178,80,0,.30)}
.dp-mission h3{margin:0 0 6px}
.dp-carte{list-style:none;margin:0 0 10px;padding:0;display:grid;gap:4px}
.dp-reponse .row{gap:8px}
.dp-form{margin-top:10px}
.dp-jours{gap:2px 12px}
.creneau-row{align-items:flex-end}
.mi-creneaux{margin:0 0 12px}
.mi-liste{list-style:none;margin:0 0 12px;padding:0;display:grid;gap:8px}
.mi-candidate{display:flex;align-items:flex-start;gap:10px;padding:9px 12px;border-radius:12px;background:#fafafc;box-shadow:inset 0 0 0 1px var(--line)}
.mi-candidate>input[type=checkbox]{margin-top:4px;flex:0 0 auto;width:20px;height:20px}
.mi-coche{flex:0 0 20px;color:var(--ok);font-weight:700;margin-top:2px}
.mi-qui{flex:1 1 auto;min-width:0}
.mi-qui .badge{margin-left:4px}
.mi-raison{color:var(--muted)}
.mi-dur{color:#b42318}
.mi-doute{color:#9a5b00}
.mi-plus{margin:6px 0 10px}
.mi-plus>summary{cursor:pointer;font-weight:600;margin:0 0 8px}
.mi-props{list-style:none;margin:0 0 10px;padding:0;display:grid;gap:8px}
.mi-props li{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;padding:9px 12px;border-radius:12px;background:#fafafc;box-shadow:inset 0 0 0 1px var(--line)}
.mi-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.mi-filtres{display:inline-flex;flex-wrap:wrap;gap:6px}
.badge.mi-ouverte{background:#fff3e0;color:#9a5b00}
.badge.mi-pourvue,.badge.mp-acceptee{background:#e8f5ec;color:#1e6b3a}
.badge.mi-annulee,.badge.mp-retiree{background:#f1f1f4;color:#6e6e73}
.badge.mp-refusee{background:#fdecec;color:#b42318}
.badge.mp-envoyee{background:#eef3ff;color:#2b4fae}
.dispo-messages a{font-weight:600}
label.check>.check-txt{flex:1 1 auto;min-width:0}  /* texte d'une case et sa précision : un seul bloc qui passe à la ligne */

/* Icônes SVG au trait (à la place des émoji) */
svg.ico{width:1.15em;height:1.15em;vertical-align:-.2em;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;flex:none}
.btn svg.ico,button svg.ico,.dp-carte li svg.ico,.imsg-doc svg.ico,.fp-names svg.ico,.flash svg.ico{margin-right:.3em}
.dv-choix svg.ico{width:1.5em;height:1.5em;vertical-align:-.35em;margin-right:.25em}
.mi-coche svg.ico{width:20px;height:20px;stroke-width:2.4}
.mi-dur svg.ico,.mi-doute svg.ico{vertical-align:-.15em}

/* Suivi RH : photo, documents d'embauche, échéances, semaines non travaillées */
.fiche-photo{width:56px;height:56px;border-radius:50%;object-fit:cover;vertical-align:middle;margin:-6px 10px 0 0;box-shadow:0 0 0 2px #fff,0 2px 8px rgba(100,44,68,.25)}
.liste-photo{width:34px;height:34px;border-radius:50%;object-fit:cover;vertical-align:middle;margin-right:8px;float:left}
.rh-photo{display:flex;flex-wrap:wrap;align-items:center;gap:12px 18px;margin:0 0 14px}
.rh-photo-img{width:96px;height:96px;border-radius:50%;object-fit:cover;box-shadow:0 2px 10px rgba(100,44,68,.2)}
.rh-photo-vide{width:96px;height:96px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#efe3ea;color:var(--muted);font-weight:700;font-size:1.6rem}
.rh-photo-form{flex:1 1 220px;margin:0}
.rh-docs{width:100%;border-collapse:collapse;table-layout:fixed}
.rh-docs td:first-child{word-break:break-word;min-width:0}
.rh-docs th,.rh-docs td{padding:6px 8px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}
.rh-docs .rh-case{text-align:center;width:3.6em;padding-left:2px;padding-right:2px}
.rh-docs input[type=checkbox]{width:20px;height:20px}
.rh-docs tr.rh-ok td:first-child{color:var(--ok)}
.rh-docs tr.rh-ex td:first-child{color:var(--muted);text-decoration:line-through}
.rh-autre{display:block;width:100%;max-width:170px;min-width:0;margin:4px 0 0;padding:3px 8px;font-size:.9rem}
.rh-echeances{list-style:none;margin:0 0 12px;padding:0;display:grid;gap:4px}
.rh-echeances li{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center}
.rh-lib{min-width:170px;font-weight:600}
.rh-handicap{align-self:flex-end;margin-bottom:10px}
.sem-annee{display:flex;align-items:center;gap:10px;margin:10px 0 6px;font-size:1rem}
.sem-grille{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:6px;margin:0 0 12px}
.sem{display:flex;flex-direction:column;align-items:center;padding:6px 4px 5px;border-radius:10px;background:#fafafc;box-shadow:inset 0 0 0 1px var(--line);cursor:pointer;font-size:.85rem;line-height:1.25}
.sem input{margin:0 0 3px;width:18px;height:18px}
.sem-on{background:#fff3e0;box-shadow:inset 0 0 0 1px rgba(178,80,0,.35)}
.sem-courante{outline:2px solid var(--brand,#c2185b);outline-offset:-2px}
.sem-num{font-weight:700}
.sem-dates{font-size:.72rem;color:var(--muted);white-space:nowrap}
.rh-photo-form{min-width:0;max-width:100%}
.rh-photo-form label{display:block;min-width:0}
.rh-photo-form input[type=file]{display:block;width:100%;max-width:100%;min-width:0}

/* Messages des intervenantes (conversations) */
.tk-conv{padding:12px 14px;margin:0 0 14px;border-radius:14px;background:#fafafc;box-shadow:inset 0 0 0 1px var(--line)}
.tk-entete{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:0 0 10px}
.tk-fil{display:flex;flex-direction:column;gap:8px;margin:0 0 12px}
.tk-msg{max-width:88%;padding:9px 12px 10px;border-radius:16px;background:#fff;box-shadow:inset 0 0 0 1px var(--line)}
.tk-msg.tk-salarie{align-self:flex-start;border-bottom-left-radius:5px}
.tk-msg.tk-agence{align-self:flex-end;background:#fdeef5;border-bottom-right-radius:5px}
.tk-qui{display:block;font-size:.75rem;color:var(--muted);margin:0 0 3px}
.tk-texte{white-space:pre-wrap;overflow-wrap:anywhere}
.tk-reponse textarea{min-height:58px}
.tk-resume p:first-of-type{font-size:1.02rem;line-height:1.5}
.mc-tickets{margin-left:6px}
@media (max-width:400px){ .tabbar-scroll .tabbar-track>a{min-width:58px;padding-left:2px;padding-right:2px} }
/* v98 : fiche salarié rangée en trois colonnes (la personne · contrat et RH · missions), documents et feuilles côte à côte */
.fiche-col-titre{margin:2px 4px -6px;font-family:var(--font);font-size:.74rem;font-weight:750;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.fiche-grid.fg-2{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:900px){ .fiche-grid.fg-2{grid-template-columns:minmax(0,1fr)} }
@media (max-width:1100px) and (min-width:761px){ .fiche-salarie>.fiche-col:nth-child(3)>.fiche-col-titre{grid-column:1/-1} }
/* semaines non travaillées : vue courte (semaines posées en pastilles), grille complète dans « Modifier les semaines » */
.sem-resume{margin:0 0 8px}
.sem-resume .sem-annee{margin:6px 0 6px}
.sem-chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.sem-chip{display:inline-flex;align-items:baseline;gap:6px;padding:4px 10px;border-radius:999px;background:#fff3e0;
  box-shadow:inset 0 0 0 1px rgba(178,80,0,.28);font-size:.86rem;line-height:1.3;white-space:nowrap}
.sem-chip span{font-size:.76rem;color:var(--muted)}
.sem-chip-courante{box-shadow:inset 0 0 0 2px var(--brand,#c2185b)}
.sem-aucune{margin:0}
details.sem-modifier{margin:10px 0 6px}
details.sem-modifier>summary{list-style:none;cursor:pointer;display:inline-flex}
details.sem-modifier>summary::-webkit-details-marker{display:none}
details.sem-modifier[open]>summary{margin-bottom:8px}
.sem-modifier .sem-grille{grid-template-columns:repeat(auto-fill,minmax(96px,1fr))}
/* arrêts maladie et accidents du travail */
.arret-actuel{display:flex;align-items:center;gap:8px;margin:0 0 10px;padding:8px 12px;border-radius:12px;background:#fdecec;color:#8c1d1d;font-weight:600}
.arret-actuel svg.ico{flex:none}
.arrets{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.arret{padding:8px 10px;border-radius:12px;background:#fafafc;box-shadow:inset 0 0 0 1px var(--line)}
.arret-en-cours{background:#fff6f6;box-shadow:inset 0 0 0 1px rgba(192,40,40,.3)}
.arret-fini{opacity:.8}
.arret-ligne{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px}
.arret-dates{font-weight:600}
.arret-note{margin:4px 0 0}
details.arret-modif{margin-top:6px}
details.arret-modif>summary{list-style:none;cursor:pointer;display:inline-flex}
details.arret-modif>summary::-webkit-details-marker{display:none}
details.arret-modif[open]{padding-top:4px}
details.arret-modif form.inline{margin-top:6px}
.badge.arret-type{background:rgba(100,44,68,.08)}
/* mutuelle d'entreprise */
.rh-mutuelle{margin-top:4px}
.rh-mut-date{flex-basis:100%;margin-top:4px}
/* colonne « Actions » des tableaux : même fond que les autres en-têtes ; l'ombre à sa gauche n'apparaît que si le
   tableau déborde vraiment (défilement horizontal), sinon aucune ligne parasite */
th.act{background:linear-gradient(180deg,#fff,#fbf4f8)}
th.act,td.act{box-shadow:none}
td.act{background:transparent}
.deborde td.act{background:var(--card)}
.deborde th.act,.deborde td.act{box-shadow:-12px 0 12px -12px rgba(100,44,68,.35)}
table tr[data-href]{cursor:pointer}
table tr[data-href]:hover td{background:#fdf7fa}
/* v99 : bouton « Traité » directement sur les notifications et sur les conversations des intervenantes */
.lg-notifs>li{display:flex;align-items:center;gap:4px 10px;flex-wrap:wrap}
.lg-notifs>li>a{flex:1 1 320px;min-width:0}
.nt-traite{flex:none;margin:0 4px 0 auto}
.nt-etat{flex:none;margin-right:6px}
.tk-traite{display:block;margin-top:6px}
/* v100 : module « Forms » — formulaires en ligne (carte centrée façon Jotform, aux couleurs du site) */
.fo-page{max-width:780px;margin:6px auto 40px}
.fo-carte{background:var(--card);border-radius:22px;box-shadow:var(--shadow);overflow:hidden}
.fo-entete{padding:30px 34px 26px;background:linear-gradient(135deg,#d1006f 0%,#e4447f 55%,#f08aa6 100%);color:#fff}
.fo-entete h1{margin:0 0 6px;color:#fff;font-size:1.75rem;line-height:1.2}
.fo-entete p{margin:6px 0 0;opacity:.95;line-height:1.5}
.fo-entete .fo-maj{font-size:.85rem;opacity:.85}
.fo-corps{padding:26px 34px 30px}
.fo-form{display:flex;flex-direction:column;gap:6px}
.fo-titre{margin:22px 0 2px;padding:0 0 8px;font-size:1.12rem;color:var(--pri);border-bottom:2px solid var(--pri-soft)}
.fo-form>.fo-titre:first-of-type,.fo-lecture>.fo-titre:first-child{margin-top:0}
.fo-sec-aide{margin:0 0 4px;color:var(--muted);font-size:.9rem}
.fo-info{margin:8px 0;padding:12px 14px;border-radius:14px;background:var(--pri-soft);color:#6b2349;font-size:.92rem;line-height:1.5}
.fo-q{padding:12px 0 10px;border-radius:14px}
.fo-q.fo-err{padding:12px 14px;margin:2px -14px;background:var(--bad-bg);box-shadow:inset 3px 0 0 var(--bad)}
.fo-label{display:block;margin:0 0 6px;font-weight:650;font-size:.98rem;line-height:1.35;color:var(--ink)}
.fo-req{color:var(--pri);font-weight:800}
.fo-aide{margin:-2px 0 8px;color:var(--muted);font-size:.85rem;line-height:1.4}
.fo-msg{margin:6px 0 0;color:var(--bad);font-weight:600;font-size:.88rem}
.fo-q input:not([type=checkbox]):not([type=radio]):not([type=file]),.fo-q textarea,.fo-q select{width:100%;max-width:100%;box-sizing:border-box}
.fo-q input.fo-court{max-width:220px}
.fo-duo,.fo-adresse{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px}
.fo-adresse .fo-plein{grid-column:1/-1}
.fo-duo label,.fo-adresse label{display:block;margin:0}
.fo-sous{display:block;font-size:.78rem;color:var(--muted);margin:0 0 3px}
.fo-options{display:flex;flex-wrap:wrap;gap:8px}
.fo-cases{flex-direction:column;align-items:stretch}
.fo-opt{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:12px;background:#fbf8fa;box-shadow:inset 0 0 0 1px var(--field);
  cursor:pointer;font-weight:500;line-height:1.35;transition:background .12s,box-shadow .12s}
.fo-opt:hover{background:#fdf2f8}
.fo-opt input{flex:none;width:20px;height:20px;margin:0}
.fo-opt:has(input:checked){background:var(--pri-soft);box-shadow:inset 0 0 0 2px var(--pri)}
.fo-fichier{display:block;max-width:100%}
.fo-deja{margin:0 0 6px}
.fo-envoi{margin-top:22px;padding-top:18px;border-top:1px solid var(--line);display:flex;flex-direction:column;align-items:flex-start;gap:6px}
.fo-bouton{min-width:220px;padding:13px 26px;font-size:1.05rem}
.fo-rgpd{margin:18px 0 0}
.fo-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.fo-merci{text-align:center}
.fo-merci-ico svg{width:64px;height:64px;color:var(--ok)}
.fo-merci-txt{font-size:1.1rem;font-weight:600}
/* signature */
.sig{border-radius:14px;box-shadow:inset 0 0 0 1px var(--field);background:#fff;overflow:hidden}
.sig-pad{display:block;width:100%;height:170px;touch-action:none;cursor:crosshair;background:repeating-linear-gradient(0deg,#fff 0,#fff 128px,#e9dbe2 128px,#e9dbe2 129px,#fff 129px)}
.sig-bas{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:6px 10px;border-top:1px solid var(--line);background:#fbf8fa}
.fo-sig-img{display:block;max-width:260px;max-height:110px;margin:6px 0;border-radius:8px;box-shadow:inset 0 0 0 1px var(--line);background:#fff}
/* lecture (agence, intervenante) */
.fo-lecture{display:flex;flex-direction:column}
.fo-r{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:4px 18px;padding:9px 0;border-bottom:1px solid var(--line)}
.fo-r-q{color:var(--muted);font-size:.88rem;line-height:1.4}
.fo-r-v{font-weight:550;overflow-wrap:anywhere}
.fo-r-texte{white-space:pre-wrap}
.fo-r-liste{margin:0;padding-left:18px}
@media (max-width:640px){
  .fo-entete{padding:22px 18px 20px}.fo-entete h1{font-size:1.4rem}
  .fo-corps{padding:18px 16px 22px}
  .fo-duo,.fo-adresse{grid-template-columns:1fr}
  .fo-r{grid-template-columns:1fr;gap:2px}
  .fo-q.fo-err{margin:2px -8px;padding:10px 8px}
  .fo-bouton{width:100%}
}
/* gestion : liste des formulaires, éditeur, réponses */
.fo-grille{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.fo-def{margin:0;display:flex;flex-direction:column;gap:6px}
.fo-def h2{margin:4px 0 0;font-size:1.08rem}
.fo-def-haut{display:flex;flex-wrap:wrap;gap:6px}
.fo-def-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:8px}
.fo-brouillon{opacity:.85;background:repeating-linear-gradient(135deg,#fff 0,#fff 14px,#fcf7fa 14px,#fcf7fa 28px)}
.fo-lien{margin:0;overflow-wrap:anywhere}
.fo-new{color:var(--pri)}
.fo-editeur{display:grid;grid-template-columns:minmax(280px,1fr) minmax(0,2fr);gap:18px;align-items:start}
@media (max-width:980px){ .fo-editeur{grid-template-columns:1fr} }
.fo-reglages{position:sticky;top:84px;margin:0}
@media (max-width:980px){ .fo-reglages{position:static} }
.fo-lien-bloc{margin:14px 0;padding:12px;border-radius:12px;background:var(--pri-soft)}
.fo-lien-bloc a{overflow-wrap:anywhere}
.fo-suppr{margin-top:14px}
.fo-questions>h2{margin:0 0 10px}
.fo-ed-q{margin:0 0 10px;padding:14px 16px}
.fo-ed-titre{background:linear-gradient(90deg,var(--pri-soft),#fff 60%)}
.fo-ed-haut{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
.fo-ed-label{flex:1 1 220px;min-width:0}
.fo-ed-btns{display:flex;gap:4px;margin-left:auto}
.fo-ed-opts{margin:6px 0 0}
details.fo-ed-modif,details.fo-ajout{margin-top:8px}
details.fo-ed-modif>summary,details.fo-ajout>summary{list-style:none;cursor:pointer;display:inline-flex}
details.fo-ed-modif>summary::-webkit-details-marker,details.fo-ajout>summary::-webkit-details-marker{display:none}
.fo-ed-form,.fo-ajout-form{display:flex;flex-direction:column;gap:8px;margin-top:10px;padding:12px;border-radius:12px;background:#fbf8fa}
.fo-ajout-form{flex-direction:row;flex-wrap:wrap;align-items:flex-end}
.fo-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.fo-sig{padding:12px 0;border-top:1px solid var(--line)}
.fo-sig:first-of-type{border-top:0}
.fo-sig-texte{white-space:pre-wrap;padding:10px 12px;border-radius:12px;background:var(--warn-bg)}
.fo-sig-champ{padding:4px 12px;border-radius:12px;background:#fbf8fa}
.badge.fo-st-nouvelle{background:var(--pri);color:#fff}
.badge.fo-st-traitee{background:var(--ok-bg);color:var(--ok)}
tr.fo-row-new td{font-weight:600}
.fo-lien-carte{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;color:var(--ink)}
.fo-lien-carte .fo-go{margin-left:auto;color:var(--pri);font-weight:650}
.fo-liste-sal{display:flex;flex-direction:column;gap:10px}
.fo-liste-sal .card{margin:0}
.fo-vide{opacity:.8}
.fo-sigs{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:6px}
.fo-print-msg{display:none}
@media print{ .fo-confidentiel{display:none!important} .fo-print-msg{display:block!important} }
.fm-ligne{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;padding:6px 0;border-bottom:1px solid var(--line)}
.fo-prevenir{margin-top:10px}
.fo-opt{flex-direction:row!important;justify-content:flex-start;text-align:left;font-size:.95rem;color:var(--ink);letter-spacing:normal}
.fo-opt span{flex:1;min-width:0}
.fo-q select,.fo-q input,.fo-q textarea{font-size:16px}
.fo-opt{margin:0!important}
.fo-q input.fo-court{max-width:240px!important}
.fo-duo label,.fo-adresse label{margin:0!important}
