/* Source canonique app-readability.css. Les variantes de thème, écran et état restent locales à leur composant. */

.page-benegroles .action-dropdown__toggle,
.page-poles .btn-icon,
.trombino-page .trombino-pole-row__header,
.trombino-page .trombino-minors-pole__header,
.trombino-page .trombino-summit-row__header {
  min-height: 44px;
}

.action-dropdown__toggle {
  min-width: 44px;
}

.page-benegroles .action-dropdown__toggle:focus-visible,
.page-poles .pole-manage-trigger:focus-visible,
.page-poles .pole-edit-trigger:focus-visible,
.trombino-page .trombino-pole-row__header:focus-visible,
.trombino-page .trombino-minors-pole__header:focus-visible,
.trombino-page .trombino-summit-row__header:focus-visible {
  outline: 2px solid var(--focus-border, #3383eaa6);
  outline-offset: 2px;
}

.page-benegroles .conditional-field[aria-hidden="true"],
.page-profile .conditional-field[aria-hidden="true"] {
  display: none !important;
}

body.app-layout .badge-status-inscrit,
body.app-layout .badge-status-present,
body.app-layout .badge-status-attente,
body.app-layout .badge-status-absent,
body.app-layout .badge-status-annule,
body.app-layout .cdg-status-pill {
  border-style: solid;
  border-width: 1px;
  font-weight: 700;
}

body.app-layout .badge-status-inscrit,
body.app-layout .badge-status-present {
  box-shadow: inset 0 0 0 1px #065f462e;
}

body.app-layout .badge-status-attente {
  box-shadow: inset 0 0 0 1px #92400e2e;
}

body.app-layout .badge-status-annule {
  box-shadow: inset 0 0 0 1px #991b1b33;
}

body.app-layout .badge-status-absent {
  box-shadow: inset 0 0 0 1px #33415533;
}

body.app-layout button:focus-visible,
body.app-layout [type="button"]:focus-visible,
body.app-layout [type="submit"]:focus-visible,
body.app-layout .btn:focus-visible,
body.app-layout .form-control:focus-visible,
body.app-layout .form-select:focus-visible,
body.app-layout .form-check-input:focus-visible,
body.app-layout a:focus-visible {
  outline: 3px solid var(--focus-border, #3383eaa6);
  outline-offset: 2px;
}

@media (pointer: coarse) {
  .page-benegroles .btn.btn-sm,
  .page-profile .btn.btn-sm,
  .page-poles .btn.btn-sm,
  .trombino-page .btn.btn-sm {
    min-height: 44px;
    padding-top: 0.45rem;
    padding-bottom: 0.45rem;
  }
  .page-benegroles .presence-picker,
  .page-profile .presence-select,
  .page-poles .pole-searchbar__field .form-control,
  .trombino-page input[type="search"] {
    min-height: 44px;
  }
}

/* Final readability guard: contrast, tap targets and overflow resilience. */

body.app-layout {
  --cdg-readable-text: var(--app-text, #0f172a);
  --cdg-readable-muted: var(--app-text-muted, #475569);
}

body.app-layout main.app-main {
  color: var(--cdg-readable-text);
}

body.app-layout main.app-main h1,
body.app-layout main.app-main h2,
body.app-layout main.app-main h3,
body.app-layout main.app-main h4,
body.app-layout main.app-main h5,
body.app-layout main.app-main h6,
body.app-layout main.app-main strong,
body.app-layout main.app-main label,
body.app-layout main.app-main .fw-semibold {
  color: var(--cdg-readable-text);
}

body.app-layout main.app-main p,
body.app-layout main.app-main li,
body.app-layout main.app-main small,
body.app-layout main.app-main .small,
body.app-layout main.app-main .text-muted,
body.app-layout main.app-main .text-body-secondary,
body.app-layout main.app-main .app-subtitle,
body.app-layout main.app-main .form-text {
  color: var(--cdg-readable-muted);
}

body.app-layout main.app-main .btn,
body.app-layout main.app-main button,
body.app-layout main.app-main [role="button"],
body.app-layout main.app-main input,
body.app-layout main.app-main select,
body.app-layout main.app-main textarea {
  font-size: max(1rem, 16px);
}

body.app-layout main.app-main .btn,
body.app-layout main.app-main button,
body.app-layout main.app-main .form-control,
body.app-layout main.app-main .form-select,
body.app-layout main.app-main .input-group-text {
  min-height: var(--cdg-tap-target, 44px);
}

body.app-layout main.app-main img,
body.app-layout main.app-main video,
body.app-layout main.app-main canvas,
body.app-layout main.app-main svg {
  max-width: 100%;
}

body.app-layout main.app-main h1,
body.app-layout main.app-main h2,
body.app-layout main.app-main h3,
body.app-layout main.app-main .btn,
body.app-layout main.app-main .badge,
body.app-layout main.app-main .card,
body.app-layout main.app-main .app-panel,
body.app-layout main.app-main .list-group-item,
body.app-layout main.app-main .table {
  overflow-wrap: anywhere;
}

body.app-layout main.app-main a:focus-visible,
body.app-layout main.app-main button:focus-visible,
body.app-layout main.app-main input:focus-visible,
body.app-layout main.app-main select:focus-visible,
body.app-layout main.app-main textarea:focus-visible,
body.auth-body a:focus-visible,
body.auth-body button:focus-visible,
body.auth-body input:focus-visible,
body.auth-body select:focus-visible,
body.auth-body textarea:focus-visible {
  outline: 3px solid var(--focus-ring-color, #f59e0b);
  outline-offset: 2px;
}

html[data-theme="dark"] body.app-layout,
body.app-layout.dark-mode {
  --cdg-readable-text: #f8fafc;
  --cdg-readable-muted: #dbe7f5;
}

/* CDG_ACCESSIBILITY_V8_SOURCE_CORRECTION: readable text defaults consumed by page-specific source fixes. */
