/* Espace Facturation — styles propres (préfixe .bl-), appuyés sur les couleurs et polices du logiciel. */

:root{
  --bl-ok:#1E8E6B; --bl-ok-bg:#E4F5EE;
  --bl-late:#C8372D; --bl-late-bg:#FDECEA;
  --bl-wait:#8A6100; --bl-wait-bg:#FFF3D1;
  --bl-draft:#52667A; --bl-draft-bg:#EAF0F6;
  --bl-info:#0F6FCB; --bl-info-bg:#E5F1FE;
  --bl-row:#F7FAFD;
}
/* Le tiroir, les fenêtres et les messages sont ajoutés à <body> : ils partagent la base de .bl. */
.bl,.bl-drawer,.bl-modal-back,.bl-toast{font-size:14px; color:var(--ink);}
.bl{display:grid; grid-template-columns:208px minmax(0,1fr); gap:28px; align-items:start;}
.bl *,.bl-drawer *,.bl-modal-back *{box-sizing:border-box;}
.bl button,.bl-drawer button,.bl-modal-back button,.bl input,.bl select,.bl textarea,.bl-drawer input,.bl-drawer select,.bl-modal-back input,.bl-modal-back select,.bl-modal-back textarea{font-family:inherit;}
.bl-num{font-variant-numeric:tabular-nums; white-space:nowrap;}
.bl-mono{font-family:'IBM Plex Mono',monospace; font-size:12.5px;}
.bl-muted{color:var(--steel);}
.bl-faint{color:#8C9DAE;}
.bl-right{text-align:right;}

/* ---------- rail ---------- */
.bl-rail{position:sticky; top:84px; display:flex; flex-direction:column; gap:2px;}
.bl-rail-group{margin:14px 0 4px 10px; font-size:12px; color:#8C9DAE; font-weight:500;}
.bl-rail-group:first-child{margin-top:0;}
.bl-rail button.bl-navlink{display:flex; align-items:center; justify-content:space-between; gap:8px; width:100%; text-align:left; background:transparent; border:none; border-radius:6px; padding:8px 10px; font-size:14px; color:var(--steel); cursor:pointer;}
.bl-rail button.bl-navlink:hover{background:#EDF3F9; color:var(--ink);}
.bl-rail button.bl-navlink.active{background:var(--ink); color:#fff;}
.bl-rail .bl-count{font-size:11.5px; min-width:20px; text-align:center; padding:1px 6px; border-radius:10px; background:#E4ECF4; color:var(--ink);}
.bl-rail .bl-count.hot{background:var(--bl-late); color:#fff;}
.bl-navlink.active .bl-count{background:rgba(255,255,255,.22); color:#fff;}
.bl-lockbox{margin-top:18px; padding:10px; border:1px solid var(--line); border-radius:8px; background:var(--paper); font-size:12.5px; color:var(--steel);}
.bl-lockbox b{display:block; color:var(--ink); font-weight:600; margin-bottom:2px;}
.bl-lockbox button{margin-top:8px; width:100%;}

/* ---------- page ---------- */
.bl-main{min-width:0;}
.bl-head{display:flex; align-items:flex-end; justify-content:space-between; gap:14px; flex-wrap:wrap; margin-bottom:18px;}
.bl-head h2{font-family:'Fredoka',sans-serif; font-size:24px; font-weight:600; line-height:1.15;}
.bl-head p{margin:4px 0 0; color:var(--steel); font-size:13.5px; max-width:60ch;}
.bl-actions{display:flex; gap:8px; flex-wrap:wrap; align-items:center;}

/* ---------- boutons ---------- */
.bl-btn{display:inline-flex; align-items:center; justify-content:center; gap:6px; background:var(--paper); border:1px solid #C5D3E0; color:var(--ink); border-radius:6px; padding:8px 14px; font-size:13.5px; font-weight:500; cursor:pointer; text-decoration:none; line-height:1.2; white-space:nowrap;}
.bl-btn:hover{border-color:var(--ink);}
.bl-btn:disabled{opacity:.5; cursor:not-allowed;}
.bl-btn.primary{background:var(--brand); border-color:var(--brand); color:#fff;}
.bl-btn.primary:hover{background:var(--brand-deep); border-color:var(--brand-deep);}
.bl-btn.dark{background:var(--ink); border-color:var(--ink); color:#fff;}
.bl-btn.danger{color:var(--bl-late); border-color:#EBB9B4;}
.bl-btn.danger:hover{border-color:var(--bl-late);}
.bl-btn.small{padding:5px 10px; font-size:12.5px;}
.bl-btn.link{border-color:transparent; background:transparent; color:var(--brand-deep); padding:5px 6px;}
.bl-btn:focus-visible,.bl-navlink:focus-visible,.bl-tab:focus-visible,.bl-row:focus-visible{outline:2px solid var(--brand); outline-offset:2px;}

/* ---------- surfaces ---------- */
.bl-panel{background:var(--paper); border:1px solid var(--line); border-radius:8px;}
.bl-panel + .bl-panel{margin-top:16px;}
.bl-panel-h{display:flex; align-items:center; justify-content:space-between; gap:10px; padding:14px 18px; border-bottom:1px solid var(--line);}
.bl-panel-h h3{font-family:'Fredoka',sans-serif; font-size:16px; font-weight:600;}
.bl-panel-b{padding:16px 18px;}
.bl-note{font-size:13px; color:var(--steel); margin:0 0 12px;}
.bl-empty{padding:34px 18px; text-align:center; color:var(--steel); font-size:14px;}
.bl-empty b{display:block; color:var(--ink); font-size:15px; margin-bottom:4px;}
.bl-alert{border-radius:6px; padding:10px 14px; font-size:13.5px; margin-bottom:14px; border:1px solid;}
.bl-alert.warn{background:var(--bl-wait-bg); border-color:#EAD49A; color:#5C4300;}
.bl-alert.bad{background:var(--bl-late-bg); border-color:#F0B8B2; color:#7B1D16;}
.bl-alert.ok{background:var(--bl-ok-bg); border-color:#A9DCC8; color:#0F5F46;}
.bl-alert.info{background:var(--bl-info-bg); border-color:#B5D6F6; color:#0B3F73;}
.bl-alert ul{margin:6px 0 0 18px; padding:0;}

/* ---------- formulaires ---------- */
.bl-field{margin-bottom:14px;}
.bl-field > label{display:block; font-size:13px; color:var(--steel); margin-bottom:5px; font-weight:500;}
.bl-field input,.bl-field select,.bl-field textarea,.bl-input{width:100%; border:1px solid #C5D3E0; border-radius:6px; padding:8px 10px; font:inherit; font-size:14px; background:#fff; color:var(--ink);}
.bl-field textarea{min-height:130px; resize:vertical; line-height:1.45;}
.bl-field input:focus,.bl-field select:focus,.bl-field textarea:focus,.bl-input:focus{outline:2px solid var(--brand); outline-offset:0; border-color:var(--brand);}
.bl-row2{display:grid; grid-template-columns:1fr 1fr; gap:14px;}
.bl-row3{display:grid; grid-template-columns:repeat(3,1fr); gap:14px;}
.bl-hint{font-size:12.5px; color:var(--steel); margin-top:4px;}
.bl-check{display:flex; gap:8px; align-items:flex-start; font-size:14px; cursor:pointer;}
.bl-check[hidden]{display:none;}
.bl-check input,.bl-field input[type=radio],.bl-field input[type=checkbox]{width:auto; padding:0; margin-top:3px; flex:none;}
.bl-field .bl-check{margin-bottom:0;}

/* ---------- filtres + onglets ---------- */
.bl-tabs{display:flex; gap:2px; border-bottom:1px solid var(--line); overflow-x:auto; margin-bottom:0;}
.bl-tab{background:transparent; border:none; border-bottom:2px solid transparent; padding:10px 14px; font-size:14px; color:var(--steel); cursor:pointer; white-space:nowrap; text-align:left;}
.bl-tab:hover{color:var(--ink);}
.bl-tab.active{color:var(--ink); border-bottom-color:var(--brand); font-weight:600;}
.bl-tab small{display:block; font-size:12px; font-weight:400; color:#8C9DAE; margin-top:1px;}
.bl-tab.late small{color:var(--bl-late);}
.bl-filters{display:flex; gap:10px; flex-wrap:wrap; align-items:end; padding:12px 14px; border-bottom:1px solid var(--line); background:var(--bl-row);}
.bl-filters .bl-field{margin:0; min-width:140px;}
.bl-filters input,.bl-filters select{height:38px;}
.bl-filters .grow{flex:1; min-width:190px;}

/* ---------- tables ---------- */
.bl-tablewrap{overflow-x:auto;}
table.bl-table{width:100%; border-collapse:collapse; font-size:14px;}
.bl-table th{font-size:12.5px; font-weight:500; color:#8C9DAE; text-align:left; padding:9px 12px; border-bottom:1px solid var(--line); white-space:nowrap; background:var(--paper);}
.bl-table th.sortable{cursor:pointer; user-select:none;}
.bl-table th.sortable:hover{color:var(--ink);}
.bl-table td{padding:11px 12px; border-bottom:1px solid #EAF0F6; vertical-align:middle;}
.bl-table tr.bl-row{cursor:pointer;}
.bl-table tr.bl-row:hover td{background:var(--bl-row);}
.bl-table tr.bl-row.sel td{background:var(--bl-info-bg);}
.bl-table td.r,.bl-table th.r{text-align:right;}
.bl-table .client{font-weight:500;}
.bl-table .sub{display:block; font-size:12.5px; color:var(--steel); font-weight:400;}
.bl-more{padding:12px; text-align:center;}

/* ---------- pastilles de statut ---------- */
.bl-pill{display:inline-flex; align-items:center; gap:5px; padding:2px 9px; border-radius:11px; font-size:12.5px; font-weight:500; white-space:nowrap;}
.bl-pill::before{content:''; width:6px; height:6px; border-radius:50%; background:currentColor;}
.bl-pill.draft{background:var(--bl-draft-bg); color:var(--bl-draft);}
.bl-pill.unpaid{background:var(--bl-wait-bg); color:var(--bl-wait);}
.bl-pill.partial{background:var(--bl-info-bg); color:var(--bl-info);}
.bl-pill.paid{background:var(--bl-ok-bg); color:var(--bl-ok);}
.bl-pill.overdue{background:var(--bl-late-bg); color:var(--bl-late);}
.bl-pill.credited,.bl-pill.credit_note,.bl-pill.credit_draft{background:var(--bl-draft-bg); color:var(--bl-draft);}
.bl-late-days{display:block; font-size:12px; color:var(--bl-late); margin-top:2px;}
.bl-ind{display:inline-block; font-size:12px; color:#8C9DAE; margin-left:6px;}
.bl-ind.ok{color:var(--bl-ok);} .bl-ind.bad{color:var(--bl-late);}

/* ---------- tableau de bord ---------- */
.bl-ribbon-wrap{padding:20px 20px 18px;}
.bl-ribbon-title{display:flex; justify-content:space-between; align-items:baseline; gap:10px; flex-wrap:wrap; margin-bottom:12px;}
.bl-ribbon-title h3{font-family:'Fredoka',sans-serif; font-size:17px; font-weight:600;}
.bl-ribbon-total{font-family:'Fredoka',sans-serif; font-size:30px; font-weight:600; letter-spacing:-.01em;}
.bl-ribbon{display:flex; height:30px; border-radius:6px; overflow:hidden; background:#EAF0F6; gap:2px;}
.bl-seg{border:none; padding:0; min-width:0; cursor:pointer; transition:filter .12s; position:relative;}
.bl-seg:hover,.bl-seg:focus-visible{filter:brightness(.9);}
.bl-seg:focus-visible{outline:2px solid var(--ink); outline-offset:-2px;}
.bl-seg[data-k="notDue"]{background:#8DC3F5;} .bl-seg[data-k="d1_30"]{background:#F2C14E;}
.bl-seg[data-k="d31_60"]{background:#EE9B3F;} .bl-seg[data-k="d61_90"]{background:#E0574B;} .bl-seg[data-k="d90"]{background:#A12A2A;}
.bl-legend{display:grid; grid-template-columns:repeat(5,1fr); gap:8px; margin-top:12px;}
.bl-legend button{background:transparent; border:none; text-align:left; padding:4px 0; cursor:pointer; border-top:3px solid; border-radius:0; padding-top:7px;}
.bl-legend button:hover b{text-decoration:underline;}
.bl-legend [data-k="notDue"]{border-color:#8DC3F5;} .bl-legend [data-k="d1_30"]{border-color:#F2C14E;}
.bl-legend [data-k="d31_60"]{border-color:#EE9B3F;} .bl-legend [data-k="d61_90"]{border-color:#E0574B;} .bl-legend [data-k="d90"]{border-color:#A12A2A;}
.bl-legend span{display:block; font-size:12.5px; color:var(--steel);}
.bl-legend b{display:block; font-size:15px; font-weight:600; font-variant-numeric:tabular-nums;}
.bl-legend small{font-size:12px; color:#8C9DAE;}
.bl-figures{display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line);}
.bl-figure{padding:14px 18px; border-right:1px solid var(--line); background:transparent; border-top:none; border-bottom:none; border-left:none; text-align:left; cursor:pointer;}
.bl-figure:last-child{border-right:none;}
.bl-figure:hover{background:var(--bl-row);}
.bl-figure span{display:block; font-size:13px; color:var(--steel);}
.bl-figure b{display:block; font-family:'Fredoka',sans-serif; font-size:22px; font-weight:600; font-variant-numeric:tabular-nums; margin:2px 0;}
.bl-figure small{font-size:12.5px; color:var(--steel);}
.bl-delta.up{color:var(--bl-ok);} .bl-delta.down{color:var(--bl-late);}
.bl-grid2{display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); gap:16px; margin-top:16px;}
.bl-grid2 > .bl-panel{margin-top:0;}
.bl-todo{list-style:none; margin:0; padding:0;}
.bl-todo li{display:flex; gap:12px; align-items:center; justify-content:space-between; padding:11px 18px; border-bottom:1px solid #EAF0F6;}
.bl-todo li:last-child{border-bottom:none;}
.bl-todo .t{font-size:14px;} .bl-todo .t small{display:block; color:var(--steel); font-size:12.5px;}
.bl-todo .n{font-family:'Fredoka',sans-serif; font-size:18px; font-weight:600; min-width:28px; text-align:right;}
.bl-bars text{font-size:11px; fill:#8C9DAE;}
.bl-chart-legend{display:flex; gap:16px; font-size:12.5px; color:var(--steel); margin-bottom:6px;}
.bl-chart-legend i{display:inline-block; width:10px; height:10px; border-radius:2px; margin-right:5px; vertical-align:-1px;}
.bl-debtor{display:flex; justify-content:space-between; gap:10px; padding:9px 18px; border-bottom:1px solid #EAF0F6; font-size:14px;}
.bl-debtor:last-child{border-bottom:none;}
.bl-debtor small{display:block; color:var(--steel); font-size:12.5px;}

/* ---------- tiroir (détail) ---------- */
.bl-scrim{position:fixed; inset:0; background:rgba(22,50,79,.38); z-index:70; animation:bl-fade .14s ease-out;}
.bl-drawer{position:fixed; top:0; right:0; bottom:0; width:min(800px,100%); background:var(--bg); z-index:71; display:flex; flex-direction:column; box-shadow:-12px 0 36px rgba(22,50,79,.18); animation:bl-slide .18s ease-out;}
.bl-drawer-h{background:var(--paper); border-bottom:1px solid var(--line); padding:14px 20px;}
.bl-drawer-h .top{display:flex; align-items:flex-start; justify-content:space-between; gap:10px;}
.bl-drawer-h h3{font-family:'Fredoka',sans-serif; font-size:20px; font-weight:600; line-height:1.2;}
.bl-drawer-h .sub{color:var(--steel); font-size:13.5px; margin-top:3px;}
.bl-drawer-h .bl-actions{margin-top:12px;}
.bl-drawer-body{flex:1; overflow-y:auto; padding:18px 20px 40px;}
.bl-close{background:transparent; border:none; font-size:24px; line-height:1; color:var(--steel); cursor:pointer; padding:2px 8px; border-radius:6px;}
.bl-close:hover{background:#EDF3F9; color:var(--ink);}
.bl-pdf{width:100%; height:68vh; border:1px solid var(--line); border-radius:6px; background:#fff;}
.bl-pdf-fallback{display:none; text-align:center; padding:26px 16px; border:1px dashed #C5D3E0; border-radius:8px; background:var(--paper);}
.bl-pdf-fallback p{margin:0 0 12px; color:var(--steel);}
@media (max-width:760px){.bl-pdf{display:none;} .bl-pdf-fallback{display:block;}}
.bl-kv{display:grid; grid-template-columns:150px 1fr; gap:6px 14px; font-size:14px; margin:0;}
.bl-kv dt{color:var(--steel);} .bl-kv dd{margin:0;}
.bl-totals{margin-left:auto; min-width:240px; max-width:320px; font-size:14px;}
.bl-totals div{display:flex; justify-content:space-between; padding:3px 0;}
.bl-totals .grand{font-family:'Fredoka',sans-serif; font-size:18px; font-weight:600; border-top:1px solid var(--line); margin-top:6px; padding-top:8px;}
.bl-totals .due{color:var(--bl-late); font-weight:600;}
.bl-timeline{list-style:none; margin:0; padding:0 0 0 14px; border-left:2px solid var(--line);}
.bl-timeline li{position:relative; padding:0 0 14px 16px;}
.bl-timeline li::before{content:''; position:absolute; left:-22px; top:5px; width:10px; height:10px; border-radius:50%; background:var(--paper); border:2px solid var(--brand);}
.bl-timeline li.failed::before{border-color:var(--bl-late);}
.bl-timeline b{font-weight:600;} .bl-timeline small{display:block; color:var(--steel); font-size:12.5px;}
.bl-lines input,.bl-lines select{border:1px solid #C5D3E0; border-radius:5px; padding:6px 8px; font:inherit; font-size:13.5px; width:100%; background:#fff;}
.bl-lines td{padding:5px 6px; vertical-align:middle;}
.bl-lines td.sec input{font-weight:600; background:var(--bl-row);}

/* ---------- fenêtres ---------- */
.bl-modal-back{position:fixed; inset:0; background:rgba(22,50,79,.5); z-index:90; display:flex; align-items:center; justify-content:center; padding:16px; animation:bl-fade .12s ease-out;}
.bl-modal{background:var(--paper); border-radius:10px; width:min(560px,100%); max-height:92vh; overflow-y:auto; padding:22px; box-shadow:0 24px 60px rgba(22,50,79,.35);}
.bl-modal.wide{width:min(720px,100%);}
.bl-modal h3{font-family:'Fredoka',sans-serif; font-size:19px; font-weight:600; margin-bottom:6px;}
.bl-modal .bl-foot{display:flex; justify-content:flex-end; gap:8px; margin-top:16px;}
.bl-err{color:var(--bl-late); font-size:13.5px; min-height:20px; margin-top:6px; white-space:pre-line;}
.bl-ok-note{color:var(--bl-ok); font-size:13.5px;}

/* ---------- verrou ---------- */
.bl-lockscreen{grid-column:1 / -1; max-width:440px; margin:40px auto; text-align:center;}
.bl-lockscreen .bl-panel-b{padding:30px 28px;}
.bl-padlock{width:54px; height:54px; margin:0 auto 14px; display:block;}
.bl-lockscreen h2{font-family:'Fredoka',sans-serif; font-size:22px; font-weight:600; margin-bottom:6px;}
.bl-lockscreen p{color:var(--steel); font-size:14px; margin:0 0 16px;}
.bl-lockscreen .bl-field{text-align:left;}
.bl-lockscreen input{text-align:center; letter-spacing:.12em; font-size:17px;}

/* ---------- divers ---------- */
.bl-steps{display:flex; gap:6px; flex-wrap:wrap; margin-bottom:14px;}
.bl-chip{display:inline-flex; align-items:center; gap:6px; font-size:12.5px; padding:2px 10px; border-radius:11px; background:var(--bl-draft-bg); color:var(--bl-draft);}
.bl-conf{display:inline-block; font-size:12px; padding:1px 8px; border-radius:10px;}
.bl-conf.high{background:var(--bl-ok-bg); color:var(--bl-ok);} .bl-conf.medium{background:var(--bl-wait-bg); color:var(--bl-wait);}
.bl-conf.low,.bl-conf.none{background:var(--bl-draft-bg); color:var(--bl-draft);}
.bl-toast{position:fixed; left:50%; bottom:24px; transform:translateX(-50%); background:var(--ink); color:#fff; padding:10px 18px; border-radius:8px; font-size:14px; z-index:100; box-shadow:0 8px 24px rgba(22,50,79,.3); animation:bl-fade .15s ease-out;}
.bl-toast.bad{background:var(--bl-late);}
.bl-spin{color:var(--steel); padding:30px; text-align:center;}
.bl-code{font-family:'IBM Plex Mono',monospace; font-size:12.5px; background:#EEF3F8; padding:2px 6px; border-radius:4px; word-break:break-all;}
.bl-steplist{margin:0 0 0 18px; padding:0; font-size:14px; line-height:1.55;}
.bl-steplist li{margin-bottom:6px;}

@keyframes bl-fade{from{opacity:0}to{opacity:1}}
@keyframes bl-slide{from{transform:translateX(24px);opacity:.4}to{transform:none;opacity:1}}
@media (prefers-reduced-motion: reduce){.bl-scrim,.bl-drawer,.bl-modal-back,.bl-toast{animation:none;}}

@media (max-width: 900px){
  .bl{grid-template-columns:1fr; gap:14px;}
  .bl-rail{position:static; flex-direction:row; overflow-x:auto; gap:4px; padding-bottom:4px;}
  .bl-rail-group{display:none;}
  .bl-rail button.bl-navlink{width:auto; white-space:nowrap; border:1px solid var(--line); background:var(--paper);}
  .bl-rail button.bl-navlink.active{border-color:var(--ink);}
  .bl-lockbox{display:none;}
  .bl-figures{grid-template-columns:1fr 1fr;}
  .bl-figure:nth-child(2){border-right:none;} .bl-figure:nth-child(-n+2){border-bottom:1px solid var(--line);}
  .bl-grid2{grid-template-columns:1fr;}
  .bl-legend{grid-template-columns:repeat(2,1fr);}
  .bl-row2,.bl-row3{grid-template-columns:1fr;}
  .bl-kv{grid-template-columns:1fr; gap:0;} .bl-kv dt{margin-top:8px; font-size:12.5px;}
}

/* ---------- Hôtels, articles et tarifs ---------- */
.bl-tag{display:inline-flex; align-items:center; padding:2px 8px; border-radius:11px; font-size:12.5px; font-weight:500; white-space:nowrap; background:var(--bl-draft-bg); color:var(--bl-draft);}
.bl-tag.ok{background:var(--bl-ok-bg); color:var(--bl-ok);}
.bl-tag.bad{background:var(--bl-late-bg); color:var(--bl-late);}
.bl-tag.info{background:var(--bl-info-bg); color:var(--bl-info);}
.bl-tag.draft{background:var(--bl-draft-bg); color:var(--bl-draft);}
.bl-details{padding:0;}
.bl-details > summary{cursor:pointer; padding:13px 18px; font-weight:500; list-style:revert;}
.bl-details > summary:focus-visible{outline:2px solid var(--brand); outline-offset:-2px; border-radius:6px;}
.bl-details[open] > summary{border-bottom:1px solid var(--line);}
.bl-linkbtn{background:none; border:none; padding:0; font:inherit; font-weight:500; color:var(--ink); cursor:pointer; text-align:left; text-decoration:underline; text-decoration-color:#C5D3E0; text-underline-offset:3px;}
.bl-linkbtn:hover{color:var(--brand-deep); text-decoration-color:currentColor;}
.bl-linkbtn:focus-visible{outline:2px solid var(--brand); outline-offset:2px; border-radius:3px;}
.bl-checklist{display:grid; gap:7px; padding:12px 14px; margin-top:10px; border:1px solid var(--line); border-radius:6px; background:var(--bl-row); max-height:320px; overflow-y:auto;}
.bl-checklist[hidden]{display:none;}
.bl-checkgroup{font-size:12.5px; font-weight:600; color:var(--steel); margin-top:6px;}
.bl-checkgroup:first-child{margin-top:0;}
.bl-token{display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; padding:10px 0; border-bottom:1px solid #EAF0F6;}
.bl-token:last-of-type{border-bottom:none;}
.bl-tokenval{display:block; margin-top:4px; padding:5px 8px; background:#EEF3F8; border-radius:4px; word-break:break-all;}
.bl-prices tr.neg td{background:var(--bl-info-bg);}
.bl-prices tr.off td{color:#8C9DAE;}
.bl-prices td .sub{font-size:12px;}

/* grille des tarifs : articles en lignes, hôtels en colonnes, deux premières colonnes figées */
.bl-matrixwrap{overflow:auto; max-height:68vh; border-top:1px solid var(--line);}
.bl-matrix{border-collapse:separate; border-spacing:0; font-size:13.5px; min-width:100%;}
.bl-matrix th,.bl-matrix td{border-bottom:1px solid #EAF0F6; border-right:1px solid #EAF0F6; padding:0; background:var(--paper); text-align:right;}
.bl-matrix thead th{position:sticky; top:0; z-index:3; font-size:12.5px; font-weight:500; color:var(--steel); padding:8px 10px; vertical-align:bottom; text-align:right; min-width:104px; max-width:150px;}
.bl-matrix thead th.art,.bl-matrix thead th.cat{z-index:5;}
.bl-matrix th.art,.bl-matrix td.cat{position:sticky; z-index:2;}
.bl-matrix th.art{left:0; width:220px; min-width:220px; max-width:220px; text-align:left; padding:7px 10px;}
.bl-matrix td.cat,.bl-matrix thead th.cat{left:220px; width:92px; min-width:92px; padding:7px 10px; background:var(--bl-row); box-shadow:2px 0 0 var(--line);}
.bl-matrix th.art small{display:block; font-size:11.5px; font-weight:400; color:#8C9DAE;}
.bl-matrix th.cl button{background:none; border:none; padding:0; font:inherit; font-size:12.5px; color:var(--ink); font-weight:600; cursor:pointer; text-align:right; white-space:normal; line-height:1.25;}
.bl-matrix th.cl button:hover{text-decoration:underline;}
.bl-matrix th.cl button:focus-visible{outline:2px solid var(--brand); outline-offset:2px;}
.bl-matrix tr.grp th{position:sticky; left:0; text-align:left; font-size:12.5px; font-weight:600; color:var(--steel); background:var(--bl-row); padding:6px 10px;}
.bl-matrix td.neg{background:var(--bl-info-bg);}
.bl-matrix td.neg .bl-cell{font-weight:700; color:var(--bl-info);}
.bl-matrix td.neg .bl-cell small{display:block; font-size:11px; font-weight:500;}
.bl-matrix td.x{background:repeating-linear-gradient(135deg,#F3F6FA 0 5px,#E9EFF5 5px 6px);}
.bl-cell{position:relative; display:block; width:100%; height:100%; min-height:38px; padding:7px 10px; background:none; border:none; font:inherit; font-variant-numeric:tabular-nums; color:var(--ink); text-align:right; cursor:pointer;}
.bl-cell:hover{background:rgba(15,111,203,.09);}
.bl-cell:focus-visible{outline:2px solid var(--brand); outline-offset:-2px;}
.bl-cell i.up{position:absolute; top:5px; left:6px; width:7px; height:7px; border-radius:50%; background:var(--bl-wait);}
.bl-legend-line{display:flex; flex-wrap:wrap; gap:6px 20px; padding:10px 14px; border-top:1px solid var(--line); font-size:12.5px; color:var(--steel);}
.bl-legend-line i.k{display:inline-block; width:12px; height:12px; border-radius:3px; margin-right:6px; vertical-align:-2px; border:1px solid #D5E0EB;}
.bl-legend-line i.k.neg{background:var(--bl-info-bg); border-color:#B8D6F5;}
.bl-legend-line i.k.up{background:var(--bl-wait); border-radius:50%; width:9px; height:9px; margin:0 8px 0 1px; border:none; vertical-align:0;}
.bl-legend-line i.k.x{background:repeating-linear-gradient(135deg,#F3F6FA 0 3px,#DCE5EE 3px 4px);}
@media (max-width:760px){
  .bl-matrix th.art{width:150px; min-width:150px; max-width:150px;}
  .bl-matrix td.cat,.bl-matrix thead th.cat{left:150px; width:72px; min-width:72px; padding:7px 6px;}
  .bl-matrixwrap{max-height:62vh;}
}
@media (prefers-reduced-motion: reduce){.bl-cell{transition:none;}}

/* ---------- Bons de livraison ---------- */
.bl-tag.wait{background:var(--bl-wait-bg); color:var(--bl-wait);}
.bl-presets{display:flex; flex-wrap:wrap; align-items:center; gap:2px 6px; padding:8px 14px; border-bottom:1px solid var(--line); font-size:13px;}
.bl-presets .bl-muted{margin-left:auto; font-size:13px; text-align:right;}
.bl-table tr.bl-diff td{background:var(--bl-wait-bg);}
.bl-table td .sub.bl-num{display:block;}
@media (max-width:760px){.bl-presets .bl-muted{margin-left:0; flex-basis:100%; text-align:left;}}
