/* COM MANIA — Système RH : styles du portail front-end (Phase 1).
   Toutes les classes sont préfixées .rhcm- pour ne pas entrer en
   conflit avec le thème WordPress actif. */

.rhcm-app { --rhcm-navy:#4A3563; --rhcm-accent:#6B4E8E; --rhcm-accent-light:#F2EDF8;
  --rhcm-grey-2:#e4e7ec; --rhcm-grey-border:#c9ced6; --rhcm-text-mute:#6b7280;
  --rhcm-ok:#1a7f4f; --rhcm-ok-bg:#e3f6ec; --rhcm-warn:#b45309; --rhcm-warn-bg:#fef3e2;
  --rhcm-danger:#b3261e; --rhcm-danger-bg:#fdeceb;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color:#1f2430; max-width:1100px; margin:0 auto;
}
.rhcm-app *{ box-sizing:border-box; }
.rhcm-app [hidden]{ display:none !important; }
.rhcm-notice{ background:#fef3e2; border:1px solid #f0c37a; padding:12px 16px; border-radius:8px; }
.rhcm-error{ background:var(--rhcm-danger-bg); color:var(--rhcm-danger); padding:10px 14px; border-radius:8px; margin:10px 0; font-size:14px; }
.rhcm-success{ background:var(--rhcm-ok-bg); color:var(--rhcm-ok); padding:10px 14px; border-radius:8px; margin:10px 0; font-size:14px; }

.rhcm-tiles{ display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:14px; margin:18px 0; }
.rhcm-tile{ background:#fff; border:1px solid var(--rhcm-grey-2); border-radius:10px; padding:16px; }
.rhcm-tile .rhcm-lbl{ font-size:12px; color:var(--rhcm-text-mute); margin-bottom:6px; }
.rhcm-tile .rhcm-val{ font-size:24px; font-weight:700; color:var(--rhcm-navy); }
.rhcm-tile .rhcm-sub{ font-size:11.5px; color:var(--rhcm-text-mute); margin-top:4px; }

.rhcm-card{ background:#fff; border:1px solid var(--rhcm-grey-2); border-radius:10px; padding:20px; margin-bottom:18px; }
.rhcm-card h3{ margin:0 0 14px; font-size:15px; color:var(--rhcm-navy); }

.rhcm-btn{ display:inline-flex; align-items:center; gap:6px; border:none; border-radius:8px; padding:9px 16px; font-size:13.5px; font-weight:600; cursor:pointer; }
.rhcm-btn-primary{ background:var(--rhcm-accent); color:#fff; }
.rhcm-btn-primary:hover{ background:#3A2850; }
.rhcm-btn-outline{ background:#fff; border:1px solid var(--rhcm-grey-border); color:#1f2430; }
.rhcm-btn-danger{ background:#fff; border:1px solid #f2b8b5; color:var(--rhcm-danger); }
.rhcm-btn-sm{ padding:6px 12px; font-size:12.5px; }
.rhcm-btn:disabled{ opacity:.5; cursor:not-allowed; }

.rhcm-field{ margin-bottom:14px; }
.rhcm-field label{ display:block; font-size:12.5px; font-weight:600; margin-bottom:5px; }
.rhcm-field input, .rhcm-field select, .rhcm-field textarea{
  width:100%; padding:9px 11px; border:1px solid var(--rhcm-grey-border); border-radius:7px; font-size:13.5px; font-family:inherit;
}
.rhcm-grid2{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media (max-width:700px){ .rhcm-grid2{ grid-template-columns:1fr; } }

.rhcm-table{ width:100%; border-collapse:collapse; font-size:13px; }
.rhcm-table th{ text-align:left; font-size:11.5px; text-transform:uppercase; letter-spacing:.03em; color:var(--rhcm-text-mute); border-bottom:1px solid var(--rhcm-grey-2); padding:8px 10px; }
.rhcm-table td{ padding:9px 10px; border-bottom:1px solid #f0f1f4; }
.rhcm-table tr.rhcm-total td{ font-weight:700; background:#fafbfc; border-top:1.5px solid var(--rhcm-grey-2); }
.rhcm-num{ text-align:right; font-variant-numeric:tabular-nums; }

.rhcm-badge{ display:inline-block; padding:3px 10px; border-radius:999px; font-size:11.5px; font-weight:700; }
.rhcm-b-wait{ background:var(--rhcm-warn-bg); color:var(--rhcm-warn); }
.rhcm-b-ok{ background:var(--rhcm-ok-bg); color:var(--rhcm-ok); }
.rhcm-b-refused{ background:var(--rhcm-danger-bg); color:var(--rhcm-danger); }
.rhcm-b-neutral{ background:var(--rhcm-grey-2); color:var(--rhcm-text-mute); }

.rhcm-clock{ display:flex; align-items:center; gap:18px; flex-wrap:wrap; }
.rhcm-clock-time{ font-size:30px; font-weight:700; color:var(--rhcm-navy); font-variant-numeric:tabular-nums; }
.rhcm-steps{ display:flex; gap:8px; flex-wrap:wrap; }
.rhcm-step{ font-size:12px; padding:6px 12px; border-radius:999px; border:1px solid var(--rhcm-grey-2); background:#fbfbfc; }
.rhcm-step.done{ background:var(--rhcm-ok-bg); color:var(--rhcm-ok); border-color:transparent; }

.rhcm-muted{ color:var(--rhcm-text-mute); }
.rhcm-toolbar{ display:flex; justify-content:space-between; align-items:center; margin-bottom:8px; gap:10px; flex-wrap:wrap; }

.rhcm-connexion-wrap{ max-width:400px; margin:40px auto; }
.rhcm-connexion-card h2{ margin:0 0 16px; color:var(--rhcm-navy); }
.rhcm-connexion-card form button{ width:100%; justify-content:center; margin-top:4px; }

.rhcm-badge-link{ border:none; background:none; padding:0; cursor:pointer; font:inherit; }
.rhcm-badge-link:hover .rhcm-badge{ opacity:.8; text-decoration:underline; }
.rhcm-fiche-conge dl{ display:grid; grid-template-columns:180px 1fr; gap:8px 16px; margin:0 0 18px; }
.rhcm-fiche-conge dt{ color:var(--rhcm-text-mute); font-size:12.5px; }
.rhcm-fiche-conge dd{ margin:0; }

.rhcm-field-inline{ margin:0; min-width:220px; }
.rhcm-field-inline input{ width:100%; }

.rhcm-accueil-wrap{ max-width:520px; margin:40px auto; text-align:center; }
.rhcm-accueil-card h2{ color:var(--rhcm-navy); }

.rhcm-btn-link{ border:none; background:none; padding:0; color:var(--rhcm-danger); font:inherit; font-weight:600; cursor:pointer; text-decoration:underline; }
.rhcm-btn-link:hover{ opacity:.8; }

.rhcm-horaires-table th, .rhcm-horaires-table td{ text-align:center; padding:6px 4px; }
.rhcm-horaires-table td:first-child, .rhcm-horaires-table th:first-child{ text-align:left; }
.rhcm-horaires-table input[type="time"]{ width:82px; padding:4px 6px; font-size:12px; border:1px solid var(--rhcm-grey-border); border-radius:5px; }
.rhcm-horaires-table input[type="checkbox"]{ margin-bottom:4px; }
.rhcm-horaires-table .rhcm-jour-col{ display:flex; flex-direction:column; align-items:center; gap:3px; }

/* Indicateur de présence en temps réel — Vue équipe (v0.9.2).
   Vert : au bureau · orange : en pause · bleu : en mission extérieure · rouge : en congé. */
.rhcm-app { --rhcm-p-bureau:#1a7f4f; --rhcm-p-bureau-bg:#e3f6ec;
  --rhcm-p-pause:#c2410c; --rhcm-p-pause-bg:#ffedd5;
  --rhcm-p-ext:#1d4ed8; --rhcm-p-ext-bg:#dbeafe;
  --rhcm-p-conge:#b91c1c; --rhcm-p-conge-bg:#fee2e2; }
.rhcm-dot{ display:inline-block; width:10px; height:10px; border-radius:50%; margin-right:6px; vertical-align:middle; background:#9ca3af; }
.rhcm-dot-bureau{ background:var(--rhcm-p-bureau); }
.rhcm-dot-pause{ background:var(--rhcm-p-pause); }
.rhcm-dot-exterieur{ background:var(--rhcm-p-ext); }
.rhcm-dot-conge{ background:var(--rhcm-p-conge); }
.rhcm-presence{ display:inline-flex; align-items:center; padding:4px 10px; border-radius:999px; font-size:12.5px; font-weight:700; background:var(--rhcm-grey-2); color:var(--rhcm-text-mute); }
.rhcm-presence-bureau{ background:var(--rhcm-p-bureau-bg); color:var(--rhcm-p-bureau); }
.rhcm-presence-pause{ background:var(--rhcm-p-pause-bg); color:var(--rhcm-p-pause); }
.rhcm-presence-exterieur{ background:var(--rhcm-p-ext-bg); color:var(--rhcm-p-ext); }
.rhcm-presence-conge{ background:var(--rhcm-p-conge-bg); color:var(--rhcm-p-conge); }
.rhcm-presence-detail{ display:block; font-size:12px; color:var(--rhcm-text-mute); margin-top:3px; }
.rhcm-presence-legende{ display:flex; flex-wrap:wrap; gap:6px 18px; font-size:12.5px; color:var(--rhcm-text-mute); margin:6px 0 12px; }
.rhcm-presence-resume{ display:flex; flex-wrap:wrap; gap:10px; margin:12px 0 4px; }
.rhcm-presence-resume .rhcm-presence{ font-size:13px; padding:6px 12px; }

/* Photos de profil (v0.10.0). */
.rhcm-avatar{ display:inline-flex; align-items:center; justify-content:center; width:32px; height:32px; border-radius:50%; object-fit:cover; flex-shrink:0; background:var(--rhcm-accent-light); }
.rhcm-avatar-lg{ width:64px; height:64px; }
.rhcm-avatar-xl{ width:120px; height:120px; font-size:44px; }
.rhcm-avatar-initiales{ color:var(--rhcm-accent); font-weight:700; font-size:14px; }
.rhcm-avatar-lg.rhcm-avatar-initiales{ font-size:24px; }
.rhcm-avatar-xl.rhcm-avatar-initiales{ font-size:44px; }
.rhcm-avec-avatar{ display:inline-flex; align-items:center; gap:10px; }
.rhcm-photo-profil{ display:flex; flex-direction:column; align-items:center; gap:14px; }
.rhcm-photo-profil .rhcm-btn{ margin:4px 2px; }
.rhcm-photos-grille{ display:grid; grid-template-columns:repeat(auto-fill, minmax(130px, 1fr)); gap:14px; margin-top:14px; }
.rhcm-photo-carte{ display:flex; flex-direction:column; align-items:center; gap:6px; padding:12px 8px; border:1px solid var(--rhcm-grey-2); border-radius:10px; text-align:center; }
.rhcm-photo-carte-vide{ border-style:dashed; }
.rhcm-photo-nom{ font-size:13px; font-weight:600; }

/* Correction d'un pointage par le DG / l'admin : liste du jour avec « Effacer » (v0.10.1). */
.rhcm-liste-jour{ margin:8px 0 10px; padding-left:18px; }
.rhcm-liste-jour li{ margin:4px 0; }

/* Page de connexion identifiée comme portail interne de l'agence (v0.10.2). */
.rhcm-connexion-entete{ display:flex; align-items:center; gap:12px; margin-bottom:12px; }
.rhcm-connexion-logo{ width:44px; height:44px; border-radius:12px; background:var(--rhcm-navy); color:#fff; font-weight:800; display:flex; align-items:center; justify-content:center; letter-spacing:.5px; }
.rhcm-connexion-agence{ font-size:20px; font-weight:800; color:var(--rhcm-navy); line-height:1.1; }
.rhcm-connexion-portail{ font-size:13.5px; color:var(--rhcm-text-mute); }
.rhcm-connexion-intro{ font-size:14px; line-height:1.5; margin:0 0 16px; }
.rhcm-connexion-securite{ font-size:12.5px; line-height:1.5; color:var(--rhcm-text-mute); margin-top:14px; }

/* Récapitulatif mensuel des heures, régime 48 h (v0.10.3). */
.rhcm-recap-mois{ display:grid; grid-template-columns:repeat(auto-fit, minmax(190px, 1fr)); gap:10px; margin-top:14px; }
.rhcm-recap-mois > div{ background:var(--rhcm-accent-light); border-radius:10px; padding:10px 14px; display:flex; flex-direction:column; gap:2px; }
.rhcm-recap-mois .rhcm-lbl{ font-size:12px; color:var(--rhcm-text-mute); }
.rhcm-recap-mois strong{ font-size:20px; color:var(--rhcm-navy); }
.rhcm-recap-mois .rhcm-muted{ font-size:11.5px; }
.rhcm-recap-mois .rhcm-recap-sup{ background:var(--rhcm-ok-bg); }
.rhcm-recap-mois .rhcm-recap-sup strong{ color:var(--rhcm-ok); }
.rhcm-ecart-plus{ color:var(--rhcm-ok); font-weight:600; }
.rhcm-ecart-moins{ color:var(--rhcm-danger); }

/* Motif de retard obligatoire (v0.11.0). */
.rhcm-motif-retard{ margin-top:14px; padding:14px; border-radius:10px; background:var(--rhcm-warn-bg); border:1px solid #f0c37a; }
.rhcm-motif-retard label strong{ color:var(--rhcm-warn); }
.rhcm-motif-retard textarea{ width:100%; margin:8px 0; padding:8px 10px; border:1px solid var(--rhcm-grey-border); border-radius:8px; font:inherit; }
