/* Charte graphique PPE commune : boutons, liens d'action et champs uniformes. */
:root {
  --ppe-primary: #164e83;
  --ppe-primary-hover: #103d68;
  --ppe-primary-soft: #eaf3fc;
  --ppe-text: #1e293b;
  --ppe-muted: #596b80;
  --ppe-line: #dce5ef;
  --ppe-surface: #ffffff;
  --ppe-shadow: 0 4px 12px rgba(18, 59, 100, .12);
}
*, *::before, *::after { box-sizing: border-box; }
:is(.back, .action, .save-btn, .cancel-btn, .btn, .footer-actions a, .controls button, .controls a button, .pagination button, .logout a, #exportPdfBtn button, button.ppe-button, a.ppe-button, input[type="submit"]) {
  font-family: Arial, sans-serif !important;
  font-weight: 800 !important;
  font-size: 17px !important;
  line-height: 1.25 !important;
  min-height: 48px;
  border-radius: 12px !important;
  padding: 12px 17px;
  transition: background-color .15s ease, border-color .15s ease, box-shadow .15s ease, transform .15s ease;
  text-decoration: none;
  cursor: pointer;
}
:is(.save-btn, .btn-primary, .action:not(.secondary), .footer-actions a, #exportPdfBtn button, input[type="submit"], button[type="submit"]) {
  color: #fff !important;
  background: var(--ppe-primary) !important;
  border: 1px solid var(--ppe-primary) !important;
  box-shadow: var(--ppe-shadow);
}
:is(.save-btn, .btn-primary, .action:not(.secondary), .footer-actions a, #exportPdfBtn button, input[type="submit"], button[type="submit"]):hover {
  background: var(--ppe-primary-hover) !important;
  border-color: var(--ppe-primary-hover) !important;
}
:is(.back, .cancel-btn, .btn-secondary, .action.secondary, .controls button, .controls a button, .pagination button, .btn:not(.btn-primary), a.ppe-button) {
  color: var(--ppe-primary) !important;
  background: var(--ppe-surface) !important;
  border: 1px solid #c4d2e0 !important;
  box-shadow: none !important;
}
:is(.back, .cancel-btn, .btn-secondary, .action.secondary, .controls button, .controls a button, .pagination button, .btn:not(.btn-primary), a.ppe-button):hover {
  background: var(--ppe-primary-soft) !important;
  border-color: #8db3d8 !important;
}
:is(button, input[type="submit"], .back, .action, .save-btn, .cancel-btn, .btn, .footer-actions a, .logout a, #exportPdfBtn button):focus-visible {
  outline: 3px solid #8fc4f5 !important;
  outline-offset: 2px;
}
input:not([type="checkbox"]):not([type="radio"]), select, textarea {
  border-radius: 11px;
  border-color: #bacbdd;
}
.tile {
  border: 1px solid #dce5ef;
  border-radius: 18px !important;
  box-shadow: 0 7px 20px rgba(18, 59, 100, .08) !important;
  transition: transform .16s ease, box-shadow .16s ease, background .16s ease;
}
.tile:hover { background: #f8fbff !important; box-shadow: 0 11px 25px rgba(18, 59, 100, .14) !important; }
.pagination button:disabled { color: #fff !important; background: var(--ppe-primary) !important; border-color: var(--ppe-primary) !important; }
.logout a { display: inline-flex; align-items: center; justify-content: center; }
@media (max-width: 640px) {
  :is(.back, .action, .save-btn, .cancel-btn, .btn, .footer-actions a, .controls button, .logout a, #exportPdfBtn button, button.ppe-button, a.ppe-button, input[type="submit"]) { font-size: 16px !important; min-height: 48px; }
}
@media (prefers-reduced-motion: reduce) { * { transition: none !important; } }
