/* =====================================================================
   Mécanisation N1 — styles propres à l'app. La charte (couleurs, typo, boutons, cartes, champs, tableaux)
   vient de style.css, copie conforme de celle d'Inventaire / Pick'PDA / Achats : ne pas la modifier ici.
   Proportions de grille en CLASSES, jamais en style="grid-template-columns" : un style en ligne bat les
   media queries et la page ne se replie plus sur un PDA (défaut trouvé sur l'ancienne app rejet).
   ===================================================================== */

/* ---------- deux postes de rejet : palette catégorielle validée (skill dataviz, emplacements 1 et 2) ---------- */
:root{--serie-fc:#2A78D6;--serie-p:#EB6834}
.serie-fc{background:var(--serie-fc)}
.serie-p{background:var(--serie-p)}
.pastille{display:inline-block;width:10px;height:10px;border-radius:50%;flex-shrink:0}

/* ---------- titres de page ---------- */
.tete{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.tete h1{font-size:34px;flex-grow:1}
.tete .sous{width:100%;margin:-6px 0 0;font-weight:700;color:var(--muted);font-size:15px}
@media (max-width:640px){.tete h1{font-size:26px}}

/* ---------- onglets en liens (seg) ---------- */
.seg a{display:flex;align-items:center;gap:8px;height:40px;padding:0 14px;border-radius:10px;color:var(--text);font-weight:800;font-size:14px;white-space:nowrap;transition:background .2s,color .2s}
.seg a:hover{background:rgba(255,255,255,.6);color:var(--text)}
.seg a.on{background:var(--text);color:#fff}
.seg a .n{min-width:22px;height:22px;padding:0 6px;border-radius:7px;background:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:12px;color:var(--text)}
.seg a.on .n{background:rgba(255,255,255,.18);color:#fff}
.seg-large a{height:48px;font-size:16px;padding:0 18px;border-radius:12px;flex:1 1 0;justify-content:center}
.seg{overflow-x:auto}
.onglets{margin-bottom:18px;align-self:flex-start;display:inline-flex}

/* ---------- tuiles du haut ---------- */
.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px}
.kpis.k3{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:1100px){.kpis,.kpis.k3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.kpis,.kpis.k3{grid-template-columns:1fr}}
.kpi{display:flex;flex-direction:column;gap:6px;padding:18px 20px;border-radius:var(--r-card);border:1px solid var(--border);background:var(--card);color:var(--text);font-weight:700;transition:transform .2s var(--ease),box-shadow .2s,border-color .2s;min-width:0}
a.kpi:hover{transform:translateY(-3px);box-shadow:0 16px 36px rgba(20,20,20,.08);color:var(--text)}
.kpi .lib{display:flex;align-items:center;gap:8px;font-weight:800;font-size:14px;color:var(--muted)}
.kpi .disp{font-size:38px;line-height:1}
.kpi .disp small{font-size:18px;color:var(--muted)}
.kpi .sous{font-size:13px;font-weight:700;color:var(--faint)}
.kpi.alerte{background:var(--orange-bg);border:2px solid var(--orange)}
.kpi.alerte .lib{color:var(--text)}
.kpi.noir{background:var(--text);border-color:var(--text);color:#fff}
.kpi.noir .lib,.kpi.noir .sous{color:rgba(255,255,255,.7)}
.kpi.noir .disp{color:var(--orange)}
.kpi.vert{background:var(--green-bg);border-color:var(--green-bd)}
@media (max-width:640px){.kpi .disp{font-size:30px}}

/* ---------- mises en page ---------- */
.g-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}
.g-64{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:20px;align-items:start}
.g-36{display:grid;grid-template-columns:380px minmax(0,1fr);gap:20px;align-items:start}
@media (max-width:1100px){.g-2,.g-64,.g-36{grid-template-columns:1fr}}
.pile{display:flex;flex-direction:column;gap:20px;min-width:0}
.carte h2{margin:0 0 4px;display:flex;align-items:center;gap:10px}
.carte .hint:first-of-type{margin-top:0}
.carte>.hint{margin-bottom:14px}
.tab-wrap{overflow-x:auto}
table.liste{margin:0}
table.liste td{padding:12px 8px}
.chip{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 9px;border-radius:8px;font-weight:800;font-size:12px;white-space:nowrap;background:var(--track);color:var(--muted)}
.chip-fc::before,.chip-p::before{content:"";width:8px;height:8px;border-radius:50%;flex-shrink:0}
.chip-fc::before{background:var(--serie-fc)}
.chip-p::before{background:var(--serie-p)}
.chip-ok{background:var(--green-bg);color:var(--green-dark)}
.chip-alerte{background:var(--orange);color:var(--text)}
.chip-err{background:var(--danger-bg);color:var(--danger-text)}
.chip-neutre{background:var(--track);color:var(--muted)}
.mini-av{width:26px;height:26px;font-size:10px;vertical-align:middle;margin-right:6px}
.actions-l{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}
.actions-l form{margin:0}
form.enligne{display:inline;margin:0}
.b-36{height:36px;font-size:13px;padding:0 12px;border-radius:10px}
.vide{padding:22px;text-align:center;color:var(--muted);font-weight:700;border:2px dashed var(--border);border-radius:16px}
details.repli>summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:8px;font-weight:800}
details.repli>summary::-webkit-details-marker{display:none}
details.repli[open]>summary .chevron{transform:rotate(180deg)}

/* ---------- graphiques (barres en CSS, sans bibliothèque) ---------- */
.colonnes{display:flex;align-items:flex-end;gap:3px;height:200px;padding-top:22px;border-bottom:1px solid var(--border)}
.colonne{flex:1 1 0;min-width:0;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;position:relative;cursor:default}
.colonne .pile-v{width:min(26px,72%);display:flex;flex-direction:column-reverse;gap:2px;transform-origin:bottom;animation:growV .9s var(--ease) both}
.colonne .pile-v>span{min-height:2px}
.colonne .pile-v>span:last-child{border-radius:4px 4px 0 0}
.colonne .barre-v{width:min(26px,72%);background:var(--green);border-radius:4px 4px 0 0;transform-origin:bottom;animation:growV .9s var(--ease) both}
.colonne .barre-v.vide-j{background:transparent;border:1px dashed var(--disabled);border-bottom:none;height:6px}
.colonne:hover .pile-v,.colonne:hover .barre-v{filter:brightness(1.15)}
.colonne .eti{position:absolute;margin-bottom:4px;font:800 12px var(--f-body);color:var(--text);white-space:nowrap}
@keyframes growV{from{transform:scaleY(0)}to{transform:scaleY(1)}}
.axe-x{display:flex;gap:3px;margin-top:6px}
.axe-x span{flex:1 1 0;min-width:0;text-align:center;font-size:11px;font-weight:700;color:var(--faint);white-space:nowrap;overflow:hidden}
.legende{display:flex;gap:16px;flex-wrap:wrap;font-size:13px;font-weight:800;color:var(--text);margin:-4px 0 12px}
.legende i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.legende{margin:0}
.barres{display:flex;flex-direction:column;gap:10px}
.barre-l{display:grid;grid-template-columns:minmax(120px,220px) minmax(0,1fr) 92px;align-items:center;gap:12px;font-weight:700;font-size:14px}
.barre-l .nom{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.barre-l .piste{height:22px;display:flex;align-items:center}
.barre-l .val{height:20px;background:var(--green);border-radius:0 4px 4px 0;min-width:2px;transform-origin:left;animation:grow .9s var(--ease) both}
.barre-l .chiffre{font:800 14px var(--f-display);text-align:right;white-space:nowrap}
.barre-l .chiffre small{font:700 12px var(--f-body);color:var(--muted)}
@media (max-width:640px){.barre-l{grid-template-columns:110px minmax(0,1fr) 78px}}
.info-bulle{position:fixed;z-index:300;pointer-events:none;padding:10px 12px;border-radius:12px;background:var(--text);color:#fff;font-size:13px;font-weight:700;line-height:1.5;box-shadow:0 12px 30px rgba(20,20,20,.25)}
.info-bulle b{font-size:14px}

/* ---------- maintenance / problèmes ---------- */
.tache-m{display:flex;align-items:center;gap:14px;padding:14px 4px;border-top:1px solid var(--border-soft);flex-wrap:wrap}
.tache-m:first-child{border-top:none}
.tache-m .rond{width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.tache-m .rond.fait{background:var(--green-bg);color:var(--green-dark)}
.tache-m .rond.a_faire{background:var(--orange-bg);color:var(--orange)}
.tache-m .rond.jamais{background:var(--danger-bg);color:var(--danger-text)}
.tache-m .corps{display:flex;flex-direction:column;gap:2px;flex:1 1 160px;min-width:0}
.tache-m .corps b{font-size:16px}
.tache-m .corps span{font-size:13px;font-weight:700;color:var(--muted)}
.tache-m form{display:flex;gap:8px;align-items:center;margin:0;flex-wrap:wrap}
.tache-m form input{margin:0;height:44px;width:180px;font-size:14px}
.tache-m .actions-l{flex-wrap:nowrap}
.tache-m.inactive{opacity:.55}
@media (max-width:640px){.tache-m form{width:100%}.tache-m form input{flex:1 1 auto;width:auto}}
.urg{display:inline-flex;align-items:center;height:24px;padding:0 8px;border-radius:7px;font-size:12px;font-weight:800}
.urg-critique{background:var(--danger);color:#fff}
.urg-haute{background:var(--orange);color:var(--text)}
.urg-moyenne{background:var(--orange-bg);color:var(--amber)}
.urg-faible{background:var(--track);color:var(--muted)}
.pb{display:flex;flex-direction:column;gap:8px;padding:14px 4px;border-top:1px solid var(--border-soft)}
.pb:first-child{border-top:none}
.pb .ligne{flex-wrap:wrap;gap:8px}
.pb .desc{font-weight:700;font-size:15px;white-space:pre-line;overflow-wrap:anywhere}
.pb .meta{font-size:13px;font-weight:700;color:var(--muted)}
.pb form{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:0}
.pb form input{margin:0;height:40px;font-size:14px;flex:1 1 200px}
.pb.resolu{opacity:.7}
.modeles{display:flex;flex-wrap:wrap;gap:8px}
.modeles form{margin:0}
.modele-btn{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-height:52px;padding:8px 12px;border-radius:14px;border:2px solid var(--border);background:var(--card);font-family:inherit;font-weight:800;font-size:14px;cursor:pointer;text-align:left;max-width:280px}
.modele-btn:hover{border-color:var(--text)}
.modele-btn small{font-weight:700;color:var(--muted);font-size:12px}

/* ---------- export SSI ---------- */
.etat-chaine{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px}
@media (max-width:1100px){.etat-chaine{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.etat-chaine{grid-template-columns:1fr}}
.jours-ssi td{padding:9px 8px;font-size:14px}
.jours-ssi tr.we td{background:#FBFAF7}
.jours-ssi tr.manquant td{background:var(--danger-bg)}
.jours-ssi tr.manquant .j{color:var(--danger-text)}
.jours-ssi .j{font-weight:800;white-space:nowrap}
.journal-ssi{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.journal-ssi li{display:grid;grid-template-columns:118px 92px minmax(0,1fr);gap:10px;padding:8px 2px;border-top:1px solid var(--border-soft);font-size:13px;font-weight:700}
.journal-ssi li:first-child{border-top:none}
.journal-ssi .q{color:var(--faint);white-space:nowrap}
.journal-ssi .m{overflow-wrap:anywhere}
@media (max-width:640px){.journal-ssi li{grid-template-columns:1fr}}
.cal-annee{display:flex;align-items:center;gap:8px}
.cal-annee .disp{font-size:24px;min-width:70px;text-align:center}
.cal td{padding:8px 8px;font-size:14px}
.cal tr.courante td{background:var(--orange-bg)}
.cal tr.passee td{color:var(--faint)}
.cal tr.passee td select{color:var(--faint)}
.cal select{margin:0;height:40px;font-size:14px;width:auto;min-width:200px;max-width:100%}
.cal .explicite select{border-color:var(--text)}
.cal .jours7{display:flex;gap:3px}
.cal .jours7 i{width:22px;height:22px;border-radius:6px;font-style:normal;font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center;background:var(--track);color:var(--faint)}
.cal .jours7 i.on{background:var(--green);color:#fff}
.cal .jours7 i.on.lend{background:var(--text);color:var(--orange)}
.barre-masse{position:sticky;bottom:12px;z-index:20;display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 14px;border-radius:18px;background:var(--text);color:#fff;box-shadow:0 18px 40px rgba(20,20,20,.25);margin-top:14px}
.barre-masse select{margin:0;height:44px;width:auto;min-width:220px}
.barre-masse .n{font-family:var(--f-display);font-size:20px;color:var(--orange)}
.modele{scroll-margin-top:90px}
.modele .ligne{flex-wrap:wrap}
.modele h2 input{margin:0;height:44px;font-family:var(--f-display);font-size:18px;font-weight:800;max-width:420px}
.jours-modele{display:flex;flex-direction:column;gap:6px;margin:12px 0}
.jour-m{display:grid;grid-template-columns:150px 150px minmax(0,1fr);align-items:center;gap:12px;padding:8px 10px;border-radius:14px;background:var(--bg)}
.jour-m.off{opacity:.6}
.jour-m label{margin:0;display:flex;align-items:center;gap:10px;font-weight:800}
.jour-m input[type=time]{margin:0;height:42px;font-size:15px}
.jour-m .seg{padding:3px;border-radius:12px;align-self:center;width:max-content}
.jour-m .seg label{height:36px;padding:0 12px;border-radius:9px;font-size:13px;cursor:pointer;display:flex;align-items:center}
.jour-m .seg input{position:absolute;opacity:0;width:1px;height:1px}
.jour-m .seg label:has(input:checked){background:var(--text);color:#fff}
@media (max-width:640px){.jour-m{grid-template-columns:1fr 1fr}.jour-m .seg{grid-column:1/-1}}
.resume-modele{font-size:13px;font-weight:700;color:var(--muted)}
code{font-family:var(--f-mono);font-size:13px;background:var(--bg);padding:2px 6px;border-radius:6px;overflow-wrap:anywhere}

/* ---------- réglages ---------- */
.ref-ligne{display:flex;align-items:center;gap:10px;padding:10px 2px;border-top:1px solid var(--border-soft);flex-wrap:wrap}
.ref-ligne:first-child{border-top:none}
.ref-ligne form{margin:0;display:flex;gap:8px;align-items:center}
.ref-ligne input{margin:0;height:40px;font-size:14px;min-width:0}
.ref-ligne .nom{font-weight:800;flex:1 1 200px;min-width:0}
.ref-ligne.inactive .nom{color:var(--faint);text-decoration:line-through}
.ajout{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-end;margin-top:12px}
.ajout input,.ajout select{margin:0;height:44px;width:auto;flex:1 1 200px}


/* ---------- en-tête PC : wordmark toujours là (charte) ; icônes de nav puis nom retirés quand la place manque ---------- */
.hd-mark{white-space:nowrap}
@media (max-width:1560px){.hd-nav a .ic{display:none}.hd-nav a{padding:0 14px}}
@media (max-width:1366px){.hd-user span.nom{display:none}}
.hd .cloche,.hdp .cloche{position:relative}
.hdp .cloche{margin-left:auto}
.cp-item .chevron-l{flex-shrink:0}

/* ---------- connexion ---------- */
.page-connexion{min-height:100vh;display:flex;flex-direction:column;gap:28px;padding:64px 20px 28px;max-width:480px}
.cx-tete{display:flex;flex-direction:column;align-items:center;gap:16px}
.cx-mark{font-family:var(--f-display);font-weight:800;font-size:30px;letter-spacing:1px;text-align:center}
.cx-appareil{display:flex;align-items:center;gap:10px;margin:0;font-weight:700;font-size:15px;cursor:pointer}
.logo-anime{animation:float 4s 1.6s ease-in-out infinite}
.logo-anime .lb{transform-box:fill-box;animation:drop .7s cubic-bezier(.3,.8,.3,1) both}
.logo-anime .lb0{animation-delay:.1s}.logo-anime .lb1{animation-delay:.3s}.logo-anime .lb2{animation-delay:.5s}
.logo-anime .lst{transform-box:fill-box;transform-origin:center;animation:stampLogo .6s .95s var(--ease) both}

/* ---------- accueil PDA : une carte par action ---------- */
.choix-pda{display:flex;flex-direction:column;gap:12px}
.choix{display:flex;align-items:center;gap:14px;min-height:84px;padding:12px 16px;border-radius:var(--r-card);background:var(--card);border:1px solid var(--border);color:var(--text)}
.choix:hover{color:var(--text)}
.choix:active{transform:scale(.98)}
.choix.attention{border:2px solid var(--orange);background:var(--orange-bg)}
.choix-ic{width:52px;height:52px;border-radius:16px;background:var(--text);color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.choix.attention .choix-ic{background:var(--orange);color:var(--text)}
.choix-t{display:flex;flex-direction:column;gap:2px;flex-grow:1;min-width:0}
.choix-t b{font-size:18px}
.choix-t span{font-size:15px;font-weight:700;color:var(--muted)}

/* ---------- saisie des rejets : modèle de l'écran Scan de l'Inventaire ---------- */
.g-saisie{display:grid;grid-template-columns:minmax(0,520px) minmax(0,1fr);gap:28px;align-items:start}
@media (max-width:899px){.g-saisie{grid-template-columns:1fr;gap:14px}}
.saisie-col{display:flex;flex-direction:column;gap:8px;min-width:0}
#scanForm{display:flex;flex-direction:column;gap:8px;margin-top:4px}
.seg-large{display:flex}
.seg-large a{flex:1 1 0;justify-content:center;height:44px;font-size:15px}
.seg-large a.on .pastille{box-shadow:0 0 0 2px #fff}
.choix-champ{cursor:pointer;user-select:none}
.choix-champ .champ-val{font-weight:800;font-size:18px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.choix-champ.avenir .champ-val,.choix-champ.actif .champ-val{color:var(--faint)}
.choix-champ.fait .champ-val{color:var(--text)}
.choix-champ .chevron-l{color:var(--faint)}
.saisies{display:flex;flex-direction:column;gap:8px}
.saisie .pos{max-width:48%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.saisie .nom{display:flex;flex-direction:column;line-height:1.25}
.saisie .nom small{font-size:12px;font-weight:700;color:var(--muted);overflow:hidden;text-overflow:ellipsis}
.saisie .h{font-weight:800;font-size:13px;color:var(--faint);flex-shrink:0}

/* ---------- boîte de dialogue : choix dans une liste ---------- */
.dlg-choix{display:flex;flex-direction:column;gap:8px;max-height:52vh;overflow:auto;margin:-4px -4px 0;padding:4px}
.dlg-option{min-height:56px;padding:8px 16px;border-radius:16px;border:2px solid var(--border);background:var(--card);font-family:inherit;font-weight:800;font-size:16px;color:var(--text);text-align:left;cursor:pointer;transition:transform .1s,border-color .15s}
.dlg-option:hover{border-color:var(--text)}
.dlg-option:active{transform:scale(.98)}
.dlg-option.on{background:var(--text);border-color:var(--text);color:#fff}
.dlg-autre{display:flex;gap:8px}
.dlg-autre input{margin:0;height:56px;border-radius:16px}
.modale.dlg{gap:18px}
.modale.dlg .icone{width:56px;height:56px;border-radius:18px;display:flex;align-items:center;justify-content:center}
.modale.dlg .valeur{align-self:flex-start;padding:8px 14px;border-radius:12px;background:var(--bg);font-family:var(--f-mono);font-weight:800;font-size:22px;word-break:break-all}
.modale.dlg .texte{font-weight:700;font-size:16px;color:var(--muted);line-height:1.4}
.modale.dlg .actions{display:flex;flex-direction:column;gap:10px}

/* ---------- listes cliquables du tableau de bord ---------- */
a.tache-m,a.pb{color:var(--text)}
a.tache-m:hover .chevron-l,a.pb:hover{color:var(--text)}
a.tache-m .chevron-l{margin-left:auto;color:var(--faint)}
.chevron-l{transition:transform .2s var(--ease),color .2s}
a.tache-m:hover .chevron-l{transform:translateX(3px)}

/* ---------- lignes simples (interventions, opérateurs) ---------- */
.fait-jour{display:flex;align-items:center;gap:10px;padding:10px 4px;border-top:1px solid var(--border-soft)}
.fait-jour:first-of-type{border-top:none}
.fait-jour .corps{display:flex;flex-direction:column;flex-grow:1;min-width:0}
.fait-jour .corps b{font-size:15px;overflow:hidden;text-overflow:ellipsis}
.fait-jour .corps span{font-size:13px;font-weight:700;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fait-jour .h{font-weight:800;font-size:13px;color:var(--faint);white-space:nowrap}
.filtres label{margin-top:0}
.filtres{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.filtres input,.filtres select{margin:0;height:44px;width:auto;font-size:15px}
/* PC / PDA : nos blocs en display:flex (.tete…) ne doivent pas faire réapparaître ce que la charte masque */
@media (max-width:899px){.pc-seul{display:none !important}}
@media (min-width:900px){.pda-seul{display:none !important}}
/* champ étape : le cadre orange suffit, pas d'anneau de focus du champ en plus */
.champ input:focus{box-shadow:none}
.barre-l .val.serie-fc{background:var(--serie-fc)}
.barre-l .val.serie-p{background:var(--serie-p)}

/* ---------- réglages PC PROD ---------- */
.etapes{margin:14px 0 18px;padding-left:22px;display:flex;flex-direction:column;gap:12px;font-weight:700;font-size:15px}
.etapes li::marker{font-weight:800}
.regle-pcprod{display:flex;flex-direction:column;gap:10px;margin-top:10px}
.regle-pcprod>div{display:flex;flex-direction:column;gap:3px;font-weight:700}
