/* Habillage commun des grilles de préparation bios / support (Présence, Fonctionnel),
   aligné sur la grille RH (rh-grid.css). Présentation seule : aucune règle de saisie ici. */
body.bt-prep-look{--g-line:#c5ced9;--g-soft:#dce2ea;--g-panel:#f4f6f9;--g-surface:#fff;--g-ink:#18222e;--g-muted:#576577;--g-accent:#2a5a92;--g-accent-soft:#dce8f6;--g-we:#e9edf2;--g-hol:#fff0cc;--g-warn:#9a5b00;--g-good:#1e7b3a}
/* Barre d'outils : boîtes Pinceau / codes / Affichage, comme la palette RH */
body.bt-prep-look .bt-grid-tools{display:flex;flex-wrap:wrap;align-items:stretch;gap:8px 10px;padding:8px 12px;margin-top:10px;background:var(--g-panel);border:1px solid var(--g-line);border-radius:10px 10px 0 0;border-bottom:0}
body.bt-prep-look .bt-grid-tools>p.muted{flex:1 1 100%;order:9;margin:0!important}
body.bt-prep-look .code-palette.bt-pal{display:contents}
body.bt-prep-look .bt-pb,body.bt-prep-look .density-toolbar{border:1px solid var(--g-line);border-radius:8px;background:var(--g-surface);padding:5px 8px 7px;display:flex;flex-direction:column;gap:5px;min-width:0;margin:0}
body.bt-prep-look .bt-pb.bt-grow{flex:1 1 260px}
body.bt-prep-look .bt-pb h4{margin:0;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--g-muted);font-weight:600}
body.bt-prep-look .bt-chips{display:flex;flex-wrap:wrap;gap:5px;align-items:center}
body.bt-prep-look button.code-palette-btn{min-width:42px;padding:7px 8px;border:1px solid rgba(0,0,0,.28);border-radius:5px;background:var(--g-surface);color:var(--g-ink);font:600 12px/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;text-align:center;cursor:pointer;margin:0;min-height:0;width:auto}
body.bt-prep-look button.code-palette-btn.bt-has-color{background:color-mix(in srgb,var(--bt-c) 24%,#fff);border-color:color-mix(in srgb,var(--bt-c) 55%,#fff);color:color-mix(in srgb,var(--bt-c) 72%,#000)}
body.bt-prep-look button.code-palette-btn:hover{transform:translateY(-1px);box-shadow:0 2px 6px rgba(0,0,0,.2)}
body.bt-prep-look button.code-palette-btn.is-selected{outline:3px solid var(--g-accent);outline-offset:1px}
body.bt-prep-look button.code-palette-btn.is-selected:not(.bt-has-color){background:var(--g-accent-soft);border-color:var(--g-accent);color:var(--g-ink)}
body.bt-prep-look button.code-palette-clear{border-style:dashed;font-family:inherit;font-weight:500}
body.bt-prep-look .bt-cur{font:600 13px ui-monospace,Consolas,monospace;padding:5px 12px;min-width:56px;border:1px dashed var(--g-line);border-radius:6px;text-align:center;color:var(--g-muted)}
body.bt-prep-look .bt-cur.is-on{border-style:solid;border-color:var(--g-accent);color:var(--g-accent)}
body.bt-prep-look .bt-stop{background:#b3261e;border:1px solid #b3261e;color:#fff;font-weight:700;border-radius:6px;padding:6px 10px;cursor:pointer;width:auto;min-height:0;margin:0}
body.bt-prep-look .bt-stop[hidden]{display:none}
body.bt-prep-look .density-toolbar .density-toolbar__cluster{display:flex;flex-wrap:wrap;gap:5px;align-items:center}
body.bt-prep-look .density-toolbar .density-label{flex:1 1 100%;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--g-muted);font-weight:600}
body.bt-prep-look .density-toolbar{flex-direction:row;flex-wrap:wrap;align-items:center;gap:6px 12px}
body.bt-prep-look .planning-save-status{font-size:12px;padding:1px 8px;border-radius:4px}
body.bt-prep-look .planning-save-status.is-idle{color:var(--g-good)}
/* Grille : collée à la barre d'outils, mêmes fonds que la grille RH */
body.bt-prep-look .bt-grid-tools+.spreadsheet-scroll,body.bt-prep-look .bt-grid-tools~.spreadsheet-scroll--presence{border:1px solid var(--g-line);border-radius:0 0 10px 10px;margin-top:0!important}
body.bt-prep-look.planning-look-presence main table.spreadsheet thead th{background:var(--g-panel);color:var(--g-ink);font-weight:600;border-color:var(--g-soft)}
body.bt-prep-look.planning-look-presence main table.spreadsheet thead th.corner{background:var(--g-panel)}
body.bt-prep-look.planning-look-presence main table.spreadsheet tbody th.date-cell{background:var(--g-panel);border-color:var(--g-soft);font-weight:600;color:var(--g-ink)}
body.bt-prep-look.planning-look-presence main table.spreadsheet td.sheet-cell{border-color:var(--g-soft)}
body.bt-prep-look.planning-look-presence main table.spreadsheet tbody tr.weekend th.date-cell,
body.bt-prep-look.planning-look-presence main table.spreadsheet tbody tr.weekend td.sheet-cell{background:var(--g-we)}
body.bt-prep-look.planning-look-presence main table.spreadsheet tbody tr.jour-ferie th.date-cell,
body.bt-prep-look.planning-look-presence main table.spreadsheet tbody tr.jour-ferie td.sheet-cell{background:var(--g-hol)}
body.bt-prep-look.planning-look-presence main table.spreadsheet tbody tr.bt-today th.date-cell{box-shadow:inset 4px 0 0 var(--g-accent);color:var(--g-accent)}
/* Cases de présence : teinte du code (couleur définie dans Admin > Codes), texte lisible */
body.bt-prep-look.planning-look-presence main table.spreadsheet td.sheet-cell input.cell-input{font:600 11.5px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--g-ink);background:transparent;border:0;border-radius:0;box-shadow:none}
body.bt-prep-look.planning-look-presence main table.spreadsheet td.sheet-cell input.cell-input.is-saving{background:#fef3c7}
body.bt-prep-look.planning-look-presence main table.spreadsheet td.sheet-cell input.cell-input.is-error{background:#fee2e2}
body.bt-prep-look.planning-look-presence main table.spreadsheet td.sheet-cell.bt-has-color:not(.planning-presence-cell--post-validation-change):not(.sheet-cell--planning-out){background:color-mix(in srgb,var(--bt-c) 24%,#fff)}
body.bt-prep-look.planning-look-presence main table.spreadsheet td.sheet-cell.bt-has-color input.cell-input{color:color-mix(in srgb,var(--bt-c) 72%,#000)}
body.bt-prep-look.planning-look-presence main table.spreadsheet td.sheet-cell input.cell-input:focus{outline:2px solid var(--g-accent);outline-offset:-2px;background:color-mix(in srgb,var(--g-accent) 14%,transparent)}
/* Fonctionnel : listes sans flèche, centrées, comme une case de grille */
body.bt-prep-look.planning-look-presence .fonctionnel-table select.fonc-select{appearance:none;-webkit-appearance:none;background:transparent;text-align:center;text-align-last:center;font:600 11.5px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--g-ink);border:1px solid transparent;cursor:pointer;width:100%;max-width:none;min-width:44px;padding:0 2px}
body.bt-prep-look.planning-look-presence .fonctionnel-table select.fonc-select:hover{border-color:var(--g-line)}
body.bt-prep-look.planning-look-presence .fonctionnel-table select.fonc-select:focus{border-color:var(--g-accent);box-shadow:inset 0 0 0 1px var(--g-accent);background:var(--g-accent-soft)}
body.bt-prep-look.planning-look-presence main table.planning-presence-table select{font:600 11.5px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
/* Divers : une ligne au repos (elle fixait 91 px de haut à chaque jour), agrandie pendant la saisie */
body.bt-prep-look.planning-look-presence .fonctionnel-table textarea.fonc-divers{height:28px!important;min-height:28px!important;resize:none;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;transition:height .12s}
body.bt-prep-look.planning-look-presence .fonctionnel-table textarea.fonc-divers:focus{height:84px!important;white-space:normal;overflow:auto;position:relative;z-index:4}
@media print{body.bt-prep-look .bt-grid-tools{display:none}}
/* Grille Présence tenant sur un écran : la grille n'est pas dans .card, les règles « compact » d'app.css
   ne s'y appliquaient pas et la marge par défaut des cellules (10px 8px) doublait la hauteur des lignes. */
body.bt-prep-look .date-fr--bt{display:none}
body.bt-prep-look .bt-month-recap{display:none}
body.bt-prep-look.planning-look-presence main table.planning-presence-table tbody th.date-cell .date-fr--full,
body.bt-prep-look.planning-look-presence main table.planning-presence-table tbody th.date-cell .date-fr--compact{display:none!important}
body.bt-prep-look.planning-look-presence main table.planning-presence-table tbody th.date-cell .date-fr--bt{display:inline;white-space:nowrap;font-size:11px;text-transform:none}
body.bt-prep-look.planning-look-presence main table.planning-presence-table tbody th.date-cell{padding:0 6px;white-space:nowrap;vertical-align:middle;line-height:1.1}
body.bt-prep-look.planning-look-presence main table.planning-presence-table td.sheet-cell{padding:0 1px;height:20px;vertical-align:middle;line-height:1}
body.bt-prep-look.planning-look-presence main table.planning-presence-table td.sheet-cell input.cell-input{height:19px;min-height:0;padding:0 1px;line-height:19px}
body.bt-prep-look.planning-look-presence main table.planning-presence-table td.sheet-cell select.cell-input{height:18px;min-height:0;padding:0 2px;line-height:1;font-size:11px}
body.bt-prep-look.planning-look-presence main table.planning-presence-table td.sheet-cell .cell-form{margin:0}
body.bt-prep-look.planning-look-presence main table.planning-presence-table thead th{padding:2px 3px;line-height:1.1;font-size:10px;vertical-align:bottom}
body.bt-prep-look.planning-look-presence main table.planning-presence-table thead th.plage-head{padding:1px 2px;font-size:9.5px}
/* bt-live.js limite la grille à la hauteur restante sous les outils (~400 px) : on lui laisse tout l'écran,
   moins l'en-tête collant (--bt-head, mesuré par bt-prep-look.js) ; un défilement de page amène la grille en haut et le mois entier tient (en-têtes toujours collés). */
body.bt-prep-look.planning-look-presence .spreadsheet-scroll--presence{max-height:calc(100vh - var(--bt-head,0px) - 10px)!important;scroll-margin-top:calc(var(--bt-head,0px) + 4px)}
/* Fonctionnel : le même « — » servait pour « poste à pourvoir » (liste vide), « poste fermé ce jour » et « personne ».
   À pourvoir : case pointillée ambre (classe bt-empty posée par bt-prep-look.js). Fermé : hachures, sans tiret. */
body.bt-prep-look.planning-look-presence .fonctionnel-table select.fonc-pr.bt-empty{background:#fff7e6;border:1px dashed #d09a3c;color:#b07a1e}
body.bt-prep-look.planning-look-presence .fonctionnel-table td.fonctionnel-cell > .fonc-readonly.bt-empty{display:inline-block;min-width:40px;background:#fff7e6;border:1px dashed #d09a3c;color:#b07a1e;border-radius:3px}
body.bt-prep-look.planning-look-presence .fonctionnel-table td.sheet-cell:has(> span.muted:only-child){background-image:repeating-linear-gradient(135deg,transparent 0 5px,rgba(87,101,119,.13) 5px 6px)}
body.bt-prep-look.planning-look-presence .fonctionnel-table td.sheet-cell > span.muted:only-child{visibility:hidden}
body.bt-prep-look.planning-look-presence .fonctionnel-table td.fonc-unassigned-cell .fonc-readonly.bt-none{color:#9aa6b4;font-weight:400}
body.bt-prep-look .bt-fonc-legend{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center;font-size:12px;color:var(--g-muted);margin:6px 0 4px}
body.bt-prep-look .bt-fonc-legend i{display:inline-block;width:26px;height:14px;vertical-align:-3px;margin-right:6px;border-radius:3px;border:1px solid var(--g-soft)}
body.bt-prep-look .bt-fonc-legend i.is-empty{background:#fff7e6;border:1px dashed #d09a3c}
body.bt-prep-look .bt-fonc-legend i.is-closed{background:repeating-linear-gradient(135deg,#fff 0 5px,rgba(87,101,119,.25) 5px 6px)}
@media print{body.bt-prep-look .bt-fonc-legend{display:none}}

/* Palette commune (js/bt-code-palette.js) : couleur pleine et motif par famille, identiques à la grille RH. */
body.bt-prep-look button.code-palette-btn.bt-pal{background-color:var(--bt-c);background-image:var(--bt-img,none);color:var(--bt-fg);border-color:rgba(29,43,42,.35);outline:var(--bt-ol,none);outline-offset:-3px}
body.bt-prep-look.planning-look-presence main table.spreadsheet td.sheet-cell.bt-pal:not(.planning-presence-cell--post-validation-change):not(.sheet-cell--planning-out){background-color:var(--bt-c);background-image:var(--bt-img,none);outline:var(--bt-ol,none);outline-offset:-2px}
body.bt-prep-look.planning-look-presence main table.spreadsheet td.sheet-cell.bt-pal input.cell-input{color:var(--bt-fg)}
