:root{--encre: #141821;--rouge: #e11d2e;--rouge-fonce: #b11220;--bleu: #2c3d9e;--vert: #0f8a4b;--fond: #efeae3;--carte: #fffcf8;--ligne: #e4ddd4;--texte-doux: #5d6574;--ombre: 0 24px 60px rgba(20, 24, 33, .08);font-family:"Source Sans 3",Segoe UI,sans-serif;color:var(--encre);background:var(--fond)}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(720px 320px at 100% -8%,rgba(225,29,46,.12),transparent 55%),radial-gradient(640px 280px at -10% 0%,rgba(44,61,158,.12),transparent 50%),var(--fond)}h1,h2,.horloge,.marque-nom,.cadran-action,.avatar,.equipe em{font-family:Outfit,Segoe UI,sans-serif;letter-spacing:-.03em}a{color:var(--bleu)}button,input{font:inherit}.logo{width:52px;height:52px;object-fit:cover;border-radius:16px;background:#050505;box-shadow:0 0 0 3px #111}.logo-grand{width:132px;height:132px;border-radius:36px}.surtitre-sombre{color:var(--rouge)}.plaque-page h1{margin:6px 0 0}.plaque-actuelle{margin:18px 0 0;font-family:Outfit,sans-serif;font-size:2rem;font-weight:700;letter-spacing:.08em}.plaque-console{margin:14px 0 0}.plaque-console a{color:#fff;font-weight:700;letter-spacing:.08em}.pastille-plaque{font-weight:700;letter-spacing:.06em;background:#171b24;color:#fff;border-radius:999px;padding:3px 10px;font-size:.85rem}.surtitre,.sites-marque{margin:0;letter-spacing:.16em;text-transform:uppercase;font-size:.78rem;font-weight:700;color:#ff8b93}.plaque-page .surtitre{color:var(--rouge)}.trace{width:min(320px,100%);height:48px;margin-top:8px}.trace polyline{fill:none;stroke:#ff4b5a;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.ecran-auth{min-height:100vh;display:grid;grid-template-columns:minmax(300px,.95fr) minmax(340px,1fr)}.panneau-marque{background:radial-gradient(420px 240px at 18% 18%,rgba(225,29,46,.45),transparent 62%),linear-gradient(160deg,#10131a,#1a2450 58%,#0c0e14);color:#fff;padding:56px 48px;display:flex;flex-direction:column;justify-content:center;gap:10px}.panneau-marque h1{margin:0;font-size:clamp(2.2rem,4vw,3.4rem);line-height:.98;max-width:12ch}.panneau-marque p:not(.surtitre):not(.sites-marque){max-width:34ch;color:#d5dbea;font-size:1.12rem;margin:0}.panneau-formulaire{padding:48px 7vw;display:flex;flex-direction:column;justify-content:center}.panneau-formulaire h2{margin:0 0 6px;font-size:2rem}.intro,.vide{color:var(--texte-doux)}form{display:grid;gap:14px;margin-top:18px}label{display:grid;gap:6px;font-weight:700;font-size:.92rem}input[type=text],input[type=email],input[type=password],input[type=tel],input[type=number],input[type=date],input[type=month],input:not([type]),select{width:100%;border:1px solid var(--ligne);background:#fff;border-radius:14px;padding:13px 14px;color:var(--encre)}input:focus,select:focus{outline:2px solid rgba(44,61,158,.28);border-color:var(--bleu)}.choix-salarie,.choix-mois{margin-top:18px;max-width:420px}.choix-mois{margin-top:0}.choix-salarie select,.choix-mois select{font-size:1.15rem;font-weight:700}.choix-salarie select.select-vide{font-size:.92rem;font-weight:600}.archive-note{margin:14px 0 0;padding:12px 14px;border-radius:16px;background:#eef1fb;color:var(--bleu);font-weight:700}.mois-detail{list-style:none;padding:0;margin:12px 0 0;display:grid;gap:10px}.mois-detail li{background:#f6f3ee;border-radius:18px;padding:14px 16px}.mois-jour{display:flex;justify-content:space-between;gap:12px;align-items:baseline}.mois-jour strong{text-transform:capitalize}.mois-jour em{font-style:normal;font-family:Outfit,sans-serif;font-weight:700;font-variant-numeric:tabular-nums}.service-ligne{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:8px 0 0}.service-duree{font-weight:700;margin-left:auto}.fiche-salarie{margin-top:16px;padding:22px;border-radius:24px;background:linear-gradient(180deg,#171b24,#10131a);color:#fff}.fiche-identite{margin:0;font-family:Outfit,sans-serif;font-size:clamp(1.6rem,3vw,2.1rem);font-weight:700}.fiche-identite span{color:#ff8b93}.fiche-legende{margin:6px 0 0;color:#b7c0d0;font-weight:700}.fiche-heures{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:16px}.fiche-heures div{background:#ffffff0f;border-radius:18px;padding:16px 8px 12px;text-align:center}.fiche-heures strong{display:block;font-family:Outfit,sans-serif;font-size:clamp(2.2rem,6vw,3.2rem);font-variant-numeric:tabular-nums;line-height:1}.fiche-heures span{display:block;margin-top:8px;color:#b7c0d0;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;font-weight:700}.fiche-meta{margin:14px 0 0;display:flex;flex-wrap:wrap;gap:10px;align-items:center;color:#d5dbe6}.service-fini{background:#ffffff1a;color:#d5dbe6;border-radius:999px;padding:2px 8px;font-size:.78rem;font-weight:700}.ligne-double{display:grid;grid-template-columns:1fr 1fr;gap:12px}.bouton-principal,.bouton-secondaire,.bouton-word,.bouton-texte,.lien-bouton,.cadran{border:0;cursor:pointer}.bouton-principal{background:var(--rouge);color:#fff;padding:14px 18px;font-weight:700;border-radius:999px}.bouton-principal:hover{background:var(--rouge-fonce)}.bouton-principal:disabled,.bouton-word:disabled,.cadran:disabled,.bouton-texte:disabled{opacity:.48;cursor:not-allowed}.bouton-word{background:var(--bleu);color:#fff;padding:14px 18px;font-weight:700;border-radius:999px}.bouton-word:hover{background:#243484}.bouton-texte{background:transparent;color:var(--bleu);font-weight:700;padding:10px 8px}.bouton-secondaire,.lien-bouton{background:transparent;color:inherit;padding:10px 14px;border-radius:999px}.oubli{margin:-4px 0 14px;text-align:right}.oubli a{color:var(--bleu);font-weight:700}.liste-acces{list-style:none;margin:0;padding:0;display:grid;gap:12px}.liste-acces li{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;align-items:center;padding:12px 0;border-top:1px solid var(--ligne)}.liste-acces li div{display:grid;gap:2px}.liste-acces span,.liste-acces em{color:var(--texte-doux);font-style:normal}.liste-acces form{display:flex;flex-wrap:wrap;gap:8px}.liste-acces input{min-width:min(240px,100%)}.bascule{margin-top:22px}.lien-creer{display:flex;align-items:center;justify-content:space-between;gap:12px;text-decoration:none;color:var(--encre);background:#fff;border:1px solid var(--ligne);border-radius:22px;padding:12px 12px 12px 18px;box-shadow:0 12px 28px #10131a0f}.lien-creer span{color:var(--texte-doux);font-weight:600}.lien-creer strong{background:var(--bleu);color:#fff;border-radius:999px;padding:12px 16px;font-family:Outfit,sans-serif}.lien-creer:hover{border-color:var(--bleu)}.lien-retour strong{background:var(--rouge)}.alerte,.ok,.site-puce{border-radius:16px;padding:12px 14px;margin:8px 0 0}.alerte{background:#fff1f1;color:#9d1420}.ok{background:#e9f8ef;color:#0d6b3a}.site-puce{display:grid;gap:2px;text-align:left}.site-puce span{font-weight:600}.bandeau{position:sticky;top:0;z-index:3;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px 16px;padding:10px 18px;background:#0c0e12eb;color:#fff;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.bandeau a,.bandeau .lien-bouton{color:#fff;text-decoration:none}.bandeau nav{display:flex;align-items:center;gap:6px}.bandeau-lien{display:flex}.nav-lien{padding:8px 12px;border-radius:999px;color:#c9d0de;font-weight:700}.nav-lien.actif{background:#fff;color:#12141a}.qui{color:#9aa3b5;font-weight:700;padding:0 4px}.marque{display:flex;align-items:center;gap:12px}.marque-nom{margin:0;font-size:1.05rem}.marque-sous{margin:0;color:#b7c0d4;font-size:.88rem}.page{width:min(1080px,calc(100% - 28px));margin:22px auto 48px;display:grid;gap:18px}.poste{display:grid;grid-template-columns:minmax(280px,.9fr) minmax(300px,1.1fr);gap:18px;align-items:start}.console,.carte{background:var(--carte);border:1px solid rgba(255,255,255,.8);border-radius:28px;box-shadow:var(--ombre);padding:28px 24px}.console{text-align:center;background:linear-gradient(180deg,#171b24,#10131a);color:#fff}.console .date{color:#b7c0d0}.console h1{margin:0;font-size:1.7rem}.console h1 span{color:#ff8b93}.date{margin:0;text-transform:capitalize;color:var(--texte-doux)}.console .date{text-transform:capitalize}.horloge{margin:6px 0 4px;font-size:clamp(3rem,7vw,4.4rem);font-weight:700;font-variant-numeric:tabular-nums;line-height:1}.cadran{width:196px;height:196px;margin:22px auto 8px;border-radius:50%;color:#fff;display:grid;align-content:center;justify-items:center;gap:4px;position:relative;font-family:Outfit,sans-serif}.cadran.entree{background:radial-gradient(circle at 32% 28%,#49c888,#0c7a43 68%)}.cadran.sortie{background:radial-gradient(circle at 32% 28%,#ff6258,#be1020 70%)}.cadran:before{content:"";position:absolute;top:-14px;right:-14px;bottom:-14px;left:-14px;border-radius:50%;border:1.5px solid rgba(255,255,255,.28)}.cadran.pret:after{content:"";position:absolute;top:-14px;right:-14px;bottom:-14px;left:-14px;border-radius:50%;border:2px solid rgba(255,255,255,.7);animation:onde 1.8s ease-out infinite}@keyframes onde{0%{transform:scale(.96);opacity:.7}to{transform:scale(1.22);opacity:0}}.cadran-etat{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;opacity:.85}.cadran-action{font-size:1.25rem;font-weight:700;max-width:9ch;line-height:1.05}.zone{color:#d5dbe6;min-height:64px}.console .alerte{text-align:left}.console .ok,.console .site-puce.ok{background:#12a05a29;color:#d9ffe9}.console .site-puce.alerte,.console .alerte{background:#e11d2e29;color:#ffd7db}.journal-jour h2,.carte h1,.entete-section h1{margin:0}.entete-section,.actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.entete-section{justify-content:space-between}.total-heures{display:flex;align-items:center;gap:8px;margin:0;color:var(--texte-doux);font-weight:700}.total-heures strong,.equipe em{color:var(--encre);font-size:1.35rem;font-style:normal;font-variant-numeric:tabular-nums}.total-general{margin:16px 0 4px}.en-cours{background:#e7f7ee;color:var(--vert);border-radius:999px;padding:2px 8px;font-size:.78rem;margin-left:8px}.timeline{list-style:none;margin:18px 0 0;padding:0 0 0 8px;display:grid;gap:0}.timeline li{display:grid;grid-template-columns:72px 1fr;gap:12px;padding:12px 0 12px 16px;position:relative}.timeline li:before{content:"";position:absolute;left:0;top:18px;width:12px;height:12px;border-radius:50%;background:#fff;box-shadow:0 0 0 4px currentColor}.timeline li:after{content:"";position:absolute;left:5px;top:32px;bottom:-8px;width:2px;background:var(--ligne)}.timeline li:last-child:after{display:none}.timeline .ligne-entree{color:var(--vert)}.timeline .ligne-sortie{color:var(--rouge)}.timeline time{font-family:Outfit,sans-serif;font-weight:700;font-size:1.15rem;color:var(--encre)}.timeline li div{display:flex;flex-wrap:wrap;gap:8px;align-items:center;color:var(--encre)}.timeline strong{font-weight:700}.type{font-weight:700;border-radius:999px;padding:3px 8px;font-size:.85rem}.type.entree{background:#e7f7ee;color:var(--vert)}.type.sortie{background:#fff1f0;color:var(--rouge-fonce)}.equipe{list-style:none;padding:0;margin:16px 0 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.equipe li{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:12px;align-items:center;padding:16px;border-radius:20px;background:#f6f3ee}.equipe em{grid-column:1 / -1;margin-top:8px}.equipe strong,.equipe li>div span{display:block}.equipe li>div span{color:var(--texte-doux)}.avatar{width:46px;height:46px;border-radius:16px;display:grid;place-items:center;background:#171b24;color:#fff;font-weight:700;text-transform:uppercase}.sous-titre{margin:26px 0 8px;font-size:1.2rem}.liste-sites{list-style:none;padding:0;margin:12px 0 0;display:grid;gap:8px}.liste-sites li{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:12px 14px;border-radius:16px;background:#f6f3ee}.liste-sites span,.liste-sites strong{display:block}.liste-sites span{color:var(--texte-doux);font-weight:400}.form-site{text-align:left}.case{display:flex;align-items:center;gap:8px;font-weight:700}.case input{width:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:12px 8px;border-bottom:1px solid var(--ligne)}th{color:var(--texte-doux);font-size:.78rem;letter-spacing:.06em;text-transform:uppercase}.table-scroll{overflow-x:auto}.galerie-mois{list-style:none;padding:0;margin:14px 0 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px}.carte-salarie{width:100%;display:grid;grid-template-columns:auto 1fr;gap:4px 14px;align-items:center;text-align:left;padding:16px;border-radius:22px;background:linear-gradient(180deg,#171b24,#10131a);color:#fff;box-shadow:0 16px 36px #1418211f}.carte-salarie .avatar{grid-row:span 2;background:#ffffff14;border-radius:16px}.carte-identite strong,.carte-total strong{display:block}.carte-identite strong{font-size:1.05rem;font-weight:700}.carte-identite strong span{color:#ff8b93}.carte-identite em{display:inline-block;margin-top:6px;font-style:normal}.service-calme{background:#ffffff1a;color:#d5dbe6;border-radius:999px;padding:2px 8px;font-size:.78rem;font-weight:700}.carte-total strong{margin-top:10px;font-family:Outfit,sans-serif;font-size:1.45rem;letter-spacing:-.03em;font-variant-numeric:tabular-nums}.carte-total span,.total-equipe em{color:#b7c0d0;font-weight:700;font-size:.88rem;font-style:normal}.carte-salarie.actif{box-shadow:0 0 0 3px #e11d2e,0 16px 36px #1418211f}.total-equipe{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:baseline;margin:14px 0 0;padding:16px 18px;border-radius:20px;background:#f6f3ee;font-weight:700}.total-equipe strong{font-family:Outfit,sans-serif;font-size:1.35rem;font-variant-numeric:tabular-nums}.pagination{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:12px}.pagination button{border:0;background:#171b24;color:#fff;font-weight:700;border-radius:999px;padding:8px 14px;cursor:pointer}.pagination button:disabled{opacity:.4;cursor:not-allowed}.pagination span{font-weight:700;font-variant-numeric:tabular-nums;color:var(--texte-doux)}tr.ligne-entree td{background:#e9f8ef}tr.ligne-sortie td{background:#fff0f1}tr.ligne-entree td:first-child{box-shadow:inset 4px 0 0 var(--vert)}tr.ligne-sortie td:first-child{box-shadow:inset 4px 0 0 var(--rouge)}.heure-pointage{font-family:Outfit,sans-serif;font-weight:700}.barre-app{display:none}.installer{position:fixed;left:12px;right:12px;bottom:16px;z-index:6;display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;padding:14px 16px;border-radius:20px;background:#171b24;color:#fff;box-shadow:var(--ombre)}.installer p{margin:0;font-weight:700}.installer .lien-bouton{color:#d5dbe6}.banniere-vacation{background:#fff6e8;border:1px solid #f0d7a8;border-radius:22px;padding:18px 20px;color:#6a4a12}.banniere-vacation h1{margin:0 0 8px;color:#9a3412;font-size:1.7rem}.surtitre-vacation{margin:0 0 4px;font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.duo-vacation{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0 18px;text-align:left}.duo-vacation p{margin:0;background:#ffffff0f;border-radius:14px;padding:12px}.duo-vacation span{display:block;color:#b7c0d0;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase}.duo-vacation strong{display:block;margin-top:4px;font-size:1.05rem}.console.vacation h1 span,.etiquette-remplacement{color:#9a3412}.etiquette-remplacement,.etiquette-renfort,.etiquette-habituel{display:inline-block;border-radius:999px;padding:2px 8px;font-size:.78rem;font-weight:700;font-style:normal}.etiquette-remplacement{background:#fff3d6;color:#9a3412}.etiquette-renfort{background:#e7eefc;color:#2c3d9e}.etiquette-habituel{background:#eef1f4;color:#3d4654}.reception-entete{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.reception-entete h1{margin:0}.pastille-direct{display:inline-flex;align-items:center;gap:8px;margin:4px 0 0;color:var(--vert);font-size:.82rem;font-weight:700;white-space:nowrap}.pastille-direct i{width:8px;height:8px;border-radius:50%;background:var(--vert)}.compteurs-reception{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:16px 0}.compteurs-reception p{margin:0;background:#f6f3ee;border-radius:16px;padding:12px 14px}.compteurs-reception strong{display:block;font-family:Outfit,sans-serif;font-size:1.7rem;line-height:1}.compteurs-reception span{color:var(--texte-doux);font-size:.88rem}.bandeau-nouveau{margin:0 0 12px;padding:12px 14px;border-radius:14px;background:#e9f8ef;color:#0b6b3a;font-weight:700}.file-attente,.file-reception{list-style:none;margin:0 0 12px;padding:0;display:grid;gap:10px}.file-attente button,.recu{width:100%;text-align:left;border:1px solid var(--ligne);background:#fff;border-radius:16px;cursor:pointer}.file-attente button{display:grid;gap:4px;padding:12px 14px;background:#fff8ee}.file-attente strong{display:block}.file-attente span{color:#9a3412;font-size:.92rem}.recu{display:grid;grid-template-columns:72px 1fr;gap:12px;padding:12px 14px;align-items:center}.recu.entree{box-shadow:inset 4px 0 0 var(--vert)}.recu.sortie{box-shadow:inset 4px 0 0 var(--rouge)}.recu.neuf{background:#f3fbf6}.recu time{font-family:Outfit,sans-serif;font-weight:700;font-size:1.05rem}.recu-corps{display:grid;gap:4px}.recu-corps strong{font-size:1.02rem}.recu-meta{color:var(--texte-doux);font-size:.92rem}.recu-marques{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.mentions-remplacement{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:8px}.mentions-remplacement li{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:.92rem}.liste-vacations{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:10px}.liste-vacations li{display:flex;flex-wrap:wrap;align-items:center;gap:10px;background:#fff6e8;border-radius:14px;padding:12px 14px}.liste-vacations strong,.liste-vacations span{display:block}.liste-vacations span{color:#6a4a12;font-size:.92rem}.attente-vacation h2{margin-top:0}.plaques-mois{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:14px 0}.plaques-mois>span{font-size:.82rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#5d6574}.plaques-mois em{color:#5d6574;font-style:normal}.mes-heures .fiche-salarie{margin-top:8px}@media (max-width: 860px){.ecran-auth,.poste{grid-template-columns:1fr}.panneau-marque{min-height:0;padding:calc(22px + env(safe-area-inset-top)) 22px 8px}.panneau-marque h1{font-size:1.85rem;max-width:none}.panneau-marque p:not(.surtitre):not(.sites-marque),.trace,.sites-marque{display:none}.logo-grand{width:76px;height:76px;border-radius:22px}.panneau-formulaire{padding:22px 20px calc(28px + env(safe-area-inset-bottom))}.horloge{font-size:3.2rem}.bandeau{align-items:center;padding-top:calc(10px + env(safe-area-inset-top))}.bandeau nav,.marque-sous,.qui{display:none}.marque-nom{font-size:.95rem}.page{width:min(1080px,calc(100% - 16px));margin:10px auto calc(92px + env(safe-area-inset-bottom));padding-bottom:48px}.console,.carte{border-radius:22px;padding:22px 16px}.cadran{width:min(220px,62vw);height:min(220px,62vw)}.ligne-double,.duo-vacation,.compteurs-reception{grid-template-columns:1fr}.reception-entete{flex-direction:column}.lien-creer{flex-direction:column;align-items:stretch;text-align:center;padding:16px}.lien-creer strong{display:block}input,select{font-size:16px}.barre-app{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:5;background:#10131a;border-top:1px solid rgba(255,255,255,.08);padding:6px 8px calc(8px + env(safe-area-inset-bottom))}.barre-app a,.barre-app button{flex:1;display:grid;justify-items:center;gap:2px;padding:6px 4px;border:0;background:transparent;color:#9aa3b5;text-decoration:none;font-size:.72rem;font-weight:700}.barre-app svg{width:24px;height:24px}.barre-app .actif{color:#fff}.installer{bottom:calc(78px + env(safe-area-inset-bottom))}.carte.plaque-page{padding-bottom:28px}.plaque-page form .bouton-principal{margin-bottom:8px}}
