.site-manager-dashboard { display:none; }
body[data-role="site_manager"] .site-manager-dashboard { display:grid; gap:12px; }
.planning-toolbar { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:0 0 14px; padding:14px; border:1px solid var(--line); border-radius:12px; background:#fff; }
.planning-switch,.planning-navigation { display:flex; align-items:center; gap:7px; }
.planning-switch button { min-height:38px; border:1px solid var(--line); border-radius:8px; padding:8px 13px; color:var(--ink); background:#fff; font-weight:800; }
.planning-switch button.is-active { border-color:var(--blue); color:var(--blue); background:var(--ice); }
.planning-calendar-switch { margin-top:9px; }
.planning-navigation strong { min-width:190px; text-align:center; color:var(--navy); text-transform:capitalize; }
.planning-grid { display:grid; gap:10px; }
.planning-week { grid-template-columns:repeat(7, minmax(0, 1fr)); }
.planning-month { grid-template-columns:repeat(7, minmax(0, 1fr)); }
.planning-weekday { padding:2px 8px 7px; color:var(--muted); font-size:.74rem; font-weight:800; text-align:center; text-transform:uppercase; letter-spacing:.04em; }
.planning-day { min-height:174px; padding:10px; border:1px solid var(--line); border-radius:10px; background:#fff; }
.planning-day h2 { margin:0 0 10px; color:var(--navy); font-size:.86rem; text-transform:capitalize; }
.planning-day-title { padding:0; border:0; color:inherit; background:transparent; font:inherit; font-weight:800; text-align:left; text-transform:inherit; }
.planning-day-title:hover { color:var(--blue); text-decoration:underline; }
.planning-day.is-outside-month { background:#fafcff; opacity:.72; }
.planning-events { display:grid; gap:7px; }
.planning-events > p { margin:8px 0; color:var(--muted); font-size:.75rem; }
.planning-event { display:grid; width:100%; gap:2px; padding:9px; border:1px solid #b7cce8; border-radius:8px; color:var(--navy); background:#edf4ff; text-align:left; }
.planning-event:hover { border-color:var(--blue); filter:brightness(.985); }
.planning-event strong { overflow:hidden; font-size:.8rem; text-overflow:ellipsis; white-space:nowrap; }
.planning-event span,.planning-event small { overflow:hidden; color:#48627f; font-size:.72rem; text-overflow:ellipsis; white-space:nowrap; }
.planning-sheet-item { align-items:flex-start; }
.planning-sheet-item > div:first-child { min-width:0; }
.planning-status-client_confirmed { color:#0d663d; background:#dcf5e7; }
.planning-status-completed { color:#465568; background:#e8edf3; }
.planning-event-confirmed { border-color:#a7d9b9; background:#e3f4e9; }.planning-event-confirmed:hover { border-color:#65ad80; }
.planning-event-absence { border-color:#ebc0c0; background:#fae7e7; }.planning-event-absence:hover { border-color:#ce8989; }
.planning-event-training { border-color:#c9c2e9; background:#eeeafd; }.planning-event-training:hover { border-color:#978bd0; }
.planning-event-neutral { border-color:#b7cce8; background:#edf4ff; }
.planning-holiday { padding:5px 7px; border-left:3px solid #c9b889; border-radius:4px; color:#76613c; background:#fffaf0; font-size:.7rem; font-weight:800; line-height:1.25; }
.planning-more { justify-self:start; padding:3px 0; border:0; color:var(--blue); background:transparent; font-size:.8rem; font-weight:800; text-decoration:underline; }
.planning-legend { display:flex; gap:8px; flex-wrap:wrap; margin:0 0 16px; }.planning-legend span { display:inline-flex; align-items:center; min-height:30px; padding:5px 9px; border:1px solid var(--line); border-radius:99px; color:#465568; background:#fff; font-size:.78rem; font-weight:800; }.planning-legend .legend-confirmed { border-color:#a7d9b9; background:#e3f4e9; color:#286943; }.planning-legend .legend-absence { border-color:#ebc0c0; background:#fae7e7; color:#933f3f; }.planning-legend .legend-training { border-color:#c9c2e9; background:#eeeafd; color:#5d5194; }
.tour-client-list,.equipment-list { display:grid; gap:14px; margin-top:16px; }.tour-client,.equipment-row { padding:16px; border:1px solid var(--line); border-radius:10px; background:#fbfdff; }.tour-client h3,.equipment-section h4 { margin:0; color:var(--navy); font-size:1rem; }.equipment-section { display:grid; gap:10px; margin-top:18px; }.equipment-row { padding:12px; background:#fff; }.checkbox-row { display:flex; align-items:center; gap:8px; align-self:end; min-height:44px; font-weight:700; }.checkbox-row input { width:auto; margin:0; }
#planning-day-dialog { max-width:680px; }.planning-day-dialog-content { max-height:min(76vh,680px); overflow:auto; text-align:left; }.planning-day-dialog-list { display:grid; gap:9px; margin-top:16px; }.planning-preview-event { display:grid; width:100%; gap:4px; padding:12px; border:1px solid var(--line); border-radius:9px; color:var(--navy); background:#fff; text-align:left; }.planning-preview-event span { color:var(--muted); font-size:.86rem; }.planning-preview-holiday { padding:10px 12px; border-left:3px solid #c9b889; border-radius:6px; color:#76613c; background:#fffaf0; font-weight:800; }
/* Planning en bandes : colonne de départ et étendue des bandes et des « +N » (sans style en ligne, refusé par la CSP). */
.tt-col-1 { grid-column-start:1; }.tt-col-2 { grid-column-start:2; }.tt-col-3 { grid-column-start:3; }.tt-col-4 { grid-column-start:4; }.tt-col-5 { grid-column-start:5; }.tt-col-6 { grid-column-start:6; }.tt-col-7 { grid-column-start:7; }
.tt-span-1 { grid-column-end:span 1; }.tt-span-2 { grid-column-end:span 2; }.tt-span-3 { grid-column-end:span 3; }.tt-span-4 { grid-column-end:span 4; }.tt-span-5 { grid-column-end:span 5; }.tt-span-6 { grid-column-end:span 6; }.tt-span-7 { grid-column-end:span 7; }
.record-filter { display:flex; width:max-content; max-width:100%; gap:5px; margin-top:22px; padding:4px; overflow:auto; border:1px solid var(--line); border-radius:10px; background:#fff; }.record-filter button { min-height:38px; padding:8px 12px; border:0; border-radius:7px; color:var(--muted); background:transparent; font-weight:800; white-space:nowrap; }.record-filter button.is-active { color:var(--blue); background:var(--ice); }
.record-group { display:grid; gap:10px; margin:22px 0 0; }.record-group h2 { margin:0; color:var(--navy); font-size:1rem; }
/* Liaison Fiches d'intervention / Bons d'intervention : éléments nouveaux uniquement (aucun écran existant
   n'est modifié). Cibles tactiles de 44 px minimum ; mise en page lisible de 320 px au PC. */
.dialog-panel { padding:20px; text-align:left; }.dialog-panel h2 { margin:0; color:var(--navy); font-size:1.15rem; overflow-wrap:anywhere; }.dialog-panel h3 { margin:18px 0 8px; color:var(--navy); font-size:.95rem; }
.dialog-panel-actions { display:grid; gap:10px; margin-top:20px; }.dialog-panel-actions .button { width:100%; min-height:48px; }
#new-bon-dialog,#sheet-complete-dialog { max-width:520px; }#planning-event-dialog { max-width:560px; }
/* Aperçu du Planning : le contenu défile, les boutons restent visibles en bas de la fenêtre. */
.planning-event-panel { display:flex; flex-direction:column; max-height:min(86vh,760px); }
#planning-event-dialog-body { flex:1 1 auto; min-height:0; overflow:auto; }
.planning-event-panel .dialog-panel-actions { flex:0 0 auto; margin-top:12px; padding-top:12px; border-top:1px solid var(--line); }
#sheet-complete-dialog .dialog-panel { max-height:min(86vh,760px); overflow:auto; }
.new-bon-choices { display:grid; gap:10px; margin-top:16px; }
.new-bon-choice { display:grid; grid-template-columns:40px minmax(0,1fr) auto; align-items:center; gap:14px; width:100%; min-height:72px; padding:14px 16px; border:1px solid var(--line); border-radius:12px; color:var(--ink); background:#fff; text-align:left; }
.new-bon-choice:hover { border-color:#87b9d8; background:#fafcff; }.new-bon-choice > span:not(.workspace-icon) { min-width:0; }.new-bon-choice strong { display:block; color:var(--navy); overflow-wrap:anywhere; }.new-bon-choice small { display:block; margin-top:3px; color:var(--muted); font-size:.85rem; overflow-wrap:anywhere; }.new-bon-choice > b { color:var(--blue); }
.bon-sheet-search { margin:0 0 4px; }.bon-sheet-search input { min-height:50px; font-size:1rem; }
.bon-sheet-list { display:grid; gap:10px; margin-top:16px; }
.bon-sheet-card { display:flex; align-items:center; justify-content:space-between; gap:12px; width:100%; min-height:72px; padding:14px 16px; border:1px solid var(--line); border-radius:12px; color:var(--ink); background:#fff; text-align:left; }
.bon-sheet-card:hover { border-color:#87b9d8; background:#fafcff; }
.bon-sheet-card-main { display:grid; gap:3px; min-width:0; }.bon-sheet-card-main strong { color:var(--navy); overflow-wrap:anywhere; }.bon-sheet-card-main span { color:#41586d; font-size:.88rem; overflow-wrap:anywhere; }.bon-sheet-card-main small { color:var(--muted); font-size:.8rem; overflow-wrap:anywhere; }
.bon-sheet-card-side { display:flex; flex:0 0 auto; align-items:center; gap:10px; }.bon-sheet-card-side b { color:var(--blue); }
.bon-sheet-picker-free { margin-top:20px; }
.bon-sheet-link { margin-bottom:18px; border-left:4px solid var(--blue); }
.bon-sheet-link-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }.bon-sheet-link-head .eyebrow { margin-bottom:4px; }
.bon-sheet-link-title { display:grid; gap:3px; min-width:0; }.bon-sheet-link-title strong { color:var(--navy); font-size:1.05rem; overflow-wrap:anywhere; }.bon-sheet-link-title span { color:#41586d; font-size:.88rem; overflow-wrap:anywhere; }
.bon-sheet-link-head .text-button { flex:0 0 auto; min-height:44px; }
.bon-sheet-request { margin-top:14px; padding:12px 14px; border-radius:9px; background:var(--ice); }.bon-sheet-request h3 { margin:0 0 6px; color:var(--navy); font-size:.9rem; }.bon-sheet-request p { margin:0; color:var(--ink); white-space:pre-line; overflow-wrap:anywhere; }.bon-sheet-request small { display:block; margin-top:8px; color:var(--muted); font-size:.8rem; }
.bon-sheet-request.is-clamped p { display:-webkit-box; overflow:hidden; -webkit-line-clamp:4; -webkit-box-orient:vertical; }.bon-sheet-request .text-button { min-height:40px; padding-left:0; }
.bon-sheet-note { margin:12px 0 0; color:#41586d; font-size:.86rem; }
.bon-sheet-duplicates { margin-top:12px; padding:12px 14px; border-radius:9px; color:#41586d; background:#f3f7fc; font-size:.88rem; }.bon-sheet-duplicates p { margin:0; }.bon-sheet-duplicates ul { margin:8px 0; padding-left:20px; }
.bon-sheet-duplicates.is-warning { border-left:4px solid #d39b18; color:#5c3d00; background:#fff6dc; }.bon-sheet-duplicates.is-warning p { margin-top:4px; }
.event-detail-list { display:grid; gap:10px; margin:16px 0 0; }.event-detail-list div { display:grid; gap:2px; }.event-detail-list dt { color:var(--muted); font-size:.76rem; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }.event-detail-list dd { margin:0; color:var(--ink); overflow-wrap:anywhere; }.event-detail-list a { color:var(--blue); font-weight:700; }
.event-detail-request { white-space:pre-line; }
.sheet-bons-section { margin-top:20px; }.sheet-bons-section .section-heading { align-items:flex-start; }.sheet-bons-section .section-heading .field-help { margin-top:4px; }
.sheet-bons-list { margin-top:14px; }
.sheet-bon-list { display:grid; gap:8px; margin:0; padding:0; list-style:none; }
.sheet-bon-row { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 14px; border:1px solid var(--line); border-radius:10px; background:#fbfdff; }
.sheet-bon-main { display:grid; gap:2px; min-width:0; }.sheet-bon-main strong { color:var(--navy); overflow-wrap:anywhere; }.sheet-bon-main span { color:var(--muted); font-size:.86rem; overflow-wrap:anywhere; }
.sheet-bon-side { display:flex; flex:0 0 auto; align-items:center; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
.sheet-bons-closed { margin:14px 0 0; padding:10px 12px; border-radius:8px; color:#465568; background:#e8edf3; font-weight:700; font-size:.88rem; }
.sheet-bons-actions { margin-top:16px; }
.sheet-complete-name { margin:6px 0 0; color:var(--navy); font-weight:800; overflow-wrap:anywhere; }
.sheet-complete-warning { margin:10px 0 0; padding:10px 12px; border-left:4px solid #d39b18; border-radius:7px; color:#5c3d00; background:#fff6dc; font-weight:700; font-size:.88rem; }
/* Suppression d'une fiche avec bons (Administrateur) et rattachement d'un bon libre. */
#sheet-delete-dialog,#bon-attach-dialog { max-width:520px; }
#sheet-delete-dialog .dialog-panel,#bon-attach-dialog .dialog-panel { max-height:min(86vh,760px); overflow:auto; }
.delete-choices { display:grid; gap:10px; margin:16px 0 12px; }
.delete-choice { display:grid; grid-template-columns:22px minmax(0,1fr); align-items:start; gap:12px; min-height:64px; padding:14px 16px; border:1px solid var(--line); border-radius:12px; background:#fff; cursor:pointer; }
.delete-choice input { width:20px; height:20px; margin:2px 0 0; accent-color:var(--blue); }
.delete-choice span { min-width:0; }.delete-choice strong { display:block; color:var(--navy); overflow-wrap:anywhere; }.delete-choice small { display:block; margin-top:3px; color:var(--muted); font-size:.85rem; overflow-wrap:anywhere; }
.delete-choice:has(input:checked) { border-color:var(--blue); background:#f5f9ff; }
.delete-choice.is-danger strong,.delete-choice.is-danger small { color:var(--danger); }.delete-choice.is-danger input { accent-color:var(--danger); }
.delete-choice.is-danger:has(input:checked) { border-color:var(--danger); background:#fff5f4; }
#sheet-delete-confirm.is-danger { border-color:var(--danger); background:var(--danger); }
.bon-attach-list { display:grid; gap:10px; margin-top:14px; }
#bon-attach-dialog .bon-sheet-search { margin-top:14px; }
@media (max-width:650px) {
  .dialog-panel { padding:16px; }
  .bon-sheet-link-head { flex-direction:column; gap:4px; }.bon-sheet-link-head .text-button { min-height:40px; padding-left:0; }
  .sheet-bon-row { align-items:flex-start; flex-direction:column; }.sheet-bon-side { justify-content:flex-start; width:100%; }.sheet-bon-side .billing-action { flex:1 1 150px; min-height:44px; }
  .bon-sheet-card,.new-bon-choice { padding:13px 14px; }
}
@media (max-width:760px) { #planning-view { overflow-x:auto; }.planning-grid { min-width:770px; margin-bottom:4px; }.planning-day { min-height:142px; }.planning-day h2 { font-size:.78rem; }.planning-event { padding:7px; }.planning-event strong { font-size:.74rem; } }
@media (max-width:650px) { .site-manager-dashboard { grid-template-columns:1fr; }.planning-toolbar { align-items:stretch; flex-direction:column; }.planning-switch { overflow:auto; padding-bottom:2px; }.planning-switch button { white-space:nowrap; }.planning-navigation { justify-content:space-between; }.planning-navigation strong { min-width:0; font-size:.9rem; }.planning-legend { gap:6px; }.planning-legend span { font-size:.72rem; }.tour-client { padding:13px; } }
