/* ============================================================
   BADGEUSE PWA v8
   ============================================================ */
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
:root{
  --primary:#2563eb;--primary-dark:#1d4ed8;--success:#16a34a;--danger:#dc2626;
  --warning:#d97706;--bg:#f1f5f9;--card:#fff;--text:#1e293b;
  --text-light:#64748b;--border:#e2e8f0;--shadow:0 4px 24px rgba(0,0,0,.10);--radius:16px;
  --nav-h:64px;
}
html,body{height:100%;width:100%;font-family:'Segoe UI',system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text);overflow-x:hidden;}
/* Remplissage écran complet */
#root,body>*{width:100%;}

/* PAGES */
.page{display:none;min-height:100vh;min-height:100dvh;width:100%;padding-bottom:var(--nav-h);}
.page.active{display:flex;flex-direction:column;animation:fadeIn .25s ease;min-height:100vh;min-height:100dvh;}
@keyframes fadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

/* HEADER */
.header{background:linear-gradient(135deg,var(--primary),#1e40af);color:#fff;padding:14px 16px;text-align:center;position:sticky;top:0;z-index:100;box-shadow:0 2px 12px rgba(37,99,235,.3);flex-shrink:0;position:relative;}
.header h1{font-size:1.25rem;font-weight:700;}
.header .subtitle{font-size:0.75rem;opacity:.85;margin-top:2px;}

/* BOUTON FIN SESSION ADMIN */
.btn-fin-session{
  position:absolute;top:50%;right:12px;transform:translateY(-50%);
  background:#dc2626;color:#fff;border:none;border-radius:8px;
  padding:6px 10px;font-size:0.7rem;font-weight:700;cursor:pointer;
  display:flex;align-items:center;gap:4px;white-space:nowrap;
  box-shadow:0 2px 8px rgba(220,38,38,.4);
}
.btn-fin-session:active{background:#b91c1c;}

/* HORLOGE */
.horloge{background:var(--card);margin:10px 14px;border-radius:var(--radius);padding:12px;text-align:center;box-shadow:var(--shadow);}
#heure-actuelle{font-size:2.2rem;font-weight:700;color:var(--primary);letter-spacing:2px;font-variant-numeric:tabular-nums;}
#date-actuelle{font-size:0.8rem;color:var(--text-light);margin-top:3px;text-transform:capitalize;}

/* PIN */
.pin-section{background:var(--card);margin:0 14px 14px;border-radius:var(--radius);padding:16px;box-shadow:var(--shadow);flex:1;display:flex;flex-direction:column;justify-content:center;}
.pin-label{text-align:center;font-size:0.9rem;color:var(--text-light);margin-bottom:12px;font-weight:500;}
.pin-display{display:flex;justify-content:center;gap:16px;margin-bottom:18px;}
.pin-dot{width:20px;height:20px;border-radius:50%;border:2.5px solid var(--border);background:transparent;transition:all .15s;}
.pin-dot.filled{background:var(--primary);border-color:var(--primary);transform:scale(1.1);}
.clavier{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;max-width:360px;margin:0 auto;width:100%;}
.key{background:var(--bg);border:none;border-radius:14px;padding:0;height:72px;font-size:1.8rem;font-weight:600;color:var(--text);cursor:pointer;transition:all .1s;box-shadow:0 2px 8px rgba(0,0,0,.10);user-select:none;display:flex;align-items:center;justify-content:center;}
.key:active{transform:scale(.93);background:#dbeafe;color:var(--primary);}
.key.key-effacer{font-size:1.3rem;color:var(--warning);}
.key.key-valider{background:var(--primary);color:#fff;font-size:1.2rem;box-shadow:0 4px 14px rgba(37,99,235,.35);}
.key.key-valider:active{background:var(--primary-dark);}

/* PAYSAGE PIN */
@media(orientation:landscape){
  .horloge{margin:4px 14px;padding:6px 16px;}
  #heure-actuelle{font-size:1.5rem;}
  #date-actuelle{font-size:0.7rem;}
  .pin-section{margin:0 14px 4px;padding:8px;}
  .pin-label{margin-bottom:6px;}
  .pin-display{margin-bottom:8px;}
  .clavier{gap:8px;max-width:320px;}
  .key{height:56px;font-size:1.4rem;}
}

/* MESSAGES */
.message{margin:0 14px 10px;padding:10px 14px;border-radius:10px;font-size:0.85rem;font-weight:500;text-align:center;display:none;}
.message.erreur{background:#fee2e2;color:var(--danger);border:1px solid #fca5a5;}
.message.succes{background:#dcfce7;color:var(--success);border:1px solid #86efac;}

/* STATS */
.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;padding:0 14px 14px;}
.stat-card{background:var(--card);border-radius:var(--radius);padding:14px;text-align:center;box-shadow:var(--shadow);}
.stat-card .stat-value{font-size:2rem;font-weight:800;color:var(--primary);}
.stat-card .stat-label{font-size:0.72rem;color:var(--text-light);margin-top:3px;}
.stat-card.stat-presents .stat-value{color:var(--success);}
.stat-card.stat-absents .stat-value{color:var(--danger);}

/* SECTION CARD */
.section-card{background:var(--card);margin:0 14px 14px;border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;}
.section-title{padding:12px 14px;font-size:0.88rem;font-weight:700;color:var(--text);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;}

/* SEARCH */
.search-bar{padding:10px 14px;border-bottom:1px solid var(--border);}
.search-bar input{width:100%;padding:9px 12px;border:1.5px solid var(--border);border-radius:10px;font-size:0.85rem;outline:none;background:var(--bg);}
.search-bar input:focus{border-color:var(--primary);background:#fff;}

/* DASHBOARD SECTIONS */
.dash-section{border-bottom:2px solid var(--border);}
.dash-section:last-child{border-bottom:none;}
.dash-section-titre{padding:10px 14px;font-size:0.82rem;font-weight:700;color:var(--text-light);background:#f8fafc;display:flex;align-items:center;gap:8px;text-transform:uppercase;letter-spacing:.5px;}
.dash-section-count{background:var(--primary);color:#fff;font-size:0.68rem;padding:2px 7px;border-radius:10px;}
.dash-collab-card{display:flex;align-items:center;justify-content:space-between;padding:11px 14px;border-bottom:1px solid var(--border);cursor:pointer;transition:background .15s;}
.dash-collab-card:last-child{border-bottom:none;}
.dash-collab-card:active{background:#f8fafc;}
.dash-solde{font-size:0.7rem;font-weight:600;margin-top:2px;}
.solde-positif{color:var(--success);}
.solde-negatif{color:var(--danger);}
.ferie-travaille{font-size:0.68rem;color:#92400e;background:#fef9c3;padding:2px 5px;border-radius:4px;margin-top:2px;display:inline-block;}
.statut-badge{display:inline-block;padding:3px 9px;border-radius:20px;font-size:0.7rem;font-weight:700;white-space:nowrap;}
.statut-present{background:#dcfce7;color:#15803d;}
.statut-absent{background:#f1f5f9;color:#64748b;}
.statut-parti{background:#fee2e2;color:#dc2626;}

/* FICHE */
.fiche-card{max-height:88vh;overflow-y:auto;}
.fiche-nom{font-size:1.2rem;font-weight:800;color:var(--text);margin-bottom:2px;}
.fiche-poste{font-size:0.8rem;color:var(--text-light);margin-bottom:14px;}
.fiche-section-title{font-size:0.72rem;font-weight:700;color:var(--text-light);text-transform:uppercase;letter-spacing:.5px;margin:14px 0 7px;border-top:1px solid var(--border);padding-top:10px;}
.fiche-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;}
.fiche-item{background:var(--bg);border-radius:10px;padding:9px 11px;}
.fiche-label{display:block;font-size:0.65rem;color:var(--text-light);font-weight:600;text-transform:uppercase;margin-bottom:3px;}
.fiche-val{font-size:1rem;font-weight:700;color:var(--text);}
.fiche-solde-val{font-size:1.1rem;font-weight:800;}
.ferie-badge{display:inline-block;padding:3px 7px;border-radius:6px;font-size:0.72rem;font-weight:600;margin:2px;}
.ferie-travaille-badge{background:#fef9c3;color:#92400e;}

/* HISTORIQUE FILTRES */
.hist-filtres{padding:12px 14px;border-bottom:1px solid var(--border);}
.hist-filtre-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.hist-filtre-row label{font-size:0.78rem;font-weight:600;color:var(--text-light);white-space:nowrap;}
.hist-filtre-row input[type="date"]{flex:1;min-width:120px;padding:7px 10px;border:1.5px solid var(--border);border-radius:8px;font-size:0.82rem;outline:none;background:var(--bg);}
.hist-filtre-row input[type="date"]:focus{border-color:var(--primary);}
.hist-filtre-row input[type="text"]{padding:7px 10px;border:1.5px solid var(--border);border-radius:8px;font-size:0.82rem;outline:none;background:var(--bg);}
.hist-filtre-row input[type="text"]:focus{border-color:var(--primary);}
.btn-reset-dates{background:#fee2e2;color:var(--danger);border:none;border-radius:8px;padding:7px 10px;font-size:0.82rem;font-weight:700;cursor:pointer;}

/* FILTRE ÉQUIPE */
.equipe-filter-group{display:flex;gap:5px;flex:1;}
.equipe-filter-btn{flex:1;padding:7px 6px;border:1.5px solid var(--border);border-radius:8px;background:var(--bg);font-size:0.75rem;font-weight:600;color:var(--text-light);cursor:pointer;transition:all .15s;white-space:nowrap;}
.equipe-filter-btn.active{background:var(--primary);border-color:var(--primary);color:#fff;}
.equipe-filter-btn:active{transform:scale(.96);}
/* Bouton CSV désactivé quand "Tous" sélectionné */
.btn-export-disabled{background:#94a3b8 !important;cursor:not-allowed !important;opacity:0.7;}

/* CALENDRIER */
.cal-nav{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--card);border-bottom:1px solid var(--border);gap:6px;flex-shrink:0;}
.cal-nav-btn{background:var(--bg);border:1.5px solid var(--border);border-radius:8px;padding:6px 11px;font-size:0.8rem;font-weight:600;cursor:pointer;color:var(--text);white-space:nowrap;}
.cal-nav-btn:active{background:#dbeafe;color:var(--primary);}
.cal-nav-today{background:var(--primary);color:#fff;border-color:var(--primary);}
.cal-titre-txt{font-size:0.8rem;font-weight:600;color:var(--text);text-align:center;flex:1;}
.cal-wrapper{flex:1;overflow-x:auto;overflow-y:auto;padding:8px;}
.cal-container{min-width:580px;}
.cal-header-row{display:grid;grid-template-columns:80px repeat(7,1fr);gap:3px;margin-bottom:3px;}
.cal-col-nom{background:transparent;}
.cal-col-jour{background:var(--card);border-radius:7px;padding:5px 3px;text-align:center;border:1.5px solid var(--border);}
.cal-col-jour.cal-we{background:#f8fafc;}
.cal-col-jour.cal-ferie{background:#fff0f0;border-color:#fca5a5;}
.cal-col-jour.cal-today{background:#eff6ff;border-color:var(--primary);}
.cal-jour-nom{font-size:0.65rem;font-weight:700;color:var(--text-light);text-transform:uppercase;}
.cal-jour-num{font-size:0.95rem;font-weight:800;color:var(--text);}
.cal-ferie-dot{font-size:0.6rem;}
.cal-section-sep{grid-column:1/-1;background:#f1f5f9;padding:6px 10px;font-size:0.72rem;font-weight:700;color:var(--text-light);text-transform:uppercase;letter-spacing:.5px;border-radius:6px;margin:4px 0 2px;}
.cal-row{display:grid;grid-template-columns:80px repeat(7,1fr);gap:3px;margin-bottom:3px;}
.cal-col-nom{display:flex;align-items:center;gap:5px;padding:3px 5px;background:var(--card);border-radius:7px;}
.cal-avatar{width:26px;height:26px;font-size:0.65rem;flex-shrink:0;}
.cal-nom-txt{font-size:0.68rem;font-weight:600;color:var(--text);line-height:1.2;}
.cal-nom-txt small{color:var(--text-light);font-weight:400;}
.cal-cell{background:var(--card);border-radius:7px;padding:4px 3px;text-align:center;border:1.5px solid var(--border);min-height:48px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;}
.cal-cell.cal-travaille{background:#f0fdf4;border-color:#86efac;}
.cal-cell.cal-en-cours{background:#fffbeb;border-color:#fcd34d;}
.cal-cell.cal-vacance{background:#eff6ff;border-color:#93c5fd;}
.cal-cell.cal-ferie-cell{background:#fff0f0;border-color:#fca5a5;}
.cal-cell.cal-we-cell{background:#f8fafc;}
.cal-heure{font-size:0.62rem;font-weight:700;color:var(--text);}
.cal-sep{font-size:0.55rem;color:var(--text-light);}
.cal-duree{font-size:0.62rem;font-weight:700;color:var(--success);background:#dcfce7;padding:1px 3px;border-radius:3px;}
@media(orientation:landscape){
  .cal-container{min-width:480px;}
  .cal-header-row,.cal-row{grid-template-columns:65px repeat(7,1fr);}
}

/* PARAMÈTRES */
.params-tabs{display:flex;margin:14px 14px 0;background:var(--card);border-radius:12px;overflow:hidden;box-shadow:var(--shadow);}
.params-tab{flex:1;padding:11px 4px;border:none;background:transparent;font-size:1.1rem;cursor:pointer;transition:all .2s;}
.params-tab.active{background:var(--primary);color:#fff;}
.params-tab-labels{display:flex;margin:3px 14px 0;font-size:0.68rem;color:var(--text-light);}
.params-tab-labels span{flex:1;text-align:center;cursor:pointer;padding:2px;}

/* FORMULAIRE */
.form-ajout{padding:14px;display:grid;gap:9px;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:9px;}
.form-ajout input,.form-ajout select{width:100%;padding:11px 12px;border:1.5px solid var(--border);border-radius:10px;font-size:0.85rem;color:var(--text);background:var(--bg);outline:none;transition:border-color .2s;}
.form-ajout input:focus,.form-ajout select:focus{border-color:var(--primary);background:#fff;}
.pct-field{position:relative;}
.pct-field input{padding-right:26px;}
.pct-suffix{position:absolute;right:10px;top:50%;transform:translateY(-50%);color:var(--text-light);font-weight:600;font-size:0.82rem;}
.pct-info{display:flex;align-items:center;justify-content:center;background:#eff6ff;border-radius:10px;font-size:0.75rem;font-weight:600;color:var(--primary);padding:11px;}

/* COLLABORATEURS */
.collab-card{display:flex;align-items:center;justify-content:space-between;padding:11px 14px;border-bottom:1px solid var(--border);}
.collab-card:last-child{border-bottom:none;}
.collab-info{display:flex;align-items:center;gap:10px;}
.collab-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--primary),#7c3aed);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:0.8rem;flex-shrink:0;}
.collab-nom{font-weight:600;font-size:0.85rem;}
.collab-poste{font-size:0.72rem;color:var(--text-light);margin-top:1px;}
.collab-contrat{display:flex;align-items:center;gap:5px;margin-top:3px;}
.contrat-badge{background:#eff6ff;color:var(--primary);font-size:0.68rem;font-weight:700;padding:2px 6px;border-radius:5px;}
.contrat-detail{font-size:0.7rem;color:var(--text-light);}
.btn-supprimer{background:#fee2e2;border:none;border-radius:8px;padding:7px 9px;cursor:pointer;font-size:0.9rem;}

/* CONGÉS */
.conge-card{padding:12px 14px;border-bottom:1px solid var(--border);}
.conge-card:last-child{border-bottom:none;}
.conge-compteurs{display:flex;gap:8px;align-items:center;}
.conge-item{display:flex;flex-direction:column;align-items:center;gap:3px;flex:1;}
.conge-label{font-size:0.65rem;color:var(--text-light);font-weight:600;text-transform:uppercase;}
.conge-input{width:100%;padding:7px;border:1.5px solid var(--border);border-radius:8px;font-size:0.92rem;font-weight:700;text-align:center;color:var(--text);background:var(--bg);outline:none;}
.conge-input:focus{border-color:var(--primary);background:#fff;}
.conge-restants{font-size:1.2rem;font-weight:800;color:var(--success);}
.conge-alerte{color:var(--danger);}
.btn-semaine-type,.btn-vacances,.btn-cours{flex:1;padding:9px;background:#eff6ff;border:1.5px solid #bfdbfe;border-radius:10px;color:var(--primary);font-size:0.78rem;font-weight:600;cursor:pointer;}
.btn-vacances{background:#f0fdf4;border-color:#86efac;color:var(--success);}
.btn-cours{background:#f5f3ff;border-color:#c4b5fd;color:#6d28d9;}
.cours-selected{background:#7c3aed !important;border-color:#7c3aed !important;color:#fff !important;}
.ecole-jour-btn{padding:10px 4px;border:2px solid var(--border);border-radius:8px;background:#fff;font-size:0.78rem;font-weight:600;color:var(--text);cursor:pointer;transition:all .15s;text-align:center;width:100%;}
.ecole-jour-btn:active{transform:scale(.93);}

/* SEMAINE TYPE */
.st-semaine-container{background:var(--bg);border-radius:12px;padding:10px;}
.st-semaine-titre{font-size:0.8rem;font-weight:700;color:var(--text);margin-bottom:8px;}
.st-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;}
.st-jour{padding:7px 2px;border:2px solid var(--border);border-radius:8px;background:#fff;font-size:0.7rem;font-weight:600;color:var(--text);cursor:pointer;transition:all .15s;text-align:center;}
.st-jour.st-we{background:#f8fafc;color:var(--text-light);}
.st-jour.st-selected{background:var(--primary);border-color:var(--primary);color:#fff;}

/* JOURS FÉRIÉS */
.ferie-mois{margin-bottom:16px;}
.ferie-mois-titre{font-size:0.85rem;font-weight:700;color:var(--text);margin-bottom:6px;padding-bottom:5px;border-bottom:1px solid var(--border);}
.ferie-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;}
.ferie-jour{padding:6px 2px;border:1.5px solid var(--border);border-radius:6px;background:#fff;font-size:0.7rem;font-weight:600;color:var(--text);cursor:pointer;transition:all .15s;text-align:center;}
.ferie-jour.ferie-we{background:#f8fafc;color:#cbd5e1;}
.ferie-jour.ferie-selected{background:#dc2626;border-color:#dc2626;color:#fff;}
.ferie-jour.ferie-defaut{border-color:#fca5a5;color:#dc2626;}

/* VACANCES */
.vac-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;}
.vac-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;}
.vac-header{text-align:center;font-size:0.68rem;font-weight:700;color:var(--text-light);padding:3px 0;}
.vac-empty{background:transparent;}
.vac-jour{padding:8px 2px;border:1.5px solid var(--border);border-radius:8px;background:#fff;font-size:0.78rem;font-weight:600;color:var(--text);cursor:pointer;transition:all .15s;text-align:center;width:100%;}
.vac-jour.vac-we{background:#f8fafc;color:#94a3b8;}
.vac-jour.vac-ferie{background:#fff0f0;border-color:#fca5a5;color:#dc2626;}
.vac-jour.vac-selected{background:#3b82f6;border-color:#3b82f6;color:#fff;}

/* TABLEAU */
.table-wrapper{overflow-x:auto;}
table{width:100%;border-collapse:collapse;font-size:0.78rem;}
thead th{background:#f8fafc;padding:9px 10px;text-align:left;font-weight:600;color:var(--text-light);border-bottom:1px solid var(--border);white-space:nowrap;}
tbody td{padding:9px 10px;border-bottom:1px solid #f1f5f9;white-space:nowrap;}
tbody tr:last-child td{border-bottom:none;}
tbody tr:hover{background:#f8fafc;}
.badge-type{display:inline-block;padding:2px 7px;border-radius:20px;font-size:0.68rem;font-weight:600;}
.badge-debut_journee{background:#dcfce7;color:#15803d;}
.badge-fin_journee,.badge-fin_journee_no_pause{background:#fee2e2;color:#dc2626;}
.badge-maladie{background:#fce7f3;color:#9d174d;}
.badge-jour_ecole{background:#f5f3ff;color:#6d28d9;}
.action-ecole{color:#6d28d9;}
.badge-manuel{display:inline-block;background:#fef9c3;color:#92400e;font-size:0.6rem;padding:1px 4px;border-radius:4px;margin-left:3px;}

/* BOUTON MALADIE */
.btn-maladie{background:#fce7f3;border:1.5px solid #f9a8d4;border-radius:8px;padding:5px 9px;font-size:0.72rem;font-weight:600;color:#9d174d;cursor:pointer;white-space:nowrap;}
.btn-maladie:active{background:#fbcfe8;}
.action-maladie{color:#9d174d;}

/* BOUTONS */
.btn-primary{background:var(--primary);color:#fff;border:none;border-radius:10px;padding:11px 18px;font-size:0.85rem;font-weight:600;cursor:pointer;width:100%;transition:background .2s;}
.btn-primary:active{background:var(--primary-dark);}
.btn-export{background:#059669;color:#fff;border:none;border-radius:8px;padding:6px 11px;font-size:0.75rem;font-weight:600;cursor:pointer;white-space:nowrap;}
.btn-ajouter-pointage{background:var(--primary);color:#fff;border:none;border-radius:8px;padding:6px 10px;font-size:0.75rem;font-weight:600;cursor:pointer;white-space:nowrap;}
.btn-edit-small{background:#dbeafe;color:var(--primary);border:none;border-radius:6px;padding:3px 7px;font-size:0.7rem;cursor:pointer;margin-right:3px;}
.btn-delete-small{background:#fee2e2;color:var(--danger);border:none;border-radius:6px;padding:3px 7px;font-size:0.7rem;cursor:pointer;}

/* NAVIGATION */
.bottom-nav{position:fixed;bottom:0;left:0;right:0;background:#fff;display:flex;border-top:1px solid var(--border);box-shadow:0 -4px 16px rgba(0,0,0,.08);z-index:200;height:var(--nav-h);}
.nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:6px 2px;cursor:pointer;border:none;background:transparent;color:var(--text-light);font-size:0.6rem;font-weight:500;transition:color .2s;gap:2px;}
.nav-icon{font-size:1.25rem;}
.nav-item.active,.nav-item:active{color:var(--primary);}

/* POP-UP ACTION */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;z-index:1000;opacity:0;pointer-events:none;transition:opacity .25s ease;}
.modal-overlay.active{opacity:1;pointer-events:all;}
.popup-action-card{background:#fff;border-radius:22px;padding:22px 18px 18px;width:92%;max-width:360px;box-shadow:0 20px 60px rgba(0,0,0,.25);transform:translateY(20px);transition:transform .25s ease;}
.modal-overlay.active .popup-action-card{transform:translateY(0);}

.popup-action-buttons{display:flex;flex-direction:column;gap:9px;margin-bottom:12px;}
.action-btn{display:flex;align-items:center;gap:10px;padding:13px 14px;border:2px solid var(--border);border-radius:12px;background:var(--bg);cursor:pointer;transition:all .15s;text-align:left;width:100%;}
.action-btn:active{transform:scale(.97);}
.action-btn-icon{font-size:1.3rem;flex-shrink:0;}
.action-btn-label{font-size:0.9rem;font-weight:600;color:var(--text);flex:1;}
.action-btn-note{font-size:0.68rem;color:var(--warning);font-weight:600;background:#fef9c3;padding:2px 6px;border-radius:5px;white-space:nowrap;}
.action-debut-journee{border-color:#86efac;background:#f0fdf4;}
.action-fin-journee,.action-fin-no-pause{border-color:#fca5a5;background:#fff5f5;}
.popup-annuler{width:100%;padding:11px;border:none;border-radius:10px;background:var(--bg);color:var(--text-light);font-size:0.85rem;font-weight:600;cursor:pointer;}

/* CONFIRMATION */
.confirmation-overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;z-index:1000;opacity:0;pointer-events:none;transition:opacity .3s;}
.confirmation-overlay.active{opacity:1;pointer-events:all;}
.confirmation-card{background:#fff;border-radius:22px;padding:30px 26px;text-align:center;max-width:300px;width:90%;box-shadow:0 20px 60px rgba(0,0,0,.3);transform:scale(.9);transition:transform .3s;}
.confirmation-overlay.active .confirmation-card{transform:scale(1);}
.confirm-icon{font-size:3.5rem;margin-bottom:10px;}
.confirm-titre{font-size:1.15rem;font-weight:700;margin-bottom:7px;}
.action-debut{color:var(--success);}
.action-fin{color:var(--danger);}
.confirm-nom{font-size:1rem;font-weight:600;color:var(--text);margin-bottom:5px;}
.confirm-heure{font-size:0.8rem;color:var(--text-light);margin-bottom:3px;}
.confirm-special{font-size:0.75rem;color:var(--warning);background:#fef9c3;border-radius:7px;padding:5px 10px;margin:5px 0;font-weight:600;}
.btn-fermer{margin-top:16px;background:var(--primary);color:#fff;border:none;border-radius:10px;padding:11px 28px;font-size:0.92rem;font-weight:600;cursor:pointer;}

/* MODALS */
.modal-card{background:#fff;border-radius:18px;padding:22px;width:90%;max-width:360px;box-shadow:0 20px 60px rgba(0,0,0,.25);transform:translateY(20px);transition:transform .25s;}
.modal-overlay.active .modal-card{transform:translateY(0);}
.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;font-size:0.92rem;font-weight:700;color:var(--text);}
.modal-close{background:var(--bg);border:none;border-radius:8px;width:30px;height:30px;font-size:0.92rem;cursor:pointer;color:var(--text-light);}
.modal-field{margin-bottom:12px;}
.modal-field label{display:block;font-size:0.72rem;font-weight:600;color:var(--text-light);margin-bottom:5px;text-transform:uppercase;letter-spacing:.5px;}
.modal-input,.modal-select{width:100%;padding:10px 12px;border:1.5px solid var(--border);border-radius:10px;font-size:0.88rem;color:var(--text);background:var(--bg);outline:none;transition:border-color .2s;}
.modal-input:focus,.modal-select:focus{border-color:var(--primary);background:#fff;}
.edit-nom-display{padding:10px 12px;background:#f8fafc;border:1.5px solid var(--border);border-radius:10px;font-size:0.88rem;font-weight:600;color:var(--text);}
.modal-actions{display:flex;gap:9px;margin-top:18px;}
.btn-annuler{flex:1;padding:11px;border:1.5px solid var(--border);border-radius:10px;background:#fff;color:var(--text-light);font-size:0.85rem;font-weight:600;cursor:pointer;}
.btn-sauvegarder{flex:2;padding:11px;border:none;border-radius:10px;background:var(--primary);color:#fff;font-size:0.85rem;font-weight:600;cursor:pointer;box-shadow:0 4px 12px rgba(37,99,235,.3);}
.btn-sauvegarder:active{background:var(--primary-dark);}

/* REPOS COMPENSATOIRE NUIT */
.repos-comp-badge{font-size:0.7rem;color:#6d28d9;background:#f5f3ff;padding:2px 7px;border-radius:5px;margin-top:3px;display:inline-block;font-weight:600;}
.repos-comp-card{background:#f5f3ff;border:1.5px solid #c4b5fd;border-radius:12px;padding:12px 14px;margin-top:10px;}
.repos-comp-label{font-size:0.72rem;font-weight:700;color:#6d28d9;text-transform:uppercase;letter-spacing:.5px;display:block;margin-bottom:6px;}
.repos-comp-valeur{font-size:1.5rem;font-weight:800;color:#6d28d9;}
.repos-comp-sub{font-size:0.75rem;color:#7c3aed;margin-top:4px;display:flex;align-items:center;gap:8px;}
.btn-reset-repos{background:#ede9fe;border:1px solid #c4b5fd;border-radius:6px;padding:3px 8px;font-size:0.72rem;color:#6d28d9;cursor:pointer;font-weight:600;}
.btn-reset-repos:active{background:#ddd6fe;}

/* RESPONSIVE — plein écran sur tous les appareils */
@media(min-width:520px){
  .page{max-width:100%;margin:0;}
  .bottom-nav{max-width:100%;left:0;transform:none;}
}
@media(min-width:768px){
  .page{max-width:768px;margin:0 auto;}
  .bottom-nav{max-width:768px;left:50%;transform:translateX(-50%);}
}
@media(orientation:landscape)and(min-width:700px){
  .stats-grid{grid-template-columns:repeat(4,1fr);}
}
/* SESSION STATUS */
.popup-session-msg{font-size:0.8rem;font-weight:600;padding:5px 12px;border-radius:20px;display:inline-block;margin-top:4px;}
.session-active{background:#dcfce7;color:#15803d;}
.session-inactive{background:#f1f5f9;color:#64748b;}
.session-status-bar{margin:0 14px 10px;padding:10px 14px;border-radius:10px;font-size:0.85rem;font-weight:600;text-align:center;}
.session-status-bar.en-cours{background:#dcfce7;color:#15803d;border:1.5px solid #86efac;}
.session-status-bar.pas-session{background:#f1f5f9;color:#64748b;border:1.5px solid #e2e8f0;}

/* HISTORIQUE CYCLE */
.badge-duree{display:inline-block;background:#f0fdf4;color:#15803d;border:1px solid #86efac;border-radius:6px;padding:2px 7px;font-size:0.72rem;font-weight:700;margin-left:6px;}
