/*
  Écran « Ma semaine » (E-03) et grille hebdomadaire, piste A « Carnet de chantier ».
  Bandeau des jours sur l'encre, tickets chantier à languette de type, gros compteurs ronds, pied encre.
*/
.semaine-entete { display: flex; align-items: center; justify-content: space-between; gap: var(--espace-3); margin-bottom: var(--espace-2); }
.semaine-entete h1 { margin: 0; text-align: center; font-size: 1.5rem; }
.semaine-entete small { display: block; font-family: var(--police-base); font-weight: 400; text-transform: none; letter-spacing: 0; color: var(--couleur-texte-doux); font-size: var(--taille-petite); }
.semaine-nav { display: inline-flex; align-items: center; justify-content: center; min-width: var(--cible-min); min-height: var(--cible-min); border: 2px solid var(--couleur-bleu-action); border-radius: var(--rayon-controle); font-size: 1.3rem; text-decoration: none; color: var(--couleur-bleu-action); }

/* Bandeau des jours : encre, jour actif en blanc souligné du rouge du logo */
.jours { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; background: var(--carnet-encre); padding: var(--espace-2); border-radius: var(--rayon-carte); margin: var(--espace-3) 0; }
.jour-onglet { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: var(--cible-mobile); padding: 6px 0; border-radius: var(--rayon-controle); color: var(--couleur-blanc); text-decoration: none; border-bottom: 4px solid transparent; }
.jour-onglet__nom { font-size: .7rem; text-transform: uppercase; letter-spacing: .08em; opacity: .85; }
.jour-onglet__date { font-family: var(--police-titre); font-weight: 700; font-size: 1.5rem; line-height: 1.1; }
.jour-onglet__total { font-size: .72rem; opacity: .9; }
.jour-onglet--actif { background: var(--couleur-blanc); color: var(--carnet-encre); border-bottom-color: var(--couleur-rouge-logo); }
.jour-onglet--actif .jour-onglet__nom, .jour-onglet--actif .jour-onglet__total { opacity: 1; font-weight: 600; }
.jour-onglet--debut-partie { border-left: 2px dashed var(--carnet-jaune); border-radius: 0 var(--rayon-controle) var(--rayon-controle) 0; }
.jour-titre { display: flex; justify-content: space-between; align-items: baseline; gap: var(--espace-3); }
.jour-titre h2 { margin: 0; font-size: 1.5rem; }
.jour-titre__total { font-family: var(--police-titre); font-weight: 700; font-size: 1.5rem; color: var(--couleur-bleu-action); }
.jour__vide { color: var(--couleur-texte-doux); margin: var(--espace-3) 0; }

/* Ticket chantier */
.ticket { display: flex; align-items: stretch; margin: var(--espace-3) 0; background: var(--couleur-blanc); border-radius: 12px; box-shadow: 0 2px 0 var(--carnet-ombre); overflow: hidden; }
.ticket__languette { flex: 0 0 26px; display: flex; align-items: center; justify-content: center; background: var(--couleur-bleu-action); color: var(--couleur-blanc); font-family: var(--police-titre); font-weight: 700; font-size: .8rem; letter-spacing: .1em; writing-mode: vertical-rl; transform: rotate(180deg); }
.ticket--AER .ticket__languette { background: var(--couleur-bleu-logo); }
.ticket--AUTRE .ticket__languette, .ticket--special .ticket__languette { background: var(--carnet-ocre); }
.ticket__corps { flex: 1; min-width: 0; padding: var(--espace-3) var(--espace-4); }
.ticket__titre { display: flex; justify-content: space-between; align-items: baseline; gap: var(--espace-2); flex-wrap: wrap; }
.ticket__numero { font-family: var(--police-titre); font-weight: 700; font-size: 1.35rem; letter-spacing: .02em; }
.ticket__nom { font-size: var(--taille-petite); color: var(--couleur-texte-doux); }
.ticket__commentaire { display: block; font-size: var(--taille-petite); color: var(--couleur-texte-doux); font-style: italic; }
.compteurs { display: grid; grid-template-columns: 1fr; gap: var(--espace-2); margin-top: var(--espace-3); }
.compteur { display: grid; grid-template-columns: 2.6em auto minmax(4.5em, 1fr) auto; align-items: center; gap: var(--espace-2); background: var(--carnet-papier); border-radius: 10px; padding: 6px 8px; }
.compteur__libelle { font-size: .7rem; text-transform: uppercase; letter-spacing: .1em; color: var(--couleur-texte-doux); font-weight: 600; }
.compteur__champ { text-align: center; padding: 0 var(--espace-1); font-family: var(--police-titre); font-weight: 700; font-size: 1.5rem; border: 0; background: transparent; min-height: var(--cible-min); }
.compteur__champ:focus-visible { outline: var(--epaisseur-focus) solid var(--couleur-bleu-action); border-radius: 6px; }
.compteur__lecture { grid-column: span 3; font-family: var(--police-titre); font-weight: 700; font-size: 1.4rem; }
.bouton-rond { width: var(--cible-min); height: var(--cible-min); border-radius: 50%; border: 2px solid var(--couleur-bleu-action); background: var(--couleur-blanc); color: var(--couleur-bleu-action); font-size: 1.5rem; font-weight: 700; cursor: pointer; line-height: 1; }
.compteur__plus .bouton-rond { background: var(--couleur-bleu-action); color: var(--couleur-blanc); }
.compteur--nuit .bouton-rond { border-color: var(--carnet-encre); color: var(--carnet-encre); }
.compteur--nuit .compteur__plus .bouton-rond { background: var(--carnet-encre); color: var(--couleur-blanc); }
.ticket__options { display: flex; justify-content: space-between; align-items: center; gap: var(--espace-3); margin-top: var(--espace-2); flex-wrap: wrap; }
.bouton--petit { min-height: var(--cible-min); padding: 0 var(--espace-3); font-size: var(--taille-petite); }
@media (min-width: 821px) { .compteurs { grid-template-columns: 1fr 1fr; } }

/* Ajout de chantier */
.ajout-chantier { margin: var(--espace-4) 0; }
.bouton-ajout { display: flex; align-items: center; justify-content: center; gap: var(--espace-2); width: 100%; min-height: var(--cible-mobile); border: 2px dashed var(--couleur-bleu-action); border-radius: 12px; background: transparent; color: var(--couleur-bleu-action); font-family: var(--police-titre); font-weight: 700; font-size: 1.2rem; text-transform: uppercase; letter-spacing: .04em; cursor: pointer; }
.ajout-chantier[open] .bouton-ajout { border-style: solid; background: var(--couleur-blanc); }
.ajout-chantier summary { list-style: none; }
.ajout-chantier summary::-webkit-details-marker { display: none; }
.ajout-chantier__corps { margin-top: var(--espace-3); padding: var(--espace-4); background: var(--couleur-bleu-glacier); border-radius: var(--rayon-carte); }
.resultats { list-style: none; margin: var(--espace-2) 0 0; padding: 0; display: grid; gap: var(--espace-2); }
.resultats__titre { margin: var(--espace-2) 0 0; font-size: var(--taille-petite); color: var(--couleur-texte-doux); }
.resultat { display: block; width: 100%; min-height: var(--cible-min); padding: var(--espace-2) var(--espace-3); text-align: left; font: inherit; color: var(--couleur-texte); background: var(--couleur-blanc); border: var(--epaisseur-filet) solid var(--couleur-bordure); border-left: 6px solid var(--couleur-bleu-action); border-radius: var(--rayon-controle); cursor: pointer; }
.resultat strong { font-family: var(--police-titre); font-size: 1.15rem; letter-spacing: .02em; }
.resultat__nom, .resultat__ancien { display: block; font-size: var(--taille-petite); color: var(--couleur-texte-doux); }
.ajout-chantier__autres { display: flex; flex-wrap: wrap; gap: var(--espace-3); margin-top: var(--espace-3); }
.ajout-chantier__autres form, .a-identifier { flex: 1 1 200px; }
.a-identifier summary { list-style: none; display: inline-flex; align-items: center; justify-content: center; width: 100%; cursor: pointer; }
.a-identifier form { margin-top: var(--espace-3); }
.a-identifier .bouton { width: 100%; }

/* La journée : quatre cartes */
.journee { margin-top: var(--espace-4); padding: var(--espace-3) var(--espace-4) var(--espace-4); background: var(--couleur-blanc); border-radius: 12px; box-shadow: 0 2px 0 var(--carnet-ombre); }
.journee__grille { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--espace-2); margin-top: var(--espace-2); }
.journee__carte { display: flex; flex-direction: column; justify-content: center; gap: 4px; min-height: 64px; padding: var(--espace-2) var(--espace-3); border: 2px solid var(--couleur-bordure); border-radius: 10px; background: var(--couleur-blanc); cursor: pointer; }
.journee__carte:has(:checked), .journee__carte:has(option:checked:not([value=""])), .journee__carte:has(option:checked:not([value="0"])):not(.journee__carte--absence) { border-color: var(--couleur-bleu-action); background: var(--couleur-bleu-clair); }
.journee__carte--absence:has(option:checked:not([value=""])) { border-color: var(--carnet-ocre); background: var(--carnet-ocre-clair); }
.journee__carte .journee__libelle { font-size: .7rem; text-transform: uppercase; letter-spacing: .1em; color: var(--couleur-texte-doux); font-weight: 600; }
.journee__carte select { border: 0; background: transparent; font: inherit; font-family: var(--police-titre); font-weight: 700; font-size: 1.2rem; padding: 0; min-height: 32px; width: 100%; }
.journee__carte input[type="checkbox"] { width: 24px; height: 24px; accent-color: var(--couleur-bleu-action); }
.journee__carte .journee__valeur { display: flex; align-items: center; gap: var(--espace-2); font-family: var(--police-titre); font-weight: 700; font-size: 1.2rem; }
@media (min-width: 821px) { .journee__grille { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

/* Pied de semaine : encre, bouton Rendre rouge */
.pied-semaine { margin-top: var(--espace-4); padding: var(--espace-4); background: var(--carnet-encre); color: var(--couleur-blanc); border-radius: var(--rayon-carte); }
.pied-semaine__partie { margin: 0 0 var(--espace-2); font-size: .75rem; text-transform: uppercase; letter-spacing: .08em; opacity: .8; }
.pied-semaine dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--espace-3); margin: 0 0 var(--espace-3); }
.pied-semaine dt { font-size: var(--taille-petite); opacity: .8; }
.pied-semaine dd { margin: 0; font-family: var(--police-titre); font-weight: 700; font-size: 1.6rem; line-height: 1.1; }
.pied-semaine__statut { margin: 0 0 var(--espace-2); font-size: var(--taille-petite); opacity: .9; }
.pied-semaine .bouton-encre { width: 100%; margin-top: var(--espace-2); }
@media (min-width: 821px) { .pied-semaine dl { grid-template-columns: repeat(6, minmax(0, 1fr)); } .pied-semaine .bouton-encre { width: auto; margin-right: var(--espace-3); } }

/* Grille hebdomadaire (PC : saisie directe, D-N) */
.grille-semaine { margin-top: var(--espace-4); }
.grille-semaine summary { cursor: pointer; font-family: var(--police-titre); font-weight: 700; text-transform: uppercase; letter-spacing: .03em; font-size: 1.1rem; color: var(--couleur-bleu-action); min-height: var(--cible-min); display: flex; align-items: center; }
.grille-semaine__defilement { overflow-x: auto; background: var(--couleur-blanc); border-radius: var(--rayon-carte); box-shadow: 0 2px 0 var(--carnet-ombre); }
.grille { border-collapse: collapse; width: 100%; min-width: 900px; font-size: var(--taille-petite); }
.grille th, .grille td { border-bottom: var(--epaisseur-filet) solid var(--carnet-ombre); padding: 4px 3px; white-space: nowrap; text-align: center; }
.grille thead th { background: var(--carnet-encre); color: var(--couleur-blanc); font-family: var(--police-titre); font-size: 1rem; letter-spacing: .04em; text-transform: uppercase; padding: var(--espace-2) 4px; }
.grille thead th.nuit, .grille td.nuit { background: var(--carnet-papier); }
.grille thead th.nuit { background: var(--carnet-encre); opacity: .75; }
.grille th.debut-partie, .grille td.debut-partie { border-left: 3px solid var(--carnet-jaune); }
.grille thead th.debut-partie { color: var(--carnet-jaune); }
.grille tbody th { text-align: left; background: var(--carnet-papier-fonce); color: var(--carnet-encre); font-weight: 600; padding: var(--espace-2) var(--espace-3); }
.grille td.chantier { text-align: left; padding: var(--espace-2) var(--espace-3); border-left: 8px solid var(--couleur-bleu-action); min-width: 220px; white-space: normal; }
.grille tr.type-AER td.chantier { border-left-color: var(--couleur-bleu-logo); }
.grille tr.type-AUTRE td.chantier, .grille tr.special td.chantier { border-left-color: var(--carnet-ocre); }
.grille td.chantier .numero { font-family: var(--police-titre); font-weight: 700; font-size: 1.15rem; }
.grille td.chantier .nom { display: block; color: var(--couleur-texte-doux); font-size: .8rem; }
.grille__saisie { width: 3.6em; min-height: 40px; text-align: center; font: inherit; font-weight: 600; border: var(--epaisseur-filet) solid var(--couleur-bordure); border-radius: 6px; background: var(--couleur-blanc); }
.grille__saisie:focus-visible { outline: var(--epaisseur-focus) solid var(--couleur-bleu-action); }
.grille__saisie.rempli { border-color: var(--couleur-bleu-action); background: var(--couleur-bleu-clair); }
.grille__select { min-height: 36px; font: inherit; font-size: .85rem; border: var(--epaisseur-filet) solid var(--couleur-bordure); border-radius: 6px; background: var(--couleur-blanc); max-width: 7em; }
.grille input[type="checkbox"] { width: 22px; height: 22px; accent-color: var(--couleur-bleu-action); }
.grille__total td, .grille__total th { background: var(--carnet-papier); font-weight: 700; border-bottom: 2px solid var(--carnet-encre); }
.grille__h { font-family: var(--police-titre); font-weight: 700; font-size: 1.1rem; }
.grille__lecture { color: var(--carnet-encre); font-weight: 600; }
.grille__vide { color: var(--couleur-bordure); }

/* Véhicules et engins du jour (D-S) */
.vehicules { margin-top: var(--espace-3); padding: var(--espace-3) var(--espace-4); background: var(--couleur-blanc); border-radius: 12px; }
.vehicules__liste { display: flex; flex-wrap: wrap; gap: var(--espace-2); margin: var(--espace-2) 0; }
.vehicule-chip { display: inline-flex; align-items: center; gap: var(--espace-2); padding: 4px 6px 4px 12px; border-radius: 999px; background: var(--carnet-ocre-clair); border: 1px solid var(--carnet-ocre); font-weight: 600; }
.vehicule-chip button { border: 0; background: transparent; font-size: 1.3rem; line-height: 1; cursor: pointer; min-width: 36px; min-height: 36px; color: inherit; }
.vehicules__ajout { display: flex; gap: var(--espace-2); align-items: center; flex-wrap: wrap; }
/* Liste des véhicules : jamais plus large que l'écran (un nom long faisait déborder toute la page sur téléphone). */
.vehicules__ajout .champ { flex: 1 1 12rem; min-width: 0; max-width: 100%; text-overflow: ellipsis; }
.vehicules__ajout .champ { flex: 1 1 200px; width: auto; }
