:root{--or:#f6bf1f;--or-clair:#efc779;--abricot:#efb480;--nuit:#090e1d;--nuit-clair:#161d31;--or-lisible:#8a6605;--fond:#f7f5f0;--carte:#fff;--menufond:var(--nuit);--fond-doux:#f4f2ec;--fond-bouton:var(--or);--fond-titre:#f3f3f3;--texte:#141824;--texte-doux:#6b6f79;--texte-pale:#9a9ea7;--texte-menu:#c9cdd8;--texte-menu-etiquette:#fff;--bordure:#e7e3d9;--bordure-nette:#d3cfc4;--accent:var(--or-lisible);--accent-fort:#6e5605;--accent-pale:#fbf0d6;--succes:#2f6b3a;--succes-fond:#eaf3ec;--alerte:#8a4f10;--alerte-fond:#fdf0e2;--danger:#a52a22;--danger-fond:#fdeceb;--neutre:#3f4a63;--neutre-fond:#eef1f6;--offert:#92710a;--offert-fond:#fdf3d9;--vert-bouteille:#014421;--rayon:6px;--rayon-carte:10px;--ombre:0 1px 2px #090e1d0d, 0 1px 12px #090e1d0a;--ombre-survol:0 6px 20px #090e1d1a;--ombre-choisi:0 10px 24px #090e1d38, 0 2px 6px #090e1d1f;--connexion-marque:var(--nuit);--connexion-champ-fond:#f8f8f8;--connexion-texte-nuit:#14213d}*{box-sizing:border-box;margin:0;padding:0}body{color:var(--texte);background:var(--fond);-webkit-font-smoothing:antialiased;font-family:Hind,system-ui,-apple-system,sans-serif;font-size:14px;line-height:1.5}h1,h2,h3,.indicateur-valeur,.fiche-montant-valeur,.champ-valeur.gros{letter-spacing:.01em;font-family:Rajdhani,system-ui,sans-serif}button{font-family:inherit}.page{max-width:1140px;margin:0 auto;padding:28px 24px 48px}.entete{justify-content:space-between;align-items:baseline;margin-bottom:20px;display:flex}.entete h1{letter-spacing:-.01em;font-size:21px;font-weight:600}.entete span{color:var(--texte-doux);font-size:13px}.app-contenu .page.tableau-de-bord{max-width:none;margin:0;padding:0}.tableau-de-bord-corps{flex-direction:column;gap:20px;padding:24px 28px 40px;display:flex}.accueil-entete{background:var(--carte);border-bottom:1px solid var(--bordure);align-items:center;gap:16px;padding:14px 28px;display:flex}.accueil-entete h1{letter-spacing:-.01em;font-size:19px;font-weight:600}.accueil-entete span{color:var(--texte-doux);text-transform:lowercase;margin-top:2px;font-size:13px;font-weight:400;display:block}.accueil-entete-texte{flex-shrink:0}.topbar-recherche{flex-shrink:0;margin-left:auto;position:relative}.topbar-recherche input{border:1px solid var(--bordure);border-radius:var(--rayon);background:var(--fond);width:240px;color:var(--texte);padding:8px 12px 8px 34px;font-family:inherit;font-size:14px}.topbar-recherche input::placeholder{color:var(--texte-pale)}.topbar-recherche svg{width:15px;height:15px;stroke:var(--texte-pale);fill:none;stroke-width:1.8px;pointer-events:none;position:absolute;top:50%;left:11px;transform:translateY(-50%)}.topbar-resultats{z-index:10;background:var(--carte);border:1px solid var(--bordure-nette);border-radius:var(--rayon);max-height:260px;box-shadow:var(--ombre-survol);margin-top:4px;position:absolute;top:100%;left:0;right:0;overflow-y:auto}.topbar-resultats div{cursor:pointer;padding:8px 12px;font-size:14px}.topbar-resultats div:hover{background:var(--fond)}.topbar-avatar{background:var(--nuit);width:34px;height:34px;color:var(--or);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-family:Rajdhani,sans-serif;font-size:13px;font-weight:700;display:flex}.app{min-height:100vh;display:flex}.app-contenu{flex:1;min-width:0}.app-contenu .page{max-width:1140px}.menu{background:var(--menufond);flex-direction:column;flex-shrink:0;width:220px;height:100vh;display:flex;position:sticky;top:0}.menu-marque{cursor:pointer;border-bottom:1px solid var(--nuit-clair);align-items:center;gap:11px;padding:18px 20px 20px;display:flex}.menu-marque-icone{background:var(--or);width:30px;height:30px;color:var(--nuit);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.menu-marque-texte{flex-direction:column;line-height:1.2;display:flex}.menu-marque-nom{color:#fff;font-family:Rajdhani,sans-serif;font-size:20px;font-weight:700}.menu-marque-sous{letter-spacing:.12em;text-transform:uppercase;color:var(--or-clair);font-size:11px;font-weight:500}.menu-eyebrow{letter-spacing:.16em;text-transform:uppercase;color:var(--texte-menu-etiquette);margin:14px 0 4px;padding:0 20px;font-size:11px;font-weight:600}.menu-eyebrow:first-of-type{margin-top:8px}.menu-liens{flex-direction:column;gap:2px;padding:12px;display:flex}.menu-sous-liens{border-left:1px solid var(--nuit-clair);flex-direction:column;gap:2px;margin:2px 0 2px 12px;padding-left:10px;display:flex}.menu-sous-liens button{border-radius:var(--rayon);color:var(--texte-menu);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:10px;width:100%;padding:7px 12px;font-family:inherit;font-size:13px;display:flex}.menu-sous-liens button:hover{background:var(--nuit-clair);color:#fff}.menu-sous-liens button.actif{background:var(--or);color:var(--nuit);font-weight:500}.menu-liens button{border-radius:var(--rayon);color:var(--texte-menu);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:11px;width:100%;padding:9px 12px;font-family:inherit;font-size:13px;display:flex}.menu-liens button:hover{background:var(--nuit-clair);color:#fff}.menu-liens button.actif{background:var(--or);color:var(--nuit);font-weight:500}.menu-liens button svg{flex-shrink:0}.menu-profil{border-top:1px solid var(--nuit-clair);align-items:center;gap:10px;margin-top:auto;padding:12px;display:flex}.menu-avatar{background:var(--or);width:34px;height:34px;color:var(--nuit);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-family:Rajdhani,sans-serif;font-size:13px;font-weight:700;display:flex}.menu-profil-infos{cursor:pointer;flex:1;min-width:0}.menu-profil-nom{color:var(--texte-menu);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:500;overflow:hidden}.menu-profil-role{color:#6d7488;font-size:11px}.menu-deconnexion{cursor:pointer;color:#6d7488;background:0 0;border:none;flex-shrink:0;align-items:center;padding:6px;display:flex}.menu-deconnexion:hover{color:var(--or)}.indicateurs{grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:20px;display:grid}.indicateur{background:var(--carte);border:1px solid var(--bordure);border-radius:var(--rayon-carte);cursor:pointer;box-shadow:var(--ombre);padding:16px 18px;transition:transform .14s,box-shadow .14s,border-color .14s}.indicateur:hover{box-shadow:var(--ombre-survol);transform:translateY(-4px)}.indicateur.pointe-or{border-left:3px solid var(--or)}.indicateur.pointe-rouge{border-left:3px solid var(--danger)}.indicateur.pointe-vert{border-left:3px solid var(--vert-bouteille)}.indicateur.pointe-nuit{border-left:3px solid var(--nuit)}.indicateur-libelle{color:var(--texte-doux);align-items:center;gap:7px;font-size:13px;font-weight:700;display:flex}.indicateur-libelle svg{opacity:.75;flex-shrink:0}.indicateur-valeur{font-variant-numeric:tabular-nums;letter-spacing:-.02em;margin-top:4px;font-size:26px;font-weight:600}.indicateur-detail{color:var(--texte-pale);margin-top:2px;font-size:14px}.indicateur-detail.critique{color:var(--danger)}.cartes{grid-template-columns:repeat(2,1fr);gap:20px;margin-bottom:20px;display:grid}.cartes-large{grid-template-columns:1fr;display:grid}.carte{background:var(--carte);border:1px solid var(--bordure);border-radius:var(--rayon-carte);box-shadow:var(--ombre);overflow:hidden}.carte-entete{border-bottom:1px solid var(--or-clair);color:var(--texte);background:var(--carte);justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;font-size:16px;font-weight:600;display:flex}.carte-vide{text-align:center;color:var(--texte-pale);padding:32px;font-size:14px}.ligne{cursor:pointer;justify-content:space-between;align-items:center;padding:11px 16px;display:flex}.ligne+.ligne{border-top:1px solid var(--bordure)}.ligne:hover{background:var(--fond)}.ligne-titre{font-size:16px}.ligne-detail{color:var(--texte-pale);margin-top:1px;font-size:13px}.ligne-detail.tiede{color:var(--alerte)}.ligne-detail.grave{color:var(--danger)}.ligne-montant{font-variant-numeric:tabular-nums;font-size:13px}.ligne-droite{text-align:right}table{border-collapse:collapse;background:var(--carte);border:1px solid var(--bordure);border-radius:var(--rayon-carte);width:100%;box-shadow:var(--ombre);overflow:hidden}th{text-align:left;letter-spacing:.09em;text-transform:uppercase;color:var(--texte);border-bottom:1px solid var(--bordure);background:var(--fond-titre);padding:9px 18px;font-family:Rajdhani,sans-serif;font-size:14px;font-weight:600}td{border-bottom:1px solid var(--bordure);vertical-align:middle;padding:11px 18px}tr:last-child td{border-bottom:none}tbody tr:hover{background:var(--accent-pale);cursor:pointer}th.triable{cursor:pointer;-webkit-user-select:none;user-select:none}th.triable:hover{color:var(--texte)}.carte table{box-shadow:none;border:none;border-radius:0}.montant{text-align:right;font-variant-numeric:tabular-nums}.vide{text-align:center;color:var(--texte-pale);padding:44px}.badge,.badge-ech{white-space:nowrap;border-radius:20px;padding:3px 10px;font-size:12px;display:inline-block}.badge-ech.attendue{background:var(--neutre-fond);color:var(--neutre)}.badge-ech.encaissee{background:var(--succes-fond);color:var(--succes)}.badge-ech.impayee{background:var(--danger-fond);color:var(--danger)}.badge-ech.annulee{background:var(--neutre-fond);color:var(--texte-pale)}.badge-ech.offerte{background:var(--offert-fond);color:var(--offert)}.pastille{background:var(--fond-doux);color:var(--texte-doux);border-radius:10px;margin-left:6px;padding:1px 7px;font-size:11px;display:inline-block}.pastille.retard{color:var(--danger);background:var(--danger-fond)}.retour{color:var(--texte-doux);cursor:pointer;background:0 0;border:none;margin-bottom:18px;padding:0;font-size:13px}.retour:hover{color:var(--accent)}.fiche-entete{background:var(--carte);border:1px solid var(--bordure);border-radius:var(--rayon-carte);justify-content:space-between;align-items:flex-start;margin-bottom:16px;padding:18px 20px;display:flex}.fiche-titre{letter-spacing:-.01em;align-items:center;gap:10px;font-size:18px;font-weight:600;display:flex}.fiche-sous-titre{color:var(--texte-doux);margin-top:6px;font-size:13px}.fiche-droite{text-align:right}.fiche-montant-valeur{font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-size:22px;font-weight:600}.fiche-montant-detail{color:var(--texte-pale);margin-top:2px;font-size:12px}.fiche-boutons{justify-content:flex-end;gap:8px;margin-top:12px;display:flex}.bloc{background:var(--carte);border:1px solid var(--bordure);border-radius:var(--rayon-carte);margin-bottom:16px;padding:18px 20px}.bloc-titre{color:var(--texte-doux);margin-bottom:14px;font-size:12px}.bloc table{border:none;border-radius:0}.onglets{border-bottom:1px solid var(--bordure);gap:2px;margin-bottom:16px;display:flex}.onglets button{cursor:pointer;color:var(--texte-doux);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 16px;font-size:13px}.onglets button:hover{color:var(--texte)}.onglets button.actif{color:var(--texte);border-bottom-color:var(--accent)}.grille{grid-template-columns:repeat(3,1fr);gap:16px 24px;display:grid}.grille2{grid-template-columns:repeat(2,1fr);gap:16px 24px;display:grid}.grille3{grid-template-columns:repeat(3,1fr);gap:16px 24px;display:grid}.champ-libelle{color:var(--texte-doux);margin-bottom:4px;font-size:12px}.champ-valeur{font-size:14px}.champ-valeur.gros{padding-top:4px;font-size:20px;font-weight:600}label{flex-direction:column;display:flex}label>span{color:var(--texte-doux);margin-bottom:4px;font-size:12px}label>small{color:var(--texte-pale);margin-top:4px;font-size:12px}input,select,textarea{border:1px solid var(--bordure-nette);border-radius:var(--rayon);background:var(--carte);color:var(--texte);padding:8px 10px;font-family:inherit;font-size:14px;transition:border-color .12s}input:hover,select:hover,textarea:hover{border-color:var(--texte-pale)}input:focus,select:focus,textarea:focus{border-color:var(--accent);outline:none}input:disabled,select:disabled,textarea:disabled{background:var(--fond-doux);color:var(--texte-pale)}.recherche{border:1px solid var(--bordure-nette);border-radius:var(--rayon);background:var(--carte);width:100%;margin-bottom:16px;padding:9px 12px;font-size:14px}.barre-filtres{align-items:stretch;gap:12px;margin-bottom:16px;display:flex}.barre-filtres .recherche{flex:1;max-width:380px;margin-bottom:0}.barre-filtres .segments{flex-shrink:0}.barre-filtres .segments button{white-space:nowrap;padding:0 20px}.barre-filtres .case{white-space:nowrap}.case{align-items:center;gap:8px;flex-direction:row!important;display:flex!important}.case input{width:auto}.case span{color:var(--texte)!important;margin:0!important;font-size:16px!important}.segments{border:1px solid var(--bordure-nette);border-radius:var(--rayon);display:inline-flex;overflow:hidden}.segments button{background:var(--carte);cursor:pointer;color:var(--texte);border:none;padding:8px 16px;font-size:14px}.segments button.actif{background:var(--accent-pale);color:var(--accent);font-weight:500}.segments button:disabled{color:var(--texte-pale);cursor:default}.segments-compact button,.barre-filtres .segments-compact button{padding:6px 11px;font-size:13px}.btn-principal,.btn-secondaire,.bouton-nouveau{cursor:pointer;border:1px solid #0000;border-radius:8px;padding:8px 15px;font-family:inherit;font-size:14px;font-weight:500;transition:filter .15s,background .15s}.btn-principal,.bouton-nouveau{background:var(--or);color:var(--nuit)}.btn-principal:hover,.bouton-nouveau:hover{filter:brightness(.93)}.btn-principal:disabled,.bouton-nouveau:disabled{opacity:.5;cursor:default}.btn-secondaire{background:var(--carte);border-color:var(--bordure-nette);color:var(--texte)}.btn-secondaire:hover{background:var(--fond)}.actions{justify-content:flex-end;gap:8px;display:flex}.actions-ligne{text-align:right;white-space:nowrap}.lien{color:var(--texte-doux);cursor:pointer;background:0 0;border:none;padding:0 8px;font-family:inherit;font-size:13px}.lien:hover{color:var(--accent)}.carte-entete .lien{color:var(--accent);padding:0;font-size:13.5px;font-weight:500}.carte-entete .lien:hover{color:var(--accent);text-decoration:underline}.btn-danger{color:var(--danger);border-color:#f0c4c4}.btn-danger:hover{background:var(--danger-fond)}.alerte{background:var(--danger-fond);color:var(--danger);border-radius:var(--rayon);border:1px solid #f0c4c4;margin-bottom:16px;padding:12px 14px;font-size:13px}.alerte div+div{margin-top:4px}.note{color:var(--texte-doux);background:var(--carte);border:1px solid var(--bordure);border-radius:var(--rayon);margin-bottom:16px;padding:8px 12px;font-size:12px}.modale-fond{z-index:100;background:#26241f73;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modale{background:var(--carte);border-radius:var(--rayon-carte);width:420px;max-height:90vh;padding:28px;overflow-y:auto}.modale-large{width:680px}.modale h2{margin-bottom:8px;font-size:17px;font-weight:600}.modale p{color:var(--texte-doux);margin-bottom:18px;font-size:13px}.modale label{display:block}.modale input,.modale select,.modale textarea{width:100%}.modale textarea{resize:vertical}.modale .case input{width:auto}.provisoire{background:var(--fond-doux);border:1px solid var(--bordure);border-radius:var(--rayon);cursor:pointer;justify-content:space-between;align-items:center;margin-bottom:14px;padding:14px 16px;display:flex}.provisoire code{letter-spacing:1px;color:var(--texte);font-family:Cascadia Mono,Consolas,monospace;font-size:17px}.provisoire span{color:var(--accent);font-size:12px}.avertissement{color:var(--danger)!important;font-size:12px!important}.connexion{background:var(--fond);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.connexion-carte{border-radius:var(--rayon-carte);border:1px solid var(--bordure);width:min(760px,100%);min-height:420px;display:flex;overflow:hidden;box-shadow:0 12px 28px #25252529}.connexion-marque{background:var(--connexion-marque);color:#fff;text-align:center;flex-direction:column;flex:0 0 42%;justify-content:center;align-items:center;gap:10px;padding:32px;display:flex;position:relative}.connexion-marque-icone{background:var(--or);width:64px;height:64px;color:var(--nuit);border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.connexion-marque-nom{color:#fff;margin-top:6px;font-family:Rajdhani,sans-serif;font-size:28px;font-weight:700}.connexion-marque-sous{letter-spacing:.14em;text-transform:uppercase;color:var(--or-clair);font-size:12px;font-weight:600}.connexion-soustitre{color:#ffffffbf;margin-top:6px;font-size:14px;line-height:1.4}.connexion-version{color:#fff9;font-size:12px;position:absolute;bottom:12px;left:16px}.connexion-form{background:var(--carte);flex-direction:column;flex:auto;justify-content:center;gap:16px;padding:36px 38px;display:flex}.connexion-form label{display:block}.connexion-form label>span{color:var(--connexion-texte-nuit);font-weight:500}.connexion-form input{background:var(--connexion-champ-fond);border:1px solid var(--bordure-nette);width:100%;color:var(--connexion-texte-nuit)}.connexion-form input:focus{border-color:var(--connexion-marque)}@media (width<=620px){.connexion-carte{flex-direction:column;min-height:0}.connexion-marque{flex-basis:auto;padding:24px}}.technicien{background:var(--fond);flex-direction:column;min-height:100vh;display:flex}.technicien-barre{padding:12px 16px;padding-top:calc(12px + env(safe-area-inset-top));background:var(--menufond);color:#fff;z-index:10;align-items:center;gap:10px;display:flex;position:sticky;top:0}.technicien-barre-icone{background:var(--or);width:28px;height:28px;color:var(--nuit);border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.technicien-barre-titre{letter-spacing:.02em;font-family:Rajdhani,system-ui,sans-serif;font-size:18px;font-weight:700}.technicien-barre-nom{color:#fff;margin-left:auto;font-size:14px;font-weight:600}.technicien-identite{border-bottom:1px solid var(--bordure-nette);justify-content:space-between;align-items:baseline;gap:12px;width:100%;max-width:520px;margin:0 auto;padding:12px 16px;display:flex}.technicien-identite-nom{color:var(--texte);font-family:Rajdhani,system-ui,sans-serif;font-size:22px;font-weight:700}.technicien-identite-role{letter-spacing:.06em;text-transform:uppercase;color:var(--accent);font-size:12px;font-weight:600}.technicien-barre-sortie{color:var(--texte-menu);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:6px;display:inline-flex}.technicien-barre-sortie:hover{color:var(--or)}.technicien-contenu{flex:1}.technicien-page{max-width:520px;padding:16px 16px 40px;padding-bottom:calc(40px + env(safe-area-inset-bottom));flex-direction:column;gap:14px;margin:0 auto;display:flex}.technicien-date{color:var(--texte);font-family:Rajdhani,system-ui,sans-serif;font-size:20px;font-weight:600}.technicien-date:first-letter{text-transform:uppercase}.technicien-vide{color:var(--texte-pale);padding:8px 0;font-size:14px}.technicien-carte{background:var(--carte);border:1px solid var(--bordure);border-radius:var(--rayon-carte);box-shadow:var(--ombre);padding:16px}.technicien-carte-titre{color:var(--texte);margin-bottom:8px;font-size:15px;font-weight:600}.technicien-avertissement{background:var(--alerte-fond);color:var(--alerte);border-radius:var(--rayon);border:1px solid #f0d7b8;align-items:flex-start;gap:10px;padding:12px 14px;font-size:14px;line-height:1.4;display:flex}.technicien-avertissement svg{flex-shrink:0;margin-top:1px}.technicien-journee{text-align:center;flex-direction:column;align-items:center;gap:14px;padding:22px 16px;display:flex}.technicien-journee.en-cours{border-color:var(--or-clair)}.technicien-journee.terminee{border-color:var(--bordure)}.technicien-journee-etat{letter-spacing:.06em;text-transform:uppercase;color:var(--texte-doux);font-size:13px;font-weight:600}.technicien-journee.en-cours .technicien-journee-etat{color:var(--accent)}.technicien-journee.terminee .technicien-journee-etat{color:var(--succes)}.technicien-journee-heures{flex-wrap:wrap;justify-content:center;gap:28px;display:flex}.technicien-journee-heures>div{flex-direction:column;align-items:center;min-width:72px;display:flex}.technicien-journee-libelle{color:var(--texte-doux);font-size:12px}.technicien-journee-valeur{color:var(--texte);font-variant-numeric:tabular-nums;font-family:Rajdhani,system-ui,sans-serif;font-size:30px;font-weight:700;line-height:1.1}.technicien-journee-commentaire{color:var(--texte-doux);font-size:14px;font-style:italic}.technicien-journee-note{color:var(--texte-pale);font-size:13px}.technicien-bouton-pointage{cursor:pointer;-webkit-tap-highlight-color:transparent;border:1px solid #0000;border-radius:14px;justify-content:center;align-items:center;gap:12px;width:100%;max-width:360px;min-height:72px;font-family:inherit;font-size:18px;font-weight:600;transition:filter .15s,transform 50ms;display:flex}.technicien-bouton-pointage:active{transform:scale(.98)}.technicien-bouton-pointage:disabled{opacity:.55;cursor:default}.technicien-bouton-pointage.demarrer{background:var(--or);color:var(--nuit)}.technicien-bouton-pointage.demarrer:hover{filter:brightness(.95)}.technicien-bouton-pointage.terminer{background:var(--nuit);color:#fff}.technicien-bouton-pointage.terminer:hover{filter:brightness(1.25)}.technicien-ligne{border-top:1px solid var(--bordure);align-items:center;gap:10px;padding:10px 0;font-size:14px;display:flex}.technicien-ligne:first-of-type{border-top:none}.technicien-ligne-jour{width:82px;color:var(--texte-doux);text-transform:capitalize;flex-shrink:0}.technicien-ligne-heures{font-variant-numeric:tabular-nums;flex:1}.technicien-ligne-duree{font-variant-numeric:tabular-nums;font-weight:600}.technicien-ligne.anomalie .technicien-ligne-heures{color:var(--alerte)}.modale-technicien{width:min(420px,100%)}@media (width<=520px){.modale-fond:has(.modale-technicien){align-items:flex-end}.modale-technicien{border-radius:var(--rayon-carte) var(--rayon-carte) 0 0;width:100%;padding:22px 18px calc(22px + env(safe-area-inset-bottom))}}.pointage-jour{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;padding:14px 18px;display:grid}.pointage-jour-tech{text-align:left;color:var(--texte);cursor:pointer;border-radius:var(--rayon);border:2px solid var(--bordure);background:var(--fond-doux);box-shadow:none;padding:10px 14px;font-family:inherit;font-size:14px}.pointage-jour-tech:hover{background:var(--carte)}.pointage-jour-tech.choisi{border-color:var(--or);background:var(--carte);box-shadow:var(--ombre-choisi);transform:translateY(-2px)}.pointage-jour-nom{margin-bottom:2px;font-weight:600}.pointage-jour-etat{color:var(--texte-doux);font-variant-numeric:tabular-nums;align-items:center;gap:7px;font-size:13px;display:flex}.pointage-jour-point{background:var(--texte-pale);border-radius:50%;flex-shrink:0;width:9px;height:9px}.pointage-jour-tech.en-cours .pointage-jour-point{background:var(--or)}.pointage-jour-tech.termine .pointage-jour-point{background:var(--succes)}.pointage-jour-tech.absent .pointage-jour-etat{color:var(--texte-pale);font-style:italic}.pointage-total{color:var(--texte-doux);font-size:13px;font-weight:500}tr.pointage-absent td{color:var(--texte-pale)}tr.pointage-absent:hover{background:inherit;cursor:default}tr.pointage-aujourdhui td:first-child{font-weight:600}.technicien-barre-retour{color:#fff;cursor:pointer;background:0 0;border:none;border-radius:6px;margin-left:-4px;padding:4px;display:inline-flex}.technicien-succes{background:var(--succes-fond);color:var(--succes);border-radius:var(--rayon);cursor:pointer;border:1px solid #bfdcc6;flex-direction:column;align-items:flex-start;padding:12px 14px;font-size:14px;display:flex}.technicien-sous-titre{letter-spacing:.06em;text-transform:uppercase;color:var(--texte-doux);margin:10px 0 4px;font-size:12px;font-weight:600}.technicien-carte-titre.alerte-titre{color:var(--alerte)}.technicien-journee.compacte{text-align:left;flex-direction:row;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px}.technicien-journee.compacte>div{flex-direction:column;gap:2px;display:flex}.technicien-journee-ligne{color:var(--texte);font-variant-numeric:tabular-nums;font-size:15px}.technicien-bouton-compact{background:var(--nuit);color:#fff;cursor:pointer;border:1px solid #0000;border-radius:10px;flex-shrink:0;align-items:center;gap:6px;padding:9px 14px;font-family:inherit;font-size:14px;font-weight:600;display:inline-flex}.technicien-bouton-compact:disabled{opacity:.55}.intervention-type{letter-spacing:.03em;border-radius:10px;align-items:center;gap:5px;padding:2px 9px;font-size:12px;font-weight:600;display:inline-flex}.intervention-type.entretien{background:var(--accent-pale);color:var(--accent)}.intervention-type.sav{background:var(--neutre-fond);color:var(--neutre)}.intervention-type.petit{padding:1px 7px;font-size:11px}.carte-visite{text-align:left;cursor:pointer;background:var(--fond-doux);border:1px solid var(--bordure);border-radius:var(--rayon);width:100%;color:var(--texte);-webkit-tap-highlight-color:transparent;flex-direction:column;gap:4px;margin-top:8px;padding:12px 36px 12px 12px;font-family:inherit;display:flex;position:relative}.carte-visite:active{background:var(--accent-pale)}.carte-visite.en-cours{border-color:var(--or);background:var(--carte);box-shadow:var(--ombre)}.carte-visite-haut{justify-content:space-between;align-items:center;gap:8px;display:flex}.carte-visite-quand{color:var(--texte-doux);font-size:12px}.carte-visite-quand em{color:var(--accent);font-style:normal;font-weight:600}.carte-visite-client{font-size:16px;font-weight:600}.carte-visite-detail{color:var(--texte-doux);flex-wrap:wrap;gap:4px 14px;font-size:13px;display:flex}.carte-visite-detail span{align-items:center;gap:4px;display:inline-flex}.carte-visite-chevron{color:var(--texte-pale);position:absolute;top:50%;right:10px;transform:translateY(-50%)}.fiche-intervention{border-top:4px solid var(--neutre);flex-direction:column;gap:6px;display:flex}.fiche-intervention.entretien{border-top-color:var(--or)}.fiche-intervention-haut{justify-content:space-between;align-items:center;gap:8px;display:flex}.fiche-intervention-quand{color:var(--texte-doux);font-size:13px}.fiche-intervention-quand:first-letter{text-transform:uppercase}.fiche-intervention-client{font-family:Rajdhani,system-ui,sans-serif;font-size:24px;font-weight:700;line-height:1.15}.fiche-intervention-adresse{color:var(--texte);font-size:15px}.fiche-intervention-etat{color:var(--accent);font-size:13px;font-weight:600}.fiche-intervention-note{color:var(--alerte);font-size:13px}.fiche-intervention-liens{flex-direction:column;gap:8px;margin-top:8px;display:flex}.technicien-bouton-lien{background:var(--carte);border:1px solid var(--bordure-nette);min-height:48px;color:var(--texte);font-variant-numeric:tabular-nums;border-radius:10px;align-items:center;gap:10px;padding:10px 14px;font-size:16px;font-weight:600;text-decoration:none;display:flex}.technicien-bouton-lien small{color:var(--texte-doux);margin-left:auto;font-size:12px;font-weight:400}.technicien-bouton-lien:active{background:var(--accent-pale)}.fiche-ligne{border-top:1px solid var(--bordure);flex-direction:column;gap:2px;padding:8px 0;display:flex}.fiche-ligne:first-of-type{border-top:none}.fiche-ligne span{color:var(--texte-doux);font-size:12px}.fiche-ligne strong{white-space:pre-wrap;font-size:15px;font-weight:500}.fiche-ligne.consigne{background:var(--accent-pale);border-top:none;margin:4px -16px 0;padding:10px 16px}.fiche-ligne.consigne span{color:var(--accent);font-weight:600}.fiche-historique{border-top:1px solid var(--bordure);padding:8px 0;font-size:14px}.fiche-historique:first-of-type{border-top:none}.fiche-historique-haut{color:var(--texte-doux);justify-content:space-between;gap:8px;margin-bottom:3px;font-size:12px;display:flex}.fiche-historique p{white-space:pre-wrap}.fiche-historique-piece{color:var(--alerte);font-size:13px}.fiche-intervention-actions{flex-direction:column;align-items:center;gap:10px;display:flex}.technicien-bouton-secondaire{cursor:pointer;background:var(--carte);border:1px solid var(--bordure-nette);min-height:44px;color:var(--texte);border-radius:10px;align-items:center;gap:8px;padding:8px 18px;font-family:inherit;font-size:15px;display:inline-flex}.technicien-bouton-secondaire:disabled{opacity:.55}.cloture-titre{font-family:Rajdhani,system-ui,sans-serif;font-size:24px;font-weight:700}.cloture-signature-haut{justify-content:space-between;align-items:center;display:flex}.technicien-carte label{flex-direction:column;display:flex}.technicien-carte label>span{color:var(--texte-doux);margin-bottom:4px;font-size:12px}.technicien-carte label>small{color:var(--texte-pale);margin-top:4px;font-size:12px}.technicien-carte input,.technicien-carte textarea{width:100%;font-size:16px}.signature-zone{touch-action:none;background:var(--carte);border:1px dashed var(--bordure-nette);border-radius:var(--rayon);width:100%;display:block}.app-contenu .page.planning{max-width:none}.planning-message{cursor:pointer;background:var(--succes-fond);color:var(--succes);border-color:#bfdcc6}.planning-corps{grid-template-columns:300px minmax(0,1fr);align-items:start;gap:16px;display:grid}@media (width<=1100px){.planning-corps{grid-template-columns:1fr}}.planning-liste{max-height:calc(100vh - 320px);overflow-y:auto}.planning-a-planifier-ligne{border-top:1px solid var(--bordure);padding:10px 14px}.planning-a-planifier-haut{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:4px;display:flex}.planning-a-planifier-haut .pastille{margin-left:0}.planning-client{color:var(--texte);text-align:left;padding:0;font-size:15px;font-weight:600}.planning-client:hover{color:var(--accent)}.planning-a-planifier-detail{color:var(--texte-doux);font-size:13px}.planning-a-planifier-desc{color:var(--texte);white-space:pre-wrap;margin-top:2px;font-size:13px}.btn-petit{padding:5px 12px;font-size:13px}.planning-grille-defilement{overflow-x:auto}.planning-grille{box-shadow:none;table-layout:fixed;border:none;border-radius:0;min-width:860px}.planning-grille th{text-align:center;padding:9px 8px;font-size:12px}.planning-grille th.planning-col-tech{text-align:left;width:140px}.planning-grille td.planning-col-tech{vertical-align:top;font-weight:600}.planning-grille td{vertical-align:top;border-right:1px solid var(--bordure);padding:6px}.planning-grille tbody tr:hover{background:inherit;cursor:default}.planning-cellule{min-height:64px}.planning-grille .planning-aujourdhui{background:var(--accent-pale)}.planning-grille th.planning-aujourdhui{color:var(--accent)}.visite-mini{text-align:left;cursor:pointer;width:100%;color:var(--texte);border:1px solid #0000;border-radius:5px;align-items:center;gap:5px;margin-bottom:4px;padding:4px 6px;font-family:inherit;font-size:12px;line-height:1.25;display:flex}.visite-mini.entretien{background:var(--accent-pale);border-color:var(--or-clair)}.visite-mini.sav{background:var(--neutre-fond);border-color:#c9d2e3}.visite-mini.en-cours{border-color:var(--or);box-shadow:0 0 0 1px var(--or)}.visite-mini.terminee{opacity:.55;text-decoration:line-through}.visite-mini:hover{filter:brightness(.96)}.visite-mini-creneau{color:var(--texte-doux);flex-shrink:0;width:18px;font-size:10px;font-weight:700}.visite-mini-client{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.planning-legende{border-top:1px solid var(--bordure);color:var(--texte-doux);flex-wrap:wrap;gap:14px;padding:10px 14px;font-size:12px;display:flex}.planning-legende span{align-items:center;gap:6px;display:inline-flex}.planning-legende i.visite-mini{width:22px;height:12px;margin:0;padding:0;display:inline-block}.planning-detail-haut{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.planning-detail-haut .pastille{margin-left:0}.pastille.statut-en_cours{color:var(--accent);background:var(--accent-pale)}.pastille.statut-terminee{color:var(--succes);background:var(--succes-fond)}.pastille.statut-reportee,.pastille.statut-annulee{color:var(--danger);background:var(--danger-fond)}.planning-compte-rendu{background:var(--fond-doux);border-radius:var(--rayon);margin-top:14px;padding:12px 14px}.planning-compte-rendu p{color:var(--texte);white-space:pre-wrap;margin:4px 0 0;font-size:14px}.planning-signature{flex-direction:column;gap:4px;margin-top:10px;display:flex}.planning-signature img{border:1px solid var(--bordure);border-radius:var(--rayon);background:#fff;max-width:240px}.planning-signature small{color:var(--texte-doux)}.planning-client-choisi{background:var(--fond-doux);border-radius:var(--rayon);align-items:center;gap:8px;padding:8px 10px;display:flex}.planning-client-choisi small{color:var(--texte-pale)}.planning-sav-planif{background:var(--fond-doux);border-radius:var(--rayon);margin-top:16px;padding:12px 14px}.planning-sav-planif .grille3{margin-top:6px}td.suivi-extrait{text-overflow:ellipsis;white-space:nowrap;max-width:320px;overflow:hidden}
