/* GestioPro : passerelle Slate Indigo pour les ecrans de premiere generation (lot P1, 06/09/2026).
   Environ cent ecrans (formulaires Comptabilite, Clinique, Flow, Finances, CRM, Cockpit, pages d authentification...) sont encore
   ecrits avec les classes utilitaires d origine (Tailwind) : couleurs fixes, angles serres, sans lien avec le theme choisi.
   Cette feuille, chargee apres gp-themes.css et gp-polices.css, traduit ces classes vers les variables du theme et les tokens
   du design (angles 14 px, titres Manrope, boutons indigo). En theme clair rien ne bouge d un ton ; en theme Nuit, Ocean, Sable
   ou Contraste, ces ecrans suivent enfin. Elle ne remplace pas la conversion ecran par ecran (dette listee par slate:controler),
   elle la rend supportable en attendant. */

/* Surfaces et fonds */
.bg-white { background-color: var(--gp-bg-ffffff, #ffffff) !important; }
.bg-gray-50 { background-color: var(--gp-bg-f7f9fb, #f7f9fb) !important; }
.bg-gray-100, .hover\:bg-gray-100:hover { background-color: var(--gp-bg-f2f4f6, #f2f4f6) !important; }
.hover\:bg-gray-50:hover { background-color: var(--gp-bg-f7f9fb, #f7f9fb) !important; }
.bg-indigo-50 { background-color: var(--gp-bg-eef2ff, #eef2ff) !important; }
.bg-rose-50, .bg-red-50 { background-color: var(--gp-bg-fef2f2, #fef2f2) !important; }
.bg-emerald-50, .bg-green-50 { background-color: var(--gp-bg-ecfdf5, #ecfdf5) !important; }
.bg-amber-50, .bg-yellow-50 { background-color: var(--gp-bg-fef3c7, #fef3c7) !important; }

/* Textes */
.text-gray-900, .text-gray-800 { color: var(--gp-fg-191c1e, #191c1e) !important; }
.text-gray-700 { color: var(--gp-fg-334155, #334155) !important; }
.text-gray-600 { color: var(--gp-fg-475569, #475569) !important; }
.text-gray-500 { color: var(--gp-fg-64748b, #64748b) !important; }
.text-gray-400 { color: var(--gp-fg-94a3b8, #94a3b8) !important; }
.text-indigo-600, .text-indigo-700, .hover\:text-indigo-800:hover { color: var(--gp-fg-24389c, #24389c) !important; }
.text-red-600, .text-red-500, .text-rose-700, .text-rose-600 { color: var(--gp-fg-dc2626, #dc2626) !important; }
.text-emerald-700, .text-green-700, .text-emerald-600 { color: var(--gp-fg-059669, #059669) !important; }
.text-amber-700, .text-amber-800 { color: var(--gp-fg-92400e, #92400e) !important; }

/* Bordures et separateurs */
.border-gray-200, .divide-gray-200 > :not([hidden]) ~ :not([hidden]) { border-color: var(--gp-bg-e8eaed, #e8eaed) !important; }
.border-gray-300 { border-color: var(--gp-bg-e0e3e5, #e0e3e5) !important; }
.border-rose-200, .border-red-200 { border-color: var(--gp-bg-fee2e2, #fee2e2) !important; }

/* Cartes : les angles et l ombre du design */
.shadow-xl.sm\:rounded-lg, .shadow.sm\:rounded-lg, .shadow-sm.sm\:rounded-lg, .shadow-md.sm\:rounded-lg, .shadow-lg.sm\:rounded-lg {
    border-radius: 14px !important;
    box-shadow: 0 12px 40px rgba(25,28,30,.06) !important;
    background-color: var(--gp-bg-ffffff, #ffffff);
}
.max-w-6xl { max-width: 1280px !important; }

/* Titres de la bande d en-tete (slot header des gabarits d origine) */
h2.font-semibold.text-xl, h3.text-lg.font-medium.text-gray-900 { font-family: 'Manrope', 'Inter', sans-serif !important; font-weight: 800 !important; letter-spacing: -.01em; }
h2.font-semibold.text-xl { font-size: 22px !important; }

/* Champs de saisie : le champ du design (fond doux, angle 9 px, focus indigo) */
input.border-gray-300, select.border-gray-300, textarea.border-gray-300 {
    border: 1px solid var(--gp-bg-e0e3e5, #e0e3e5) !important; border-radius: 9px !important;
    background-color: var(--gp-bg-ffffff, #ffffff); color: var(--gp-fg-191c1e, #191c1e);
    padding: 9px 12px; font: 13.5px 'Inter', sans-serif; box-shadow: none !important;
}
input.border-gray-300:focus, select.border-gray-300:focus, textarea.border-gray-300:focus { border-color: var(--gp-bg-24389c, #24389c) !important; box-shadow: 0 0 0 2px rgba(36,56,156,.15) !important; outline: none; }
input.border-gray-300:disabled, input.border-gray-300[readonly], .bg-gray-50.border-gray-300 { background-color: var(--gp-bg-f2f4f6, #f2f4f6) !important; color: var(--gp-fg-64748b, #64748b); }
input[type="checkbox"].border-gray-300, input[type="radio"].border-gray-300 { padding: 0; border-radius: 4px !important; accent-color: var(--gp-bg-24389c, #24389c); }

/* Boutons : indigo du design, gris doux pour Annuler */
.bg-indigo-600, .hover\:bg-indigo-700:hover, .bg-indigo-500 {
    background: linear-gradient(135deg, var(--gp-bg-24389c, #24389c), var(--gp-bg-3f51b5, #3f51b5)) !important;
    color: #ffffff !important; border: none !important; border-radius: 9px !important; font-weight: 700 !important;
    box-shadow: 0 4px 14px rgba(36,56,156,.25);
}
a.bg-gray-100, button.bg-gray-100 { border-radius: 9px !important; font-weight: 600; color: var(--gp-fg-475569, #475569) !important; }
.rounded-md { border-radius: 9px !important; }

/* Tableaux d origine */
table.min-w-full thead th { font: 700 10.5px 'Inter', sans-serif !important; text-transform: uppercase; letter-spacing: .05em; color: var(--gp-fg-94a3b8, #94a3b8) !important; background-color: var(--gp-bg-f7f9fb, #f7f9fb) !important; }
table.min-w-full tbody td { color: var(--gp-fg-334155, #334155); }

/* Composants partages (x-input, x-label, x-button, x-secondary-button, x-validation-errors) : pages d authentification et de profil */
.gp-champ { display:block; width:100%; padding:10px 12px; border:1px solid var(--gp-bg-e0e3e5, #e0e3e5); border-radius:9px; font:13.5px 'Inter', sans-serif; background:var(--gp-bg-ffffff, #ffffff); color:var(--gp-fg-191c1e, #191c1e); box-sizing:border-box; transition:border-color .15s, box-shadow .15s; }
.gp-champ:focus { border-color:var(--gp-bg-24389c, #24389c); box-shadow:0 0 0 2px rgba(36,56,156,.15); outline:none; }
.gp-champ:disabled, .gp-champ[readonly] { background:var(--gp-bg-f2f4f6, #f2f4f6); color:var(--gp-fg-64748b, #64748b); }
.gp-etiquette { display:block; font:800 10.5px 'Inter', sans-serif; letter-spacing:.1em; text-transform:uppercase; color:var(--gp-fg-475569, #475569); margin:0 0 6px; }
.gp-bouton { display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:11px 18px; border:none; border-radius:10px; background:linear-gradient(135deg, var(--gp-bg-24389c, #24389c), var(--gp-bg-3f51b5, #3f51b5)); color:#ffffff; font:700 13px 'Inter', sans-serif; cursor:pointer; box-shadow:0 4px 14px rgba(36,56,156,.25); transition:transform .12s, box-shadow .12s; text-decoration:none; }
.gp-bouton:hover { transform:translateY(-1px); box-shadow:0 8px 20px rgba(36,56,156,.30); }
.gp-bouton:disabled { opacity:.55; cursor:not-allowed; transform:none; }
.gp-bouton-second { display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:10px 16px; border:1px solid var(--gp-bg-e8eaed, #e8eaed); border-radius:10px; background:var(--gp-bg-f2f4f6, #f2f4f6); color:var(--gp-fg-475569, #475569); font:600 13px 'Inter', sans-serif; cursor:pointer; text-decoration:none; }
.gp-bouton-second:hover { background:var(--gp-bg-e8eaed, #e8eaed); color:var(--gp-fg-191c1e, #191c1e); }
.gp-alerte { background:var(--gp-bg-fef2f2, #fef2f2); color:var(--gp-fg-991b1b, #991b1b); border:1px solid var(--gp-bg-fee2e2, #fee2e2); border-radius:12px; padding:12px 14px; font:13px 'Inter', sans-serif; line-height:1.55; }

/* Le PDF, le courrier et l impression ne passent pas par cette feuille : ils ne chargent pas les gabarits d ecran. */

/* ===== Lot P2 (06/09/2026) : composants du design Slate Indigo pour l authentification et le profil ===== */
/* Chaque couleur passe par une variable du theme avec sa valeur claire en repli : ces ecrans suivent les cinq themes. */

/* -- En-tete des ecrans d authentification -- */
.gp-auth-tete { text-align:center; margin-bottom:24px; }
.gp-auth-titre { font:800 22px/1.2 'Manrope', sans-serif; letter-spacing:-.01em; color:var(--gp-fg-0f172a, #0f172a); margin:0 0 6px; }
.gp-auth-sous { font-size:13.5px; line-height:1.5; color:var(--gp-fg-64748b, #64748b); margin:0; }

/* -- Textes courants -- */
.gp-note { font-size:13.5px; line-height:1.55; color:var(--gp-fg-64748b, #64748b); margin:0; }
.gp-note--fort { font-weight:600; color:var(--gp-fg-334155, #334155); }
.gp-note + .gp-note { margin-top:8px; }
.gp-centre { text-align:center; }
.gp-lien { color:var(--gp-fg-24389c, #24389c); font-weight:600; text-decoration:none; }
.gp-lien:hover { text-decoration:underline; }
.gp-lien-discret { background:none; border:0; padding:0; font:inherit; font-size:13px; color:var(--gp-fg-64748b, #64748b); text-decoration:underline; cursor:pointer; }
.gp-lien-discret:hover { color:var(--gp-fg-0f172a, #0f172a); }
.gp-titre-page { font:800 20px/1.2 'Manrope', sans-serif; color:var(--gp-fg-0f172a, #0f172a); margin:0; }
.gp-titre-3 { font:800 16px/1.3 'Manrope', sans-serif; color:var(--gp-fg-0f172a, #0f172a); margin:0 0 10px; }
.gp-espace-haut { margin-top:16px; }
.gp-espace-haut-petit { margin-top:8px; }

/* -- Champs -- */
.gp-groupe { margin-bottom:16px; }
.gp-groupe .gp-etiquette { margin-bottom:6px; }
.gp-groupe-entete { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:6px; }
.gp-groupe-entete .gp-etiquette { margin-bottom:0; }
.gp-relatif { position:relative; }
.gp-champ--oeil { padding-right:44px; }
.gp-champ--court { max-width:360px; }
/* 32 x 32 minimum : sous 24 px un doigt rate le bouton et tape dans le champ (filet telephone:controler, S24) */
.gp-oeil { position:absolute; right:6px; top:50%; transform:translateY(-50%); width:32px; height:32px; display:flex; align-items:center; justify-content:center; background:none; border:0; padding:0; cursor:pointer; color:var(--gp-fg-94a3b8, #94a3b8); border-radius:8px; }
.gp-oeil:hover { color:var(--gp-fg-24389c, #24389c); background:var(--gp-bg-f1f5f9, #f1f5f9); }
.gp-oeil svg { width:18px; height:18px; }
.gp-case { width:16px; height:16px; border-radius:4px; accent-color:#24389c; cursor:pointer; }
.gp-erreur { font-size:12.5px; color:var(--gp-fg-dc2626, #dc2626); margin:6px 0 0; }
.gp-message-ok { font-size:13px; font-weight:600; color:var(--gp-fg-15803d, #15803d); }
.gp-grille-champs { display:grid; grid-template-columns:1fr; gap:18px; }
@media (min-width:640px) { .gp-grille-champs { grid-template-columns:repeat(2, minmax(0, 1fr)); } }
.gp-grille-champs > .gp-col-pleine, .gp-grille-champs > [class*="col-span-"] { grid-column:1 / -1; }
.gp-grille-champs .gp-groupe { margin-bottom:0; }

/* -- Actions -- */
.gp-actions { display:flex; align-items:center; justify-content:flex-end; gap:12px; margin-top:20px; flex-wrap:wrap; }
.gp-actions--entre { justify-content:space-between; }
.gp-actions--debut { justify-content:flex-start; }
.gp-bouton--large { width:100%; }
.gp-bouton-danger { display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:10px 18px; border:0; border-radius:10px; font:700 13.5px 'Inter', sans-serif; color:#fff; background:linear-gradient(135deg, #dc2626, #b91c1c); cursor:pointer; box-shadow:0 4px 12px rgba(220,38,38,.25); transition:transform .15s, box-shadow .15s; text-decoration:none; }
.gp-bouton-danger:hover { transform:translateY(-1px); box-shadow:0 8px 20px rgba(220,38,38,.3); }
.gp-bouton-danger:disabled { opacity:.55; cursor:not-allowed; transform:none; }

/* -- Encarts et listes -- */
.gp-encart { background:var(--gp-bg-f8fafc, #f8fafc); border:1px solid var(--gp-bg-e2e8f0, #e2e8f0); border-radius:12px; padding:14px 16px; font-size:13.5px; line-height:1.55; color:var(--gp-fg-334155, #334155); }
.gp-encart--info { background:var(--gp-bg-eef2ff, #eef2ff); border-color:var(--gp-bg-c7d2fe, #c7d2fe); color:var(--gp-fg-3730a3, #3730a3); }
.gp-encart--succes { background:var(--gp-bg-f0fdf4, #f0fdf4); border-color:var(--gp-bg-bbf7d0, #bbf7d0); color:var(--gp-fg-15803d, #15803d); }
.gp-encart-titre { font:800 14px 'Manrope', sans-serif; margin:0 0 8px; color:inherit; }
.gp-encart p { margin:0; }
.gp-encart p + p { margin-top:4px; }
.gp-liste { list-style:none; margin:0; padding:0; }
.gp-liste li { position:relative; padding-left:18px; margin:6px 0; font-size:13.5px; line-height:1.5; }
.gp-liste li::before { content:''; position:absolute; left:2px; top:8px; width:6px; height:6px; border-radius:50%; background:var(--gp-bg-24389c, #24389c); }

/* -- Cartes a choisir (boutons radio habilles) -- */
.gp-choix { position:relative; margin-bottom:12px; }
.gp-choix input { position:absolute; opacity:0; width:0; height:0; }
.gp-choix label { display:flex; align-items:center; gap:14px; padding:14px 16px; border:1.5px solid var(--gp-bg-e2e8f0, #e2e8f0); border-radius:12px; cursor:pointer; background:var(--gp-bg-ffffff, #fff); transition:border-color .15s, box-shadow .15s, background .15s; }
.gp-choix label:hover { border-color:var(--gp-bg-c7d2fe, #c7d2fe); }
.gp-choix input:checked + label { border-color:var(--gp-bg-24389c, #24389c); background:var(--gp-bg-eef2ff, #eef2ff); box-shadow:0 0 0 3px rgba(36,56,156,.12); }
.gp-choix input:focus-visible + label { box-shadow:0 0 0 3px rgba(36,56,156,.25); }
.gp-choix-corps { flex:1; min-width:0; }
.gp-choix-entete { display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; }
.gp-choix-titre { font:700 15px 'Manrope', sans-serif; color:var(--gp-fg-0f172a, #0f172a); margin:0; }
.gp-choix-point { width:18px; height:18px; border:2px solid var(--gp-bg-cbd5e1, #cbd5e1); border-radius:50%; flex:none; display:flex; align-items:center; justify-content:center; }
.gp-choix-point::after { content:''; width:8px; height:8px; border-radius:50%; background:var(--gp-bg-24389c, #24389c); opacity:0; }
.gp-choix input:checked + label .gp-choix-point { border-color:var(--gp-bg-24389c, #24389c); }
.gp-choix input:checked + label .gp-choix-point::after { opacity:1; }
.gp-pastille { display:inline-flex; align-items:center; padding:2px 9px; border-radius:999px; font-size:11px; font-weight:700; background:var(--gp-bg-eef2ff, #eef2ff); color:var(--gp-fg-3730a3, #3730a3); white-space:nowrap; }
.gp-meta { display:flex; align-items:center; gap:6px; font-size:12.5px; color:var(--gp-fg-64748b, #64748b); margin-top:6px; }
.gp-meta svg { width:14px; height:14px; }

/* -- Page Profil : sections en deux colonnes (titre a gauche, carte a droite) -- */
.gp-page-profil { max-width:1280px; margin:0 auto; padding:32px 24px 48px; }
@media (max-width:640px) { .gp-page-profil { padding:20px 16px 40px; } }
.gp-section { display:grid; grid-template-columns:1fr; gap:16px; }
@media (min-width:768px) { .gp-section { grid-template-columns:minmax(0, 1fr) minmax(0, 2fr); gap:28px; } }
.gp-section-tete { padding:4px 0; }
.gp-section-titre { font:800 17px/1.25 'Manrope', sans-serif; color:var(--gp-fg-0f172a, #0f172a); margin:0 0 6px; }
.gp-section-desc { font-size:13.5px; line-height:1.5; color:var(--gp-fg-64748b, #64748b); margin:0; }
.gp-separateur { border:0; border-top:1px solid var(--gp-bg-e2e8f0, #e2e8f0); margin:28px 0; }
.gp-carte { background:var(--gp-bg-ffffff, #fff); border:1px solid var(--gp-bg-e2e8f0, #e2e8f0); border-radius:14px; padding:22px 24px; box-shadow:0 1px 2px rgba(15,23,42,.04); }
.gp-carte--avec-pied { border-bottom-left-radius:0; border-bottom-right-radius:0; border-bottom:0; }
.gp-carte-pied { display:flex; align-items:center; justify-content:flex-end; gap:12px; padding:14px 24px; background:var(--gp-bg-f8fafc, #f8fafc); border:1px solid var(--gp-bg-e2e8f0, #e2e8f0); border-radius:0 0 14px 14px; }
.gp-codes { display:grid; gap:4px; max-width:520px; padding:14px 16px; border-radius:10px; background:var(--gp-bg-f1f5f9, #f1f5f9); font:13px/1.6 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; color:var(--gp-fg-0f172a, #0f172a); }
.gp-qr { display:inline-block; padding:10px; background:#fff; border:1px solid var(--gp-bg-e2e8f0, #e2e8f0); border-radius:12px; }
.gp-avatar { width:80px; height:80px; border-radius:50%; object-fit:cover; background-size:cover; background-position:center; display:block; }
.gp-session { display:flex; align-items:center; gap:14px; padding:12px 14px; border:1px solid var(--gp-bg-e2e8f0, #e2e8f0); border-radius:12px; }
.gp-session + .gp-session { margin-top:10px; }
.gp-session svg { width:30px; height:30px; color:var(--gp-fg-64748b, #64748b); flex:none; }
.gp-session-titre { font-size:14px; font-weight:600; color:var(--gp-fg-0f172a, #0f172a); }
.gp-session-meta { font-size:12.5px; color:var(--gp-fg-64748b, #64748b); margin-top:2px; }
.gp-tag-ok { color:var(--gp-fg-15803d, #15803d); font-weight:700; }

/* -- Modales -- */
.gp-modale-voile { position:fixed; inset:0; background:rgba(15,23,42,.55); backdrop-filter:blur(2px); }
.gp-modale { position:relative; width:100%; margin:0 auto 24px; background:var(--gp-bg-ffffff, #fff); border-radius:16px; overflow:hidden; box-shadow:0 24px 60px rgba(15,23,42,.28); }
.gp-modale-corps { padding:22px 24px; }
.gp-modale-titre { font:800 17px/1.25 'Manrope', sans-serif; color:var(--gp-fg-0f172a, #0f172a); margin:0; }
.gp-modale-texte { font-size:13.5px; line-height:1.55; color:var(--gp-fg-64748b, #64748b); margin-top:10px; }
.gp-modale-pied { display:flex; justify-content:flex-end; gap:10px; padding:14px 24px; background:var(--gp-bg-f8fafc, #f8fafc); border-top:1px solid var(--gp-bg-e2e8f0, #e2e8f0); }

/* ===== Lot P3 (06/09/2026) : vocabulaire du design pour les ecrans convertis (Comptabilite, puis les autres modules) ===== */
/* Chaque couleur passe par une variable du theme avec sa valeur claire en repli. */

/* -- Conteneur de page (regle des largeurs : 1280 par defaut, 1400 pour un module a tableaux denses) -- */
.gp-conteneur { max-width:1280px; margin:0 auto; padding:0 24px; }
.gp-conteneur--large { max-width:1400px; }
@media (max-width:640px) { .gp-conteneur { padding:0 16px; } }
.gp-fil { margin-top:4px; font-size:12px; color:var(--gp-fg-64748b, #64748b); }
.gp-fil a { color:inherit; text-decoration:none; }
.gp-fil a:hover { color:var(--gp-fg-24389c, #24389c); text-decoration:underline; }

/* -- Textes -- */
.gp-titre-2 { font:800 24px/1.2 'Manrope', sans-serif; color:var(--gp-fg-0f172a, #0f172a); margin:0; }
.gp-titre-4 { font:700 14.5px/1.3 'Manrope', sans-serif; color:var(--gp-fg-0f172a, #0f172a); margin:0; }
.gp-fort { font-size:14px; font-weight:600; color:var(--gp-fg-0f172a, #0f172a); }
.gp-texte { font-size:13.5px; color:var(--gp-fg-334155, #334155); }
.gp-doux { font-size:13px; color:var(--gp-fg-64748b, #64748b); }
.gp-petit { font-size:12px; }
.gp-vide { text-align:center; padding:48px 24px; color:var(--gp-fg-64748b, #64748b); }
.gp-vide > i { display:block; font-size:36px; color:var(--gp-fg-94a3b8, #94a3b8); margin-bottom:14px; }
.gp-rond { width:32px; height:32px; border-radius:50%; background:var(--gp-bg-eef2ff, #eef2ff); color:var(--gp-fg-24389c, #24389c); display:inline-flex; align-items:center; justify-content:center; flex:none; }
.gp-lien--danger { color:var(--gp-fg-dc2626, #dc2626); }

/* -- Couleurs du design en utilitaires (a la place des gris et indigo d origine) -- */
.gp-c-fonce { color:var(--gp-fg-0f172a, #0f172a); }
.gp-c-texte { color:var(--gp-fg-334155, #334155); }
.gp-c-doux { color:var(--gp-fg-64748b, #64748b); }
.gp-c-tres-doux { color:var(--gp-fg-94a3b8, #94a3b8); }
.gp-c-primaire { color:var(--gp-fg-24389c, #24389c); }
.gp-c-danger { color:var(--gp-fg-dc2626, #dc2626); }
.gp-c-succes { color:var(--gp-fg-15803d, #15803d); }
.gp-c-attention { color:var(--gp-fg-b45309, #b45309); }
.gp-f-blanc { background-color:var(--gp-bg-ffffff, #fff); }
.gp-f-doux { background-color:var(--gp-bg-f8fafc, #f8fafc); }
.gp-f-gris { background-color:var(--gp-bg-f1f5f9, #f1f5f9); }
.gp-f-primaire-doux { background-color:var(--gp-bg-eef2ff, #eef2ff); }
.gp-f-succes-doux { background-color:var(--gp-bg-f0fdf4, #f0fdf4); }
.gp-f-danger-doux { background-color:var(--gp-bg-fef2f2, #fef2f2); }
.gp-f-attention-doux { background-color:var(--gp-bg-fffbeb, #fffbeb); }
.gp-b { border-color:var(--gp-bg-e2e8f0, #e2e8f0); }
.gp-b-danger { border-color:var(--gp-bg-fca5a5, #fca5a5); }
.gp-b-succes { border-color:var(--gp-bg-bbf7d0, #bbf7d0); }
.gp-champ.gp-b-danger { border-color:var(--gp-bg-dc2626, #dc2626); }
.gp-r { border-radius:10px; }
.gp-o { box-shadow:0 1px 2px rgba(15,23,42,.04); }
.gp-survol:hover { background-color:var(--gp-bg-f8fafc, #f8fafc); }
.gp-o-survol { transition:box-shadow .15s; }
.gp-o-survol:hover { box-shadow:0 8px 24px rgba(15,23,42,.08); }

/* -- Cartes : tete et pied -- */
.gp-carte--nue { padding:0; overflow:hidden; }
.gp-carte-tete { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; padding:16px 24px; border-bottom:1px solid var(--gp-bg-e2e8f0, #e2e8f0); }
.gp-carte-bas { padding:14px 24px; border-top:1px solid var(--gp-bg-e2e8f0, #e2e8f0); background:var(--gp-bg-f8fafc, #f8fafc); }
.gp-encart--attention { background:var(--gp-bg-fffbeb, #fffbeb); border-color:var(--gp-bg-fde68a, #fde68a); color:var(--gp-fg-92400e, #92400e); }

/* -- Tableaux -- */
.gp-table { width:100%; border-collapse:collapse; font-size:13.5px; color:var(--gp-fg-334155, #334155); }
.gp-thead { background:var(--gp-bg-f8fafc, #f8fafc); }
.gp-th { padding:11px 16px; font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--gp-fg-64748b, #64748b); text-align:left; white-space:nowrap; border-bottom:1px solid var(--gp-bg-e2e8f0, #e2e8f0); background:var(--gp-bg-f8fafc, #f8fafc); }
.gp-th.text-right { text-align:right; }
.gp-th.text-center { text-align:center; }
.gp-td { padding:12px 16px; vertical-align:middle; border-top:1px solid var(--gp-bg-e2e8f0, #e2e8f0); }
.gp-th--serre { padding:8px 10px; background:transparent; }
.gp-td--serre { padding:8px 10px; }
.gp-table--serre { font-size:13px; }
.gp-ligne { transition:background .12s; }
.gp-ligne:hover { background:var(--gp-bg-f8fafc, #f8fafc); }
tfoot .gp-td { font-weight:600; background:var(--gp-bg-f8fafc, #f8fafc); }

/* -- Pastilles et boutons : variantes -- */
.gp-pastille--succes { background:var(--gp-bg-f0fdf4, #f0fdf4); color:var(--gp-fg-15803d, #15803d); }
.gp-pastille--danger { background:var(--gp-bg-fef2f2, #fef2f2); color:var(--gp-fg-b91c1c, #b91c1c); }
.gp-pastille--attention { background:var(--gp-bg-fffbeb, #fffbeb); color:var(--gp-fg-b45309, #b45309); }
.gp-pastille--neutre { background:var(--gp-bg-f1f5f9, #f1f5f9); color:var(--gp-fg-475569, #475569); }
.gp-bouton--succes { background:linear-gradient(135deg, #059669, #047857); box-shadow:0 4px 12px rgba(5,150,105,.25); }
.gp-bouton--succes:hover { box-shadow:0 8px 20px rgba(5,150,105,.3); }
.gp-bouton--petit { padding:7px 12px; font-size:12.5px; }
.gp-bouton--icone { width:36px; height:36px; padding:0; }
.gp-bouton-second.gp-bouton--icone, .gp-bouton-danger.gp-bouton--icone { padding:0; }

/* ===== Lot P4 (06/09/2026) : vocabulaire du design pour le CRM (chiffres cles, accents de pipeline, fonds pleins) ===== */
.gp-chiffre { font:800 24px/1.1 'Manrope', sans-serif; color:var(--gp-fg-0f172a, #0f172a); letter-spacing:-.01em; }
.gp-chiffre--petit { font-size:20px; }
.gp-c-accent-1 { color:var(--gp-fg-7c3aed, #7c3aed); }
.gp-c-accent-2 { color:var(--gp-fg-0891b2, #0891b2); }
.gp-c-accent-3 { color:var(--gp-fg-ea580c, #ea580c); }
.gp-f-primaire { background-color:var(--gp-bg-24389c, #24389c); }
.gp-f-succes { background-color:var(--gp-bg-16a34a, #16a34a); }
.gp-f-danger { background-color:var(--gp-bg-dc2626, #dc2626); }
.gp-f-attention { background-color:var(--gp-bg-f59e0b, #f59e0b); }
.gp-f-accent-1 { background-color:var(--gp-bg-7c3aed, #7c3aed); }
.gp-f-accent-2 { background-color:var(--gp-bg-0891b2, #0891b2); }
.gp-f-accent-3 { background-color:var(--gp-bg-ea580c, #ea580c); }
.gp-f-accent-1-doux { background-color:var(--gp-bg-f5f3ff, #f5f3ff); }
.gp-f-accent-2-doux { background-color:var(--gp-bg-ecfeff, #ecfeff); }
.gp-f-accent-3-doux { background-color:var(--gp-bg-fff7ed, #fff7ed); }

/* ===== Lot P5 (06/09/2026) : derniers utilitaires du design pour les ecrans isoles ===== */
.gp-b-primaire { border-color:var(--gp-bg-24389c, #24389c); }
.gp-f-fonce { background-color:var(--gp-bg-334155, #334155); }
.gp-b-fonce { border-color:var(--gp-bg-475569, #475569); }
.gp-c-clair { color:var(--gp-fg-f8fafc, #f8fafc); }

/* ===== Lot P6 (06/09/2026) : navigation des gabarits d origine (liens de barre, menu deroulant, liens repliables) ===== */
.gp-nav-lien { display:inline-flex; align-items:center; gap:6px; padding:0 4px; height:100%; border-bottom:2px solid transparent; font-size:13.5px; font-weight:600; color:var(--gp-fg-64748b, #64748b); text-decoration:none; transition:color .15s, border-color .15s; }
.gp-nav-lien:hover { color:var(--gp-fg-0f172a, #0f172a); border-bottom-color:var(--gp-bg-cbd5e1, #cbd5e1); }
.gp-nav-lien--actif, .gp-nav-lien--actif:hover { color:var(--gp-fg-0f172a, #0f172a); border-bottom-color:var(--gp-bg-24389c, #24389c); }
.gp-nav-lien-mobile { display:block; width:100%; padding:10px 16px; border-left:4px solid transparent; font-size:14px; font-weight:600; color:var(--gp-fg-334155, #334155); text-decoration:none; text-align:start; background:none; border-top:0; border-right:0; border-bottom:0; cursor:pointer; }
.gp-nav-lien-mobile:hover { background:var(--gp-bg-f8fafc, #f8fafc); color:var(--gp-fg-0f172a, #0f172a); }
.gp-nav-lien-mobile--actif, .gp-nav-lien-mobile--actif:hover { background:var(--gp-bg-eef2ff, #eef2ff); border-left-color:var(--gp-bg-24389c, #24389c); color:var(--gp-fg-24389c, #24389c); }
.gp-menu { background:var(--gp-bg-ffffff, #fff); border:1px solid var(--gp-bg-e2e8f0, #e2e8f0); border-radius:12px; box-shadow:0 12px 32px rgba(15,23,42,.12); overflow:hidden; padding:6px 0; }
.gp-menu-lien { display:block; width:100%; padding:8px 14px; font-size:13.5px; color:var(--gp-fg-334155, #334155); text-align:start; text-decoration:none; background:none; border:0; cursor:pointer; }
.gp-menu-lien:hover, .gp-menu-lien:focus { background:var(--gp-bg-f8fafc, #f8fafc); color:var(--gp-fg-0f172a, #0f172a); outline:none; }
.gp-menu-titre { display:block; padding:8px 14px 4px; font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--gp-fg-94a3b8, #94a3b8); }
.gp-menu-separateur { border:0; border-top:1px solid var(--gp-bg-e2e8f0, #e2e8f0); margin:6px 0; }
.gp-barre { background:var(--gp-bg-ffffff, #fff); border-bottom:1px solid var(--gp-bg-e2e8f0, #e2e8f0); }
.gp-bandeau-page { background:var(--gp-bg-ffffff, #fff); border-bottom:1px solid var(--gp-bg-e2e8f0, #e2e8f0); }
