/* ── Pointage validé ──────────────────────────────────────────────────────
   Port du prototype mock_pointage-valide (timeline lecture seule paie).
   Toutes les variables sont préfixées --pt- (évite toute collision avec les
   variables globales de colors.css/common.css) ; les classes génériques du
   mock (.btn, .field, .banner…) sont scopées sous #view-pointage pour ne
   jamais affecter les boutons Materialize du reste de la page (ribbon, nav).
   ────────────────────────────────────────────────────────────────────────── */

:root {
    --pt-accent: #1565c0;
    --pt-accent-d: #0d47a1;
    --pt-green: #2e7d32;
    --pt-green-l: #e8f5e9;
    --pt-red: #c62828;
    --pt-red-l: #ffebee;
    --pt-amber: #ef6c00;
    --pt-ink: #1a2336;
    --pt-ink2: #546e7a;
    --pt-line: #e3e8ef;
    --pt-shadow: 0 2px 10px rgba(31, 45, 70, .07);
    --pt-shadow-l: 0 6px 22px rgba(31, 45, 70, .12);
    --pt-radius: 12px;
}

main {
  padding: 18px 20px;
  max-width: 1340px;
  margin: 0 auto;
}

/* ── Mode embarqué (iframe, ex. onglet Pointage validé de planning.html) ── */
body.pv-embedded #fdp-ribbon { display: none; }
body.pv-embedded main { padding-top: 0px; }

#view-pointage { animation: ptFade .2s ease; color: var(--pt-ink); font-size: 13px; line-height: 1.45; }
#view-pointage.pt-loading { opacity: .5; pointer-events: none; }
@keyframes ptFade { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }
#view-pointage button { font-family: inherit; cursor: pointer; }
#view-pointage input, #view-pointage select { font-family: inherit; }
/* Materialize masque tout [type=checkbox] par défaut (opacity:0 + position:absolute) en
   attendant un <span> adjacent pour dessiner sa propre case à cocher. Nos cases (filtres,
   menu Affichage, sélection d'incohérences) sont de simples cases natives : on annule ce
   reset ici pour qu'elles restent visibles. */
#view-pointage input[type="checkbox"] { position: static; opacity: 1; pointer-events: auto; width: auto; height: auto; margin: 0; }

/* ── Bannière de titre ────────────────────────────────────────────────── */
#view-pointage .pt-banner { background: linear-gradient(135deg, #1565c0, #1976d2); color: #fff; border-radius: var(--pt-radius); padding: 16px 20px; margin-bottom: 16px; box-shadow: var(--pt-shadow); }
#view-pointage .pt-banner-t { font-size: 18px; font-weight: 800; display: flex; align-items: center; gap: 10px; }
#view-pointage .pt-banner-s { font-size: 12px; opacity: .93; margin-top: 4px; }

/* ── Contrôles / champs / boutons génériques (scopés) ────────────────── */
/* Tous les contrôles interactifs de cette barre (date, saisie, boutons) font 32px
   de haut (box-sizing:border-box) afin que les groupes s'alignent proprement,
   étiquette contre étiquette ET contrôle contre contrôle. */
#view-pointage .pt-controls { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 12px; }
#view-pointage .pt-lbl { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .3px; color: var(--pt-ink2); }
#view-pointage .pt-field { display: flex; flex-direction: column; gap: 3px; }
#view-pointage .pt-dt { height: 32px; box-sizing: border-box; border: 1px solid var(--pt-line); border-radius: 8px; padding: 0 10px; font-size: 13px; background: #fff; color: var(--pt-ink); }
#view-pointage .pt-btn { height: 32px; box-sizing: border-box; border: none; border-radius: 8px; padding: 0 14px; font-size: 12px; font-weight: 700; display: inline-flex; align-items: center; gap: 6px; transition: .15s; }
#view-pointage .pt-btn-pri { background: var(--pt-accent); color: #fff; }
#view-pointage .pt-btn-pri:hover { background: var(--pt-accent-d); }
#view-pointage .pt-btn-soft { background: #eef2f7; color: var(--pt-ink); }
#view-pointage .pt-btn-soft:hover { background: #e2e8f0; }
#view-pointage .pt-btn-ghost { background: transparent; color: var(--pt-accent); border: 1px solid var(--pt-line); }
#view-pointage .pt-btn-sm { padding: 5px 10px; font-size: 11px; }
#view-pointage .pt-empty { padding: 48px; text-align: center; color: #90a4ae; font-style: italic; background: #fafbfc; border: 2px dashed #cfd8dc; border-radius: var(--pt-radius); }

/* Sélecteur de date unifié (◀ | date | ▶) */
#view-pointage .pt-weeknav { display: inline-flex; align-items: stretch; border: 1px solid var(--pt-line); border-radius: 8px; overflow: hidden; background: #fff; }
#view-pointage .pt-weeknav .pt-dt { border: none !important; border-radius: 0 !important; height: 32px; }
#view-pointage .pt-nav-btn { width: 30px; border: none; border-right: 1px solid var(--pt-line); background: #eef2f7; color: #37474f; cursor: pointer; font-size: 13px; font-weight: 800; }
#view-pointage .pt-weeknav #pt-week-next { border-right: none; border-left: 1px solid var(--pt-line); }
#view-pointage .pt-nav-btn:hover { background: #dbe4ef; color: var(--pt-accent); }

/* Bascule de vue (segmenté) */
#view-pointage .pt-vue-field { align-items: center; }
#view-pointage .pt-viewtabs { display: inline-flex; gap: 4px; border: 1px solid #cfd8e6; background: #f4f7fb; border-radius: 11px; padding: 3px; }
#view-pointage .pt-viewbtn { padding: 8px 16px; font-size: 14px; font-weight: 700; border-radius: 8px; border: none; }
#view-pointage .pt-viewbtn.pt-btn-soft { background: transparent; color: #5a6b7d; }
#view-pointage .pt-viewbtn.pt-btn-soft:hover { background: #e7edf5; }

/* Récap (total ressources/chantiers) */
#view-pointage .pt-summary { background: #eef3f8; border: 1px solid #d7e0ea; border-radius: 8px; padding: 7px 12px; margin-bottom: 8px; font-size: 12px; }
#view-pointage .pt-sum-line { color: #37474f; }
#view-pointage .pt-sum-cat { display: inline-flex; align-items: center; gap: 4px; margin-right: 2px; font-weight: 600; }
#view-pointage .pt-sum-note { margin-top: 4px; color: #607d8b; font-size: 11px; line-height: 1.4; }

/* ── Bandeau incohérences ─────────────────────────────────────────────── */
#view-pointage .pt-alert { border: 1px solid #ffcc80; background: #fff8e1; border-radius: 10px; margin: 0 0 12px; overflow: hidden; }
#view-pointage .pt-alert-h { display: flex; align-items: center; gap: 8px; padding: 8px 12px; }
#view-pointage .pt-alert-title { font-weight: 800; color: #e65100; }
#view-pointage .pt-alert-h .grow { flex: 1; }
#view-pointage .pt-alert-hint { font-size: 11px; color: #8d6e63; padding: 2px 12px 8px; }
#view-pointage .pt-alert-done { background: #f1f8e9; border-color: #c5e1a5; }
#view-pointage .pt-alert-list { border-top: 1px solid #ffe0b2; max-height: 260px; overflow: auto; background: #fff; }
#view-pointage .pt-iss-seltoolbar { display: flex; align-items: center; gap: 8px; padding: 6px 12px; background: #fff7e6; border-top: 1px solid #ffe0b2; border-bottom: 1px solid #ffe0b2; }
#view-pointage .pt-iss-selall-lbl { display: flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 700; color: #8d6e63; cursor: pointer; }
#view-pointage .pt-iss-seltoolbar .grow { flex: 1; }
#view-pointage .pt-iss-cb { flex: 0 0 auto; margin-top: 3px; width: 15px; height: 15px; cursor: pointer; }
#view-pointage .pt-alert-item { display: flex; align-items: flex-start; gap: 8px; padding: 8px 12px; border-bottom: 1px solid #f3f4f6; font-size: 12px; }
#view-pointage .pt-alert-main { flex: 1; min-width: 0; }
#view-pointage .pt-alert-item .pt-alert-txt { color: #37474f; font-weight: 600; }
#view-pointage .pt-alert-sol { margin-top: 3px; color: #5d4037; font-size: 11px; line-height: 1.45; background: #fffdf5; border-left: 3px solid #ffb300; border-radius: 0 4px 4px 0; padding: 4px 8px; }
#view-pointage .pt-alert-actions { display: flex; gap: 6px; flex: 0 0 auto; align-items: center; }
#view-pointage .pt-alert-ico { font-size: 14px; margin-top: 1px; }
#view-pointage .pt-sev-err { background: #fff5f5; }
#view-pointage .pt-sev-err .pt-alert-ico { color: #c62828; }

/* ── Bandeau fiches non validées ──────────────────────────────────────── */
#view-pointage .pt-valid-box { border: 1px solid #ffe082; background: #fffbe6; border-radius: 10px; margin: 0 0 12px; overflow: hidden; }
#view-pointage .pt-valid-h { display: flex; align-items: flex-start; gap: 10px; padding: 10px 14px; }
#view-pointage .pt-valid-ico { font-size: 20px; line-height: 1; flex: 0 0 auto; }
#view-pointage .pt-valid-body { flex: 1; min-width: 0; }
#view-pointage .pt-valid-title { font-weight: 800; color: #b26a00; font-size: 14px; }
#view-pointage .pt-valid-hint { font-size: 11.5px; color: #7a6a4f; line-height: 1.5; margin-top: 3px; }
#view-pointage .pt-valid-h .pt-btn { flex: 0 0 auto; align-self: center; }
#view-pointage .pt-valid-ok { border: 1px solid #c5e1a5; background: #f1f8e9; border-radius: 10px; padding: 8px 14px; margin: 0 0 12px; color: #2e7d32; font-size: 12.5px; }
#view-pointage .pt-valid-list { border-top: 1px solid #ffe0b2; max-height: 260px; overflow: auto; background: #fff; }
#view-pointage .pt-valid-item { display: flex; align-items: flex-start; gap: 8px; padding: 7px 14px; border-bottom: 1px solid #f3f4f6; font-size: 12px; }
#view-pointage .pt-valid-iico { font-size: 13px; margin-top: 1px; }
#view-pointage .pt-valid-main { flex: 1; min-width: 0; }
#view-pointage .pt-valid-itxt { color: #37474f; }
#view-pointage .pt-valid-isub { color: #78909c; font-size: 11px; margin-top: 1px; overflow: hidden; text-overflow: ellipsis; }
#view-pointage .pt-valid-item .pt-btn { flex: 0 0 auto; }

/* ── Filtre multi-sélection (chantiers / ressources) ─────────────────── */
#view-pointage .pt-multi { position: relative; display: inline-block; }
#view-pointage .pt-multi-btn { min-width: 210px; max-width: 280px; text-align: left; height: 32px; border: 1px solid var(--pt-line); border-radius: 6px; background: #fff; padding: 0 10px; cursor: pointer; font-size: 13px; color: #37474f; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#view-pointage .pt-multi-btn:hover { border-color: var(--pt-accent); }
#view-pointage .pt-multi-pop { position: absolute; z-index: 30; top: 36px; left: 0; min-width: 250px; max-height: 300px; overflow: auto; background: #fff; border: 1px solid var(--pt-line); border-radius: 8px; box-shadow: var(--pt-shadow-l); padding: 6px; }
#view-pointage .pt-multi-item { display: flex; align-items: center; gap: 8px; padding: 5px 6px; border-radius: 5px; cursor: pointer; font-size: 12px; white-space: nowrap; color: #37474f; }
#view-pointage .pt-multi-item:hover { background: #f0f4f9; }
#view-pointage .pt-multi-sep { height: 1px; background: var(--pt-line); margin: 4px 2px; }
#view-pointage .pt-multi-search-wrap { position: sticky; top: -6px; background: #fff; padding: 2px 2px 6px; margin: -2px -2px 2px; z-index: 1; }
#view-pointage .pt-multi-search { width: 100%; height: 30px; border: 1px solid var(--pt-line); border-radius: 6px; padding: 0 8px; font-size: 12px; box-sizing: border-box; }
#view-pointage .pt-multi-search:focus { outline: none; border-color: var(--pt-accent); }
#view-pointage .pt-multi-empty { padding: 8px 6px; color: #b0bec5; font-style: italic; font-size: 12px; }
/* .pt-mc-dot suit parfois un [type=checkbox] (filtres, menu Affichage) : Materialize dessine
   sa propre case sur tout <span> adjacent à une checkbox ([type=checkbox]+span:not(.lever)),
   ce qui ajoutait une fausse case (position/padding-left + pseudo-éléments) par-dessus notre
   pastille de couleur. On neutralise ce comportement ici. */
#view-pointage .pt-mc-dot { width: 11px; height: 11px; border-radius: 3px; display: inline-block; flex: none; position: static !important; padding-left: 0 !important; }
#view-pointage .pt-mc-dot::before, #view-pointage .pt-mc-dot::after { content: none !important; display: none !important; }

/* ── Timeline ─────────────────────────────────────────────────────────── */
#view-pointage .tl-wrap { overflow: auto; border: 1px solid var(--pt-line); border-radius: var(--pt-radius); background: #fff; box-shadow: var(--pt-shadow); cursor: grab; }
#view-pointage .tl-wrap.drag { cursor: grabbing; user-select: none; }
#view-pointage .tl-wrap.drag * { pointer-events: none; }
#view-pointage table.tl { border-collapse: collapse; font-size: 11px; min-width: 100%; }
#view-pointage table.tl th, #view-pointage table.tl td { border: 1px solid #eef2f6; padding: 0; text-align: center; }
#view-pointage table.tl thead th { position: sticky; top: 0; background: #f0f4f9; z-index: 2; font-weight: 700; color: var(--pt-ink2); padding: 4px 6px; font-size: 10px; white-space: nowrap; }
#view-pointage table.tl th.res-col, #view-pointage table.tl td.res-col { position: sticky; left: 0; background: #fff; z-index: 1; text-align: left; padding: 6px 10px; min-width: 190px; font-weight: 600; box-shadow: 1px 0 0 var(--pt-line); }
#view-pointage table.tl thead th.res-col { z-index: 3; background: #f0f4f9; }
#view-pointage table.tl td.day { width: 40px; height: 38px; vertical-align: middle; font-weight: 700; }
#view-pointage table.tl td.we { background: #faf8fd; }
#view-pointage table.tl thead th.day.we { background: #f1ecf8; color: #7e57c2; }
#view-pointage table.tl thead th.day.ferie { background: #c62828; color: #fff; }
#view-pointage .th-fer { display: block; font-size: 8px; font-weight: 700; line-height: 1; margin-top: 1px; opacity: .95; }
#view-pointage table.tl td.day.ferie { background: #ffcdd2; }
#view-pointage .cell-block { display: block; border-radius: 5px; padding: 3px 2px; color: #fff; font-size: 10px; font-weight: 700; line-height: 1.1; }
#view-pointage .cell-abs { background: #90a4ae !important; color: #fff; }
#view-pointage .pt-row-tot { background: #fafbfc; font-weight: 800; color: var(--pt-accent-d); }
#view-pointage .pt-tot-rep { font-size: 9px; font-weight: 700; color: #5d4037; margin-top: 2px; line-height: 1.2; }
#view-pointage table.tl tr.pt-cat-row td { background: #eef2f6; border-top: 2px solid #d7dee6; }
#view-pointage table.tl tr.pt-cat-row td.res-col { font-weight: 800; color: #37474f; font-size: 11px; text-transform: uppercase; letter-spacing: .3px; background: #e7edf3; }
#view-pointage .pt-cat-n { color: #90a4ae; font-weight: 700; }
#view-pointage table.tl thead tr.tl-hg th { top: 0; height: 22px; }
#view-pointage table.tl thead tr.tl-hd th { top: 22px; }
#view-pointage table.tl thead th.pt-wk { background: #e8eef5; color: #1a237e; font-size: 12px; font-weight: 800; border-left: 2px solid #d5dee8; }
#view-pointage table.tl thead th.pt-wktot { background: #e7dff5; color: #5e35b1; border-right: 2px solid #ffb300; font-size: 15px; font-weight: 900; }
#view-pointage table.tl td.pt-wktot { background: #e7dff5; font-weight: 800; color: #37474f; border-right: 2px solid #ffb300; vertical-align: middle; }
#view-pointage .pt-wk-sub { font-size: 9.5px; font-weight: 800; line-height: 1.5; margin-top: 1px; }
#view-pointage table.tl thead th.pt-grandtot { background: #e8eef5; color: var(--pt-accent-d); }
#view-pointage table.tl.tl-res td.day { min-width: 90px; height: auto; vertical-align: middle; padding: 2px 1px; }
#view-pointage table.tl.tl-res td.day.we, #view-pointage table.tl.tl-res td.day.pt-wktot, #view-pointage table.tl.tl-res td.day.pt-row-tot { min-width: 60px; }
#view-pointage .pt-cell-ch { display: block; font-size: 8px; color: #546e7a; font-weight: 600; max-width: 62px; margin: 1px auto 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#view-pointage .pt-res-name { font-weight: 800; color: #263238; }
#view-pointage .pt-cell { display: inline-flex; align-items: center; justify-content: center; gap: 3px; flex-wrap: wrap; border-radius: 5px; padding: 2px 4px; font-size: 10px; font-weight: 700; line-height: 1.15; min-width: 30px; }
#view-pointage .pt-hn { color: #1565c0; }
#view-pointage .pt-hs { color: #ef6c00; }
#view-pointage .pt-hnu { color: #6a1b9a; }
#view-pointage .pt-repas { display: inline-block; font-size: 10px; font-weight: 800; border-radius: 6px; padding: 0 5px; line-height: 1.5; white-space: nowrap; }
#view-pointage .rp-pan { background: #ff8f00; color: #fff; }
#view-pointage .rp-res { background: #1976d2; color: #fff; }
#view-pointage .rp-heb { background: #8e24aa; color: #fff; }
#view-pointage .rp-nuit { background: #5e35b1; color: #fff; }
#view-pointage .pt-repas-multi { background: #d32f2f !important; color: #fff !important; border-radius: 6px; padding: 0 5px !important; font-weight: 900 !important; outline: 2px solid #fff; box-shadow: 0 0 0 2px #d32f2f; animation: ptPulse 1.3s ease-in-out infinite; }
#view-pointage .pt-repas-multi::before { content: "⚠ "; }
@keyframes ptPulse { 0%, 100% { box-shadow: 0 0 0 2px #d32f2f; } 50% { box-shadow: 0 0 0 5px rgba(211, 47, 47, .30); } }
#view-pointage .pt-cell .pt-repas { background: none; padding: 0; border-radius: 0; font-size: 13px; line-height: 1; font-weight: 700; }
#view-pointage .pt-cell .rp-pan { color: #e65100; }
#view-pointage .pt-cell .rp-res { color: #1565c0; }
#view-pointage .pt-cell .rp-heb { color: #7b1fa2; }
#view-pointage table.tl tr.pt-daytot-head td { background: #e7edf3; border-top: 3px solid #b9c6d6; font-weight: 800; color: #37474f; font-size: 11px; text-transform: uppercase; letter-spacing: .3px; padding: 4px 10px; }
#view-pointage table.tl tr.pt-daytot-fam td { background: #f6f9fc; font-weight: 800; font-size: 12px; color: #37474f; }
#view-pointage table.tl tr.pt-daytot-fam td.res-col { color: #455a64; }
#view-pointage table.tl tr.pt-daytot-total td { background: #dfe7f2; font-weight: 900; color: #1a237e; font-size: 12px; }
#view-pointage table.tl tr.pt-daytot-abs td { background: #fff3e0; font-weight: 800; color: #8d6e63; font-size: 12px; }
#view-pointage table.tl.tl-ch td.pt-affect { width: auto; min-width: 96px; height: auto; vertical-align: middle; padding: 3px 4px; text-align: center; }
#view-pointage td.pt-affect-on { cursor: default; }
#view-pointage .pt-affect-n { display: block; font-size: 16px; font-weight: 900; color: #1a237e; line-height: 1.05; }
#view-pointage .pt-affect-lbl { display: block; font-size: 9px; color: #455a64; font-weight: 700; margin-top: 1px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 120px; margin-left: auto; margin-right: auto; }
#view-pointage table.tl tr.pt-daytot-fam td.res-col .pt-mc-dot, #view-pointage table.tl tr.pt-daytot-total td.res-col .pt-mc-dot { margin-right: 6px; }
#view-pointage .pt-over { color: #c62828; font-weight: 900; }
#view-pointage .pt-cell-over { outline: 2px solid #c62828; outline-offset: 1px; box-shadow: 0 0 0 2px #fff; }
#view-pointage .pt-rblock-over { outline: 2px solid #c62828; outline-offset: -1px; }
#view-pointage .pt-legend { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin: 6px 0 8px; font-size: 11px; color: #607d8b; }
#view-pointage .pt-legend .pt-hn, #view-pointage .pt-legend .pt-hs, #view-pointage .pt-legend .pt-hnu { font-weight: 800; }
#view-pointage .pt-lg-fer { background: #c62828; color: #fff; border-radius: 3px; padding: 0 6px; font-weight: 700; }
#view-pointage .pt-lg-sep { width: 1px; height: 14px; background: var(--pt-line); }
#view-pointage .pt-lg-hint { color: #90a4ae; font-style: italic; }
#view-pointage table.tl.tl-ch td.pt-chcol { vertical-align: top; min-width: 230px; max-width: 270px; padding: 7px 10px; }
#view-pointage .pt-ch-nom { font-weight: 800; color: #1a237e; font-size: 12px; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
#view-pointage .pt-ch-sub { font-size: 10px; color: #607d8b; font-weight: 500; margin-top: 2px; }
#view-pointage .pt-ch-per { display: inline-block; font-size: 10px; color: #1565c0; font-weight: 700; margin-top: 3px; background: #e3f2fd; border-radius: 10px; padding: 1px 8px; }
#view-pointage .pt-ch-sal { margin-top: 5px; padding-top: 5px; border-top: 1px dashed #e0e6ec; display: flex; flex-wrap: wrap; gap: 3px 6px; align-items: center; }
#view-pointage .pt-ch-sal-h { font-size: 10px; font-weight: 800; color: #455a64; width: 100%; }
#view-pointage .pt-ch-sal-i { display: inline-flex; align-items: center; gap: 4px; font-size: 10px; color: #37474f; background: #f4f6f9; border-radius: 10px; padding: 1px 7px 1px 5px; }
#view-pointage .pt-statut, #pv-modal-badges .pt-statut { font-size: 9px; font-weight: 800; border-radius: 3px; padding: 1px 6px; text-transform: uppercase; letter-spacing: .3px; }
#view-pointage table.tl.tl-ch td.pt-chday { width: auto; min-width: 132px; height: auto; vertical-align: top; padding: 2px; }
#view-pointage .pt-rstack { display: flex; flex-direction: column; gap: 3px; }
#view-pointage .pt-rblock { display: flex; flex-direction: column; align-items: flex-start; border-radius: 5px; padding: 2px 6px; text-align: left; }
#view-pointage .pt-rb-name { font-size: 10px; font-weight: 700; color: #37474f; max-width: 118px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#view-pointage .pt-rb-h { font-size: 10px; font-weight: 800; }
#view-pointage .pt-rb-repas { display: inline-block; font-size: 9px; font-weight: 800; border-radius: 5px; padding: 0 4px; margin-top: 2px; }
#view-pointage table.tl tr.pt-meteo-row td { background: #f0f8ff; border-bottom: 2px solid #cfe3f7; padding: 2px 1px; }
#view-pointage table.tl tr.pt-meteo-row td.res-col { background: #eaf3fd; color: #1565c0; font-weight: 700; font-size: 11px; }
#view-pointage .pt-meteo-row .pm-ic { font-size: 13px; display: block; line-height: 1.1; }
#view-pointage .pt-meteo-row .pm-t { font-size: 9px; color: #37474f; display: block; font-weight: 600; }
#view-pointage .pt-meteo-row .pm-w { font-size: 9px; color: #1565c0; display: block; }
#view-pointage .pt-meteo-row .pm-r { font-size: 9px; color: #0277bd; display: block; font-weight: 600; }

/* ── Info-bulle générique (data-tip) ──────────────────────────────────── */
.app-tip { position: fixed; z-index: 400; display: none; max-width: 320px; background: #263238; color: #eceff1; border-radius: 9px; padding: 9px 12px; font-size: 12.5px; line-height: 1.5; box-shadow: 0 8px 26px rgba(0, 0, 0, .4); pointer-events: none; }
.app-tip .tip-ch { font-weight: 800; color: #ffd54f; }

/* ── Responsive ───────────────────────────────────────────────────────── */
@media (max-width: 820px) {
    #view-pointage .pt-banner { padding: 13px 14px; }
    #view-pointage .pt-banner-t { font-size: 16px; }
    #view-pointage .pt-controls { gap: 8px; }
    #view-pointage .pt-field { flex: 1 1 100%; }
}

/* ── Impression ───────────────────────────────────────────────────────── */
@media print {
    #fdp-ribbon, nav, #slide-out, .pt-controls, .pt-banner, .pt-valid-box, .pt-valid-ok, .pt-alert, .pt-alert-done { display: none !important; }
    body { background: #fff; }
    main { max-width: none; padding: 0; }
    @page { size: landscape; margin: 9mm; }
    #view-pointage > .tl-wrap, #view-pointage > .pt-legend, #view-pointage > .pt-summary { display: none !important; }
    #view-pointage table.tl { font-size: 9px; }
    #view-pointage table.tl thead th, #view-pointage table.tl th.res-col, #view-pointage table.tl td.res-col { position: static; }
    #view-pointage .pt-repas-multi { animation: none !important; }
    #pt-print-head { display: block !important; margin: 0 0 8px; padding-bottom: 6px; border-bottom: 2px solid #1a237e; }
    #pt-print-body { display: block !important; }
    #pt-print-body .pph-chunk { page-break-after: always; break-after: page; }
    #pt-print-body .pph-chunk:last-child { page-break-after: auto; break-after: auto; }
    #pt-print-body .pt-summary { display: none !important; }
    #pt-print-body .pph-chunk:not(:first-child) .pt-legend { display: none !important; }
    #pt-print-body .tl-wrap { overflow: visible !important; border: none; box-shadow: none; max-height: none; }
    #pt-print-body table.tl { width: 100%; min-width: 0; }
    #pt-print-body table.tl td.day, #pt-print-body table.tl th.day { min-width: 0 !important; width: auto; }
    #pt-print-body table.tl th.res-col, #pt-print-body table.tl td.res-col { min-width: 100px; max-width: 150px; }
    #pt-print-body table.tl.tl-ch td.pt-chcol { min-width: 130px; max-width: 170px; }
}
#pt-print-head, #pt-print-body { display: none; }
.pph-row { display: flex; align-items: center; gap: 16px; }
.pph-logo { max-height: 60px; max-width: 200px; object-fit: contain; flex: 0 0 auto; }
.pph-info { flex: 1; min-width: 0; }
.pph-co { font-size: 15px; font-weight: 800; color: #263238; letter-spacing: .2px; }
.pph-title { font-size: 17px; font-weight: 800; color: #1a237e; }
.pph-sub { font-size: 12px; color: #37474f; margin-top: 2px; }
.pph-ts { font-size: 11px; color: #546e7a; margin-top: 2px; font-weight: 700; }
