/* Composants réutilisables : cartes, boutons, champs, tableaux, badges, onglets, modales */
.card { background: var(--card); border: 1px solid #e6eaf0; border-radius: var(--radius); box-shadow: var(--shadow-card); }
.card-pad { padding: 16px 18px; }
.h1 { margin: 0; font-family: var(--cond); font-size: 27px; font-weight: 700; color: var(--navy); }
.h2 { margin: 0; font-family: var(--cond); font-size: 17px; font-weight: 700; color: var(--navy); }
.h2-lg { margin: 0; font-family: var(--cond); font-size: 26px; font-weight: 700; color: var(--navy); }
.muted { color: var(--muted); }
.row { display: flex; align-items: center; gap: 12px; }
.row-between { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.stack { display: flex; flex-direction: column; gap: 14px; }
.grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }

/* boutons */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 38px; padding: 0 18px; border-radius: 5px; font-size: 14px; font-weight: 600; cursor: pointer; white-space: nowrap; text-decoration: none; transition: filter .15s, transform .1s; }
.btn:active { transform: translateY(1px); }
.btn:disabled { opacity: .55; cursor: not-allowed; }
.btn-red { border: 0; background: var(--grad-red); color: #fff; box-shadow: var(--shadow-red); }
.btn-red:hover { filter: brightness(1.07); color: #fff; }
.btn-out { background: linear-gradient(180deg, #fff, #f5f7fa); border: 1px solid #d5dbe4; color: var(--navy); box-shadow: 0 1px 2px rgba(16, 27, 45, .06); }
.btn-out:hover { border-color: #b9c2cf; color: var(--navy); }
.btn-navy { border: 0; background: var(--grad-navy-btn); color: #fff; box-shadow: 0 4px 12px rgba(15, 26, 44, .35), inset 0 1px 0 rgba(255, 255, 255, .12); }
.btn-navy:hover { color: #fff; filter: brightness(1.15); }
.btn-green { border: 0; background: linear-gradient(180deg, #2dbb57, #179a3e); color: #fff; box-shadow: 0 4px 12px rgba(23, 154, 62, .3); }
.btn-sm { height: 32px; padding: 0 12px; font-size: 13px; }
.btn-lg { height: 42px; padding: 0 22px; }
.icon-btn { width: 30px; height: 30px; border-radius: 5px; border: 1px solid #dfe4eb; background: #fff; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; color: #4d5667; box-shadow: 0 1px 2px rgba(16, 27, 45, .05); text-decoration: none; }
.icon-btn:hover { border-color: #b9c2cf; color: var(--navy); }
.icon-btn.danger:hover { color: var(--red); border-color: #f2b5b8; }

/* champs */
.field { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.field { gap: 6px; }
/* v1.98.15 : libellés lisibles (maquette validée) — Barlow Semi Condensed demi-gras, 14 px, bleu nuit */
.field > label, .field > .label { font-family: 'Barlow Semi Condensed', var(--font); font-size: 14px; font-weight: 600; letter-spacing: .2px; color: var(--label-ink, #1c2a44); line-height: 1.25; }
.field > label .lbl-sub, .field > .label .lbl-sub { font-family: var(--font); font-weight: 500; letter-spacing: 0; color: var(--label-sub, #4b566a); }
.field > label .req { color: var(--red, #d61f2c); font-weight: 700; }
.field-box { display: flex; align-items: center; height: 40px; border: 1px solid var(--field-line); border-radius: 6px; background: #fff; overflow: hidden; box-shadow: inset 0 1px 2px rgba(16, 27, 45, .04); transition: border-color .15s, box-shadow .15s; }
.field-box:focus-within { border-color: #7aa2e3; box-shadow: 0 0 0 3px rgba(31, 99, 201, .12); }
.field-box > svg { margin-left: 10px; color: var(--muted); }
.field-box input, .field-box select { flex: 1; min-width: 0; border: 0; outline: none; background: transparent; padding: 0 12px; font-size: 14.5px; color: var(--text); height: 100%; appearance: none; }
.field-box select { background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%236b7688' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 10px center; padding-right: 30px; cursor: pointer; }
.input { height: 40px; border: 1px solid var(--field-line); border-radius: 6px; background: #fff; padding: 0 12px; font: inherit; font-size: 14.5px; color: var(--text); min-width: 0; outline: none; box-shadow: inset 0 1px 2px rgba(16, 27, 45, .04); transition: border-color .15s, box-shadow .15s; }
.input:focus { border-color: #7aa2e3; box-shadow: 0 0 0 3px rgba(31, 99, 201, .12); }
select.input { appearance: none; padding-right: 30px; cursor: pointer; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%236b7688' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 10px center; }
.input:disabled { background: #f3f5f8; color: var(--muted); }
.field-box .suffix { display: flex; align-items: center; padding: 0 12px; height: 100%; border-left: 1px solid #dfe4eb; background: #f6f8fa; font-size: 12.5px; color: var(--muted); }
.field-box .addon { width: 38px; height: 100%; border: 0; border-left: 1px solid #dfe4eb; background: #f6f8fa; display: flex; align-items: center; justify-content: center; cursor: pointer; color: var(--navy); }
textarea.textarea { width: 100%; resize: vertical; border: 1px solid var(--field-line); border-radius: 6px; padding: 12px; font-size: 14.5px; color: var(--text); outline: none; box-shadow: inset 0 1px 2px rgba(16, 27, 45, .04); min-height: 84px; }
textarea.textarea:focus { border-color: #7aa2e3; box-shadow: 0 0 0 3px rgba(31, 99, 201, .12); }
.field.invalid .field-box, .field.invalid textarea { border-color: #e8888c; }
.field .err { font-size: 11.5px; color: var(--red-text); min-height: 0; }
.check { display: inline-flex; align-items: center; gap: 8px; font-size: 13.5px; color: var(--text-2); cursor: pointer; }
.check input { width: 16px; height: 16px; accent-color: var(--red); }

/* tableaux */
.table { width: 100%; border-collapse: collapse; }
.table th { text-align: left; padding: 0 14px; height: 42px; font-size: 12.5px; font-weight: 600; color: var(--text-3); white-space: nowrap; background: linear-gradient(180deg, #f6f8fb, #eef1f5); border-bottom: 1px solid var(--line); }
.table td { padding: 0 14px; height: 54px; font-size: 13.5px; color: var(--text-2); border-bottom: 1px solid var(--line-2); }
.table tbody tr:nth-child(even) { background: #fbfcfd; }
.table tbody tr.clickable { cursor: pointer; }
.table tbody tr.clickable:hover { background: #f3f6fb; }
.table .num { text-align: right; font-variant-numeric: tabular-nums; }
.table .strong { font-weight: 600; color: var(--navy); }
.table .plate { font-family: var(--cond); font-size: 17px; font-weight: 700; color: var(--blue); letter-spacing: .3px; }
.table .actions { display: flex; gap: 6px; }
.car-thumb { width: 40px; height: 20px; object-fit: contain; }
.car-thumb.car-real { object-fit: cover; border-radius: 4px; background: #eef1f5; }
.car-thumb.lg { width: 72px; height: 36px; filter: drop-shadow(0 3px 3px rgba(0, 0, 0, .12)); }
.empty { padding: 40px 20px; text-align: center; color: var(--muted); font-size: 14px; }
.empty svg { color: #b9c2cf; margin-bottom: 8px; }

/* pagination */
.pager { display: flex; align-items: center; justify-content: space-between; padding: 14px 18px; border-top: 1px solid var(--line); font-size: 13px; color: #4d5667; }
.pager .pages { display: flex; gap: 6px; align-items: center; }
.pager button { min-width: 30px; height: 30px; border-radius: 5px; font-size: 13px; font-weight: 600; cursor: pointer; border: 1px solid #e0e5ec; color: var(--navy); background: #fff; display: inline-flex; align-items: center; justify-content: center; padding: 0 6px; }
.pager button.on { border: 0; color: #fff; background: var(--grad-red); box-shadow: 0 3px 8px rgba(225, 29, 36, .35); }
.pager button:disabled { opacity: .45; cursor: default; }

/* badges */
.badge { display: inline-flex; align-items: center; gap: 5px; height: 22px; padding: 0 9px; border-radius: 11px; font-size: 12px; font-weight: 600; white-space: nowrap; border: 1px solid; }
.badge .dot { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.b-red { background: #fdeaea; color: #d7141b; border-color: #f7c6c8; }
.b-blue { background: #e7f0fd; color: #1f63c9; border-color: #c3d8f7; }
.b-amber { background: #fff4dc; color: #c77c00; border-color: #f7dca3; }
.b-green { background: #e3f6e8; color: #1a8a3a; border-color: #b9e5c5; }
.b-grey { background: #eef0f3; color: #4d5667; border-color: #d9dde4; }
.b-orange { background: #fff0e3; color: #e0620e; border-color: #fbd2b0; }
.b-purple { background: #f2eafd; color: #7a3fc4; border-color: #dccbf6; }
.pill { display: inline-flex; align-items: center; height: 26px; padding: 0 14px; border-radius: 13px; color: #fff; font-size: 13px; font-weight: 600; }
.pill-green { background: linear-gradient(180deg, #27ae4f, #17883a); box-shadow: 0 3px 8px rgba(23, 136, 58, .33), inset 0 1px 0 rgba(255, 255, 255, .25); }
.pill-red { background: linear-gradient(180deg, #ee2830, #c9141b); box-shadow: 0 3px 8px rgba(201, 20, 27, .33), inset 0 1px 0 rgba(255, 255, 255, .25); }
.pill-grey { background: linear-gradient(180deg, #8a94a4, #6b7688); }

/* onglets style "étapes" */
.tabs { display: flex; gap: 4px; padding: 4px 4px 0; border-radius: 8px 8px 0 0; background: linear-gradient(180deg, #eef1f5, #e8ecf1); border-bottom: 1px solid #dde2ea; }
.tab { flex: 1; height: 44px; display: flex; align-items: center; justify-content: center; gap: 9px; border: 0; background: transparent; font-size: 14px; font-weight: 500; color: #4d5667; cursor: pointer; position: relative; border-radius: 6px 6px 0 0; }
.tab .num { width: 20px; height: 20px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 700; color: #fff; background: #8a94a4; }
.tab.on { background: #fff; font-weight: 600; color: var(--red-text); box-shadow: 0 -1px 4px rgba(16, 27, 45, .06); }
.tab.on .num { background: var(--grad-red); box-shadow: 0 2px 6px rgba(225, 29, 36, .45); }
.tab.done .num { background: linear-gradient(180deg, #2dbb57, #179a3e); }
.tab.on::after { content: ''; position: absolute; left: 12px; right: 12px; bottom: 0; height: 3px; border-radius: 3px 3px 0 0; background: linear-gradient(90deg, #e11d24, #ff3b41); box-shadow: 0 0 8px rgba(225, 29, 36, .5); }
.tab-panel { border: 1px solid var(--line); border-top: 0; border-radius: 0 0 8px 8px; box-shadow: 0 6px 16px rgba(16, 27, 45, .05); background: #fff; }
.utabs { display: flex; gap: 8px; border-bottom: 1px solid var(--line); }
.utab { position: relative; display: flex; align-items: center; gap: 6px; height: 42px; padding: 0 16px; border: 0; background: transparent; font-size: 14px; font-weight: 500; color: var(--muted); cursor: pointer; text-decoration: none; }
.utab.on { color: var(--red-text); font-weight: 600; }
.utab.on::after { content: ''; position: absolute; left: 0; right: 0; bottom: -1px; height: 3px; border-radius: 2px; background: var(--red); }

/* segmenté */
.seg { display: flex; gap: 2px; padding: 2px; border: 1px solid #dfe4eb; border-radius: 6px; background: #f6f8fa; }
.seg button { height: 32px; padding: 0 20px; border: 0; border-radius: 4px; font-size: 13px; font-weight: 600; cursor: pointer; color: #4d5667; background: transparent; }
.seg button.on { color: #fff; background: var(--grad-red); box-shadow: 0 3px 8px rgba(225, 29, 36, .35); }

/* modale */
.modal-back { position: fixed; inset: 0; background: rgba(8, 14, 26, .55); backdrop-filter: blur(2px); z-index: 100; display: flex; align-items: flex-start; justify-content: center; padding: 60px 16px; overflow-y: auto; animation: fadeIn .15s ease; }
.modal { width: min(640px, 100%); background: #fff; border-radius: 10px; box-shadow: 0 30px 80px rgba(0, 0, 0, .45); animation: popIn .2s cubic-bezier(.2, .8, .2, 1); }
.modal.wide { width: min(920px, 100%); }
.modal-head { display: flex; align-items: center; justify-content: space-between; padding: 16px 20px; border-bottom: 1px solid var(--line); }
.modal-body { padding: 18px 20px; }
.modal-foot { display: flex; justify-content: flex-end; gap: 10px; padding: 14px 20px; border-top: 1px solid var(--line); background: #fafbfc; border-radius: 0 0 10px 10px; }
@keyframes fadeIn { from { opacity: 0 } }
@keyframes popIn { from { opacity: 0; transform: translateY(12px) scale(.98) } }

/* toasts */
.toasts { position: fixed; right: 20px; bottom: 20px; display: flex; flex-direction: column; gap: 10px; z-index: 200; }
.toast { min-width: 280px; max-width: 420px; padding: 12px 16px; border-radius: 8px; background: #14223b; color: #fff; font-size: 13.5px; box-shadow: 0 10px 30px rgba(0, 0, 0, .35); display: flex; gap: 10px; align-items: flex-start; animation: popIn .2s ease; border-left: 4px solid #1f63c9; }
.toast.ok { border-left-color: #2dbb57; }
.toast.err { border-left-color: #ff3b41; }

/* page de connexion */
.login-wrap { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 20px; background: radial-gradient(ellipse at 70% 110%, rgba(225, 29, 36, .28), transparent 55%), linear-gradient(180deg, #111d31, #0a1321); }
.login-card { width: min(420px, 100%); background: #fff; border-radius: 12px; box-shadow: 0 30px 80px rgba(0, 0, 0, .5); overflow: hidden; }
.login-card .top { background: url('../assets/hero.jpg') center/cover; height: 130px; position: relative; }
.login-card .top::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: linear-gradient(90deg, #e11d24, #ff3b41); box-shadow: 0 0 12px rgba(255, 40, 48, .8); }
.login-card form { padding: 24px; display: flex; flex-direction: column; gap: 14px; }
.form-error { background: #fdeaea; color: #b3121a; border: 1px solid #f7c6c8; padding: 10px 12px; border-radius: 6px; font-size: 13px; }
.spinner { width: 16px; height: 16px; border: 2px solid rgba(255, 255, 255, .4); border-top-color: #fff; border-radius: 50%; animation: gSpin .7s linear infinite; }
.spinner.dark { border-color: rgba(20, 34, 59, .2); border-top-color: var(--navy); }
.loading { display: flex; align-items: center; justify-content: center; gap: 10px; padding: 60px; color: var(--muted); }
.utabs { overflow-x: auto; scrollbar-width: thin; }
.utabs .utab { white-space: nowrap; flex: 0 0 auto; }

/* ---------- blocs « à la Dolibarr » en bas des fiches ---------- */
.dp-wrap { padding: 0 24px 24px; }
.dp-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 16px; align-items: start; }
.dp-card { overflow: hidden; }
.dp-dl { display: grid; grid-template-columns: minmax(120px, 40%) 1fr; gap: 6px 12px; margin: 0; padding: 0 16px 14px; font-size: 13.5px; }
.dp-dl dt { color: var(--muted); }
.dp-dl dd { margin: 0; font-weight: 600; }
.dp-links { padding: 0 12px 12px; display: grid; gap: 10px; }
.dp-gh { display: flex; gap: 6px; align-items: center; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .3px; color: var(--muted); padding: 2px 4px; }
.dp-item { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; padding: 6px 8px; border-radius: 6px; text-decoration: none; color: inherit; font-size: 13px; }
.dp-item:hover { background: #f4f6f9; }
.dp-ev { list-style: none; margin: 0; padding: 0 16px 10px; display: grid; gap: 10px; }
.dp-ev li { display: flex; gap: 10px; font-size: 13px; }
.dp-ev .muted { font-size: 11.5px; }
.dp-dot { flex: none; width: 9px; height: 9px; border-radius: 50%; background: #1f63c9; margin-top: 5px; }
.dp-draft-note { display: flex; gap: 10px; align-items: flex-start; margin: 0 24px 12px; padding: 10px 14px; border-radius: 8px; background: #fff7e6; border: 1px solid #f5d38a; color: #6b4b00; font-size: 13.5px; }
.dl-grid { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 16px; align-items: start; }
.dl-nav button { display: block; width: 100%; text-align: start; border: 0; background: none; padding: 8px 12px; border-radius: 6px; cursor: pointer; font: inherit; font-size: 13.5px; }
.dl-nav button.on { background: #fdecec; color: #b3121a; font-weight: 600; }
.dl-nav .dl-g { font-size: 11px; text-transform: uppercase; color: var(--muted); font-weight: 700; padding: 10px 12px 4px; }
@media (max-width: 900px) { .dl-grid { grid-template-columns: minmax(0, 1fr); } }

.pa-phone { display: grid; gap: 3px; padding: 10px 12px; border-radius: 10px; background: #eef8f1; border: 1px solid #bfe3cb; font-size: 13px; } .pa-phone code { font-weight: 700; background: #fff; padding: 1px 6px; border-radius: 5px; border: 1px solid #d5e6da; }

/* ===== alerte « nouveau rendez-vous » (ERP) ===== */
#rdv-alerts { position: fixed; top: 78px; right: 18px; z-index: 1200; display: flex; flex-direction: column; gap: 12px; width: 400px; max-width: calc(100vw - 24px); pointer-events: none; }
.rdv-alert { pointer-events: auto; display: flex; gap: 14px; padding: 16px 18px; border-radius: 16px; color: #fff; position: relative; overflow: hidden;
  background: linear-gradient(135deg, #b3121a, #e11d24 55%, #ff4b52); box-shadow: 0 18px 40px rgba(180, 18, 26, .55), 0 0 0 2px rgba(255, 255, 255, .18) inset;
  animation: rdv-in .55s cubic-bezier(.2, 1.4, .4, 1) both, rdv-glow 1.6s ease-in-out .6s infinite; }
.rdv-alert::before { content: ''; position: absolute; inset: 0; background: linear-gradient(105deg, transparent 35%, rgba(255, 255, 255, .28) 50%, transparent 65%); transform: translateX(-100%); animation: rdv-sheen 2.6s ease-in-out .8s infinite; pointer-events: none; }
@keyframes rdv-in { from { transform: translateX(120%) scale(.9); opacity: 0; } to { transform: none; opacity: 1; } }
@keyframes rdv-glow { 50% { box-shadow: 0 18px 46px rgba(255, 60, 70, .9), 0 0 0 5px rgba(255, 255, 255, .25) inset; } }
@keyframes rdv-sheen { to { transform: translateX(120%); } }
.rdv-alert-ic { width: 50px; height: 50px; flex: 0 0 50px; border-radius: 14px; background: rgba(0, 0, 0, .25); display: grid; place-items: center; animation: rdv-ring 1.4s ease-in-out infinite; }
@keyframes rdv-ring { 0%, 60%, 100% { transform: rotate(0); } 10% { transform: rotate(-16deg); } 20% { transform: rotate(14deg); } 30% { transform: rotate(-10deg); } 40% { transform: rotate(8deg); } }
.rdv-alert-body { position: relative; min-width: 0; }
.rdv-alert-k { font: 800 10.5px Barlow, sans-serif; letter-spacing: .14em; opacity: .95; display: flex; align-items: center; gap: 7px; }
.rdv-alert-k i { width: 8px; height: 8px; border-radius: 50%; background: #fff; animation: rdv-dot 1s ease-out infinite; } @keyframes rdv-dot { 0% { box-shadow: 0 0 0 0 rgba(255, 255, 255, .8); } 100% { box-shadow: 0 0 0 10px rgba(255, 255, 255, 0); } }
.rdv-alert-body > b { display: block; font: 800 22px/1.15 'Barlow Semi Condensed', sans-serif; margin: 3px 0; }
.rdv-alert-when { font-size: 14px; } .rdv-alert-sub { font-size: 12.5px; opacity: .9; margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rdv-alert-actions { display: flex; gap: 8px; margin-top: 12px; align-items: center; }
.rdv-btn { border: 0; border-radius: 10px; padding: 9px 16px; background: #fff; color: #c8161c; font: 800 13.5px Barlow, sans-serif; cursor: pointer; box-shadow: 0 6px 16px rgba(0, 0, 0, .25); } .rdv-btn:hover { transform: translateY(-1px); }
.rdv-later { border: 1px solid rgba(255, 255, 255, .55); border-radius: 10px; padding: 8px 12px; background: transparent; color: #fff; font: 600 12.5px Barlow, sans-serif; cursor: pointer; }
tr.rdv-new td { background: #fff1f1; } tr.rdv-new td:first-child { box-shadow: inset 4px 0 0 #e11d24; }
/* fiche du rendez-vous */
.rdvp { display: flex; flex-direction: column; gap: 14px; }
.rdvp-head { display: flex; gap: 18px; align-items: center; padding: 14px 16px; border-radius: 14px; background: linear-gradient(120deg, #0a0e17, #1b0d11); color: #fff; }
.rdvp-head .muted { color: #b9c1ce; } .rdvp-when { text-align: center; padding-right: 18px; border-right: 1px solid rgba(255, 255, 255, .15); } .rdvp-when small { display: block; text-transform: capitalize; color: #b9c1ce; font-size: 12px; }
.rdvp-when b { font: 800 40px/1 'Barlow Semi Condensed', sans-serif; } .rdvp-when span { display: block; font-size: 11.5px; color: #b9c1ce; }
.rdvp-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; } .rdvp-card { border: 1px solid var(--line, #e5e9f0); border-radius: 12px; padding: 12px 14px; }
.rdvp-card h4 { margin: 0 0 8px; font: 700 11px Barlow, sans-serif; letter-spacing: .12em; text-transform: uppercase; color: #6b7688; display: flex; gap: 6px; align-items: center; }
.rdvp-big { font: 700 19px 'Barlow Semi Condensed', sans-serif; display: block; margin-bottom: 4px; } .rdvp-line { display: flex; gap: 8px; align-items: center; margin: 3px 0; }
.rdvp-h { margin: 4px 0 0; font: 700 11px Barlow, sans-serif; letter-spacing: .12em; text-transform: uppercase; color: #6b7688; }
.rdvp-opts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.rdvp-opt { display: grid; gap: 2px; text-align: left; padding: 12px 14px; border-radius: 12px; border: 1px solid var(--line, #e5e9f0); background: #f7f9fc; cursor: pointer; font-family: inherit; color: var(--ink, #14223b); text-decoration: none; transition: transform .15s, border-color .15s; }
.rdvp-opt:hover { transform: translateY(-2px); border-color: #14223b; } .rdvp-opt b { font-size: 14px; margin-top: 4px; } .rdvp-opt small { color: #6b7688; font-size: 11.5px; }
.rdvp-opt.ok { background: #eaf8ef; border-color: #b6e2c4; color: #14743a; } .rdvp-opt.bad { background: #fdeeee; border-color: #f2bcbc; color: #b3121a; } .rdvp-opt.warn { background: #fff5e6; border-color: #f5d29b; color: #8a5200; } .rdvp-opt.go { background: #14223b; color: #fff; border-color: #14223b; } .rdvp-opt.go small { color: #b9c1ce; }
.rdvp-sub { border: 1px dashed #b9c1ce; border-radius: 12px; padding: 12px 14px; }
@media (max-width: 760px) { .rdvp-grid, .rdvp-opts { grid-template-columns: minmax(0, 1fr); } #rdv-alerts { top: 64px; right: 8px; left: 8px; width: auto; } }
@media (prefers-reduced-motion: reduce) { .rdv-alert, .rdv-alert::before, .rdv-alert-ic, .rdv-alert-k i { animation: none !important; } }

/* logos de marques (Paramètres) */
.brand-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; }
.brand-tile { border: 1px solid var(--line, #e5e9f0); border-radius: 12px; padding: 12px; text-align: center; display: grid; gap: 8px; background: #fff; } .brand-tile.has { border-color: #bfe6cc; }
.brand-tile .bl { height: 70px; display: grid; place-items: center; background: #f5f7fa; border-radius: 10px; } .brand-tile .bl img { max-width: 80%; max-height: 58px; object-fit: contain; } .brand-tile .bl span { font: 800 20px 'Barlow Semi Condensed', sans-serif; color: #b9c1ce; }

/* pavé de signature (réception) */
.sig-box { display: grid; gap: 6px; max-width: 660px; } .sig-box canvas { width: 100%; height: auto; aspect-ratio: 16 / 5; border: 2px dashed #b9c1ce; border-radius: 12px; background: #fff; touch-action: none; cursor: crosshair; }
/* rapports de scanner */
.rp-list { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 6px; } .rp-list li { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border: 1px solid var(--line, #e5e9f0); border-radius: 10px; background: #fff; }
.rp-list a { display: flex; align-items: center; gap: 8px; color: #1f4f9a; text-decoration: none; flex: 1; min-width: 0; } .rp-list a b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .rp-list .muted { font-size: 12px; }
/* logigramme du processus atelier */
.pf { display: flex; align-items: flex-start; flex-wrap: wrap; gap: 4px 0; padding: 4px 0 2px; }
.pf-node { position: relative; width: 86px; display: flex; flex-direction: column; align-items: center; gap: 3px; text-align: center; padding: 8px 4px; border-radius: 12px; border: 1px solid #e3e7ee; background: #f7f9fc; }
.pf-node b { font: 700 12px 'Barlow Semi Condensed', sans-serif; color: #26324a; } .pf-node small { font-size: 10px; color: #6b7688; line-height: 1.2; min-height: 12px; }
.pf-ic { width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; background: #e4e8ef; color: #8a94a4; }
.pf-node.done { background: #eaf8ef; border-color: #bfe6cc; } .pf-node.done .pf-ic { background: linear-gradient(180deg, #2dbb57, #179a3e); color: #fff; }
.pf-node.current { background: #fff1f1; border-color: #f2a3a6; box-shadow: 0 0 0 4px rgba(225, 29, 36, .10); } .pf-node.current .pf-ic { background: linear-gradient(180deg, #ee2830, #c9141b); color: #fff; animation: pf-pulse 1.8s ease-in-out infinite; } .pf-node.current b { color: #c9141b; }
@keyframes pf-pulse { 50% { box-shadow: 0 0 0 7px rgba(225, 29, 36, .16); } }
.pf-node.wait { background: #fff7e6; border-color: #f5c26b; }
.pf-arrow { display: flex; flex-direction: column; align-items: center; justify-content: center; height: 62px; width: 15px; color: #b9c1ce; position: relative; } .pf-arrow.on { color: #2dbb57; } .pf-arrow em { position: absolute; top: 4px; font: 800 8.5px Barlow, sans-serif; color: #1f9a3e; font-style: normal; letter-spacing: .06em; }
.pf-node.dec { border-color: transparent; background: transparent; padding-top: 0; } .pf-dia { width: 44px; height: 44px; display: grid; place-items: center; }
.pf-dia span { width: 32px; height: 32px; transform: rotate(45deg); display: grid; place-items: center; border-radius: 6px; background: #e4e8ef; color: #6b7688; font: 800 15px Barlow, sans-serif; } .pf-dia span::first-line { line-height: 1; }
.pf-node.dec.done .pf-dia span { background: linear-gradient(135deg, #2dbb57, #179a3e); color: #fff; } .pf-node.dec.wait .pf-dia span { background: linear-gradient(135deg, #f5a524, #d98200); color: #fff; animation: pf-pulse 1.6s ease-in-out infinite; }
.pf-branch { margin-top: 2px; display: inline-flex; align-items: center; gap: 4px; padding: 2px 8px; border-radius: 20px; font-size: 10.5px; border: 1px dashed #c7d0de; color: #8a94a6; } .pf-branch em { font: 800 8.5px Barlow, sans-serif; font-style: normal; letter-spacing: .06em; color: #c9141b; } .pf-branch.wait { border: 1px solid #f5c26b; background: #fff3d6; color: #8a5200; font-weight: 700; }
.pf-doc { margin-top: 3px; display: inline-flex; align-items: center; gap: 4px; padding: 2px 8px; border-radius: 20px; border: 1px solid #c7d0de; background: #fff; color: #1f4f9a; font: 700 10px Barlow, sans-serif; cursor: pointer; text-decoration: none; } .pf-doc:hover { border-color: #1f4f9a; background: #f2f7ff; }
.or-chips { display: flex; flex-wrap: wrap; gap: 6px; } .or-chips span { border: 1px solid #f5c26b; background: #fff7e6; color: #8a5200; border-radius: 20px; padding: 3px 10px; font-weight: 700; font-size: 12px; } .or-chips span.none { border-color: #bfe6cc; background: #eaf8ef; color: #14743a; } .or-chips span.acc { border-color: #cfd8e8; background: #f3f6fb; color: #26324a; font-weight: 600; }
.or-sign { max-height: 70px; max-width: 220px; border: 1px solid #e3e7ee; border-radius: 8px; background: #fff; padding: 4px; }
@media (max-width: 900px) { .pf-arrow { display: none; } .pf { gap: 6px; } }
/* v1.83 : bouton « Excel » des tableaux (components/table-export.js) */
.tx-bar { display: flex; justify-content: flex-end; padding: 6px 10px 2px; }
.tx-btn { display: inline-flex; align-items: center; gap: 5px; height: 26px; padding: 0 10px; border-radius: 7px; border: 1px solid #b9dcc6; background: #f1faf4; color: #15703a; font: 600 12px var(--font, 'Barlow', sans-serif); cursor: pointer; }
.tx-btn:hover { background: #def3e6; border-color: #7cc49a; }
.tx-btn:disabled { opacity: .55; cursor: progress; }
html[data-theme="dark"] .tx-btn { background: #102419; border-color: #1f5a37; color: #7fe0a6; }
@media print { .tx-bar { display: none; } }
/* v1.83 : bandeau hors ligne et invitation à installer l'application (components/offline.js) */
.off-bar { position: fixed; left: 50%; bottom: 16px; transform: translate(-50%, 140%); z-index: 900; max-width: min(640px, calc(100vw - 24px)); padding: 10px 16px; border-radius: 12px; background: #0f1b2f; color: #e8edf5; font-size: 13px; line-height: 1.4; box-shadow: 0 10px 30px rgba(0,0,0,.35); border-left: 4px solid #f5b22e; transition: transform .35s ease; }
.off-bar.on { transform: translate(-50%, 0); }
.off-bar b { color: #ffd27a; }
.off-install { position: fixed; right: 16px; bottom: 16px; z-index: 899; display: flex; align-items: center; gap: 10px; max-width: min(520px, calc(100vw - 24px)); padding: 10px 12px 10px 16px; border-radius: 12px; background: #fff; color: #14223b; font-size: 13px; box-shadow: 0 10px 30px rgba(16,27,45,.22); border: 1px solid #e4e8ef; }
.off-install button { border: 0; cursor: pointer; border-radius: 8px; font: 600 13px var(--font, 'Barlow', sans-serif); }
.off-install [data-yes] { background: #e11d24; color: #fff; padding: 7px 12px; } .off-install [data-no] { background: transparent; color: #6b7688; padding: 6px; }
html[data-theme="dark"] .off-install { background: #111a2b; color: #eef2f8; border-color: #26324a; }
@media (max-width: 820px) { .off-bar, .off-install { bottom: 76px; } }

/* v1.98.8 : fiche OR — vue par étape (sections repliables avec résumé) */
.fold-list { display: grid; gap: 10px; min-width: 0; }
.fold-bar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; font-size: 12.5px; color: var(--muted); }
.fold-bar .r { margin-left: auto; display: flex; gap: 6px; align-items: center; } .fold-bar button { border: 0; background: none; color: var(--blue-2); font-weight: 700; font-size: 12.5px; cursor: pointer; padding: 2px; }
.fold-card { min-width: 0; border: 1.5px solid transparent; transition: border-color .3s; }
.fold-card.fold-focus { border-color: #f3c7c9; }
.fold-head { display: flex !important; align-items: center; gap: 10px; cursor: pointer; flex-wrap: nowrap; min-width: 0; }
.fold-head h2 { white-space: nowrap; margin: 0; }
.fold-sum { flex: 1 1 auto; min-width: 0; display: flex; gap: 6px; align-items: center; overflow: hidden; flex-wrap: nowrap; }
.fold-card.fold-open .fold-sum { visibility: hidden; height: 0; }
.fold-chip { flex: none; display: inline-flex; align-items: center; font-size: 12px; font-weight: 600; padding: 2px 9px; border-radius: 20px; background: var(--line-2); color: var(--text-2); white-space: nowrap; max-width: 340px; overflow: hidden; text-overflow: ellipsis; }
.fold-chip.ok { background: #e7f6ec; color: #1f9a3e; } .fold-chip.warn { background: #fff3e4; color: #c56a00; } .fold-chip.red { background: #fdeaea; color: #c62828; }
.fold-now { flex: none; font-size: 10.5px; font-weight: 800; letter-spacing: .05em; color: #fff; background: var(--red); border-radius: 5px; padding: 2px 7px; }
.fold-chev { flex: none; width: 30px; height: 30px; border-radius: 8px; border: 0; background: none; display: grid; place-items: center; color: var(--muted); cursor: pointer; transition: transform .35s cubic-bezier(.2, .8, .2, 1), background .2s; margin-left: auto; }
.fold-head:hover .fold-chev { background: var(--line-2); } .fold-card.fold-open .fold-chev { transform: rotate(180deg); }
.fold-body { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .4s cubic-bezier(.2, .8, .2, 1); } .fold-card.fold-open .fold-body { grid-template-rows: 1fr; }
.fold-inner { overflow: hidden; min-height: 0; display: flex; flex-direction: column; gap: 12px; }
.fold-card.fold-open .fold-inner { padding-top: 10px; } .fold-card.list-pad .fold-inner { padding-top: 0; }
.fold-card:not(.fold-open).card-pad { padding-top: 12px; padding-bottom: 12px; }
.fold-card:not(.fold-open) .list-head { border-bottom: 0; }
.fold-list .photo-grid { grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)) !important; }
.fold-wrap .grid-3 { margin: 0; }
@media (max-width: 760px) { .fold-sum { display: none; } .fold-head h2 { white-space: normal; } }
@media (prefers-reduced-motion: reduce) { .fold-body, .fold-chev { transition: none; } }
@media print { .fold-body { grid-template-rows: 1fr !important; } .fold-sum, .fold-chev, .fold-bar { display: none !important; } }
.fold-wrap .grid-3 > .card { box-shadow: none; border: 1px solid var(--line); }
.fold-card.stack { gap: 0; } .fold-card:not(.fold-open) .fold-inner { padding: 0; }
/* v1.98.9 : blocs du bas de la fiche OR, repliables (leur titre est repris dans l'en-tête de la section) */
.fold-ext .fold-inner > .card { box-shadow: none; border: 0; padding: 0; background: none; }
.fold-ext .fold-inner > .card > .row-between:first-child > h2, .fold-ext .fold-inner > .card > h2:first-child { display: none; }
.fold-ext .fold-inner > [data-panels] { margin: 0; }
/* v1.98.10 : bandeau « hors ligne » / installation — invisible ET non cliquable tant qu'il n'est pas affiché (il débordait sur la barre du bas du téléphone et captait le toucher de l'onglet OR) */
.off-bar:not(.on) { visibility: hidden; opacity: 0; pointer-events: none; transition: transform .35s ease, opacity .25s ease, visibility 0s linear .35s; }
.off-bar.on { visibility: visible; opacity: 1; transition: transform .35s ease, opacity .25s ease; }
/* v1.98.10 : alertes de rendez-vous — une carte + un résumé ; compactes sur téléphone */
#rdv-alerts .rdv-alert[hidden] { display: none; }
.rdv-more { pointer-events: auto; display: flex; align-items: center; gap: 10px; padding: 9px 14px; border-radius: 12px; background: #0f1b2f; color: #e8edf5; font-size: 13px; box-shadow: 0 8px 22px rgba(0,0,0,.28); }
/* v1.98.72 : rappel réduit d'une demande de rendez-vous non ouverte */
.rdv-pill { pointer-events: auto; align-self: flex-end; display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 10px 16px; border: 0; border-radius: 22px; background: #d7141b; color: #fff; font: 700 13.5px var(--font, 'Barlow', sans-serif); cursor: pointer; box-shadow: 0 8px 22px rgba(215, 20, 27, .35); animation: rdvPulse 1.6s ease-in-out infinite; }
.rdv-pill::before { content: ''; width: 9px; height: 9px; border-radius: 50%; background: #fff; }
@keyframes rdvPulse { 50% { box-shadow: 0 0 0 7px rgba(215, 20, 27, .18), 0 8px 22px rgba(215, 20, 27, .35); } }
@media (prefers-reduced-motion: reduce) { .rdv-pill { animation: none; } }
.rdv-more span { flex: 1; } .rdv-more b { color: #ffd27a; }
.rdv-more a { color: #fff; font-weight: 700; text-decoration: underline; } .rdv-more button { border: 0; background: transparent; color: #9fb0c8; font: 600 12.5px var(--font, 'Barlow', sans-serif); cursor: pointer; }
@media (max-width: 760px) {
  #rdv-alerts { gap: 6px; }
  .rdv-alert { padding: 10px 12px; gap: 10px; border-radius: 12px; }
  .rdv-alert-ic { width: 34px; height: 34px; flex-basis: 34px; border-radius: 10px; }
  .rdv-alert-ic svg { width: 18px; height: 18px; }
  .rdv-alert-k { font-size: 9.5px; }
  .rdv-alert-body > b { font-size: 17px; margin: 1px 0; }
  .rdv-alert-when { font-size: 12.5px; } .rdv-alert-sub { display: none; }
  .rdv-alert-actions { margin-top: 8px; }
}
/* v1.98.10 : sur téléphone, un tableau plus large que sa carte défile horizontalement au lieu d'être coupé (fiche OR : interventions, bons de livraison…) */
@media (max-width: 760px) {
  .card > table.table, .card > div > table.table:only-child { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; max-width: 100%; }
  .card > table.table th, .card > table.table td { white-space: nowrap; }
}
.pf-branch.ok { border: 1px solid #9fd8b4; background: #e8f7ee; color: #146c3a; font-weight: 700; } .pf-branch.ok em { color: #146c3a; }
html[data-theme="dark"] .pf-branch.ok { background: #12301f !important; color: #7fd8a2 !important; border-color: #1f5a36 !important }
/* v1.98.11 : recherche automatique dans les listes */
.tsearch { display: flex; align-items: center; gap: 10px; padding: 8px 12px; border-bottom: 1px solid var(--line, #e5e9f0); }
.tsearch .input { flex: 1; max-width: 360px; height: 32px; }
.tsearch-n { font-size: 12px; color: #8a94a6; white-space: nowrap; }
.card > .tsearch:first-child { border-top: 0; }
html[data-theme="dark"] .tsearch { border-color: #2d3b54; }
/* v1.98.13 : base technique collectée */
.kb-dl { display: grid; grid-template-columns: 120px 1fr; gap: 4px 10px; font-size: 13px; margin: 6px 0 0; } .kb-dl dt { color: #8a94a6; } .kb-dl dd { margin: 0; }
.grid-4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.kb-or { border-left: 3px solid #f0a63a; } .kb-or li { margin: 0 0 6px; } .kb-or li b { display: block; font-size: 13px; }
@media (max-width: 760px) { .kb-dl { grid-template-columns: minmax(0, 1fr); } }

/* v1.98.19 : bandeau vert « le client a accepté » (tous les écrans du centre) */
.acc-stack { position: fixed; top: 76px; left: 50%; transform: translateX(-50%); z-index: 3000; display: flex; flex-direction: column; gap: 10px; width: min(640px, calc(100vw - 32px)); pointer-events: none; }
.acc-alert { pointer-events: auto; display: flex; align-items: center; gap: 14px; padding: 14px 16px; border-radius: 12px; background: linear-gradient(180deg, #1fa851, #148a3f); color: #fff;
  box-shadow: 0 14px 38px rgba(20, 138, 63, .45), 0 0 0 3px rgba(255, 255, 255, .25) inset; animation: acc-in .35s cubic-bezier(.2, .9, .3, 1.2); }
.acc-alert.out { opacity: 0; transform: translateY(-10px); transition: opacity .3s, transform .3s; }
.acc-ic { flex: 0 0 auto; width: 46px; height: 46px; border-radius: 50%; background: rgba(255, 255, 255, .2); display: flex; align-items: center; justify-content: center; animation: acc-pulse 1.4s ease-out 2; }
.acc-body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.acc-body b { font-family: var(--cond, 'Barlow Semi Condensed'), sans-serif; font-size: 19px; letter-spacing: .2px; }
.acc-body span { font-size: 14px; opacity: .95; }
.acc-go { flex: 0 0 auto; color: #148a3f; background: #fff; font-weight: 700; border-radius: 8px; padding: 8px 14px; text-decoration: none; }
.acc-x { flex: 0 0 auto; background: none; border: 0; cursor: pointer; padding: 6px; opacity: .85; }
@keyframes acc-in { from { opacity: 0; transform: translateY(-16px) scale(.96); } to { opacity: 1; transform: none; } }
@keyframes acc-pulse { 0% { box-shadow: 0 0 0 0 rgba(255, 255, 255, .55); } 100% { box-shadow: 0 0 0 16px rgba(255, 255, 255, 0); } }
@media print { .acc-stack { display: none !important; } }

/* v1.98.x — lignes et cases cliquables atteintes au clavier (Tab) : contour visible */
[data-href][tabindex]:focus-visible { outline: 2px solid #1f63c9; outline-offset: -2px; }
tr[data-href][tabindex]:focus-visible > td { background: rgba(31, 99, 201, .07); }

/* v1.98.75 : facture fournisseur — ajout de plusieurs articles */
.bm-tabs { display: flex; gap: 4px; border-bottom: 1px solid var(--line, #dce2ec); margin-bottom: 12px; flex-wrap: wrap; }
.bm-tab { border: 0; background: none; color: var(--muted, #5d6880); font: 700 13.5px var(--font, 'Barlow', sans-serif); padding: 10px 12px; min-height: 44px; border-bottom: 3px solid transparent; cursor: pointer; }
.bm-tab[aria-selected="true"] { color: var(--ink, #14223b); border-bottom-color: var(--red, #d7141b); }
.bm-n { display: inline-block; min-width: 20px; padding: 0 6px; margin-left: 4px; border-radius: 10px; background: var(--bg-soft, #f1f4f9); font-size: 12px; text-align: center; }
.bm-tools { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin-bottom: 10px; }
.bm-search { flex: 1 1 260px; min-width: 0; display: flex; }
.bm-search input { width: 100%; min-height: 42px; border: 1px solid var(--line, #dce2ec); border-radius: 9px; padding: 0 12px; font: 500 14px var(--font, 'Barlow', sans-serif); background: var(--bg-soft, #f5f7fb); color: inherit; }
.bm .chip { border: 1px solid var(--line, #dce2ec); border-radius: 20px; padding: 6px 12px; min-height: 36px; font: 600 12.5px var(--font, 'Barlow', sans-serif); background: transparent; color: inherit; cursor: pointer; }
.bm .chip.on { background: #14223b; border-color: #14223b; color: #fff; }
.bm-wrap { overflow-x: auto; max-height: 52vh; overflow-y: auto; border: 1px solid var(--line, #dce2ec); border-radius: 10px; }
.bm-table { min-width: 680px; margin: 0; }
.bm-table td { vertical-align: middle; }
.bm-table tr.bm-sel td { background: rgba(31, 138, 67, .08); }
.bm-ck { width: 20px; height: 20px; accent-color: #d7141b; }
.bm-num { width: 80px; text-align: right; border: 1px solid var(--line, #dce2ec); border-radius: 7px; padding: 6px 8px; font: 600 13px var(--mono, monospace); background: transparent; color: inherit; }
.bm-low { color: #c62828; font-weight: 700; }
.bm-paste { width: 100%; font-family: var(--mono, monospace); }
.bm-foot { display: flex; justify-content: space-between; align-items: center; gap: 12px; width: 100%; flex-wrap: wrap; }
.bm-foot b { display: block; font-size: 16px; }

/* v1.98.76 : magasin — ranger un article par recherche */
.pl-search { display: flex; align-items: center; gap: 8px; border: 2px solid #14223b; border-radius: 10px; padding: 0 12px; min-height: 46px; }
.pl-search input { border: 0; outline: none; width: 100%; font: 600 15px var(--font, 'Barlow', sans-serif); background: transparent; color: inherit; }
.pl-list { display: flex; flex-direction: column; border: 1px solid var(--line, #dce2ec); border-radius: 10px; max-height: 46vh; overflow-y: auto; }
.pl-res { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 12px; min-height: 52px; border: 0; border-top: 1px solid var(--line, #dce2ec); background: transparent; color: inherit; text-align: left; cursor: pointer; font: inherit; }
.pl-res:first-child { border-top: 0; }
.pl-res:hover, .pl-res:focus-visible { background: rgba(20, 34, 59, .05); }
.pl-res.on { background: rgba(215, 20, 27, .07); box-shadow: inset 3px 0 0 #d7141b; }
.pl-t { min-width: 0; } .pl-t b { display: block; } .pl-t small { display: block; color: var(--muted, #5d6880); font-family: var(--mono, monospace); font-size: 12px; }
.pl-where { flex: none; font-size: 11.5px; font-weight: 700; padding: 3px 9px; border-radius: 10px; background: rgba(20, 34, 59, .07); text-align: right; }
.pl-where.free { background: #e8f6ee; color: #1f8a43; } .pl-where.moved { background: #fff4e2; color: #a35f00; } .pl-where small { display: block; font-weight: 500; }

/* v1.98.93 — fiche OR : une étape à la fois (logigramme cliquable) + tiroir Historique */
[data-pf] .pf-node:not(.dec) { cursor: pointer; transition: box-shadow .15s, transform .15s; }
[data-pf] .pf-node.dec { cursor: pointer; }
[data-pf] .pf-node:hover { transform: translateY(-1px); }
[data-pf] .pf-node:focus-visible { outline: 2px solid #2f7bff; outline-offset: 2px; }
[data-pf] .pf-node.pf-view { box-shadow: 0 0 0 3px rgba(15, 26, 46, .22); border-color: #0f1a2e; }
.steps-mode .step-hide, .step-hide { display: none !important; }
.step-bar { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; padding: 8px 12px; border-radius: 10px; background: #f6f8fb; border: 1px solid var(--line, #e3e7ee); font-size: 13px; }
.step-bar em { font-style: normal; font-size: 11.5px; font-weight: 700; border-radius: 999px; padding: 1px 8px; background: #fff7e6; color: #b45309; }
.step-bar em.now { background: #fff1f1; color: #c9141b; }
.step-bar .r { display: flex; gap: 8px; flex-wrap: wrap; }
.step-bar button { font: 600 12.5px inherit; border: 1px solid var(--line, #e3e7ee); background: #fff; color: #14223b; border-radius: 8px; padding: 6px 10px; cursor: pointer; }
.step-bar span > button { border: 0; background: none; padding: 0; text-decoration: underline; color: #1f4f9a; }
.or-drawer { position: fixed; top: 0; right: 0; bottom: 0; width: min(440px, 100%); background: #fff; z-index: 60; box-shadow: -18px 0 50px rgba(15, 26, 46, .22); display: flex; flex-direction: column; padding-top: env(safe-area-inset-top, 0px); }
.or-drawer-h { display: flex; justify-content: space-between; align-items: center; padding: 14px 16px; border-bottom: 1px solid var(--line, #e3e7ee); }
.or-drawer-b { overflow-y: auto; padding: 12px; display: flex; flex-direction: column; gap: 12px; }
.or-drawer-b .fold-body { grid-template-rows: 1fr !important; }
.or-drawer-b .fold-chev { display: none; }
html[data-theme="dark"] .step-bar { background: #121a2b; border-color: #26324a; }
html[data-theme="dark"] .step-bar button { background: #0f1626; color: #e6ebf3; border-color: #26324a; }
html[data-theme="dark"] .or-drawer { background: #0f1626; }
@media print { .step-hide { display: block !important; } }

/* v1.98.93 — voie express (forfait) */
.xp-list { display: flex; flex-direction: column; border: 1px solid var(--line, #e3e7ee); border-radius: 12px; overflow: hidden; max-height: 50vh; overflow-y: auto; }
.xp-opt { display: grid; grid-template-columns: auto 1fr auto; gap: 12px; align-items: center; padding: 10px 12px; border-top: 1px solid var(--line, #e3e7ee); cursor: pointer; }
.xp-opt:first-child { border-top: 0; }
.xp-opt input { width: 18px; height: 18px; accent-color: #e11d24; }
.xp-opt small { display: block; color: #6b7689; font-size: 12px; }
.xp-price { font-variant-numeric: tabular-nums; }
.xp-total { text-align: right; font-weight: 800; font-size: 15px; }
/* v1.98.95 : pièces incluses dans une prestation (masquées au client) */
.qb-host{font-size:11.5px;color:#9a6200;background:#fff6e0;border-radius:4px;padding:2px 6px;margin-top:4px;display:inline-block}
.qb-kid{font-size:11.5px;color:#9a6200;font-weight:600;margin-top:2px}
.qb-sel{display:flex;align-items:center;gap:6px;font-size:11.5px;color:#5b6576;margin-top:4px}
.qb-sel select{height:26px;padding:0 6px;font-size:12px;max-width:100%}
/* v1.98.97 : Suivi clients (centre d'appels) — même modèle que le Google Sheet */
.cl-page{padding:0 24px 24px}
.cl-layout{display:grid;grid-template-columns:minmax(0,1fr) 200px;gap:12px;align-items:start}
@media(max-width:1000px){.cl-layout{grid-template-columns:1fr}.cl-page{padding:0 12px 16px}}
.cl-sheet{background:#fff;border:1px solid var(--line,#dde2ea);border-radius:8px;overflow:hidden;min-width:0}
.cl-scroll{overflow:auto;max-height:calc(100vh - 250px)}
.cl-grid{border-collapse:separate;border-spacing:0;width:100%;min-width:1000px;font-size:13.5px;table-layout:fixed}
.cl-grid thead th{position:sticky;top:0;z-index:2;background:#14213d;color:#fff;font-size:12px;font-weight:600;text-align:left;padding:9px 8px;white-space:nowrap;border-right:1px solid #2a3a5c}
.cl-grid td{border-bottom:1px solid #e6e9ef;border-right:1px solid #e6e9ef;padding:0;height:34px;white-space:nowrap;vertical-align:middle;overflow:hidden}
.cl-grid thead th{overflow:hidden;text-overflow:ellipsis}
.cl-grid td input,.cl-grid td select{font:inherit;font-size:13.5px;border:0;background:transparent;width:100%;height:33px;padding:0 8px;color:#111827;min-width:0}
.cl-grid td select{appearance:none;cursor:pointer}
.cl-grid td input:focus,.cl-grid td select:focus{outline:2px solid #1f4f9a;outline-offset:-2px;background:#fff}
.cl-grid tr:hover td:not(.cl-n){background:#fafbfd}
.cl-grid .cl-n{width:34px;text-align:center;color:#5b6576;background:#f7f8fa;font-size:11.5px}
.cl-grid thead .cl-n{background:#0e1830;color:#9fb0cc}
.cl-grid .cl-d{padding:0 6px;color:#5b6576;font-size:12.5px}
.cl-grid .cl-mono input{font-family:ui-monospace,Menlo,monospace;font-size:12.5px}
.cl-grid tr.cl-new td{background:#fff9e6}
.cl-grid tr.cl-new .cl-n{color:#9a6200;font-weight:700}
.cl-grid .cl-off input{color:#b45309;text-decoration:underline dotted #d97706}
.cl-known{display:block;font-size:11px;color:#16794a;font-weight:600;padding:0 8px;margin-top:-7px;line-height:12px;max-width:180px;overflow:hidden;text-overflow:ellipsis}
.cl-or{display:block;font-size:11.5px;color:#16794a;font-weight:600;padding:0 8px;margin-top:-7px;line-height:13px;text-decoration:none}
.cl-st{position:relative}
.cl-st::before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:3px;border-radius:2px}
.cl-st[data-s="Confirmée"]::before{background:#16794a}.cl-st[data-s="Confirmée"] select{color:#16794a;font-weight:600}
.cl-st[data-s="EN ATTENTE"]::before{background:#d08a0a}.cl-st[data-s="EN ATTENTE"] select{color:#9a6200;font-weight:600}
.cl-st[data-s="Rejeté"]::before{background:#c8102e}.cl-st[data-s="Rejeté"] select{color:#c8102e;font-weight:600}
.cl-acc select{font-weight:600}
.cl-x{width:34px;text-align:center}
.cl-hint{font-size:12px;color:#5b6576;padding:8px 12px;border-top:1px solid #dde2ea;background:#fafbfd}
.cl-found{padding:10px 12px;font-size:13px;display:flex;gap:10px;align-items:center;border-bottom:1px solid #dde2ea}
.cl-tabs{display:flex;gap:2px;overflow-x:auto;background:#e9ecf1;border-top:1px solid #dde2ea;padding:4px 6px 0;align-items:flex-end}
.cl-tabs button{font:inherit;font-size:12.5px;border:0;background:transparent;padding:7px 12px;border-radius:6px 6px 0 0;cursor:pointer;color:#5b6576;white-space:nowrap}
.cl-tabs button[aria-selected=true]{background:#fff;color:#111827;font-weight:600;box-shadow:inset 0 -2px 0 #c8102e}
.cl-tabs .cl-stat{color:#1f4f9a;font-weight:600;margin-left:auto}
.cl-other{font-size:12px;color:#5b6576;display:flex;gap:4px;align-items:center;padding:0 8px 4px;white-space:nowrap}
.cl-other input{font:inherit;font-size:12px;border:1px solid #dde2ea;border-radius:4px;height:26px;padding:0 4px}
.cl-side{display:grid;gap:12px}
.cl-box{background:#fff;border:1px solid #dde2ea;border-radius:8px;overflow:hidden;min-width:0}
.cl-box h2{margin:0;font-size:12px;text-transform:uppercase;letter-spacing:.06em;padding:10px 12px;border-bottom:1px solid #dde2ea;display:flex;justify-content:space-between;gap:8px}
.cl-cnt{width:100%;border-collapse:collapse}
.cl-cnt td{border-bottom:1px solid #e6e9ef;padding:6px 12px;font-size:13px}
.cl-cnt td:last-child{text-align:right;font-family:ui-monospace,Menlo,monospace;font-weight:600}
.cl-cnt tr.tot td{background:#14213d;color:#fff;font-weight:700}
.cl-mini{display:grid;grid-template-columns:1fr 1fr 1fr;text-align:center}
.cl-mini div{padding:10px 4px;border-right:1px solid #e6e9ef}.cl-mini div:last-child{border:0}
.cl-mini b{display:block;font-size:18px;font-family:ui-monospace,Menlo,monospace}.cl-mini small{font-size:11px;color:#5b6576}
.cl-venus{font-size:12px;color:#16794a;font-weight:600;padding:8px 12px;border-top:1px solid #e6e9ef}
.cl-stats{padding:14px;display:grid;gap:14px}
.cl-per{display:flex;gap:8px;flex-wrap:wrap;align-items:center;font-size:13px}
.cl-per label{display:flex;gap:6px;align-items:center}.cl-per .input{height:32px;width:150px}
.cl-kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
@media(max-width:900px){.cl-kpis{grid-template-columns:repeat(2,1fr)}}
.cl-kpis div{border:1px solid #dde2ea;border-radius:8px;padding:10px 12px}
.cl-kpis small{display:block;color:#5b6576;font-size:12px}.cl-kpis b{font-size:22px;font-variant-numeric:tabular-nums}.cl-kpis em{display:block;font-style:normal;font-size:12px;color:#16794a;font-weight:600}
.cl-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
@media(max-width:1100px){.cl-4{grid-template-columns:repeat(2,minmax(0,1fr))}}
.cl-st-t{width:100%;border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums}
.cl-st-t td,.cl-st-t th{padding:6px 12px;border-bottom:1px solid #e6e9ef;text-align:left}
.cl-st-t td:last-child{text-align:right;font-weight:600}
.cl-st-t.wide td:last-child{text-align:left}
.cl-st-t th{font-size:11px;color:#5b6576;text-transform:uppercase;letter-spacing:.04em}
.cl-st-t .g{color:#16794a}.cl-st-t .a{color:#9a6200}.cl-st-t .r{color:#c8102e}
.cl-imp{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.cl-imp div{border:1px solid #dde2ea;border-radius:6px;padding:8px 10px}.cl-imp small{display:block;color:#5b6576;font-size:12px}.cl-imp b{font-size:20px}
/* v1.98.101 : notification jaune orangé — client envoyé par le centre d'appels (maquette validée) */
.cn-host{position:fixed;top:84px;right:max(16px,env(safe-area-inset-right,0px));z-index:1200;width:min(460px,calc(100vw - 32px))}
.cn-toast{position:relative;overflow:hidden;border-radius:16px;color:#3b1d00;background:linear-gradient(120deg,#ffd166 0%,#ffb020 45%,#ff8a3d 100%);
  box-shadow:0 18px 40px rgba(234,120,20,.35),0 0 0 1px rgba(255,255,255,.4) inset;animation:cnIn .7s cubic-bezier(.2,1.2,.3,1) both,cnGlow 2.4s ease-in-out .8s infinite}
.cn-toast.jour{background:linear-gradient(120deg,#ffb020 0%,#ff7a2f 55%,#f0532b 100%)}
.cn-toast::before{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.55) 45%,transparent 60%);transform:translateX(-120%);animation:cnShine 3.2s ease-in-out 1s infinite;pointer-events:none}
@keyframes cnIn{from{opacity:0;transform:translateX(60px) scale(.96)}to{opacity:1;transform:none}}
@keyframes cnGlow{0%,100%{box-shadow:0 18px 40px rgba(234,120,20,.35),0 0 0 0 rgba(255,166,0,.55)}50%{box-shadow:0 18px 40px rgba(234,120,20,.35),0 0 0 10px rgba(255,166,0,0)}}
@keyframes cnShine{0%,70%{transform:translateX(-120%)}100%{transform:translateX(120%)}}
.cn-in{position:relative;padding:16px 18px 14px;display:grid;gap:10px}
.cn-x{position:absolute;top:6px;right:10px;border:0;background:transparent;color:#7a3a05;font-size:20px;cursor:pointer;z-index:2;line-height:1}
.cn-h{display:flex;align-items:center;gap:12px;padding-right:18px}
.cn-ico{position:relative;width:46px;height:46px;border-radius:50%;background:#fff;display:grid;place-items:center;flex:none;box-shadow:0 4px 12px rgba(154,74,7,.25)}
.cn-ico svg{width:23px;height:23px;color:#e2660d;animation:cnBuzz 1.2s ease-in-out infinite}
.cn-ico::after,.cn-ico::before{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid #fff;animation:cnWave 1.8s ease-out infinite}
.cn-ico::before{animation-delay:.9s}
@keyframes cnBuzz{0%,50%,100%{transform:rotate(0)}10%{transform:rotate(-14deg)}20%{transform:rotate(12deg)}30%{transform:rotate(-10deg)}40%{transform:rotate(8deg)}}
@keyframes cnWave{from{transform:scale(1);opacity:.9}to{transform:scale(1.7);opacity:0}}
.cn-tt{display:grid;gap:1px;min-width:0}
.cn-tt small{font-size:11.5px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:#7a3a05}
.cn-tt b{font-size:19px;line-height:1.15;color:#2b1500}
.cn-new{margin-left:auto;align-self:flex-start;background:#fff;color:#c2410c;font-weight:800;font-size:11px;letter-spacing:.06em;border-radius:99px;padding:3px 9px;animation:cnBlink 1.2s steps(2,start) infinite}
@keyframes cnBlink{50%{opacity:.35}}
.cn-card{background:rgba(255,255,255,.92);border-radius:12px;padding:10px 12px;display:grid;gap:4px}
.cn-ph{font-family:ui-monospace,Menlo,monospace;font-size:22px;font-weight:800;color:#14213d}
.cn-v{font-size:14.5px;color:#14213d}
.cn-chips{display:flex;gap:6px;flex-wrap:wrap}
.cn-chips span{font-size:12px;font-weight:700;border-radius:99px;padding:2px 9px;background:#fff4dc;color:#9a4a07;border:1px solid #f7c46a}
.cn-cd{display:grid;gap:5px}
.cn-cd .row{display:flex;justify-content:space-between;font-size:13px;font-weight:700;color:#5c2c04}
.cn-cd .bar{height:7px;background:rgba(255,255,255,.55);border-radius:99px;overflow:hidden}
.cn-cd .bar i{display:block;height:100%;background:#fff;border-radius:99px;animation:cnFill 1.6s ease-out both}
@keyframes cnFill{from{width:0}}
.cn-acts{display:grid;grid-template-columns:1fr 1.3fr 1fr;gap:8px}
.cn-b{font:inherit;font-size:14px;font-weight:800;border:0;border-radius:10px;padding:10px 8px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:4px;text-decoration:none;transition:transform .12s}
.cn-b:hover{transform:translateY(-2px)}
.cn-b.call{background:#14213d;color:#fff}.cn-b.ok{background:#16794a;color:#fff}.cn-b.later{background:rgba(255,255,255,.85);color:#7a3a05}
.cn-stack div{height:11px;margin:0 14px;border-radius:0 0 14px 14px;background:linear-gradient(120deg,#ffe0a3,#ffc58f);opacity:.9}
.cn-stack div+div{margin:0 28px;opacity:.6}
.cn-bell{position:relative;color:#ffb020 !important}
.cn-bell svg{width:19px;height:19px;transform-origin:50% 10%}
.cn-bell.ring svg{animation:cnRing 2.4s ease-in-out infinite}
.cn-bell .cn-n{position:absolute;top:-3px;right:-4px;background:linear-gradient(135deg,#f59e0b,#fb923c);color:#3b1d00;font-weight:800;font-size:11px;border-radius:99px;min-width:19px;height:19px;display:grid;place-items:center;padding:0 4px;box-shadow:0 0 0 2px #0f1a30}
.cn-bell.ring .cn-n{animation:cnPop 2.4s ease-in-out infinite}
@keyframes cnRing{0%,60%,100%{transform:rotate(0)}64%{transform:rotate(16deg)}68%{transform:rotate(-14deg)}72%{transform:rotate(10deg)}76%{transform:rotate(-8deg)}80%{transform:rotate(4deg)}}
@keyframes cnPop{0%,60%,100%{transform:scale(1)}66%{transform:scale(1.25)}}
.cn-opt{display:flex;gap:10px;align-items:flex-start;border:1px solid #e3e7ee;border-radius:10px;padding:9px 12px;cursor:pointer}
.cn-opt input{margin-top:4px;accent-color:#f59e0b}
.cn-opt small{display:block;color:#6b7280;font-size:12.5px}
.cn-opt:has(input:checked){border-color:#f59e0b;background:#fff4dc}
.cn-kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
@media(max-width:900px){.cn-kpis{grid-template-columns:repeat(2,1fr)}}
.cn-kpis div{background:#fff;border:1px solid #e3e7ee;border-radius:10px;padding:10px 12px}
.cn-kpis small{display:block;color:#6b7280;font-size:12.5px}.cn-kpis b{font-size:24px;color:#14213d}
.cn-kpis .hot{background:linear-gradient(120deg,#fff4dc,#ffe7cc);border-color:#f7c46a}.cn-kpis .hot b{color:#b45309}
.cn-kpis .g b{color:#16794a}.cn-kpis .r b{color:#d7141b}
.cn-tag{font-size:12px;font-weight:800;border-radius:99px;padding:2px 9px;white-space:nowrap;display:inline-block}
.cn-t-a{background:linear-gradient(135deg,#ffd166,#ff9a3d);color:#3b1d00}.cn-t-g{background:#e8f5ee;color:#16794a}.cn-t-r{background:#fde8ec;color:#d7141b}.cn-t-w{background:#fff4dc;color:#9a4a07}.cn-t-x{background:#eef0f4;color:#4b5563}
.cn-row-hot td{background:#fffaf0}
.cl-suite{display:block;font-size:11.5px;font-weight:600;padding:0 8px;margin-top:-7px;line-height:13px;color:#9a4a07;overflow:hidden;text-overflow:ellipsis}
.cl-s-confirme,.cl-s-deplace{color:#16794a}.cl-s-annule{color:#d7141b}
.cl-map{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px}
@media(max-width:700px){.cl-map{grid-template-columns:1fr}}
.cl-map label{display:flex;justify-content:space-between;align-items:center;gap:8px;border:1px solid #e3e7ee;border-radius:8px;padding:7px 10px;font-size:14px}
.cl-map select{font:inherit;font-size:14px;border:1px solid #e3e7ee;border-radius:6px;padding:4px 6px;background:#fff;color:#14213d;max-width:60%}
@media (prefers-reduced-motion:reduce){.cn-toast,.cn-toast::before,.cn-ico svg,.cn-ico::before,.cn-ico::after,.cn-new,.cn-bell svg,.cn-bell .cn-n,.cn-cd .bar i{animation:none !important}}

/* v1.98.115 : téléphone — notification d'appel compacte (barre de 46 px), détail ouvert par le bas */
.cn-pill,.cn-dim,.cn-grab{display:none}
@media (max-width:700px){
  .cn-host{top:calc(62px + env(safe-area-inset-top,0px));left:max(8px,env(safe-area-inset-left,0px));right:max(8px,env(safe-area-inset-right,0px));width:auto}
  .cn-host .cn-toast,.cn-host .cn-stack{display:none}
  .cn-pill{display:flex;align-items:center;gap:6px;height:46px;border-radius:99px;padding:0 6px;background:linear-gradient(120deg,#ffd166,#ffb020 55%,#ff8a3d);box-shadow:0 6px 16px rgba(154,74,7,.3);color:#3b1d00;animation:cnIn .35s ease-out both}
  .cn-pill.jour{background:linear-gradient(120deg,#ffb020,#ff7a2f 55%,#f0532b)}
  .cn-pill-main{flex:1;min-width:0;display:flex;align-items:center;gap:8px;border:0;background:none;font:inherit;color:inherit;text-align:left;padding:0;cursor:pointer;height:100%}
  .cn-pill-ic{width:34px;height:34px;border-radius:50%;background:#fff;display:grid;place-items:center;flex:none}
  .cn-pill-ic svg{width:17px;height:17px;color:#e2660d}
  .cn-pill-tx{display:grid;line-height:1.15;min-width:0;flex:1}
  .cn-pill-tx b{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cn-pill-tx span{font-size:11px;color:#7a3a05;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cn-pill-more{font-size:17px;font-weight:800;color:#7a3a05;padding:0 2px}
  .cn-pill-call{width:34px;height:34px;border-radius:50%;background:#16794a;display:grid;place-items:center;flex:none;color:#fff}
  .cn-pill-call svg{width:16px;height:16px}
  .cn-host.open .cn-pill{display:none}
  .cn-host.open .cn-dim{display:block;position:fixed;inset:0;background:rgba(15,26,48,.3);z-index:-1}
  .cn-host.open .cn-toast{display:block;position:fixed;left:0;right:0;bottom:0;border-radius:18px 18px 0 0;padding-bottom:env(safe-area-inset-bottom,0px);max-height:80vh;overflow:auto;animation:cnUp .25s ease-out both}
  .cn-host.open .cn-grab{display:block;width:44px;height:5px;border:0;border-radius:4px;background:rgba(122,58,5,.45);margin:8px auto 0;padding:0;cursor:pointer;position:relative;z-index:2}
}
@keyframes cnUp{from{transform:translateY(100%)}}
/* v1.98.116 : document (facture, devis…) ouvert dans l'ERP sur téléphone, avec retour et impression */
.pdv{position:fixed;inset:0;z-index:3000;background:#e9edf3;display:flex;flex-direction:column}
.pdv-bar{display:flex;align-items:center;gap:8px;background:#0f1a30;color:#fff;border-bottom:3px solid #d7141b;padding:calc(8px + env(safe-area-inset-top,0px)) max(10px,env(safe-area-inset-right,0px)) 8px max(10px,env(safe-area-inset-left,0px))}
.pdv-bar button{font:inherit;font-weight:700;font-size:14px;border:0;border-radius:8px;padding:9px 12px;cursor:pointer;white-space:nowrap}
.pdv-back{background:#fff;color:#0f1a30}
.pdv-print{background:#d7141b;color:#fff}
.pdv-t{flex:1;min-width:0;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center}
.pdv-wrap{flex:1;min-height:0;padding:8px max(8px,env(safe-area-inset-right,0px)) calc(8px + env(safe-area-inset-bottom,0px)) max(8px,env(safe-area-inset-left,0px))}
.pdv-frame{width:100%;height:100%;border:0;background:#fff;border-radius:6px;box-shadow:0 4px 14px rgba(15,26,48,.15)}
html.pdv-open,html.pdv-open body{overflow:hidden}
/* v1.98.120 : filtres communs des listes (maquette validée) */
.lf { border-bottom: 1px solid var(--line-2, #e4e8ef) }
.lf-top { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; padding: 12px 18px }
.lf-search { flex: 1; min-width: 220px; display: flex; align-items: center; gap: 8px; border: 1px solid #d9dfe8; border-radius: 9px; padding: 0 12px; background: #fff; height: 40px }
.lf-search span { color: #6b7688; font-size: 18px; line-height: 1 }
.lf-search input { border: 0; outline: 0; flex: 1; min-width: 0; font: inherit; font-size: 14px; background: none; color: inherit; height: 100% }
.lf-search:focus-within { border-color: #1f4f9a; box-shadow: 0 0 0 3px rgba(31,79,154,.12) }
.lf-btn { font: inherit; font-weight: 700; font-size: 14px; height: 40px; padding: 0 14px; border-radius: 9px; border: 1px solid #d9dfe8; background: #fff; color: #14223b; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; white-space: nowrap }
.lf-btn.on { background: #d7141b; border-color: #d7141b; color: #fff }
.lf-btn b { background: #fff; color: #d7141b; border-radius: 99px; padding: 0 7px; font-size: 12px; line-height: 18px }
.lf-views { height: 40px; border: 1px solid #d9dfe8; border-radius: 9px; padding: 0 10px; font: inherit; font-size: 14px; background: #fff; color: #14223b; max-width: 200px }
.lf-quick { display: flex; gap: 6px; flex-wrap: wrap; padding: 0 18px 12px }
.lf-q { font: inherit; font-size: 13px; font-weight: 600; border: 1px solid #d9dfe8; border-radius: 99px; padding: 4px 12px; background: #fff; color: #374151; cursor: pointer; white-space: nowrap }
.lf-q.on { background: #14223b; border-color: #14223b; color: #fff }
.lf-q:focus-visible, .lf-btn:focus-visible { outline: 2px solid #1f4f9a; outline-offset: 2px }
.lf-panel { background: #fafbfc; border-top: 1px solid #e4e8ef; padding: 12px 18px 14px }
.lf-back { display: none }
.lf-ph { display: none }
.lf-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px 14px; align-items: end }
.lf-g { grid-column: 1 / -1; display: flex; align-items: center; gap: 8px; font-size: 11.5px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: #d7141b; margin-top: 2px }
.lf-g::after { content: ''; flex: 1; height: 1px; background: #e4e8ef }
.lf-f { display: grid; gap: 4px; min-width: 0 }
.lf-f > span:first-child { font-size: 11.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: #6b7688 }
.lf-f select, .lf-f input { width: 100%; min-width: 0; box-sizing: border-box; height: 36px; border: 1px solid #d9dfe8; border-radius: 8px; padding: 0 9px; font: inherit; font-size: 14px; background: #fff; color: #14223b }
.lf-f .set { border-color: #d7141b; box-shadow: 0 0 0 2px #fdecec; font-weight: 600 }
.lf-two { display: grid; grid-template-columns: 1fr 1fr; gap: 6px }
.lf-pf { display: none }
.lf-chips { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; padding: 0 18px 12px; font-size: 13px }
.lf-cl { color: #6b7688 }
.lf-chip { background: #e9f0fb; color: #1f4f9a; border-radius: 99px; padding: 3px 4px 3px 11px; font-weight: 600; display: inline-flex; gap: 6px; align-items: center; white-space: nowrap }
.lf-chip button { border: 0; background: #fff; color: #1f4f9a; width: 20px; height: 20px; border-radius: 50%; cursor: pointer; font-size: 13px; line-height: 1; padding: 0 }
.lf-link { border: 0; background: none; color: #d7141b; font: inherit; font-weight: 700; font-size: 13px; cursor: pointer; padding: 2px 4px }
.lf-save { display: inline-flex; gap: 6px; align-items: center }
.lf-save input { height: 30px; border: 1px solid #d9dfe8; border-radius: 7px; padding: 0 9px; font: inherit; font-size: 13px }
@media (max-width: 1000px) { .lf-grid { grid-template-columns: 1fr 1fr } }
/* téléphone : panneau par le bas */
@media (max-width: 700px) {
  .lf-top { padding: 10px 12px } .lf-quick { padding: 0 12px 10px; flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch } .lf-chips { padding: 0 12px 10px }
  .lf-btn { flex: 1; justify-content: center }
  .lf-back { display: block; position: fixed; inset: 0; background: rgba(15,26,48,.35); z-index: 1400 }
  .lf-panel { position: fixed; left: 0; right: 0; bottom: 0; z-index: 1401; max-height: 82vh; overflow: auto; border-radius: 18px 18px 0 0; background: #fff; padding: 10px 14px calc(12px + env(safe-area-inset-bottom, 0px)); box-shadow: 0 -10px 30px rgba(15,26,48,.2) }
  .lf-ph { display: flex; justify-content: space-between; align-items: center; padding: 4px 0 10px; color: #14223b; font-size: 16px }
  .lf-x { border: 0; background: #eef1f6; width: 30px; height: 30px; border-radius: 50%; font-size: 18px; cursor: pointer; margin-left: 6px }
  .lf-grid { grid-template-columns: 1fr 1fr }
  .lf-pf { display: block; position: sticky; bottom: 0; padding-top: 12px; background: #fff } .lf-pf .btn { width: 100%; justify-content: center }
}
html[data-theme="dark"] .lf-search, html[data-theme="dark"] .lf-btn:not(.on), html[data-theme="dark"] .lf-views, html[data-theme="dark"] .lf-q:not(.on), html[data-theme="dark"] .lf-f select, html[data-theme="dark"] .lf-f input, html[data-theme="dark"] .lf-save input { background: #0f1726; border-color: #2a374e; color: #e6ebf2 }
html[data-theme="dark"] .lf-panel { background: #111825; border-color: #2a374e } html[data-theme="dark"] .lf-pf { background: #111825 }
html[data-theme="dark"] .lf-chip { background: #132542; color: #9ec0ff } html[data-theme="dark"] .lf-chip button { background: #0f1726; color: #9ec0ff }
html[data-theme="dark"] .lf { border-color: #2a374e } html[data-theme="dark"] .lf-g::after { background: #2a374e }
@media (max-width: 700px) { html.lf-open .tabbar { display: none } }
/* v1.98.121 : règles de la prime Best Seller */
.bsr-box { border: 1px solid #e4e8ef; border-radius: 12px; padding: 14px 16px; display: grid; gap: 12px }
.bsr-h { display: flex; gap: 10px; align-items: center; font-size: 16px; color: #14223b }
.bsr-h i { font-style: normal; font-size: 12px; font-weight: 800; background: #d7141b; color: #fff; border-radius: 6px; padding: 1px 8px }
.bsr-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px }
.bsr-opt { border: 1.5px solid #e4e8ef; border-radius: 12px; padding: 10px 12px; display: grid; gap: 3px; cursor: pointer; background: #fff }
.bsr-opt input { position: absolute; opacity: 0; pointer-events: none }
.bsr-opt b { color: #14223b } .bsr-opt span { font-size: 13px; color: #6b7688 }
.bsr-opt.on { border-color: #d7141b; box-shadow: 0 0 0 3px #fdecec }
.bsr-opt:focus-within { outline: 2px solid #1f4f9a; outline-offset: 2px }
.bsr-cks { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 10px 18px }
.bsr-ck { display: flex; gap: 10px; align-items: flex-start; font-size: 14.5px }
.bsr-ck input[type=checkbox] { width: 17px; height: 17px; accent-color: #d7141b; margin-top: 2px; flex: none }
.bsr-ck b { color: #14223b } .bsr-ck small { display: block; color: #6b7688; font-size: 12.5px }
.bsr-in { width: 70px; height: 30px; border: 1px solid #d9dfe8; border-radius: 7px; padding: 0 7px; font: inherit; font-size: 13.5px; background: #fff; color: #14223b }
.bsr-in.w { width: 120px } .bsr-in:disabled { opacity: .45 }
.bsr-row { display: grid; gap: 6px } .bsr-row > span { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: #6b7688 } .bsr-row small { text-transform: none; font-weight: 500 }
.bsr-chips { display: flex; gap: 6px; flex-wrap: wrap }
.bsr-chip { display: inline-flex; gap: 6px; align-items: center; border: 1px solid #d9dfe8; border-radius: 99px; padding: 4px 12px; font-size: 13.5px; cursor: pointer; background: #fff }
.bsr-chip input { accent-color: #d7141b }
html[data-theme="dark"] .bsr-box { border-color: #2a374e } html[data-theme="dark"] .bsr-opt, html[data-theme="dark"] .bsr-chip, html[data-theme="dark"] .bsr-in { background: #0f1726; border-color: #2a374e; color: #e6ebf2 }
html[data-theme="dark"] .bsr-h, html[data-theme="dark"] .bsr-opt b, html[data-theme="dark"] .bsr-ck b { color: #e6ebf2 }

/* v1.98.131 : talkie-walkie de l'équipe */
#talkie{position:relative;z-index:70}
.tk-fab-wrap{position:fixed;right:calc(18px + env(safe-area-inset-right,0px));bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:75;display:flex;align-items:center;gap:10px}
.tk-chip{border:1px solid var(--line,#dfe4ec);background:var(--card,#fff);color:var(--text,#14223b);border-radius:999px;padding:7px 12px;font:700 12.5px var(--font,inherit);box-shadow:0 6px 16px rgba(13,21,38,.12);cursor:pointer;max-width:46vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tk-chip em{font-style:normal;color:var(--muted,#6b7688);font-weight:500}
.tk-fab{width:60px;height:60px;border-radius:50%;border:0;background:#d7141b;color:#fff;display:grid;place-items:center;box-shadow:0 10px 24px rgba(215,20,27,.45);position:relative;cursor:pointer;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.tk-fab svg{width:27px;height:27px}
.tk-fab:active{transform:scale(.95)}
.tk-dot{position:absolute;top:-3px;right:-3px;background:#0f1d3a;color:#fff;border:2px solid #fff;border-radius:999px;font-size:10.5px;font-weight:800;padding:1px 6px}
.tk-over{position:fixed;inset:0;z-index:90;background:rgba(13,21,38,.84);display:grid;place-items:center;align-content:center;gap:14px;color:#fff;text-align:center;pointer-events:none}
.tk-over.cancel .tk-big{background:#555}
.tk-ol{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#c9d1e2}
.tk-big{width:120px;height:120px;border-radius:50%;background:#d7141b;display:grid;place-items:center;box-shadow:0 0 0 14px rgba(215,20,27,.25),0 0 0 30px rgba(215,20,27,.12);animation:tkPulse 1.2s infinite}
.tk-big svg{width:46px;height:46px}
@keyframes tkPulse{50%{box-shadow:0 0 0 20px rgba(215,20,27,.2),0 0 0 40px rgba(215,20,27,.08)}}
.tk-time{font-size:30px;font-weight:800;font-variant-numeric:tabular-nums}
.tk-hint{font-size:12.5px;color:#c9d1e2}
.tk-bub{position:fixed;right:calc(18px + env(safe-area-inset-right,0px));top:calc(70px + env(safe-area-inset-top,0px));z-index:80;width:340px;max-width:calc(100vw - 24px);background:#0f1d3a;color:#fff;border-radius:16px;padding:12px 14px;box-shadow:0 14px 34px rgba(15,29,58,.4);display:grid;gap:8px;border-left:4px solid #d7141b}
.tk-bh{display:flex;align-items:center;gap:10px}.tk-bh small{display:block;color:#aab5cc;font-size:11.5px}
.tk-av{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:12px;color:#fff;flex:none}
.tk-av.sm{width:28px;height:28px;font-size:10px}
.tk-live{margin-left:auto;white-space:nowrap;font-size:10.5px;font-weight:800;background:#d7141b;border-radius:999px;padding:2px 8px;animation:tkBlink 1.2s infinite}
@keyframes tkBlink{50%{opacity:.55}}
.tk-x{margin-left:auto;border:0;background:rgba(255,255,255,.12);color:inherit;width:26px;height:26px;border-radius:8px;font-size:17px;line-height:1;cursor:pointer}
.tk-live+.tk-x{margin-left:6px}
.tk-wave{display:flex;align-items:center;gap:3px;height:28px;flex:1;min-width:0;overflow:hidden}
.tk-wave i{display:block;width:3px;flex:none;border-radius:2px;background:#ff6b70}
.tk-bub.play .tk-wave i{animation:tkWave .9s ease-in-out infinite alternate}
@keyframes tkWave{from{transform:scaleY(.4)}to{transform:scaleY(1)}}
.tk-bf{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:12px;color:#c9d1e2;flex-wrap:wrap}
.tk-or{background:rgba(255,255,255,.12);border-radius:6px;padding:2px 7px;font-weight:600;color:#fff;text-decoration:none}
.tk-btns{display:flex;gap:6px}.tk-btns button{border:0;background:rgba(255,255,255,.14);color:#fff;border-radius:7px;padding:5px 10px;font:600 12px var(--font,inherit);cursor:pointer}
.tk-pane{position:fixed;right:calc(18px + env(safe-area-inset-right,0px));bottom:calc(90px + env(safe-area-inset-bottom,0px));z-index:78;width:340px;max-width:calc(100vw - 24px);max-height:min(560px,calc(100vh - 140px));background:var(--card,#fff);color:var(--text,#14223b);border:1px solid var(--line,#dfe4ec);border-radius:16px;box-shadow:0 18px 40px rgba(13,21,38,.25);display:flex;flex-direction:column;overflow:hidden}
.tk-ph{background:#0f1d3a;color:#fff;padding:11px 14px;display:flex;align-items:center;border-bottom:3px solid #d7141b}
.tk-list{display:grid;overflow:auto;max-height:40%}
.tk-ch,.tk-dm{display:flex;align-items:center;gap:10px;padding:9px 14px;border:0;border-top:1px solid var(--line-2,#eef1f5);background:none;color:inherit;text-align:left;font:inherit;cursor:pointer;width:100%}
.tk-ch.on{background:#fdecec}
.tk-ch b{display:block;font-size:13.5px}.tk-ch small{color:var(--muted,#6b7688);font-size:12px}
.tk-ci{width:32px;height:32px;border-radius:10px;background:var(--line-2,#eef1f6);display:grid;place-items:center;font-size:15px;flex:none}
.tk-cnt{margin-left:auto;background:#d7141b;color:#fff;border-radius:999px;font-size:11px;font-weight:800;padding:1px 7px}
.tk-dm select{flex:1;border:1px solid var(--line,#dfe4ec);border-radius:8px;padding:6px 8px;background:var(--card,#fff);color:inherit;font:inherit}
.tk-hist{flex:1;overflow:auto;padding:10px 14px;display:grid;gap:8px;align-content:start;background:var(--bg,#f8fafc);border-top:1px solid var(--line,#dfe4ec)}
.tk-msg{display:flex;gap:8px;align-items:center}
.tk-pl{flex:1;min-width:0;background:var(--card,#fff);border:1px solid var(--line,#dfe4ec);border-radius:10px;padding:6px 10px;display:flex;align-items:center;gap:8px;font:12px var(--font,inherit);color:inherit;cursor:pointer}
.tk-pl .tk-wave{height:18px}.tk-pl .tk-wave i{background:#9aa6bd}
.tk-tri{width:0;height:0;border-left:8px solid #0f1d3a;border-top:5px solid transparent;border-bottom:5px solid transparent;flex:none}
.tk-msg small{color:var(--muted,#6b7688);font-size:11px;white-space:nowrap}
.tk-empty{color:var(--muted,#6b7688);font-size:12.5px;text-align:center;padding:16px 0}
.tk-foot{font-size:11px;color:var(--muted,#6b7688);padding:7px 14px;border-top:1px solid var(--line,#dfe4ec);text-align:center}
@media (max-width:700px){
  .tk-fab-wrap{bottom:calc(var(--tab-h,58px) + 12px + env(safe-area-inset-bottom,0px));right:12px}
  .tk-chip{display:none}
  .tk-fab{width:54px;height:54px}
  .tk-pane{left:10px;right:10px;width:auto;bottom:calc(var(--tab-h,58px) + 76px + env(safe-area-inset-bottom,0px))}
  .tk-bub{left:10px;right:10px;width:auto}
  html.lf-open .tk-fab-wrap{display:none}
}
@media print{#talkie{display:none!important}}

/* v1.98.132 : appels en direct entre collègues */
.tk-tabs{display:flex;gap:6px;flex:1}
.tk-tabs button{border:0;background:none;color:#c9d1e2;border-radius:8px;padding:5px 10px;font:700 12.5px var(--font,inherit);cursor:pointer}
.tk-tabs button.on{background:#fff;color:#0f1d3a}
.tk-tabs i{font-style:normal;background:#d7141b;color:#fff;border-radius:999px;padding:0 6px;font-size:10.5px;margin-left:2px}
.tk-calls{gap:0;padding:0}
.tk-miss{background:#fdecec;color:#8a0f14;font-size:12px;padding:8px 14px;display:flex;justify-content:space-between;align-items:center;gap:8px}
.tk-pp{display:flex;align-items:center;gap:10px;padding:8px 14px;border-top:1px solid var(--line-2,#eef1f5);background:var(--card,#fff)}
.tk-pp b{display:block;font-size:13.5px}.tk-pp small{color:var(--muted,#6b7688);font-size:12px}
.tk-pp .tk-av{position:relative}
.tk-st{position:absolute;right:-1px;bottom:-1px;width:11px;height:11px;border-radius:50%;border:2px solid #fff;background:#1b8a4b}
.tk-st.off{background:#9aa6bd}
.tk-acts{margin-left:auto;display:flex;gap:6px}
.tk-ib{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;font-size:15px;border:1px solid var(--line,#dfe4ec);background:var(--card,#fff);cursor:pointer}
.tk-ib.call{background:#1b8a4b;color:#fff;border-color:#1b8a4b}
.tk-ib:disabled{opacity:.35;cursor:not-allowed}
#team-call{position:relative;z-index:95}
.tc-full{position:fixed;inset:0;z-index:96;background:rgba(9,18,38,.6);display:grid;place-items:center;padding:16px}
.tc-ring{background:linear-gradient(160deg,#0f1d3a,#091226 70%,#1a0b0e);color:#fff;border-radius:22px;padding:28px 22px 22px;width:min(360px,100%);text-align:center;display:grid;gap:10px;justify-items:center;border-bottom:5px solid #d7141b;box-shadow:0 18px 40px rgba(0,0,0,.4)}
.tc-ring .tc-av{width:92px;height:92px;font-size:30px;animation:tcR 1.4s infinite}
@keyframes tcR{50%{box-shadow:0 0 0 18px rgba(255,255,255,.08),0 0 0 36px rgba(255,255,255,.03)}}
.tc-ring h2{margin:4px 0 0;font-size:22px}.tc-ring p{margin:0;color:#c9d1e2;font-size:13px}
.tc-av{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:13px;color:#fff;flex:none}
.tc-ctx{background:rgba(255,255,255,.1);border-radius:8px;padding:4px 10px;font-size:12.5px;font-weight:600;color:inherit;text-decoration:none;display:inline-block}
.tc-card .tc-ctx{background:#eef1f6;color:#0f1d3a;margin-top:10px}
.tc-btns{display:flex;gap:40px;margin-top:10px}
.tc-cb{display:grid;justify-items:center;gap:6px;font:12px var(--font,inherit);color:#c9d1e2;border:0;background:none;cursor:pointer}
.tc-cb span{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;font-size:26px;color:#fff}
.tc-cb .no,.tc-cb .hang{background:#d7141b}.tc-cb .yes{background:#1b8a4b}
.tc-card{position:fixed;right:calc(18px + env(safe-area-inset-right,0px));top:calc(70px + env(safe-area-inset-top,0px));z-index:96;width:340px;max-width:calc(100vw - 24px);background:var(--card,#fff);color:var(--text,#14223b);border:1px solid var(--line,#dfe4ec);border-radius:16px;box-shadow:0 18px 40px rgba(13,21,38,.25);overflow:hidden}
.tc-ih{display:flex;align-items:center;gap:12px;padding:14px;background:var(--line-2,#f7f9fc);border-bottom:1px solid var(--line,#dfe4ec)}
.tc-ih b{display:block;font-size:15px}.tc-ih small{color:var(--muted,#6b7688);font-weight:700;font-size:12.5px}.tc-ih small.ok{color:#1b8a4b}
.tc-tm{margin-left:auto;font-size:20px;font-weight:800;font-variant-numeric:tabular-nums}
.tc-ctl{display:flex;justify-content:space-around;padding:14px 10px}
.tc-ctl .tc-cb{color:var(--muted,#6b7688)}
.tc-ctl .tc-cb span{width:54px;height:54px;font-size:21px;background:var(--line-2,#eef1f6);color:var(--text,#14223b)}
.tc-ctl .tc-cb span.on{background:#0f1d3a;color:#fff}.tc-ctl .tc-cb span.hang{background:#d7141b;color:#fff}
.tc-bar{position:fixed;left:50%;transform:translateX(-50%);top:calc(64px + env(safe-area-inset-top,0px));z-index:96;display:flex;align-items:center;gap:10px;background:#1b8a4b;color:#fff;border:0;border-radius:12px;padding:8px 12px;font:700 13px var(--font,inherit);box-shadow:0 8px 20px rgba(27,138,75,.35);cursor:pointer;max-width:calc(100vw - 24px)}
.tc-h{background:#d7141b;border-radius:8px;padding:4px 10px}
@media (max-width:700px){.tc-card{left:10px;right:10px;width:auto}}

/* v1.98.133 — appels seuls : panneau ouvert depuis le bouton 📞 de la barre du haut */
[data-tk-open] .tk-dot{background:#d7141b;border-color:#0f1d3a;top:-2px;right:-4px}
.tk-pane.top{top:calc(var(--top-h,56px) + 8px + env(safe-area-inset-top,0px));bottom:auto;max-height:min(520px,calc(100vh - 120px))}
.tk-pane.top .tk-ph b{font-size:14px}
.tk-pane.top .tk-calls{max-height:none}
@media (max-width:700px){.tk-pane.top{left:10px;right:10px;width:auto;top:calc(var(--top-h,56px) + 6px + env(safe-area-inset-top,0px));bottom:auto}}

/* v1.98.134 — nombre de collègues en ligne sur l'icône Équipe */
.tk-on{position:absolute;right:-5px;bottom:-3px;min-width:18px;height:18px;border-radius:9px;background:#1fbf5b;color:#fff;font-size:10.5px;font-weight:800;line-height:14px;display:grid;place-items:center;padding:0 4px;border:2px solid #0f1d3a;pointer-events:none}
.tk-on.off{background:#8a94a8}

/* v1.98.135 — sonnerie des appels même ERP fermé */
.tk-ask{position:fixed;z-index:79;top:calc(var(--top-h,56px) + 10px + env(safe-area-inset-top,0px));right:calc(14px + env(safe-area-inset-right,0px));width:300px;max-width:calc(100vw - 20px);background:var(--card,#fff);color:var(--text,#14223b);border:1px solid var(--line,#dfe4ec);border-left:4px solid #d7141b;border-radius:12px;box-shadow:0 14px 34px rgba(13,21,38,.25);padding:12px 14px;display:grid;gap:4px}
.tk-ask b{font-size:13.5px}.tk-ask small{color:var(--muted,#6b7688);font-size:12px}
.tk-ask span{display:flex;gap:8px;margin-top:6px}
.tk-ask button,.tk-pushl button{border:1px solid var(--line,#dfe4ec);background:var(--card,#fff);color:inherit;border-radius:8px;padding:6px 12px;font:700 12.5px var(--font,inherit);cursor:pointer}
.tk-ask .tk-ask-ok,.tk-pushl button{background:#0f1d3a;color:#fff;border-color:#0f1d3a}
.tk-pushl{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 14px;font-size:12.5px;background:#fff7e0;color:#6b4e00;border-bottom:1px solid var(--line,#dfe4ec)}
.tk-pushl.ok{background:#e8f7ee;color:#11602f}.tk-pushl.warn{background:#fdecec;color:#8a0f14}
@media (max-width:700px){.tk-ask{left:10px;right:10px;width:auto}}

/* v1.98.136 — alerte réclamation client : plein écran rouge (maquette B) */
.rc-host{position:relative;z-index:2000}
html.rc-open body{overflow:hidden}
.rc-full{position:fixed;inset:0;z-index:2000;background:radial-gradient(circle at 50% 34%,#ff2b22 0,#c00400 45%,#6a0000 100%);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;padding:calc(28px + env(safe-area-inset-top,0px)) calc(20px + env(safe-area-inset-right,0px)) calc(22px + env(safe-area-inset-bottom,0px)) calc(20px + env(safe-area-inset-left,0px));animation:rcBg 1s ease-in-out infinite;font-family:var(--font,inherit)}
@keyframes rcBg{50%{filter:brightness(1.22)}}
.rc-full>small{font-weight:800;font-size:12px;letter-spacing:.3em;opacity:.92}
.rc-rings{position:relative;width:150px;height:150px;margin:14px 0 10px;flex:none}
.rc-rings i{position:absolute;inset:0;border-radius:50%;border:3px solid rgba(255,255,255,.75);animation:rcRing 1.5s ease-out infinite}
.rc-rings i:nth-child(2){animation-delay:.5s}.rc-rings i:nth-child(3){animation-delay:1s}
@keyframes rcRing{from{transform:scale(.45);opacity:1}to{transform:scale(1.35);opacity:0}}
.rc-rings svg{position:absolute;inset:38px;width:74px;height:74px;animation:rcWob .4s ease-in-out infinite alternate}
@keyframes rcWob{from{transform:rotate(-12deg)}to{transform:rotate(12deg)}}
.rc-full h2{margin:2px 0 6px;font-size:clamp(34px,7vw,56px);font-weight:900;letter-spacing:.03em;line-height:1;color:#fff}
.rc-v{font-weight:800;font-size:16px}.rc-m{font-size:13px;opacity:.9}
.rc-q{font-size:14px;max-width:560px;margin-top:6px;background:rgba(0,0,0,.18);border-radius:10px;padding:8px 12px}
.rc-sp{flex:0 1 40px}
.rc-go{width:min(440px,100%);background:#fff;color:#c00400;border:0;font:900 17px var(--font,inherit);letter-spacing:.06em;padding:17px;border-radius:14px;box-shadow:0 10px 24px rgba(0,0,0,.3);cursor:pointer}
.rc-go:active{transform:scale(.98)}
.rc-row{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:6px}
.rc-b{color:#fff;border:1px solid rgba(255,255,255,.6);border-radius:12px;padding:10px 14px;font-weight:800;font-size:13.5px;text-decoration:none}
.rc-tm{margin-top:10px;font-size:12px;opacity:.92}.rc-tm b{font-variant-numeric:tabular-nums}
@media (prefers-reduced-motion:reduce){.rc-full,.rc-rings i,.rc-rings svg{animation:none}}
/* suivi clients : motif réclamation */
.cl-grid tr.cl-rec>td{background:#fff1f1}
.cl-grid tr.cl-rec select[data-f=motif]{color:#c00400;font-weight:800}
.cl-grid tr.cl-rec-x>td{background:#fff7f7;border-top:0;padding:6px 8px 10px}
.cl-recx{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,2fr) auto;gap:8px;align-items:end}
.cl-recx label{display:grid;gap:3px;font-size:11px;font-weight:700;color:#7a2020;text-transform:uppercase;letter-spacing:.04em}
.cl-recx input,.cl-recx select{border:1px solid #f0c4c4;border-radius:7px;padding:6px 8px;background:#fff;font:inherit;font-size:13px;text-transform:none;letter-spacing:0;color:inherit;min-width:0}
.cl-rec-st{font-size:12px;font-weight:700;border-radius:6px;padding:4px 8px;white-space:nowrap;background:#fdecec;color:#a00}
.cl-rec-st.prise{background:#fff4dc;color:#8a5a00}.cl-rec-st.ok{background:#e6f6ec;color:#11602f}
@media (max-width:760px){.cl-recx{grid-template-columns:1fr}}

/* v1.98.137 — radio de l'équipe en direct */
[data-tk-open]{touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
[data-tk-open].rd-tx{background:#d7141b;box-shadow:0 0 0 5px rgba(215,20,27,.35);animation:rdPr 1s infinite}
[data-tk-open].rd-tx svg{stroke:#fff}
[data-tk-open].rd-rx{box-shadow:inset 0 0 0 2px #1fbf5b}[data-tk-open].rd-rx svg{stroke:#1fbf5b}
@keyframes rdPr{50%{box-shadow:0 0 0 11px rgba(215,20,27,.1)}}
.rd-air{position:fixed;z-index:1200;left:0;right:0;top:calc(var(--top-h,56px) + env(safe-area-inset-top,0px));background:#0b0f18;color:#fff;padding:8px max(14px,env(safe-area-inset-right,0px)) 8px max(14px,env(safe-area-inset-left,0px));display:flex;align-items:center;gap:10px;border-bottom:2px solid #1fbf5b;box-shadow:0 6px 16px rgba(0,0,0,.3);pointer-events:none}
.rd-air.tx{border-bottom-color:#d7141b}
.rd-dot{width:10px;height:10px;border-radius:50%;background:#1fbf5b;box-shadow:0 0 10px #1fbf5b;animation:rdBl .8s infinite;flex:none}
.rd-air.tx .rd-dot{background:#d7141b;box-shadow:0 0 10px #d7141b}
@keyframes rdBl{50%{opacity:.25}}
.rd-air b{font-size:13.5px;display:block}.rd-air small{color:#9aa6bd;font-size:12px}
.rd-vu{margin-left:auto;display:flex;gap:2px;align-items:end;height:20px}.rd-vu i{width:4px;border-radius:2px;background:#1fbf5b;animation:rdVu .35s ease-in-out infinite alternate}
.rd-vu.tx i{background:#ff4d52}
@keyframes rdVu{from{height:4px}to{height:20px}}
.tk-pane.top.rd{background:#0c111c;border-color:#232c40;color:#fff}
.rd-set{display:flex;flex-direction:column;min-height:420px;flex:1}
.rd-lcd{margin:12px;border-radius:12px;background:#11201a;border:1px solid #1d3a2c;padding:10px 12px;font-family:ui-monospace,Menlo,monospace;color:#7ff0a8;display:grid;gap:2px}
.rd-lcd .l1{display:flex;justify-content:space-between;font-size:11px;color:#4fbf7d;letter-spacing:.1em}
.rd-lcd .l2{font-size:21px;font-weight:800;letter-spacing:.04em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rd-lcd .l3{font-size:12px;color:#5fd18f}
.rd-chs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:0 12px}
.rd-ch{border:1px solid #2a3245;border-radius:10px;padding:8px 10px;font:700 12.5px var(--font,inherit);display:flex;justify-content:space-between;gap:6px;color:#c9d1e2;background:none;cursor:pointer;text-align:left}
.rd-ch.on{border-color:#1fbf5b;color:#fff;background:#12241b}.rd-ch em{font-style:normal;color:#1fbf5b}
.rd-pttw{flex:1;display:grid;place-items:center;padding:16px 0}
.rd-ptt{width:150px;height:150px;border-radius:50%;border:0;color:#fff;background:radial-gradient(circle at 50% 35%,#ff3b3b,#b30d12 70%);display:grid;place-items:center;align-content:center;gap:4px;box-shadow:0 0 0 8px #1a2131,0 0 0 9px #2a3245,0 14px 30px rgba(0,0,0,.5);font:900 14px var(--font,inherit);letter-spacing:.12em;cursor:pointer;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.rd-ptt svg{width:46px;height:46px;margin:0 auto}
.rd-ptt.tx{transform:scale(.96);box-shadow:0 0 0 8px #1a2131,0 0 0 9px #d7141b,0 0 34px rgba(215,20,27,.7)}
.rd-ptt.lock{background:radial-gradient(circle at 50% 35%,#4a5164,#2a2f3d 70%);color:#9aa6bd}
.rd-hint{text-align:center;color:#8a94a8;font-size:12px;padding:0 12px 10px}
.rd-rec{display:flex;align-items:center;gap:6px;justify-content:center;color:#8a94a8;font-size:11.5px;padding-bottom:12px}.rd-rec i{width:8px;height:8px;border-radius:50%;background:#ff4d52}
@media (prefers-reduced-motion:reduce){.rd-dot,.rd-vu i,[data-tk-open].rd-tx{animation:none}}
