/* Ajustements propres à la maquette, par-dessus le thème. */
.proto-tag { font-size: .6875rem; white-space: nowrap; }
.brand-logo { display: block; height: 44px; width: auto; max-width: 100%; }
.cursor-row { cursor: pointer; }
.cursor-row:hover { background: rgba(45, 112, 113, .04); }

.mobile-list .list-group-item { padding: .875rem 1rem; }
.kv dt { font-weight: 400; color: #8592a3; font-size: .8125rem; margin-bottom: .125rem; }
.kv dd { color: #384551; margin-bottom: .875rem; }
.kv dd:last-child { margin-bottom: 0; }

/* Cartes de sélection : équipement, niveau, mode de paiement */
.choice { display: block; border: 1px solid #e4e6e8; border-radius: .5rem; padding: .875rem 1rem; cursor: pointer; background: #fff; height: 100%; transition: border-color .15s, background .15s; }
.choice:hover { border-color: #2D7071; }
.choice:has(input:checked) { border-color: #2D7071; background: rgba(45, 112, 113, .06); box-shadow: inset 0 0 0 1px #2D7071; }
.choice input[type=radio], .choice input[type=checkbox] { margin-right: .5rem; }
.choice .price { font-weight: 600; color: #384551; }

/* Grandes cibles tactiles pour la fiche d'attestation, utilisée sur le terrain */
.check-row { display: flex; align-items: center; gap: .75rem; padding: .75rem 0; border-bottom: 1px solid #f0f1f3; margin: 0; cursor: pointer; }
.check-row:last-child { border-bottom: 0; }
.check-row .form-check-input { width: 1.375rem; height: 1.375rem; margin: 0; flex: none; }

.sticky-actions { position: sticky; bottom: 0; z-index: 5; background: #fff; border-top: 1px solid #e4e6e8; padding: .75rem 1rem; margin: 1.5rem -1.5rem -1.5rem; border-radius: 0 0 .5rem .5rem; }
.summary-line { display: flex; justify-content: space-between; gap: 1rem; padding: .375rem 0; }
.summary-line.total { font-weight: 600; font-size: 1.125rem; color: #384551; border-top: 1px solid #e4e6e8; margin-top: .5rem; padding-top: .75rem; }

.dropzone-lite { border: 1px dashed #c9ced3; border-radius: .5rem; padding: 1.25rem; text-align: center; color: #8592a3; cursor: pointer; display: block; }
.dropzone-lite:hover { border-color: #2D7071; color: #2D7071; }

/* Stepper : version compacte sur téléphone */
.proto-stepper .bs-stepper-header { padding: 1rem 1.25rem; gap: .25rem; flex-wrap: nowrap; }
.proto-stepper .step-trigger { padding: 0; background: none; border: 0; display: flex; align-items: center; gap: .5rem; color: inherit; }
.proto-stepper .bs-stepper-circle { width: 2rem; height: 2rem; border-radius: .375rem; display: inline-flex; align-items: center; justify-content: center; background: rgba(133, 146, 163, .16); color: #646E78; font-weight: 500; flex: none; }
.proto-stepper .step.active .bs-stepper-circle { background: #2D7071; color: #fff; }
.proto-stepper .step.done .bs-stepper-circle { background: rgba(45, 112, 113, .16); color: #2D7071; }
.proto-stepper .bs-stepper-title { font-weight: 500; color: #384551; font-size: .875rem; }
.proto-stepper .line { flex: 1; min-height: 1px; display: flex; align-items: center; justify-content: center; color: #a7acb2; }
.proto-step { display: none; padding: 1.5rem; }
.proto-step.active { display: block; }
@media (max-width: 767.98px) {
  .proto-stepper .step:not(.active) .bs-stepper-title { display: none; }
  .proto-stepper .bs-stepper-header { padding: .875rem 1rem; }
  .proto-step { padding: 1rem; }
  .sticky-actions { margin: 1rem -1rem -1rem; }
  .container-p-y.proto-page { padding-top: .75rem !important; }
  .btn-mobile-full { width: 100%; }
}

/* Aperçu PDF */
.a4 { background: #fff; max-width: 794px; margin: 0 auto; padding: 48px; box-shadow: 0 2px 12px rgba(35, 52, 70, .12); color: #384551; font-size: .875rem; }
.a4-logo { display: block; height: 56px; width: auto; max-width: 100%; margin-bottom: 1.5rem; }
.a4 h1 { font-size: 1.375rem; margin-bottom: .25rem; }
.a4 h2 { font-size: 1rem; margin: 1.5rem 0 .5rem; color: #2D7071; }
.a4 table { width: 100%; border-collapse: collapse; }
.a4 th, .a4 td { border-bottom: 1px solid #e4e6e8; padding: .4rem .25rem; text-align: left; }
.a4 .num { text-align: right; white-space: nowrap; }
.a4-note { background: rgba(255, 171, 0, .12); color: #8a6100; border-radius: .375rem; padding: .5rem .75rem; font-size: .8125rem; margin-bottom: 1.25rem; }
@media (max-width: 767.98px) { .a4 { padding: 20px; } }
@media print { .no-print { display: none !important; } .a4 { box-shadow: none; max-width: none; padding: 0; } }

/* Aperçu e-mail */
.mail { background: #fff; border: 1px solid #e4e6e8; border-radius: .5rem; max-width: 680px; }
.mail-head { padding: 1rem 1.25rem; border-bottom: 1px solid #e4e6e8; font-size: .8125rem; }
.mail-head div { margin-bottom: .125rem; word-break: break-word; }
.mail-body { padding: 1.25rem; }
.mail-body table { width: 100%; font-size: .8125rem; }
.mail-body th, .mail-body td { padding: .375rem .375rem .375rem 0; border-bottom: 1px solid #f0f1f3; text-align: left; vertical-align: top; }

/* Page publique */
.public-header { background: #fff; border-bottom: 1px solid #e4e6e8; }
.public-wrap { max-width: 760px; margin: 0 auto; padding: 1.5rem 1rem 3rem; }

.toast-container { z-index: 1090; }

/* Menu mobile : au-dessus du voile et de la barre du haut */
@media (max-width: 1199.98px) {
  html body #layout-menu.layout-menu { z-index: 1100 !important; }
  .layout-overlay { z-index: 1095 !important; }
}

/* Stepper : reste sur une ligne sur téléphone */
.proto-stepper .bs-stepper-header { flex-direction: row !important; align-items: center !important; }
.proto-stepper .bs-stepper-header .step { margin: 0 !important; }
.proto-stepper .bs-stepper-header .line { display: flex !important; margin: 0 !important; padding: 0 !important; min-width: .75rem; }

/* Lisibilité des messages importants */
.alert-warning { color: #8a6100; }
.alert-info { color: #0a6f86; }
.summary-line.text-success { color: #3f8f12 !important; }

/* Stepper : pastilles alignées */
.proto-stepper .bs-stepper-header .step { display: flex; align-items: center; }
.proto-stepper .step-trigger { margin: 0 !important; padding: 0 !important; line-height: 1; opacity: 1 !important; }
.proto-stepper .bs-stepper-circle { margin: 0 !important; }
