/* Produit BTP — feuille de style des écrans « chantiers » (chantiers, planning chantier, pointage, heures, carnet, tâches) (lot 1.114.0 « Revue BTP »).
   Chargée après app.css sur TOUS les produits : chaque sélecteur contient une classe propre aux écrans chantiers (btp-, site- sauf site-actions, sp-, sh-, sd-,
   st-, ck-, team-card) ou commence par body[data-product="btp"] (classes partagées avec l'Aire ou NexaPOS : .site-actions, identifiants, attributs).
   Vérifié par tests/test_btp_chantiers_revue.cjs. Les jetons (--ink, --muted, --accent, --danger…, --radius) viennent d'app.css. */

/* ---- Cibles tactiles : 44 px à TOUTES les largeurs (la tablette de chantier fait 1280 px CSS ; app.css ne l'imposait qu'à ≤ 760 px) ---- */
.site-filters .mini,body[data-product="btp"] .site-actions .btn,body[data-product="btp"] .site-actions .mini,.site-card .mini,.team-card .mini,body[data-product="btp"] .item .mini[data-site-unassign],body[data-product="btp"] #site-new,body[data-product="btp"] [data-team-new],body[data-product="btp"] [data-site-assign],body[data-product="btp"] [data-site-edit],body[data-product="btp"] [data-site-archive],body[data-product="btp"] [data-site-restore],
.sp-page .btn,.sp-page .mini,.sp-page select,.sp-bar .mini,.sp-bar select,.sp-bar .btn,.sp-days .dv-head .mini,.sp-add,button.sp-chip,
.sh-page .btn,.sh-page .mini,.sh-page select,.sh-cell,.sh-line,
.sd-page .btn,.sd-page .mini,.sd-page select,.sd-page input[type=search],
.st-page .btn,.st-page .mini,.st-page select,.st-big,
.ck-page .btn,.ck-page .mini,.ck-anom .mini,.ck-recent .mini,
.btp-retour,.btp-vide .btn,body[data-product="btp"] #sites-retry,body[data-product="btp"] #teams-retry,body[data-product="btp"] #sp-retry,body[data-product="btp"] #sh-retry,body[data-product="btp"] #sd-retry,body[data-product="btp"] #st-retry,body[data-product="btp"] #ck-retry{min-height:44px}
.site-filters .mini,.sp-bar .mini,.sd-page .mini,.st-page .mini,.sh-page .mini,.site-card .mini,.team-card .mini,.sd-entry .mini,.st-task .mini,.ck-page .mini{padding-left:14px;padding-right:14px}
.sp-add{min-width:44px}
/* … sans jamais rabaisser les gros boutons voulus plus grands (app.css : arrivée/départ 56 px, « Terminer » 52 px, 48 px au téléphone) */
.ck-page .ck-big,.ck-offline-box .ck-big{min-height:56px}
.st-page .st-big{min-height:52px}
@media (max-width:760px){.ck-page .btn:not(.ck-big),.ck-offline-box .btn:not(.ck-big){min-height:48px}}
@media (max-width:560px){body[data-product="btp"] .site-actions .btn{min-height:48px}}
.sh-cell{padding:6px}

/* Commandes héritées du socle Standard, également présentes dans les parcours BTP
   (journée, tâches, fenêtres). Elles font partie du parcours chantier : sur tablette
   et téléphone, on leur donne la même cible de 44 px que le reste de la revue.
   Le préfixe produit évite tout effet sur Aire, NexaPOS et Standard. */
body[data-product="btp"] #work-date,
body[data-product="btp"] button.mini{min-height:44px}
body[data-product="btp"] button.icb,
body[data-product="btp"] button.x{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}

/* ---- État vide (même facture que la page Chantiers : icône, phrase, action) ---- */
.btp-vide{margin:12px 0}
.btp-vide .btn{margin-top:6px}
.ck-card .btp-vide,.dv-card .btp-vide,.panel .btp-vide{margin:4px 0 0;border:0;background:transparent;padding:10px 6px}
.ck-page>.btp-vide{margin:12px 0}

/* ---- Barre de période (semaine ou jour) : flèches rondes, libellé centré, « Aujourd'hui » à droite ; ne se casse pas en trois lignes au téléphone ---- */
.btp-periode{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;margin:8px 0}
.btp-periode .btp-nav{width:44px;min-width:44px;min-height:44px;padding:0;border-radius:999px;display:inline-flex;align-items:center;justify-content:center}
.btp-periode .btp-periode-libelle{flex:1 1 auto;min-width:0;text-align:center;font-size:15px;font-variant-numeric:tabular-nums}
.btp-periode .btp-today{margin-left:auto;white-space:nowrap}
@media (max-width:560px){.btp-periode{flex-wrap:wrap}.btp-periode .btp-periode-libelle{order:-1;flex:1 1 100%;text-align:left;margin-bottom:2px}.btp-periode .btp-today{flex:1 1 auto}}

/* ---- Bouton de retour (fiche chantier) ---- */
.btp-retour{display:inline-flex;align-items:center;gap:4px;padding:0 14px 0 8px}
.btp-retour .icon{flex:0 0 auto}

/* ---- Page Chantiers ---- */
.site-search{margin:10px 0}
.site-search input{min-height:44px;width:100%}
.site-card .site-address{margin:0;color:var(--ink-soft);font-size:13.5px}
.sp-legend .sp-chip{min-height:0}

/* ---- Carnet : catégorie + recherche sur une ligne qui se replie proprement ---- */
.sd-tools{align-items:stretch}
.sd-tools select{flex:0 1 auto}
.sd-search{display:flex;flex:1 1 240px;gap:6px;min-width:0}
.sd-search input{flex:1 1 auto;min-width:0;min-height:44px}
.sd-search .mini{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
@media (max-width:560px){.sd-tools select{flex:1 1 100%}.sd-search .mini span{display:none}.sd-search .mini{width:44px;padding:0;justify-content:center}}

/* ---- Pointage : cartes d'alerte avec les jetons d'avertissement (pas la couleur d'action) ---- */
.ck-page .ck-card.ck-warn,.ck-offline-box .ck-card.ck-warn,.sh-page .ck-card.ck-warn{border-color:var(--warn-border);background:var(--warn-bg)}
.ck-page .ck-card.ck-warn .ck-error,.sh-page .ck-card.ck-warn .ck-error{color:var(--danger)}

/* ---- Fiche chantier (D14) et planning (D10) au téléphone : l'action principale pleine largeur, les secondaires côte à côte, jamais une pile de gros boutons ---- */
.sp-page .sp-publish-bar{flex-wrap:nowrap}
.sp-page .sp-publish-bar .btn{flex:0 1 auto}
.sp-page .sp-legend{margin:2px 0 10px}
.sp-days .sp-day-add{width:44px;min-width:44px;min-height:44px;padding:0;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;margin-left:auto}
.sp-days .dv-head{display:flex;align-items:center;gap:8px}
/* D16 : l'aide du QR dans la carte de pointage */
.ck-card .ck-hint{margin:2px 0 0}
@media (max-width:560px){
  .site-detail .site-detail-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .site-detail .site-detail-actions .btn{min-height:44px;width:100%}
  .site-detail .site-detail-actions .btn:not(.btn-ghost){grid-column:1/-1}
  .sp-page .sp-publish-bar .btn{flex:1 1 0;min-width:0;min-height:44px;white-space:normal;line-height:1.2;padding-left:10px;padding-right:10px}
}

/* ---- Impression de la fiche chantier et de la feuille d'heures (en-tête commun, ni boutons ni sélecteur ni fond : règles .btp-print-page de btp-suivi.css) ---- */
@media print{
  .sh-page.btp-print-page .sh-scroll{display:block!important;overflow:visible;margin:0}
  .sh-page.btp-print-page .sh-days{display:none!important}
  .sh-page.btp-print-page .sh-grid{min-width:0;font-size:11px}
  .sh-page.btp-print-page .sh-grid th,.sh-page.btp-print-page .sh-grid td{border-color:#999;color:#000;background:#fff}
  .sh-page.btp-print-page .sh-cell{min-height:0;padding:2px}
  .sh-page.btp-print-page .sh-pill{border-color:#999;background:#fff;color:#000}
  .site-detail.btp-print-page .site-row{border-bottom-color:#ccc}
  .site-detail.btp-print-page .btp-vide{border:0;background:none;padding:4px 0;align-items:flex-start}
  .site-detail.btp-print-page .btp-vide svg{display:none}
}

/* ---- Impression de la feuille QR (lot 3A, règle déplacée depuis app.css) : seulement pendant l'impression du QR (`body.ck-printing`), jamais pour les autres pages ---- */
.ck-print-sheet{display:none}
@media print{
  body.ck-printing>*:not(.ck-print-sheet){display:none!important}
  body.ck-printing .ck-print-sheet{display:block;text-align:center;padding:24px;color:#000;background:#fff}
  body.ck-printing .ck-print-sheet svg{width:360px;height:360px}
  body.ck-printing .ck-print-qr{display:flex;justify-content:center}
}

/* Lot 1.132.0 : fiche du chantier — horaires, jours travaillés, couleur sur le planning */
.site-work{border:1px solid var(--rule-strong);border-radius:var(--radius);padding:10px 12px;margin:10px 0 0}
.site-work legend{font-weight:800;padding:0 6px}
.site-hint{margin:2px 0 8px;font-size:var(--nt-font-small)}
.site-days,.site-colors{display:flex;flex-wrap:wrap;gap:6px}
.site-day{display:inline-flex}
.site-day input,.site-color input{position:absolute;opacity:0;width:1px;height:1px}
.site-day span{display:inline-grid;place-items:center;min-width:40px;min-height:40px;border-radius:var(--radius-sm);border:1px solid var(--rule-strong);font-weight:800;cursor:pointer}
.site-day input:checked+span{background:var(--action);border-color:var(--action);color:var(--action-ink)}
.site-color span{display:inline-block;width:32px;height:32px;border-radius:var(--nt-radius-pill);border:3px solid transparent;cursor:pointer;box-shadow:inset 0 0 0 1px var(--rule-strong)}
.site-color.auto span{width:auto;height:32px;padding:0 10px;display:inline-grid;place-items:center;border:1px solid var(--rule-strong);font-weight:700}
.site-color input:checked+span{border-color:var(--ink);outline:2px solid var(--panel);outline-offset:-5px}
.site-day input:focus-visible+span,.site-color input:focus-visible+span{outline:3px solid var(--action);outline-offset:2px}
.site-auto-plan{margin-top:8px}

/* Lot 1.132.0 : couleur du chantier sur les créneaux, palette « Par salarié » (glisser ou toucher), journées chantier */
.sp-site-chip{border-left:6px solid var(--site)}
.sp-dayplan{font-style:normal}
.sp-palette-box{margin:6px 0 4px}
.sp-palette{display:flex;flex-wrap:wrap;gap:8px;align-items:stretch}
.sp-pal{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-height:48px;padding:6px 12px;border-radius:var(--radius);border:1.5px solid var(--rule-strong);
  border-left:8px solid var(--site);background:var(--panel);color:var(--ink);cursor:grab;text-align:left}
.sp-pal small{font-weight:400;color:var(--ink-soft)}
.sp-pal.on{outline:3px solid var(--site);outline-offset:1px;background:var(--action-bg)}
.sp-pal:focus-visible{outline:3px solid var(--action);outline-offset:2px}
.sp-pal-new{min-height:48px}
.sp-pal-help{margin:6px 0 0}
.sp-people-grid td.sp-drop{min-width:96px;height:44px}
.sp-people-grid td.sp-armed{cursor:copy;background-image:linear-gradient(135deg,transparent 46%,var(--rule-soft) 50%,transparent 54%)}
.sp-people-grid td.sp-over,.sp-people-grid td.sp-armed:hover{outline:3px dashed var(--action);outline-offset:-3px;background:var(--action-bg)}
.sp-people-grid td[data-sp-cell][role="button"]:focus-visible{outline:3px solid var(--action);outline-offset:-3px}
.sp-target{border-style:dashed}

/* Lot 1.132.0 : pointage — hors chantier, rattachement, carte d'accueil */
.ck-places{display:flex;flex-wrap:wrap;gap:8px}
.ck-place input{position:absolute;opacity:0;width:1px;height:1px}
.ck-place span{display:inline-grid;place-items:center;min-height:44px;padding:0 14px;border-radius:var(--radius);border:1px solid var(--rule-strong);font-weight:700;cursor:pointer}
.ck-place input:checked+span{background:var(--action);border-color:var(--action);color:var(--action-ink)}
.ck-place input:focus-visible+span{outline:3px solid var(--action);outline-offset:2px}
.ck-attach-row{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0 4px}
.ck-attach-row select{min-height:40px;flex:1 1 200px}
/* Lot 1.132.0 : gros boutons de pointage. La règle commune « #app :is(button…) { min-height: var(--nt-control-touch) } » l'emportait (44 px) sur leurs 56 px :
   on règle la variable sur le bouton lui-même, la règle commune donne alors la bonne hauteur. */
.ck-big{--nt-control-touch:56px}
/* Lot 1.134.0 : affectations du chantier (période, jours prévus ici, autres chantiers, Modifier / Terminer) */
.site-assign-help{margin:0 0 8px}
.site-days-planned{margin:2px 0}
.site-other-sites{margin:2px 0}
.site-assignment-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.site-old-assignments{margin-top:10px}
/* Lot 1.139.0 : « Affecter » — des personnes (plusieurs d'un coup) ou une équipe liée ; bloc « Équipes liées » de la fiche */
.site-as-modes{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 10px}
.site-as-mode input{position:absolute;opacity:0;width:1px;height:1px}
.site-as-mode span{display:inline-grid;place-items:center;min-height:44px;padding:0 16px;border-radius:var(--radius);border:1px solid var(--rule-strong);font-weight:700;cursor:pointer}
.site-as-mode input:checked+span{background:var(--action);border-color:var(--action);color:var(--action-ink)}
.site-as-mode input:focus-visible+span{outline:3px solid var(--action);outline-offset:2px}
.site-as-filter{width:100%;margin:0 0 6px}
/* Cases à cocher dans un champ (personnes à affecter, membres d'une équipe) : la règle générale « .field label / .field input » (bloc, pleine largeur)
   mettait la case au-dessus du nom ; ici, la case et le nom restent sur une ligne. */
.field .site-as-people .check,.field .site-team-members .check{display:flex;align-items:center;gap:10px;margin:0;min-height:40px;font-size:var(--nt-font-control);color:var(--ink);font-weight:500;cursor:pointer}
.field .site-as-people .check input,.field .site-team-members .check input{width:auto;flex:none;padding:0;margin:0}
.site-as-people label[hidden]{display:none}
.site-as-count,.site-as-team-help{margin:4px 0 8px}
.site-team-links{margin:0 0 12px}
.site-team-links h3{margin:4px 0}
.site-team-help{margin:0 0 6px}
.site-via-team{display:inline-flex;align-items:center;gap:4px}
.site-old-assignments>summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:700}
.ck-home{margin:0 0 16px}
.ck-home .ck-card{margin:0}
