/* Module Honoraires — complète style.css */
@page { size: A4 portrait; margin: 14mm 14mm 12mm; }
#view { display: grid; gap: 14px; }
.card { background: var(--surface); border: 1px solid var(--line); border-radius: 10px; padding: 16px; display: grid; gap: 10px; min-width: 0; }
.card h2 { margin: 0; font-family: var(--f-display); font-size: 20px; }
.card p { margin: 0; }
.two { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 14px; align-items: start; }
@media (max-width: 900px) { .two { grid-template-columns: 1fr; } }
.sec-head { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: center; justify-content: space-between; }
.marsel { display: inline-flex; gap: 8px; align-items: center; font-weight: 600; }
.marsel select { border: 1px solid var(--line); border-radius: 6px; padding: 6px 8px; background: var(--surface); }
.privacy { font-size: 12px; color: var(--ok); border: 1px solid color-mix(in srgb, var(--ok) 40%, var(--line)); background: color-mix(in srgb, var(--ok) 8%, var(--surface)); padding: 5px 10px; border-radius: 999px; }
.privacy::before { content: "🔒 "; }
.daynav { display: flex; flex-wrap: wrap; gap: 10px 14px; align-items: center; }
.daynav input[type=date] { border: 1px solid var(--line); background: var(--surface); border-radius: 6px; padding: 6px 8px; min-height: 34px; }
.period { display: inline-block; }
.period::first-letter { text-transform: uppercase; }
.actions { display: flex; flex-wrap: wrap; gap: 8px; }

/* Indicateurs */
.cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; }
.kpi { background: var(--surface); border: 1px solid var(--line); border-radius: 10px; padding: 10px 14px; display: grid; gap: 2px; border-top: 3px solid var(--accent); }
.kpi span { font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); font-weight: 600; }
.kpi b { font-family: var(--f-display); font-size: 26px; font-variant-numeric: tabular-nums; }
.kpi.ok { border-top-color: var(--ok); } .kpi.w { border-top-color: var(--warn); } .kpi.bad { border-top-color: var(--danger); }
.says { font-size: 15px; }
.says .eyebrow { display: block; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); font-weight: 600; margin-bottom: 2px; }
b.ok, .ok > b { color: var(--ok); } b.w { color: var(--warn); } b.bad, .bad { color: var(--danger); }
.verdict { padding: 10px 12px; border-radius: 8px; display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: center; border: 1px solid var(--line); }
.verdict.todo { background: color-mix(in srgb, var(--warn) 10%, var(--surface)); border-color: color-mix(in srgb, var(--warn) 40%, var(--line)); }
.verdict.ok { background: color-mix(in srgb, var(--accent) 8%, var(--surface)); }
.verdict.done { background: color-mix(in srgb, var(--ok) 12%, var(--surface)); border-color: color-mix(in srgb, var(--ok) 45%, var(--line)); }
.names-missing { padding: 8px 12px; border-radius: 8px; border: 1px dashed var(--line); color: var(--muted); display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.tag { display: inline-block; font-size: 11px; padding: 2px 8px; border-radius: 999px; background: var(--surface-2); color: var(--muted); font-weight: 600; text-decoration: none; }
.tag.ok { background: color-mix(in srgb, var(--ok) 15%, var(--surface)); color: var(--ok); }
.tag.w { background: color-mix(in srgb, var(--warn) 15%, var(--surface)); color: var(--warn); }
.tag.bad { background: color-mix(in srgb, var(--danger) 13%, var(--surface)); color: var(--danger); }
.chips { display: flex; flex-wrap: wrap; gap: 6px; }

/* Tableaux */
.table-wrap { overflow-x: auto; }
table.hon { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; font-size: 13px; }
table.hon th { text-align: left; font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); font-weight: 600; padding: 6px 8px; border-bottom: 2px solid var(--line); white-space: nowrap; }
table.hon td { padding: 5px 8px; border-bottom: 1px solid var(--line); vertical-align: middle; }
table.hon .num { text-align: right; white-space: nowrap; }
table.hon td.n { color: var(--muted); font-family: var(--f-mono); font-size: 12px; width: 2.5em; }
table.hon td.inv { font-family: var(--f-mono); font-size: 12px; white-space: nowrap; }
table.hon td.pt { font-weight: 600; min-width: 160px; }
table.hon .anon { font-weight: 400; color: var(--muted); }
table.hon.small { font-size: 12px; }
table.hon tr.s-paye td.pt { box-shadow: inset 3px 0 0 var(--ok); }
table.hon tr.s-postop td.pt { box-shadow: inset 3px 0 0 var(--warn); }
table.hon tr.s-nonpaye td.pt { box-shadow: inset 3px 0 0 var(--danger); }
table.hon tr.s-annule td { opacity: .5; text-decoration: line-through; }
table.hon tr.s-annule td.ctl { text-decoration: none; opacity: 1; }
table.hon tr.zero td.pt { color: var(--muted); }
table.hon td small { display: block; font-size: 10px; color: var(--muted); }
table.hon td.z { color: var(--muted); }
table.hon tfoot td { font-weight: 700; border-top: 2px solid var(--line); border-bottom: 0; }
table.hon.month td.ok { color: var(--ok); } table.hon.month td.w { color: var(--warn); } table.hon.month td.bad { color: var(--danger); }
table.hon input { border: 1px solid var(--line); background: var(--bg); color: var(--fg); border-radius: 5px; padding: 5px 7px; min-width: 0; width: 100%; font: inherit; }
table.hon input.note { min-width: 110px; }
table.hon input.amt { width: 96px; text-align: right; }
table.hon input.amt.blank { border-color: var(--warn); background: color-mix(in srgb, var(--warn) 8%, var(--bg)); }
.sts { display: flex; flex-wrap: wrap; gap: 3px; }
.st { border: 1px solid var(--line); background: var(--surface); border-radius: 5px; padding: 4px 8px; font-size: 12px; min-height: 28px; white-space: nowrap; }
.st:disabled { cursor: default; opacity: .55; }
.st:not(:disabled):hover { border-color: var(--accent); }
.st[aria-pressed="true"] { color: #fff; font-weight: 700; opacity: 1; }
.st-paye[aria-pressed="true"] { background: var(--ok); border-color: var(--ok); }
.st-postop[aria-pressed="true"] { background: var(--warn); border-color: var(--warn); }
.st-nonpaye[aria-pressed="true"] { background: var(--danger); border-color: var(--danger); }
.st-annule[aria-pressed="true"] { background: var(--muted); border-color: var(--muted); }
.btn.big { font-size: 15px; padding: 9px 16px; }
.recv { display: inline-flex; align-items: center; gap: 4px; margin-top: 4px; font-size: 11px; color: var(--muted); }
table.hon .recv input { width: 82px; padding: 3px 6px; text-align: right; }
.recv.diff { color: var(--warn); } .recv.diff input { border-color: var(--warn); }
.linkish { display: block; border: 0; background: none; padding: 2px 0 0; color: var(--muted); font-size: 11px; text-decoration: underline dotted; cursor: pointer; }
.linkish:hover { color: var(--accent); }
.recv-d { display: block; font-size: 11px; color: var(--warn); margin-top: 3px; }
.settled { display: block; font-size: 11px; color: var(--ok); margin-top: 3px; }

/* Import et saisie */
.drop { border: 2px dashed var(--line); border-radius: 10px; padding: 18px; display: flex; flex-wrap: wrap; gap: 10px 14px; align-items: center; justify-content: center; }
.drop.over { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 6%, var(--surface)); }
label.file { display: inline-flex; align-items: center; cursor: pointer; }
.paste summary { cursor: pointer; color: var(--muted); font-size: 13px; }
.paste textarea, .pform textarea { width: 100%; box-sizing: border-box; border: 1px solid var(--line); background: var(--bg); color: var(--fg); border-radius: 6px; padding: 8px; font: inherit; margin: 6px 0; }
.colmap summary { cursor: pointer; font-size: 13px; color: var(--accent); font-weight: 600; }
.colmap-g { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 8px; margin-top: 8px; }
.colmap-g label { min-width: 0; display: grid; gap: 3px; font-size: 11px; color: var(--muted); font-weight: 600; }
.colmap-g select { width: 100%; min-width: 0; border: 1px solid var(--line); background: var(--surface); color: var(--fg); border-radius: 6px; padding: 6px; font-size: 13px; }
.dups, .dup-warn { margin: 0; padding: 10px 12px; border-radius: 8px; border: 1px solid color-mix(in srgb, var(--danger) 45%, var(--line)); background: color-mix(in srgb, var(--danger) 8%, var(--surface)); color: var(--fg); }
.dups ul { margin: 6px 0; padding-left: 18px; display: grid; gap: 6px; }
.dups li .btn { margin-left: 8px; min-height: 28px; padding: 3px 9px; }
.dup-warn { font-size: 13px; color: var(--danger); }
table.hon tr.dup td { background: color-mix(in srgb, var(--danger) 7%, transparent); }
.btn.ghost { border-color: transparent; background: transparent; color: var(--muted); }
ul.warn { margin: 0; padding: 8px 12px 8px 28px; border-radius: 8px; background: color-mix(in srgb, var(--warn) 10%, var(--surface)); color: var(--warn); font-size: 12px; }
.pv-group { display: grid; gap: 6px; }
.pv-head { display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: center; }
table.entry-t td { padding: 3px 6px; }
table.entry-t td.num input { width: 110px; text-align: right; }

/* Réglages et aperçu de facture */
.settings { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 14px; align-items: start; }
@media (max-width: 1000px) { .settings { grid-template-columns: 1fr; } }
.pform label { display: grid; gap: 4px; font-size: 12px; color: var(--muted); font-weight: 600; }
.pform input[type=text] { border: 1px solid var(--line); background: var(--bg); color: var(--fg); border-radius: 6px; padding: 7px 9px; font: inherit; font-weight: 400; }
.pform label.chk { display: flex; gap: 8px; align-items: center; font-weight: 400; color: var(--fg); font-size: 13px; }
.inv-preview { background: #fff; color: #000; border: 1px solid var(--line); border-radius: 6px; padding: 24px; overflow: hidden; }

/* Note d'honoraires — d'après le modèle de l'équipe */
.invoice { font-family: "Times New Roman", Times, serif; font-size: 15px; color: #000; display: flex; flex-direction: column; gap: 14px; min-height: 250mm; box-sizing: border-box; }
.inv-preview .invoice { min-height: 0; font-size: 12px; gap: 10px; }
.invoice header { display: flex; justify-content: space-between; gap: 16px; align-items: flex-start; margin-bottom: 18px; }
.invoice .inv-logo { height: 70px; width: auto; }
.inv-preview .invoice .inv-logo { height: 46px; }
.invoice .inv-docs { flex: 1; min-width: 0; text-align: right; font-family: Verdana, "DejaVu Sans", Arial, sans-serif; }
.invoice .names { margin: 0 0 12px; font-style: italic; font-weight: 700; color: #2B2257; font-size: .95em; line-height: 1.4; }
.invoice .names .nw { white-space: nowrap; }
.invoice .service { margin: 0; font-family: Arial, Helvetica, sans-serif; line-height: 1.3; }
.invoice .service .b { font-weight: 700; }
.invoice .service .i { font-style: italic; }
.invoice p { margin: 0; }
.invoice .inv-to { margin-bottom: 40px; font-size: 1.45em; font-weight: 700; letter-spacing: .01em; }
.invoice .inv-title { text-align: center; margin: 30px 0; }
.invoice .inv-title h2 { margin: 0 0 4px; font-size: 1.6em; font-family: inherit; letter-spacing: .01em; }
.invoice .inv-no { font-size: .8em; color: #444; margin-top: 6px; }
.invoice .inv-amt { margin-top: 20px; }
.invoice .blank-line { display: inline-block; width: 120px; border-bottom: 1px solid #000; height: 1em; vertical-align: baseline; }
.invoice .sigs { display: grid; grid-template-columns: repeat(3, 1fr); row-gap: 70px; margin-top: auto; padding-top: 60px; }
.inv-preview .invoice .sigs { row-gap: 30px; padding-top: 30px; }
.invoice footer { text-align: center; font-size: .82em; margin-top: 50px; }

/* Étapes de la journée */
.steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.step { display: flex; gap: 8px; align-items: center; background: var(--surface); border: 1px solid var(--line); border-radius: 10px; padding: 8px 10px; min-width: 0; color: var(--muted); }
.step .n { flex: none; width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; font-weight: 700; font-size: 13px; background: var(--surface-2); }
.step b { display: block; font-size: 13px; color: var(--fg); }
.step small { display: block; font-size: 11.5px; overflow: hidden; text-overflow: ellipsis; }
.step.done .n { background: var(--ok); color: #fff; }
.step.cur { border-color: var(--accent); box-shadow: inset 0 -3px 0 var(--accent); }
.step.cur .n { background: var(--accent); color: var(--accent-fg); }
@media (max-width: 700px) { .steps { grid-template-columns: 1fr 1fr; } }
.clinic { padding: 10px 12px; border-radius: 8px; border: 1px solid color-mix(in srgb, var(--accent) 40%, var(--line)); background: color-mix(in srgb, var(--accent) 7%, var(--surface)); display: grid; gap: 8px; }
.clinic.sent { border-color: color-mix(in srgb, var(--ok) 40%, var(--line)); background: color-mix(in srgb, var(--ok) 7%, var(--surface)); }
.clinic p { margin: 2px 0 0; }

/* Photo de la feuille de la clinique : à droite sur grand écran, en bas sur téléphone */
#photoPanel { position: fixed; z-index: 30; background: var(--surface); border: 1px solid var(--line); display: grid; grid-template-rows: auto 1fr auto; box-shadow: 0 6px 24px rgb(0 0 0 / .12); }
.ph-bar { display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: center; justify-content: space-between; padding: 8px 10px; border-bottom: 1px solid var(--line); }
.ph-tools { display: flex; flex-wrap: wrap; gap: 4px; }
.ph-tools .btn { min-height: 32px; padding: 4px 9px; }
.ph-tools .btn.icon { width: 32px; padding: 0; }
.ph-view { overflow: auto; background: var(--surface-2); min-height: 0; -webkit-overflow-scrolling: touch; }
.ph-stage { position: relative; width: 100%; }
.ph-stage img { display: block; width: 100%; height: auto; cursor: crosshair; user-select: none; }
.ph-guide { position: absolute; left: 0; right: 0; height: 30px; transform: translateY(-50%); background: color-mix(in srgb, var(--cta) 16%, transparent); border-top: 2px solid var(--cta); border-bottom: 2px solid var(--cta); pointer-events: auto; }
.ph-hint { margin: 0; padding: 6px 10px; font-size: 11px; color: var(--muted); border-top: 1px solid var(--line); }
@media (min-width: 1100px) {
  #photoPanel { top: 0; right: 0; bottom: 0; width: min(38vw, 680px); border-width: 0 0 0 1px; }
  body.has-photo .wrap { margin-right: min(38vw, 680px); max-width: none; }
}
@media (max-width: 1099.98px) {
  #photoPanel { left: 0; right: 0; bottom: 0; height: 46vh; border-radius: 12px 12px 0 0; padding-bottom: env(safe-area-inset-bottom, 0px); }
  body.has-photo .wrap { padding-bottom: calc(46vh + 24px); }
}
table.hon tbody tr:hover td { background: color-mix(in srgb, var(--accent) 6%, transparent); }

/* Impression : seulement les factures ou la feuille de contrôle */
#printArea { display: none; }
@media print {
  body.print-docs > *:not(#printArea) { display: none !important; }
  #photoPanel { display: none !important; }
  body.print-docs #printArea { display: block; }
  .invoice { break-after: page; min-height: 268mm; }
  .invoice:last-child { break-after: auto; }
  .sheet { font-family: Arial, sans-serif; font-size: 11px; color: #000; }
  .sheet h2 { font-size: 16px; margin: 0 0 4px; }
  .sheet table { width: 100%; border-collapse: collapse; margin-top: 10px; }
  .sheet th, .sheet td { border: 1px solid #000; padding: 5px 6px; text-align: left; }
  .sheet td.num { text-align: right; } .sheet td.inv, .sheet td.num { white-space: nowrap; }
  .sheet { break-after: page; font-size: 10px; }
  .sheet th, .sheet td { padding: 4px 4px; }
  .sheet:last-child { break-after: auto; }
  .sheet .sh-head { display: flex; gap: 14px; align-items: center; margin-bottom: 6px; }
  .sheet .sh-head .inv-logo { height: 46px; }
  .sheet .sh-head p { margin: 2px 0; }
  .sheet td.c { text-align: center; width: 44px; }
  .sheet th:nth-child(n+6):nth-child(-n+8) { text-align: center; font-size: 9px; }
  .sheet .cb { display: inline-block; width: 12px; height: 12px; border: 1.5px solid #000; }
  .sheet th:last-child { width: 120px; }
  .sheet tfoot td { font-weight: 700; }
  .sheet .sh-foot { margin: 10px 0 0; font-size: 10.5px; }
  .sheet .sh-sign { display: flex; justify-content: space-between; margin-top: 26px; }
}

/* Téléphone : rien ne doit déborder en largeur */
@media (max-width: 600px) {
  .wrap > *, #view > * { min-width: 0; }
  .brand h1 { font-size: 21px; }
  nav.modules { display: flex; width: 100%; }
  nav.modules a { flex: 1; padding: 7px 6px; text-align: center; font-size: 12px; }
  .daynav .nav { flex-wrap: wrap; }
  .daynav input[type=date] { flex: 1; min-width: 0; }
  .cards { grid-template-columns: 1fr 1fr; }
  .kpi b { font-size: 21px; }
  .privacy { font-size: 11px; }
}
@media (max-width: 600px) {
  .ph-bar > b { display: none; }
  .ph-tools { flex-wrap: nowrap; width: 100%; justify-content: space-between; }
  .ph-tools .btn { padding: 4px 7px; font-size: 13px; }
}

/* Module Paiements */
.rates .rates-line { display: flex; flex-wrap: wrap; gap: 6px 24px; font-size: 15px; }
.rates-g { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; }
.rates-g label { display: grid; gap: 4px; font-size: 12px; color: var(--muted); font-weight: 600; }
.rates-g .in { display: flex; align-items: center; gap: 6px; color: var(--fg); font-size: 14px; }
.rates-g input { width: 120px; border: 1px solid var(--line); background: var(--bg); color: var(--fg); border-radius: 6px; padding: 7px 9px; font: inherit; text-align: right; }
fieldset.asan { border: 1px solid var(--line); border-radius: 8px; padding: 8px 12px; display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 0; }
fieldset.asan legend { font-size: 12px; color: var(--muted); font-weight: 600; padding: 0 4px; }
.mchips { display: flex; flex-wrap: wrap; gap: 4px; }
.mchip { border: 1px solid var(--line); background: var(--surface); border-radius: 999px; padding: 4px 11px; font-size: 13px; }
.mchip[aria-pressed="true"] { background: var(--accent); color: var(--accent-fg); border-color: var(--accent); font-weight: 600; }
table.hon input.sal-amt { width: 110px; text-align: right; }
table.hon input.sal-note { min-width: 140px; }
table.hon input.sal-amt, table.hon input.sal-note { border: 1px solid var(--line); background: var(--bg); color: var(--fg); border-radius: 6px; padding: 5px 7px; font: inherit; }
form.sal-add { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 10px; }
form.sal-add input, form.sal-add select { border: 1px solid var(--line); background: var(--bg); color: var(--fg); border-radius: 6px; padding: 7px 9px; font: inherit; }
table.hon input.sal-tgt { width: 70px; text-align: right; border: 1px solid var(--line); background: var(--bg); color: var(--fg); border-radius: 6px; padding: 5px 7px; font: inherit; }
table.hon th.grp { text-align: center; border-left: 1px solid var(--line); }
.kpi small { font-size: 12px; color: var(--muted); }
.pay-all { display: flex; justify-content: flex-end; margin: 10px 0 4px; }
.btn.sm { padding: 4px 9px; font-size: 12.5px; }
td.pay-st { white-space: nowrap; }
.paid { color: var(--ok); font-weight: 700; }
.hon td.ss input { width: 6.5em; text-align: right; } .hon td.ss input.done { background: #e8f6ec; border-color: #9fd3ae; }
.hon form.ssform { display: flex; gap: 6px; align-items: center; flex-wrap: nowrap; } .hon form.ssform input { width: 7em; min-width: 0; text-align: right; }
/* Contrôle du soir sur une seule ligne : libellés courts (nom complet au survol) */
td.ctl .sts { flex-wrap: nowrap; gap: 2px; }
td.ctl .st { padding: 3px 6px; font-size: 11.5px; min-height: 26px; }
td.ctl { white-space: nowrap; }

/* Rendu du PDF envoyé par e-mail : mêmes règles que l'impression, hors écran, largeur A4 */
.pdf-render { position: fixed; left: -10000px; top: 0; width: 760px; background: #fff; color: #000; }
.pdf-render .invoice { min-height: 1040px; font-size: 15px; background: #fff; padding: 4px; }
.pdf-render .sheet { font-family: Arial, sans-serif; font-size: 10px; color: #000; background: #fff; padding: 4px; }
.pdf-render .sheet h2 { font-size: 16px; margin: 0 0 4px; }
.pdf-render .sheet table { width: 100%; border-collapse: collapse; margin-top: 10px; }
.pdf-render .sheet th, .pdf-render .sheet td { border: 1px solid #000; padding: 4px; text-align: left; }
.pdf-render .sheet td.num { text-align: right; } .pdf-render .sheet td.inv, .pdf-render .sheet td.num { white-space: nowrap; }
.pdf-render .sheet .sh-head { display: flex; gap: 14px; align-items: center; margin-bottom: 6px; }
.pdf-render .sheet .sh-head .inv-logo { height: 46px; }
.pdf-render .sheet .sh-head p { margin: 2px 0; }
.pdf-render .sheet td.c { text-align: center; width: 44px; }
.pdf-render .sheet th:nth-child(n+6):nth-child(-n+8) { text-align: center; font-size: 9px; }
.pdf-render .sheet .cb { display: inline-block; width: 12px; height: 12px; border: 1.5px solid #000; }
.pdf-render .sheet th:last-child { width: 120px; }
.pdf-render .sheet tfoot td { font-weight: 700; }
.mail-dossier { display: flex; flex-wrap: wrap; gap: 8px; align-items: end; }
.mail-dossier label { display: grid; gap: 4px; font-size: 12px; color: var(--muted); }
.mail-dossier input { border: 1px solid var(--line); background: var(--bg); color: var(--fg); border-radius: 6px; padding: 7px 9px; font: inherit; min-width: 260px; }
.mail-dossier .hint { flex-basis: 100%; }
.mail-dossier .md-list { display: grid; gap: 4px; flex-basis: 100%; }
.mail-dossier .md-list label.chk { display: flex; gap: 8px; align-items: center; color: var(--fg); font-size: 13px; }
.mail-dossier .md-list input { min-width: 0; }
.mail-dossier .md-add { display: flex; gap: 6px; flex-basis: 100%; }
.mail-dossier .actions { flex-basis: 100%; }

.ph-tabs { display: flex; flex-wrap: wrap; gap: 4px; } .ph-tabs .btn { min-height: 30px; padding: 3px 9px; }

/* Suivi des stupéfiants */
.stup .stp-h { font-size: 15px; margin: 4px 0 8px; }
.stup .kpi small { font-size: 11px; }
.stup .kpi span { text-transform: none; letter-spacing: .02em; font-size: 12px; }
.stp-photo { display: grid; gap: 6px; margin: 4px 0 12px; justify-items: start; }
.preop .pf .stp-photo label.stp-cam { cursor: pointer; color: var(--accent-fg); font-size: 14px; display: inline-flex; align-items: center; }
.stp-ocr progress { width: 160px; vertical-align: middle; }
.stp-prods { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 8px; margin: 12px 0; }
.stp-prod { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 4px 10px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); }
.stp-prod.on { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 7%, var(--surface)); }
.stp-prod .hint { grid-column: 1 / -1; }
.stp-step { display: inline-flex; align-items: center; gap: 6px; }
.stp-step output { min-width: 22px; text-align: center; font-weight: 700; font-variant-numeric: tabular-nums; }
.stp-note { display: grid; gap: 4px; margin-bottom: 10px; }
.stp-sig { display: grid; gap: 8px; }
#sigPad { width: min(100%, 520px); height: 170px; border: 1px dashed var(--muted); border-radius: 10px; background: #fff; touch-action: none; cursor: crosshair; }
.stp-t td .tag { margin: 0 4px 4px 0; }

/* Desiderata */
.desid .card + .card { margin-top: 14px; }
.ds-bar { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin: 8px 0 12px; }
.ds-bar .spacer { flex: 1; }
.ds-who { display: inline-grid; gap: 4px; font-size: 12px; color: var(--muted); margin-bottom: 6px; }
.ds-period { display: flex; flex-wrap: wrap; gap: 8px; align-items: end; }
.ds-period label { display: grid; gap: 2px; font-size: 12px; color: var(--muted); }
.ds-period label.chk { display: flex; align-items: center; gap: 6px; color: var(--fg); font-size: 13px; padding-bottom: 8px; }
.seg button.b-ok[aria-pressed="true"] { background: var(--ok); border-color: var(--ok); color: #fff; }
.seg button.b-no[aria-pressed="true"] { background: var(--danger); border-color: var(--danger); color: #fff; }
.ds-nav { display: flex; gap: 6px; justify-content: flex-end; }
.ds-cals { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 18px; }
.ds-cal h3 { margin: 0 0 6px; font-size: 15px; text-transform: capitalize; }
.ds-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.ds-h { text-align: center; font-size: 11px; color: var(--muted); font-weight: 600; }
.ds-d { aspect-ratio: 1; min-height: 34px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); color: var(--fg); font: inherit; font-size: 14px; cursor: pointer; display: grid; place-items: center; padding: 0; font-variant-numeric: tabular-nums; }
.ds-d.we { background: color-mix(in srgb, var(--muted) 8%, var(--surface)); }
.ds-d.today { outline: 2px solid var(--accent); outline-offset: 1px; }
.ds-d:disabled { opacity: .35; cursor: default; }
.ds-d.ok { background: var(--ok); border-color: var(--ok); color: #fff; font-weight: 700; }
.ds-d.no { background: var(--danger); border-color: var(--danger); color: #fff; font-weight: 700; }
.ds-leg { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; font-size: 13px; color: var(--muted); margin-top: 12px; }
.ds-leg .ds-d { width: 24px; min-height: 24px; font-size: 12px; cursor: default; }
.ds-m { min-width: 130px; text-align: center; text-transform: capitalize; }
.ds-t { border-collapse: collapse; font-size: 12px; width: 100%; }
.ds-t th, .ds-t td { border: 1px solid var(--line); padding: 3px 2px; text-align: center; min-width: 24px; }
.ds-t thead th { font-weight: 600; font-variant-numeric: tabular-nums; }
.ds-t thead small { display: block; color: var(--muted); font-size: 10px; }
.ds-t tbody th { text-align: left; white-space: nowrap; padding: 3px 8px; position: sticky; left: 0; background: var(--surface); font-weight: 600; }
.ds-t .we { background: color-mix(in srgb, var(--muted) 8%, var(--surface)); }
.ds-t th.today { color: var(--accent); }
.ds-t td.ok { background: color-mix(in srgb, var(--ok) 75%, var(--surface)); color: #fff; font-weight: 700; }
.ds-d.form { background: #7c3aed; border-color: #7c3aed; color: #fff; font-weight: 700; }
.seg button.b-form[aria-pressed="true"] { background: #7c3aed; border-color: #7c3aed; color: #fff; }
.ds-t td.form { background: color-mix(in srgb, #7c3aed 65%, var(--surface)); color: #fff; font-weight: 700; }
.ds-t td.no { background: color-mix(in srgb, var(--danger) 70%, var(--surface)); color: #fff; font-weight: 700; }
.ds-t .ds-sum td, .ds-t .ds-sum th { font-weight: 700; color: var(--ok); }
.ds-dl { font-size: 11px; font-weight: 600; color: var(--accent); background: color-mix(in srgb, var(--accent) 10%, var(--surface)); border-radius: 999px; padding: 2px 8px; text-transform: none; margin-left: 4px; vertical-align: middle; }
.ds-dl.closed { color: var(--muted); background: color-mix(in srgb, var(--muted) 12%, var(--surface)); }
.ds-cal.locked .ds-d.ok, .ds-cal.locked .ds-d.no, .ds-cal.locked .ds-d.form { opacity: .7; }
.stp-pharma { display: grid; gap: 6px; margin-top: 14px; padding-top: 12px; border-top: 1px dashed var(--line); font-size: 13px; }
.stp-ph-form { display: flex; gap: 8px; flex-wrap: wrap; }
.stp-ph-form input { flex: 1 1 260px; }
.invoice .sigs span { display: grid; justify-items: start; align-content: end; }
.invoice .sig-img { height: 54px; max-width: 170px; object-fit: contain; margin-bottom: 2px; }
.clinic .sched { margin-top: 10px; padding: 8px 12px; border-radius: 8px; background: color-mix(in srgb, var(--accent) 8%, var(--surface)); border: 1px solid color-mix(in srgb, var(--accent) 30%, var(--line)); font-size: 13px; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.clinic .sched.warn { background: color-mix(in srgb, var(--warn) 10%, var(--surface)); border-color: var(--warn); }
.stup .stp-n { width: 72px; text-align: right; }
.stup .stp-gap { color: var(--danger); font-weight: 700; }
.stup .stp-rs { display: grid; gap: 8px; margin-top: 10px; }
.stup .stp-rs label { display: grid; gap: 4px; font-size: 12px; color: var(--muted); }
.stup .stp-hist { margin-top: 8px; }
.stup .stp-prods-cfg summary { cursor: pointer; }
.stup .stp-prods-cfg input:not(.stp-n) { width: 100%; }
.stup tr.stp-off td { opacity: .55; }
.stup .stp-padd { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.stup .stp-padd #paLabel { flex: 1 1 240px; }
#rsSig { width: min(100%, 520px); height: 160px; border: 1px dashed var(--muted); border-radius: 10px; background: #fff; touch-action: none; cursor: crosshair; }
canvas.pen-on { border-style: solid !important; border-color: var(--accent) !important; }
.stup .stp-inc { display: block; font-size: 11px; color: var(--danger); font-weight: 600; }
.stup .stp-inc[hidden] { display: none; }
/* Prothèses : import Excel (même modèle que la comptabilité) */
.prosth .imp-step { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.prosth .imp-drop { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; padding: 18px; border: 2px dashed var(--line); border-radius: 12px; margin: 10px 0; }
.prosth .imp-drop.over { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 6%, var(--surface)); }
.prosth .imp-paste { flex-basis: 100%; }
.prosth .imp-paste textarea { width: 100%; margin: 6px 0; }
.prosth .imp-prev { max-height: 420px; overflow: auto; }

/* Messagerie interne */
.chatw .ch-warn { font-size: 13px; color: var(--muted); margin: 0 0 10px; }
.chatw .ch-wrap { display: grid; grid-template-columns: 280px 1fr; gap: 14px; height: calc(100vh - 230px); min-height: 420px; }
.chatw .ch-list { background: var(--surface); border: 1px solid var(--line); border-radius: 12px; padding: 10px; overflow: auto; display: flex; flex-direction: column; gap: 4px; }
.chatw .ch-list h3 { font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); margin: 8px 6px 2px; }
.chatw .ch-list input { margin: 2px 0 6px; }
.chatw .ch-item { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 0 8px; text-align: left; border: 0; background: none; padding: 7px 9px; border-radius: 8px; cursor: pointer; font: inherit; color: var(--fg); }
.chatw .ch-item small { grid-column: 1 / -1; color: var(--muted); font-size: 11px; }
.chatw .ch-item:hover { background: color-mix(in srgb, var(--accent) 7%, var(--surface)); }
.chatw .ch-item.on { background: color-mix(in srgb, var(--accent) 14%, var(--surface)); font-weight: 700; }
.chatw .ch-badge { background: var(--danger); color: #fff; border-radius: 999px; font-size: 11px; padding: 1px 7px; }
.chatw .ch-conv { background: var(--surface); border: 1px solid var(--line); border-radius: 12px; display: flex; flex-direction: column; min-height: 0; }
.chatw .ch-head { display: flex; align-items: baseline; gap: 10px; padding: 10px 14px; border-bottom: 1px solid var(--line); }
.chatw .ch-back { display: none; }
.chatw .ch-msgs { flex: 1; overflow: auto; padding: 12px 14px; display: flex; flex-direction: column; gap: 8px; }
.chatw .ch-day { align-self: center; font-size: 11px; color: var(--muted); background: color-mix(in srgb, var(--muted) 10%, var(--surface)); border-radius: 999px; padding: 2px 10px; margin: 6px 0; text-transform: capitalize; }
.chatw .ch-msg { max-width: 78%; align-self: flex-start; }
.chatw .ch-msg.mine { align-self: flex-end; }
.chatw .ch-meta { font-size: 11px; color: var(--muted); margin: 0 4px 2px; }
.chatw .ch-msg.mine .ch-meta { text-align: right; }
.chatw .ch-body { background: color-mix(in srgb, var(--muted) 9%, var(--surface)); border-radius: 12px; padding: 8px 12px; overflow-wrap: anywhere; line-height: 1.4; }
.chatw .ch-msg.mine .ch-body { background: var(--accent); color: var(--accent-fg); }
.chatw .ch-msg.mine .ch-body a { color: inherit; }
.chatw .ch-form { display: flex; gap: 8px; padding: 10px; border-top: 1px solid var(--line); }
.chatw .ch-form textarea { flex: 1; resize: vertical; min-height: 44px; font: inherit; }
.chatw .ch-empty, .chatw .ch-none { margin: auto; color: var(--muted); }
@media (max-width: 760px) {
  .chatw .ch-wrap { grid-template-columns: 1fr; height: calc(100vh - 260px); }
  .chatw .ch-conv { display: none; }
  body.chat-open .chatw .ch-list { display: none; }
  body.chat-open .chatw .ch-conv { display: flex; }
  .chatw .ch-back { display: inline-block; }
  .chatw .ch-msg { max-width: 92%; }
}

/* Planning paramédical d'hospitalisation */
.hospw .hp-tabs { margin-bottom: 12px; }
.hospw .hp-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin-bottom: 10px; }
.hospw .hp-bar .spacer { flex: 1; }
.hospw .hp-nav { display: inline-flex; align-items: center; gap: 8px; }
.hospw .hp-nav b { min-width: 140px; text-align: center; text-transform: capitalize; }
.hospw .hp-grid-wrap { max-height: 70vh; overflow: auto; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); }
.hospw .hp-grid { border-collapse: collapse; font-size: 12px; }
.hospw .hp-grid th, .hospw .hp-grid td { border: 1px solid var(--line); text-align: center; padding: 0; min-width: 30px; height: 26px; }
.hospw .hp-grid thead th { position: sticky; top: 0; background: var(--surface); z-index: 2; padding: 2px; font-variant-numeric: tabular-nums; }
.hospw .hp-grid thead th small { display: block; color: var(--muted); font-size: 10px; }
.hospw .hp-grid thead th.closed { background: color-mix(in srgb, var(--muted) 14%, var(--surface)); }
.hospw .hp-grid thead th.today { color: var(--accent); }
.hospw .hp-grid .hp-name { position: sticky; left: 0; background: var(--surface); z-index: 1; text-align: left; padding: 0 8px; white-space: nowrap; min-width: 170px; font-weight: 600; }
.hospw .hp-grid thead .hp-name { z-index: 3; }
.hospw .hp-grid tr.hp-g th { text-align: left; padding: 4px 8px; background: color-mix(in srgb, var(--accent) 8%, var(--surface)); font-size: 11px; letter-spacing: .06em; text-transform: uppercase; position: sticky; left: 0; }
.hospw .hp-open { display: block; margin: 2px auto 0; border: 0; border-radius: 4px; font-size: 9px; padding: 1px 3px; cursor: pointer; background: color-mix(in srgb, var(--muted) 25%, var(--surface)); color: var(--fg); }
.hospw .hp-open.on { background: color-mix(in srgb, var(--ok) 25%, var(--surface)); }
.hospw .hp-c { cursor: pointer; font-weight: 700; }
.hospw .hp-c:hover { outline: 2px solid var(--accent); outline-offset: -2px; }
.hospw .s-J { background: #dbeafe; color: #1e40af; } .hospw .s-N { background: #312e81; color: #fff; } .hospw .s-A { background: #fef3c7; color: #92400e; }
.hospw .hp-c.indispo:not(.s-J):not(.s-N):not(.s-A) { background: repeating-linear-gradient(135deg, color-mix(in srgb, var(--danger) 22%, var(--surface)) 0 4px, var(--surface) 4px 8px); }
.hospw .hp-c.dispo:not(.s-J):not(.s-N):not(.s-A) { background: color-mix(in srgb, var(--ok) 22%, var(--surface)); }
.hospw .hp-c.bad { box-shadow: inset 0 0 0 2px var(--danger); }
.hospw .hp-foot td { font-size: 9px; line-height: 1.1; padding: 2px; white-space: normal; }
.hospw .hp-foot td.miss { color: var(--danger); font-weight: 700; background: color-mix(in srgb, var(--danger) 8%, var(--surface)); }
.hospw .hp-foot td.ok { color: var(--ok); }
.hospw .hp-pop { position: fixed; left: 50%; bottom: 20px; transform: translateX(-50%); z-index: 50; display: flex; flex-wrap: wrap; gap: 10px; align-items: center; box-shadow: 0 8px 30px rgb(0 0 0 / .2); }
.hospw .hp-auto { margin-bottom: 10px; }
.hospw .hp-cal { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; max-width: 420px; }
.hospw .hp-cal .h { text-align: center; font-size: 11px; color: var(--muted); }
.hospw .hp-d { aspect-ratio: 1; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); font: inherit; cursor: pointer; color: var(--fg); }
.hospw .hp-d:disabled { opacity: .35; cursor: default; }
.hospw .hp-d.closed { background: color-mix(in srgb, var(--muted) 10%, var(--surface)); }
.hospw .hp-d.no { background: var(--danger); color: #fff; } .hospw .hp-d.yes { background: var(--ok); color: #fff; }
.hospw .ds-leg .hp-d { width: 24px; display: inline-grid; place-items: center; cursor: default; }
.hospw .hp-who { display: inline-grid; gap: 2px; font-size: 12px; color: var(--muted); }
.hospw .hp-mine { list-style: none; padding: 0; display: grid; gap: 6px; }
.hospw .hp-mine li { padding: 8px 10px; border-radius: 8px; }
.hospw .hp-syn td small { color: #92400e; }
.hospw tr.off td { opacity: .5; }
.hospw .hp-form { margin-bottom: 12px; }
.hospw .hp-acc { margin-bottom: 12px; border-color: var(--ok); }
.hospw .hp-days, .hospw .hp-who-pick { border: 1px solid var(--line); border-radius: 10px; padding: 8px 12px; margin: 10px 0; display: flex; flex-wrap: wrap; gap: 6px 16px; }
.hospw .hp-days legend, .hospw .hp-who-pick legend { font-size: 12px; color: var(--muted); padding: 0 4px; }
.hospw .hp-pick-g { flex: 1 1 220px; display: grid; gap: 2px; align-content: start; }
.hospw .hp-pick-g b { font-size: 11px; letter-spacing: .05em; text-transform: uppercase; color: var(--muted); }
.hospw .hp-per { margin: 0; padding-left: 18px; display: grid; gap: 4px; }
.hospw .hp-per { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 10px; padding: 0; }
.hospw .hp-per-p { border: 1px solid var(--line); border-radius: 10px; padding: 8px 12px; }
.hospw .hp-per-p ol { margin: 6px 0 0; padding-left: 20px; display: grid; gap: 4px; }
.hospw .hp-per-p ol li > span:first-child { margin-right: 4px; }
.hospw .hp-rk { display: inline-flex; gap: 2px; margin-left: 6px; vertical-align: middle; }
.hospw .hp-rk .btn { padding: 0 6px; min-height: 22px; font-size: 10px; }
.hospw .hp-lims { list-style: none; margin: 6px 0 0; padding: 0; display: grid; gap: 3px; font-size: 13px; }
.hospw .hp-badge { display: inline-block; min-width: 18px; padding: 0 5px; border-radius: 9px; background: var(--danger); color: #fff; font-size: 11px; line-height: 18px; text-align: center; }
.hospw .hp-agenda { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; margin-bottom: 8px; }
.hospw .hp-agenda .h { text-align: center; font-size: 11px; color: var(--muted); }
.hospw .hp-ag { position: relative; min-height: 64px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); padding: 4px 6px; text-align: left; font: inherit; color: var(--fg); display: grid; align-content: start; gap: 1px; }
.hospw .hp-ag.closed:not(.s-J):not(.s-N):not(.s-A) { background: color-mix(in srgb, var(--muted) 10%, var(--surface)); }
.hospw .hp-ag.today { box-shadow: inset 0 0 0 2px var(--accent); }
.hospw .hp-ag span { font-weight: 700; font-size: 13px; } .hospw .hp-ag small { font-size: 10px; opacity: .85; }
.hospw button.hp-ag { cursor: pointer; } .hospw button.hp-ag:hover { outline: 2px solid var(--accent); outline-offset: 1px; }
.hospw .hp-ag i { position: absolute; top: 3px; right: 6px; font-style: normal; font-weight: 700; }
.hospw .hp-xl { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.hospw .hp-x { display: flex; flex-wrap: wrap; gap: 8px 12px; justify-content: space-between; align-items: flex-start; border-top: 1px solid var(--line); padding-top: 8px; }
.hospw .hp-x:first-child { border-top: 0; padding-top: 0; }
.hospw .hp-x .ops { display: flex; gap: 6px; flex-wrap: wrap; }
.hospw .hp-cm { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: end; }
.hospw .tag.warn { background: color-mix(in srgb, #f59e0b 25%, var(--surface)); } .hospw .tag.bad { background: color-mix(in srgb, var(--danger) 20%, var(--surface)); }
@media (max-width: 560px) { .hospw .hp-ag small { display: none; } .hospw .hp-ag { min-height: 52px; padding: 3px; } }
.hospw .hp-dl { padding: 8px 12px; border-radius: 8px; margin: 0 0 8px; }
.hospw .hp-dl.on { background: color-mix(in srgb, var(--ok) 12%, var(--surface)); }
.hospw .hp-dl.off { background: color-mix(in srgb, var(--danger) 10%, var(--surface)); }
.hospw .hp-mailp { margin-bottom: 10px; display: grid; gap: 8px; }
.hospw .hp-full { display: grid; gap: 4px; }
.hospw .hp-full textarea, .hospw .hp-full input { width: 100%; font: inherit; }
.hospw .hp-prev { white-space: pre-wrap; background: var(--surface-2); padding: 10px; border-radius: 8px; font-family: inherit; font-size: 13px; line-height: 1.45; }
.hospw .hp-mailp .linkish { display: inline; margin-right: 6px; }
.hospw .hp-lv { margin-top: 6px; font-size: 11px; letter-spacing: .04em; text-transform: uppercase; color: var(--muted); }
/* Barre d'outils du planning paramédical : boutons et liens-boutons de même hauteur, alignés */
.hospw .hp-bar { align-items: center; }
.hospw .btn { display: inline-flex; align-items: center; justify-content: center; gap: 4px; box-sizing: border-box; white-space: nowrap; line-height: 1.2; vertical-align: middle; }
.hospw .hp-bar .btn { height: 34px; min-height: 34px; padding: 0 12px; }
.hospw a.btn { text-decoration: none; color: var(--fg); }
.hospw .actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
@media (max-width: 700px) { .hospw .hp-bar .spacer { display: none; } .hospw .hp-bar .btn { flex: 1 1 auto; } }
/* Onglets du planning paramédical : même largeur, sur toute la barre, alignés */
.hospw .hp-tabs { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; width: 100%; }
.hospw .hp-tabs button { display: inline-flex; align-items: center; justify-content: center; gap: 6px; white-space: nowrap; min-height: 38px; padding: 6px 10px; }
.hospw .hp-tabs button + button { border-left: 1px solid var(--line); }
.hospw .hp-tabs .hp-badge { line-height: 18px; }
@media (max-width: 760px) {
  .hospw .hp-tabs { grid-auto-flow: row; grid-template-columns: repeat(3, 1fr); }
  .hospw .hp-tabs button { white-space: normal; text-align: center; font-size: 13px; border-top: 1px solid var(--line); margin-top: -1px; }
  .hospw .hp-tabs button:nth-child(3n + 1) { border-left: 0; }
}
/* Mon planning (le mois à venir) */
.hospw .hp-next-sum { margin-bottom: 10px; display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: center; }
.hospw .hp-wk { margin: 14px 0 6px; font-size: 13px; color: var(--muted); text-transform: uppercase; letter-spacing: .05em; }
.hospw .hp-next { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.hospw .hp-next li { display: grid; grid-template-columns: 190px 100px 110px 1fr; gap: 6px 12px; align-items: center; background: var(--surface); border: 1px solid var(--line); border-radius: 10px; padding: 8px 12px; }
.hospw .hp-next li.today { border-color: var(--accent); box-shadow: inset 3px 0 0 var(--accent); }
.hospw .hp-ns { display: inline-block; text-align: center; font-weight: 700; border-radius: 6px; padding: 3px 8px; }
@media (max-width: 760px) { .hospw .hp-next li { grid-template-columns: 1fr auto; } .hospw .hp-next li .hp-nw { grid-column: 1 / -1; } .hospw .hp-next li > .hint { display: none; } }
@media (max-width: 760px) { .hospw .hp-tabs.hp-t2 { grid-template-columns: repeat(2, 1fr); } .hospw .hp-tabs.hp-t2 button:nth-child(3n + 1) { border-left: 1px solid var(--line); } .hospw .hp-tabs.hp-t2 button:nth-child(2n + 1) { border-left: 0; } .hospw .hp-tabs button { min-height: 44px; } }
.hospw .hp-tabs { grid-auto-columns: minmax(0, 1fr); }
.hospw .hp-next-sum { justify-content: space-between; }
@media (max-width: 760px) { .hospw .hp-tabs { grid-template-columns: repeat(3, minmax(0, 1fr)); } .hospw .hp-tabs.hp-t2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .hospw .hp-tabs button { margin-top: 0; border-top: 0; border-bottom: 1px solid var(--line); } }
/* Mon agenda : postes en couleur (même code que la grille) */
.hospw .hp-ag.s-J { background: #dbeafe; color: #1e40af; border-color: #bfdbfe; }
.hospw .hp-ag.s-N { background: #312e81; color: #fff; border-color: #312e81; }
.hospw .hp-ag.s-A { background: #fef3c7; color: #92400e; border-color: #fde68a; }
.stp-saved { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; padding: 10px; border: 1px dashed var(--line); border-radius: 10px; background: #fff; }
.stp-saved img { max-height: 90px; max-width: 280px; }
/* Synthèse par chirurgien */
.surg-scope { display: inline-flex; gap: 6px; align-items: center; margin-left: 12px; font-size: 13px; color: var(--muted); }
.surg-t .surg-ratio { position: relative; min-width: 120px; }
.surg-t .surg-ratio .bar { position: absolute; left: 0; top: 6px; bottom: 6px; background: color-mix(in srgb, var(--accent) 16%, transparent); border-radius: 4px; }
.surg-t .surg-ratio b { position: relative; }
.surg-t td small { display: block; }
.surg-t tr.tot td { border-top: 2px solid var(--line); }
/* Desiderata : jours d'absence (hachurés) */
.ds-t td.abs, .ds-d.abs, .ds-abs-key { background-image: repeating-linear-gradient(135deg, color-mix(in srgb, var(--muted) 45%, transparent) 0 2px, transparent 2px 6px); }
.ds-t td.abs:not(.ok):not(.no) { background-color: color-mix(in srgb, var(--muted) 14%, var(--surface)); }
.ds-abs-key { display: inline-block; width: 14px; height: 14px; border: 1px solid var(--line); vertical-align: middle; margin-right: 4px; }
/* Paiements → remplaçants : demi-journées corrigeables à la main */
.hon input.rh-in { width: 72px !important; min-width: 0; display: inline-block; text-align: right; padding: 3px 6px; }
.rh-in.manual { border-color: var(--warn, #b45309); background: color-mix(in srgb, #f59e0b 10%, var(--surface)); font-weight: 700; }
td.num small.hint { display: block; font-size: 11px; }
/* Paiements → remplaçants : message envoyé au paiement */
.rtpl { margin-top: 10px; border-top: 1px dashed var(--line); padding-top: 8px; }
.rtpl > summary { cursor: pointer; color: var(--accent); font-weight: 600; }
.rtpl label { display: grid; gap: 4px; margin-top: 8px; } .rtpl .actions { display: flex; gap: 8px; margin-top: 8px; }
/* Paiements : montant modifiable */
.hon input.amt-in { width: 110px !important; min-width: 0; display: inline-block; text-align: right; padding: 3px 6px; font-weight: 700; }
.hon input.amt-in.manual { border-color: var(--warn, #b45309); background: color-mix(in srgb, #f59e0b 10%, var(--surface)); }
/* Bouton RIB : puce NEW si le RIB a changé depuis le dernier paiement */
.rib-btn { position: relative; }
.rib-new { margin-left: 5px; padding: 1px 5px; border-radius: 999px; background: #c62828; color: #fff; font-size: 9.5px; font-weight: 800; letter-spacing: .04em; vertical-align: 1px; }
.surg-sort { font: inherit; font-size: inherit; font-weight: 700; color: var(--accent); border: 1px solid var(--line); border-radius: 8px; padding: 0 6px; background: var(--surface); }
