
/**
 * Thème portail — palette « Rentabilité commerciaux »
 * Scope : .portal-page-theme (.card-body des pages portail)
 */
:root {
  /*
   * Convention de couches : les exports restent dans la strate Bootstrap
   * normale, strictement sous le backdrop (1040) et les dialogues (1050+).
   */
  --opentry-z-export-control: 1000;
  --opentry-z-export-menu: 1020;
  --opentry-z-blocking-backdrop: 1040;
}

.portal-page-theme,
.doors-page {
  --portal-teal: var(--ui-portal-theme-color, #005961);
  --portal-teal-dark: var(--ui-portal-theme-color-dark, #004a52);
  --portal-green: #5cb85c;
  --portal-green-value: #78c247;
  --portal-red: #f06565;
  --portal-help-card: #f5f6f7;
  --portal-surface: #f4f4f4;
  --portal-border: #eeeeee;
  --portal-text: #2c3e50;
  --portal-muted: #6c757d;
  --portal-content-gutter: 16px;
}

/* Libellés — préférences Interface et notifications (ui-preferences.js → :root) */
.portal-page-theme .form-group > label:not(.custom-control-label):not(.btn),
.portal-page-theme .form-group > .col-form-label,
.portal-page-theme label.d-block:not(.custom-control-label):not(.nav-link):not(.btn) {
  font-size: var(--settings-form-label-font-size, 0.9375rem);
  font-weight: var(--settings-form-label-font-weight, 600);
  color: var(--settings-form-label-color, var(--portal-text));
}

.portal-page-theme .form-text,
.portal-page-theme .form-group .form-text,
.portal-page-theme small.form-text,
.portal-page-theme p.form-text.text-muted,
.portal-page-theme .form-group > p.text-muted.small,
.portal-page-theme .operators-form-toggle-item > p.text-muted.small,
.portal-page-theme .users-fields-modal-section-body > p.text-muted.small,
.portal-page-theme .settings-companies-form > p.text-muted.small,
.portal-page-theme .event-notif-restrict-wrap > p.text-muted.small,
.portal-page-theme .event-notif-weekly-editor > p.text-muted.small,
.portal-page-theme .devices-comm-step .w-100 > p.text-muted.small,
.portal-page-theme .account-security-step-body small.form-text.text-muted,
.portal-page-theme .users-daily-mobile-email-hint,
.portal-page-theme .operator-login-schedule__preview .text-muted.small,
.portal-page-theme p.operator-login-schedule__empty,
.portal-page-theme .form-text.text-muted.small,
.portal-page-theme #uiSmartAlertsSettingsRoot p.text-muted.small,
.portal-page-theme #uiSmartAlertsSettingsRoot small.form-text.text-muted,
.portal-page-theme .users-welcome-step p.text-muted.small,
.portal-page-theme .ui-settings-card__lead,
.portal-page-theme .users-photo-crop-hint {
  font-size: var(--settings-help-text-font-size, 0.8125rem);
  line-height: 1.45;
}

.portal-page-theme .portal-section-title,
.portal-page-theme [class$="-page-form-title"],
.portal-page-theme .settings-section-title,
.portal-page-theme .settings-backups-section-title,
.portal-page-theme .users-section-title,
.portal-page-theme .users-fields-modal-section-title,
.portal-page-theme .qr-pass-page-section-title,
.portal-page-theme .ui-settings-card__title,
.portal-page-theme .ui-settings-section-title,
.portal-page-theme .perm-section-label,
.portal-page-theme .opentry-email-settings-section-title {
  font-size: var(--settings-section-title-font-size, 0.9375rem);
  font-weight: var(--settings-section-title-font-weight, 700);
  color: var(--portal-teal);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  line-height: 1.4;
  margin: 0 0 0.65rem;
}

.card-body.portal-page-theme label:not(.custom-control-label):not(.btn):not(.nav-link):not(.form-check-label):not(.badge) {
  font-size: var(--settings-form-label-font-size, 0.9375rem);
  font-weight: var(--settings-form-label-font-weight, 600);
  color: var(--settings-form-label-color, var(--portal-text));
}


.card-body.portal-page-theme.doors-page,
.card-body.portal-page-theme.qr-pass-page,
.card-body.portal-page-theme.users-page-body,
.card-body.portal-page-theme.devices-page,
.card-body.portal-page-theme.access-rights-page,
.card-body.portal-page-theme.operators-page,
.card-body.portal-page-theme.settings-page,
.card-body.portal-page-theme.ui-settings-page,
.card-body.portal-page-theme.database-backups-page,
.card-body.portal-page-theme.pending-actions-page,
.card-body.portal-page-theme.account-security-page,
.card-body.portal-page-theme.modules-page,
.card-body.portal-page-theme.license-page,
.card-body.portal-page-theme.companies-page {
  background: var(--portal-surface);
  padding: 0 var(--portal-content-gutter);
}

.portal-page-theme.database-backups-page .page-tabs-header--no-tabs,
.portal-page-theme.pending-actions-page .page-tabs-header--no-tabs,
.portal-page-theme.ui-settings-page .page-tabs-header--no-tabs,
.portal-page-theme.account-security-page .page-tabs-header {
  display: none;
  margin-bottom: 0;
}

.card:has(> .card-body.portal-page-theme) {
  background: transparent;
  border: none;
  box-shadow: none;
  margin-bottom: 0;
  overflow: visible;
}

.card-body.portal-page-theme .page-tabs-header:not(.page-tabs-header--no-tabs) {
  margin-bottom: 0;
}

.card-body.portal-page-theme [class$="-page-view"],
.card-body.portal-page-theme .doors-page-view,
.card-body.portal-page-theme .settings-page-view {
  background: var(--portal-surface) !important;
  margin: 0 !important;
  width: 100% !important;
  padding: var(--portal-content-gutter) 0;
}

.card-body.portal-page-theme .users-welcome-panel {
  padding: 16px;
  background: var(--portal-surface) !important;
}

.card-body.portal-page-theme .users-split-detail .users-welcome-panel {
  padding-top: 0;
  padding-left: 0;
  padding-right: 0;
  padding-bottom: 16px;
  background: transparent !important;
}

.card-body.portal-page-theme .devices-comm-view {
  background: var(--portal-surface) !important;
  margin: 0 !important;
  width: 100% !important;
  padding: var(--portal-content-gutter) 0;
}

.card-body.portal-page-theme .account-security-page-view {
  background: var(--portal-surface) !important;
  margin: 0 !important;
  width: 100% !important;
  padding: var(--portal-content-gutter) 0;
}

.card-body.portal-page-theme .modules-page-view,
.card-body.portal-page-theme .license-page-view,
.card-body.portal-page-theme .companies-page-view,
.card-body.portal-page-theme .operators-page-view {
  background: var(--portal-surface) !important;
  margin: 0 !important;
  width: 100% !important;
  padding: var(--portal-content-gutter) 0;
}

.portal-page-theme .devices-comm-view .devices-comm-steps {
  border-bottom: none;
  align-items: stretch;
}

.portal-page-theme .devices-comm-view .devices-comm-step {
  height: 100%;
}

.portal-page-theme .devices-comm-view .devices-comm-step > .w-100 {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.portal-page-theme .devices-comm-view .devices-comm-actions {
  border-top-color: var(--portal-border);
}

.portal-page-theme .users-detail-card {
  background: #fff;
  border: none;
  border-radius: var(--ui-card-border-radius, 10px);
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06);
  overflow: hidden;
}

/* Cartes portail — même rayon partout (pages, onglets, tableau de bord) */
.portal-page-theme [class$="-page-view"] > .users-detail-card,
.portal-page-theme .database-backups-page-view > .users-detail-card,
.portal-page-theme .pending-actions-page-view > .users-detail-card,
.portal-page-theme .operators-page-view > .users-detail-card,
.portal-page-theme .building-plans-page-view > .users-detail-card,
.portal-page-theme .account-security-page-view > .users-detail-card,
.portal-page-theme .settings-page .settings-module-card,
.portal-page-theme .opentry-dashboard-widget {
  border-radius: var(--ui-card-border-radius, 10px);
  overflow: hidden;
}

.portal-page-theme [class$="-page-table-wrap"] .dataTables_wrapper,
.portal-page-theme .events-page-table-wrap .dataTables_wrapper {
  border-radius: var(--ui-card-border-radius, 10px);
}

.portal-page-theme [class$="-page-view"],
.portal-page-theme .doors-page-view,
.portal-page-theme .attendance-page-view,
.portal-page-theme .qr-pass-page-view,
.portal-page-theme .bookings-page-view,
.portal-page-theme .building-plans-page-view,
.portal-page-theme [class$="-page-table-wrap"],
.portal-page-theme .doors-page-table-wrap,
.portal-page-theme .attendance-page-table-wrap,
.portal-page-theme .qr-pass-page-table-wrap,
.portal-page-theme .bookings-page-table-wrap,
.portal-page-theme [class$="-page-table-wrap"] .dataTables_wrapper,
.portal-page-theme .doors-page-table-wrap .dataTables_wrapper,
.portal-page-theme .attendance-page-table-wrap .dataTables_wrapper,
.portal-page-theme .qr-pass-page-table-wrap .dataTables_wrapper,
.portal-page-theme .bookings-page-table-wrap .dataTables_wrapper {
  overflow: visible;
}

.portal-page-theme .users-welcome-hero {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 22px 24px;
  background: #fff;
  border-bottom: 1px solid var(--portal-border);
}

.portal-page-theme .users-welcome-hero-icon {
  width: 56px;
  height: 56px;
  border-radius: 10px;
  background: var(--portal-teal);
  color: #fff;
  font-size: 1.45rem;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.portal-page-theme .users-welcome-hero-icon i,
.portal-page-theme .users-welcome-hero-icon .fa,
.portal-page-theme .users-welcome-hero-icon .fas,
.portal-page-theme .users-welcome-hero-icon .far {
  color: #fff !important;
}

.portal-page-theme [class$="-page-hero-title"],
.portal-page-theme .doors-page-hero-title,
.portal-page-theme .attendance-page-hero-title,
.portal-page-theme .qr-pass-page-hero-title,
.portal-page-theme .bookings-page-hero-title,
.portal-page-theme .building-plans-page-hero-title {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.35rem;
  color: var(--portal-text);
  font-weight: 700;
}

.portal-page-theme .users-welcome-hero h4 .badge,
.portal-page-theme .doors-page-count-badge,
.portal-page-theme .devices-page-count-badge,
.portal-page-theme .attendance-page-count-badge,
.portal-page-theme .qr-pass-page-count-badge,
.portal-page-theme .portal-page-count-badge {
  background: var(--portal-teal) !important;
  color: #fff !important;
  font-size: 0.82rem;
  font-weight: 600;
  padding: 0.35em 0.75em;
  box-shadow: none;
}

/* Badges de comptage cliquables dans les colonnes de tableaux */
.portal-page-theme .area-count-badge.badge-success {
  background-color: var(--portal-teal) !important;
  color: #fff !important;
  border: 1px solid var(--portal-teal-dark);
}

.portal-page-theme .area-count-link:hover .area-count-badge.badge-success,
.portal-page-theme .area-count-link:focus .area-count-badge.badge-success {
  background-color: var(--portal-teal-dark) !important;
  filter: none;
}

/* Menus verticaux portail (édition contrôleur, etc.) — teal aligné en-têtes de colonnes */
.portal-page-theme .nav.flex-column.nav-pills:not(.access-rights-schedules-nav) .nav-link:not(.active),
.portal-page-theme .nav-pills.flex-column:not(.access-rights-schedules-nav) .nav-link:not(.active) {
  color: var(--portal-teal);
}

.portal-page-theme .nav.flex-column.nav-pills:not(.access-rights-schedules-nav) .nav-link:not(.active):hover,
.portal-page-theme .nav.flex-column.nav-pills:not(.access-rights-schedules-nav) .nav-link:not(.active):focus,
.portal-page-theme .nav-pills.flex-column:not(.access-rights-schedules-nav) .nav-link:not(.active):hover,
.portal-page-theme .nav-pills.flex-column:not(.access-rights-schedules-nav) .nav-link:not(.active):focus {
  background-color: rgba(0, 89, 97, 0.08);
  color: var(--portal-teal-dark);
}

.portal-page-theme .nav.flex-column.nav-pills:not(.access-rights-schedules-nav) .nav-link.active,
.portal-page-theme .nav-pills.flex-column:not(.access-rights-schedules-nav) .nav-link.active,
.portal-page-theme .nav.flex-column.nav-pills:not(.access-rights-schedules-nav) .show > .nav-link,
.portal-page-theme .nav-pills.flex-column:not(.access-rights-schedules-nav) .show > .nav-link {
  background-color: var(--portal-teal) !important;
  color: #fff !important;
  border-color: var(--portal-teal-dark);
}

/* Horaires / espaces réservations — menu latéral (palette Portes) */
.portal-page-theme .access-rights-schedules-nav .nav-link {
  color: var(--portal-text) !important;
  font-weight: 600;
  border: 1px solid var(--portal-border) !important;
  border-radius: 8px;
  margin-bottom: 6px;
  padding: 10px 14px;
  background: #fff !important;
}

.portal-page-theme .access-rights-schedules-nav .nav-link:hover,
.portal-page-theme .access-rights-schedules-nav .nav-link:focus {
  background-color: rgba(0, 89, 97, 0.06) !important;
  color: var(--portal-teal) !important;
  border-color: var(--portal-border) !important;
  outline: none;
}

.portal-page-theme .access-rights-schedules-nav .nav-link.active,
.portal-page-theme .access-rights-schedules-nav .show > .nav-link,
.portal-page-theme .access-rights-schedules-nav .nav-link.active:hover,
.portal-page-theme .access-rights-schedules-nav .nav-link.active:focus {
  background-color: var(--portal-teal) !important;
  color: #fff !important;
  border-color: var(--portal-teal) !important;
}

.portal-page-theme .access-rights-schedules-nav .nav-link .badge {
  background: var(--portal-teal) !important;
  color: #fff !important;
  font-size: 0.78rem;
  font-weight: 600;
  padding: 0.3em 0.6em;
  box-shadow: none;
}

.portal-page-theme .access-rights-schedules-nav .nav-link.active .badge,
.portal-page-theme .access-rights-schedules-nav .show > .nav-link .badge {
  background-color: #fff !important;
  color: var(--portal-teal) !important;
}

.portal-page-theme .users-welcome-hero .text-muted {
  color: var(--portal-muted) !important;
}

.portal-page-theme .users-welcome-steps,
.portal-page-theme [class$="-page-steps"] {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  background: #fff;
  border-bottom: 1px solid var(--portal-border);
  align-items: stretch;
  padding: 20px 24px;
}

.card-body.portal-page-theme .users-welcome-step,
.card-body.portal-page-theme [class$="-page-step"] {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  background: var(--portal-help-card) !important;
  border: 1px solid var(--portal-border) !important;
  border-radius: 8px;
  box-shadow: none !important;
  height: 100%;
  box-sizing: border-box;
}

.portal-page-theme .users-welcome-step strong,
.portal-page-theme [class$="-page-step"] strong {
  color: var(--portal-teal);
}

.portal-page-theme .users-welcome-step p.text-muted {
  color: var(--portal-muted);
}

.portal-page-theme [class$="-page-table-wrap"],
.portal-page-theme .doors-page-table-wrap,
.portal-page-theme .attendance-page-table-wrap,
.portal-page-theme .qr-pass-page-table-wrap,
.portal-page-theme .bookings-page-table-wrap {
  padding: 20px;
  background: #fff;
}

/* Réservations — typographie portail */
.portal-page-theme.bookings-page .bookings-page-view,
.portal-page-theme.bookings-page .bookings-page-form-wrap,
.portal-page-theme.bookings-page .bookings-page-table-wrap,
.portal-page-theme.bookings-page .bookings-settings-form-wrap,
.portal-page-theme.bookings-page .bookings-page-actions {
  font-family: var(--ui-font-family);
  font-size: var(--ui-font-size-base);
  font-weight: var(--ui-font-weight-base);
  line-height: var(--ui-line-height, 1.5);
}

.portal-page-theme.bookings-page .bookings-settings-form .form-control,
.portal-page-theme.bookings-page .bookings-settings-form select.form-control,
.portal-page-theme.bookings-page .bookings-settings-form textarea.form-control {
  font-family: var(--ui-font-family);
  font-size: var(--ui-font-size-base);
  font-weight: var(--ui-font-weight-base);
}

.portal-page-theme.bookings-page .bookings-page-toolbar .text-muted,
.portal-page-theme.bookings-page .bookings-empty-state,
.portal-page-theme.bookings-page .bookings-help-banner {
  font-size: var(--ui-font-size-base);
}

.portal-page-theme.bookings-page .bookings-page-table-wrap .dataTables_search_input {
  font-family: var(--ui-font-family);
  font-size: max(13px, var(--ui-font-size-base, 13px));
}

.portal-page-theme.bookings-page .bookings-page-actions .btn,
.portal-page-theme.bookings-page .bookings-page-toolbar .btn {
  font-family: var(--ui-font-family);
  font-size: var(--ui-font-size-base);
  font-weight: var(--ui-btn-font-weight, 600);
}

/* QR + Tickets — typographie (préférences Interface) */
.portal-page-theme.qr-pass-page .qr-pass-page-view,
.portal-page-theme.qr-pass-page .qr-pass-page-form-wrap,
.portal-page-theme.qr-pass-page .qr-pass-page-table-wrap,
.portal-page-theme.qr-pass-page .qr-pass-settings-form-wrap,
.portal-page-theme.qr-pass-page .qr-pass-settings-actions,
.portal-page-theme.qr-pass-page .ticket-print-modal-content {
  font-family: var(--ui-font-family);
  font-size: var(--ui-font-size-base);
  font-weight: var(--ui-font-weight-base);
  line-height: var(--ui-line-height, 1.5);
}

.portal-page-theme.qr-pass-page .qr-pass-form .form-control,
.portal-page-theme.qr-pass-page .qr-pass-form select.form-control,
.portal-page-theme.qr-pass-page .qr-pass-form textarea.form-control,
.portal-page-theme.qr-pass-page .qr-pass-settings-form .form-control {
  font-family: var(--ui-font-family);
  font-size: var(--ui-font-size-base);
  font-weight: var(--ui-font-weight-base);
}

.portal-page-theme.qr-pass-page .qr-pass-page-section-lead,
.portal-page-theme.qr-pass-page .qr-pass-manual-toggle-hint,
.portal-page-theme.qr-pass-page .qr-pass-door-btn-meta,
.portal-page-theme.qr-pass-page .qr-pass-field-unit,
.portal-page-theme.qr-pass-page .qr-pass-timeout-default-hint,
.portal-page-theme.qr-pass-page .qr-pass-page-toolbar .text-muted,
.portal-page-theme.qr-pass-page .qr-pass-page-empty {
  font-size: var(--settings-help-text-font-size, 0.8125rem);
}

.portal-page-theme.qr-pass-page .qr-pass-controller-title,
.portal-page-theme.qr-pass-page .qr-pass-manual-toggle-label {
  font-size: var(--settings-section-title-font-size, 0.9375rem);
  font-weight: var(--settings-section-title-font-weight, 700);
}

.portal-page-theme.qr-pass-page .qr-pass-page-actions .btn,
.portal-page-theme.qr-pass-page .qr-pass-page-toolbar .btn {
  font-size: var(--btn-font-size, 13px);
  font-weight: var(--btn-font-weight, 700);
  text-transform: var(--btn-text-transform, uppercase);
  letter-spacing: var(--btn-letter-spacing, 0.02em);
}

.portal-page-theme.qr-pass-page .qr-pass-door-btn {
  font-size: var(--ui-font-size-base);
  font-weight: var(--ui-font-weight-base);
}

.portal-page-theme.qr-pass-page .form-text-actions .btn-form-text-action {
  font-size: var(--btn-font-size, 0.8125rem);
  font-weight: var(--btn-font-weight, 600);
}

.portal-page-theme.attendance-page .attendance-page-empty-wrap {
  padding: 28px 24px 32px;
  background: #fff;
  text-align: center;
}

.portal-page-theme.attendance-page .attendance-page-empty-state {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  max-width: 520px;
  margin: 0 auto;
  padding: 28px 32px;
  background: var(--portal-help-card);
  border: 1px dashed var(--portal-border);
  border-radius: 10px;
}

.portal-page-theme.attendance-page .attendance-page-empty-icon {
  font-size: 2rem;
  color: var(--portal-teal);
  opacity: 0.85;
}

.portal-page-theme.attendance-page .attendance-page-empty-title {
  margin: 0;
  color: var(--portal-text);
  font-size: 1rem;
  font-weight: 700;
}

.portal-page-theme.attendance-page .attendance-page-empty-text {
  margin: 0;
  color: var(--portal-muted);
  font-size: 0.9rem;
  line-height: 1.5;
}

.portal-page-theme.attendance-page .attendance-page-empty-action {
  margin-top: 8px;
  padding: 8px 20px !important;
  border: 1px solid var(--portal-teal) !important;
  background: var(--portal-teal) !important;
  color: #fff !important;
  font-weight: 600 !important;
  text-transform: none !important;
  letter-spacing: 0.01em;
  border-radius: 20px !important;
  box-shadow: none;
}

.portal-page-theme.attendance-page .attendance-page-empty-action:hover,
.portal-page-theme.attendance-page .attendance-page-empty-action:focus {
  background: #004a51 !important;
  border-color: #004a51 !important;
  color: #fff !important;
  text-decoration: none;
}

.portal-page-theme .events-page-hero {
  align-items: center;
}

.portal-page-theme .events-page-hero-body {
  flex: 1;
  min-width: 0;
}

.portal-page-theme .events-page-hero-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 8px;
}

.portal-page-theme .events-page-export {
  position: relative;
  z-index: var(--opentry-z-export-control, 1000);
}

.portal-page-theme .events-page-export .dropdown-menu {
  z-index: var(--opentry-z-export-menu, 1020);
}

.portal-page-theme .events-page-hero-filter {
  flex-shrink: 0;
  margin-left: auto;
  padding: 0;
  background: transparent;
  border-bottom: none;
  overflow: visible;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
}

.portal-page-theme.events-page .users-detail-card .events-page-hero {
  overflow: visible;
}

.portal-page-theme.events-page .bootstrap-datetimepicker-widget {
  z-index: 10050;
}

.portal-page-theme .events-page-toolbar {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
}

.portal-page-theme .events-page-filter-field {
  display: inline-flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}

.portal-page-theme .events-page-period-fields {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.portal-page-theme .events-page-period-label {
  color: var(--portal-muted);
  font-size: 0.8125rem;
  font-weight: 600;
  white-space: nowrap;
}

.portal-page-theme .events-page-period-fields .events-period-datetime {
  width: 190px;
  max-width: 190px;
  height: 34px;
  flex-shrink: 0;
  cursor: pointer;
}

.portal-page-theme .events-period-apply-btn {
  height: 34px;
  line-height: 1;
  flex-shrink: 0;
  white-space: nowrap;
}

.portal-page-theme .events-page-period-fields .events-page-export {
  flex-shrink: 0;
}

.portal-page-theme .events-page-period-fields .events-page-export .btn {
  height: 34px;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
}

.portal-page-theme .events-page-hero-desc {
  max-width: 720px;
}

.portal-page-theme .events-page-toolbar-label {
  color: var(--portal-muted);
  font-size: 0.875rem;
  font-weight: 600;
  white-space: nowrap;
}

.portal-page-theme .events-page-reset-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  min-width: 34px;
  height: 34px !important;
  padding: 0;
  border-radius: 6px;
  border: 1px solid var(--portal-border);
  background: #fff !important;
  color: var(--portal-muted) !important;
  box-shadow: none;
  line-height: 1;
  flex-shrink: 0;
}

.portal-page-theme .events-page-reset-btn:hover,
.portal-page-theme .events-page-reset-btn:focus {
  background: rgba(0, 89, 97, 0.08);
  border-color: var(--portal-teal);
  color: var(--portal-teal);
  box-shadow: none;
}

.portal-page-theme .events-result-badge {
  font-size: 0.78rem;
  font-weight: 600;
  padding: 0.35em 0.65em;
}

.portal-page-theme .events-page-table-wrap {
  position: relative;
}

.portal-page-theme .events-page-table-actions {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 8px;
  margin-bottom: 12px;
}

.portal-page-theme.access-rights-page .access-rights-page-table-toolbar {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 8px;
  margin-bottom: 12px;
}

.portal-page-theme.access-rights-page .access-rights-page-hero-body,
.portal-page-theme.doors-page .access-rights-page-hero-body,
.portal-page-theme.qr-pass-page .access-rights-page-hero-body,
.portal-page-theme.users-page-body .credits-page-view .access-rights-page-hero-body,
.portal-page-theme.users-page-body .users-welcome-panel .access-rights-page-hero-body {
  min-width: 0;
  flex: 1 1 auto;
}

.portal-page-theme.access-rights-page .users-detail-card,
.portal-page-theme.doors-page .users-detail-card,
.portal-page-theme.qr-pass-page .users-detail-card {
  overflow: visible;
}

.portal-page-theme.access-rights-page .access-rights-page-hero-actions,
.portal-page-theme.doors-page .access-rights-page-hero-actions,
.portal-page-theme.qr-pass-page .access-rights-page-hero-actions,
.portal-page-theme.users-page-body .credits-page-view .access-rights-page-hero-actions,
.portal-page-theme.users-page-body .users-welcome-panel .access-rights-page-hero-actions {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  margin-left: auto;
  flex: 0 0 auto;
  overflow: visible;
}

.portal-page-theme.access-rights-page .users-detail-card .users-welcome-hero,
.portal-page-theme.doors-page .users-detail-card .users-welcome-hero,
.portal-page-theme.qr-pass-page .users-detail-card .users-welcome-hero,
.portal-page-theme.users-page-body .users-welcome-panel .users-detail-card .users-welcome-hero {
  overflow: visible;
}

.portal-page-theme.access-rights-page .access-rights-page-table-toolbar,
.portal-page-theme.access-rights-page .access-rights-page-table-toolbar--nested {
  overflow: visible;
}

.portal-page-theme.access-rights-page .access-rights-page-table-toolbar--nested {
  margin-top: 0;
  width: 100%;
}

.portal-page-theme.access-rights-page .access-rights-export,
.portal-page-theme.doors-page .access-rights-export,
.portal-page-theme.qr-pass-page .access-rights-export,
.portal-page-theme.users-page-body .credits-page-view .access-rights-export,
.portal-page-theme.users-page-body .users-welcome-panel .access-rights-export {
  position: relative;
  z-index: var(--opentry-z-export-control, 1000);
}

.portal-page-theme.access-rights-page .access-rights-export .dropdown-menu,
.portal-page-theme.doors-page .access-rights-export .dropdown-menu,
.portal-page-theme.qr-pass-page .access-rights-export .dropdown-menu,
.portal-page-theme.users-page-body .credits-page-view .access-rights-export .dropdown-menu,
.portal-page-theme.users-page-body .users-welcome-panel .access-rights-export .dropdown-menu {
  z-index: var(--opentry-z-export-menu, 1020);
}

/* Export actions remain clickable unless a known blocking UI layer is open. */
.opentry-export-control {
  pointer-events: auto;
}

body.modal-open .opentry-export-control,
body.swal2-shown:not(.swal2-toast-shown) .opentry-export-control,
body.opentry-command-palette-open .opentry-export-control,
body.opentry-session-blocked .opentry-export-control,
body.users-badges-drawer-open .opentry-export-control,
body:has(.modal.show) .opentry-export-control,
body:has(.swal2-container.swal2-backdrop-show) .opentry-export-control,
body:has(.users-export-overlay:not(.d-none)) .opentry-export-control,
body:has(.opentry-idle-overlay) .opentry-export-control,
body:has(.commissioning-gate-overlay) .opentry-export-control,
body:has(.opentry-command-palette:not([hidden])) .opentry-export-control,
body:has(.users-badges-drawer.is-open) .opentry-export-control,
body.modal-open .opentry-export-control *,
body.swal2-shown:not(.swal2-toast-shown) .opentry-export-control *,
body.opentry-command-palette-open .opentry-export-control *,
body.opentry-session-blocked .opentry-export-control *,
body.users-badges-drawer-open .opentry-export-control *,
body:has(.modal.show) .opentry-export-control *,
body:has(.swal2-container.swal2-backdrop-show) .opentry-export-control *,
body:has(.users-export-overlay:not(.d-none)) .opentry-export-control *,
body:has(.opentry-idle-overlay) .opentry-export-control *,
body:has(.commissioning-gate-overlay) .opentry-export-control *,
body:has(.opentry-command-palette:not([hidden])) .opentry-export-control *,
body:has(.users-badges-drawer.is-open) .opentry-export-control * {
  pointer-events: none !important;
}

.portal-page-theme .events-page-delete-all-btn:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.portal-page-theme .events-page-table thead th,
.portal-page-theme .alarms-page-table thead th,
.portal-page-theme.alarms-page #alarmsTable thead th {
  background: var(--portal-teal) !important;
  color: #fff !important;
  border-color: var(--portal-teal) !important;
  font-weight: var(--table-header-font-weight, 700);
  font-size: var(--table-header-font-size, 15px);
}

/* Carte XM8 — grille 2×2 (jusqu’à 4 cartes) + 1 entrée = 1 ligne (lisibilité +2 crans) */
.portal-page-theme .xm8-cards-grid {
  margin-left: -0.35rem;
  margin-right: -0.35rem;
}

.portal-page-theme .xm8-cards-grid > .xm8-cards-grid__cell {
  padding-left: 0.35rem;
  padding-right: 0.35rem;
}

/* Force demi-largeur dès md (Bootstrap col-md-6 + filet de sécurité) */
@media (min-width: 768px) {
  .portal-page-theme .xm8-cards-grid > .xm8-cards-grid__cell.col-md-6,
  .portal-page-theme #v-pills-xm8 .xm8-cards-grid > .xm8-cards-grid__cell,
  .portal-page-theme .alarms-configurations-view .xm8-cards-grid > .xm8-cards-grid__cell,
  .portal-page-theme #alarmsConfigurationsTab .xm8-cards-grid > .xm8-cards-grid__cell {
    flex: 0 0 50%;
    max-width: 50%;
  }
}

.portal-page-theme .xm8-cards-grid .xm8-card-config {
  margin-bottom: 0;
  font-size: 0.875rem;
}

.portal-page-theme .xm8-cards-grid .xm8-card-config .card-header {
  background: var(--portal-teal, #005961);
  color: #fff;
  border-bottom-color: var(--portal-teal-dark, #004a52);
  font-size: 0.9rem;
  line-height: 1.3;
}

.portal-page-theme .xm8-cards-grid .xm8-card-config .card-body {
  padding-top: 0.5rem !important;
  padding-bottom: 0.5rem !important;
}

/* Ligne unique : Entrée | Fonction | Type | Alarme | Nom | Instruction */
.portal-page-theme .xm8-cards-grid .xm8-card-row {
  display: grid;
  /* Col. Entrée assez large pour « Entrée » / « Entrée 8 » sur une ligne (2×2 inchangé) */
  grid-template-columns:
    3.9rem
    minmax(4.25rem, 1.05fr)
    minmax(4.75rem, 1.2fr)
    2.5rem
    minmax(3.25rem, 0.85fr)
    minmax(3.5rem, 1fr);
  gap: 0.3rem 0.32rem;
  align-items: center;
}

@media (max-width: 767.98px) {
  .portal-page-theme .xm8-cards-grid .xm8-card-row {
    grid-template-columns: 5.25rem minmax(0, 1fr) minmax(0, 1fr) 2.65rem;
    grid-template-areas:
      "entry fn type alarm"
      "name name instr instr";
  }

  .portal-page-theme .xm8-cards-grid .xm8-card-col-entry { grid-area: entry; }
  .portal-page-theme .xm8-cards-grid .xm8-card-col-fn { grid-area: fn; }
  .portal-page-theme .xm8-cards-grid .xm8-card-col-type { grid-area: type; }
  .portal-page-theme .xm8-cards-grid .xm8-card-col-alarm { grid-area: alarm; }
  .portal-page-theme .xm8-cards-grid .xm8-card-col-name { grid-area: name; }
  .portal-page-theme .xm8-cards-grid .xm8-card-col-instr { grid-area: instr; }
}

.portal-page-theme .xm8-cards-grid .xm8-card-col-entry {
  white-space: nowrap;
}

.portal-page-theme .xm8-cards-grid .xm8-card-columns-header {
  display: none;
}

@media (min-width: 768px) {
  .portal-page-theme .xm8-cards-grid .xm8-card-columns-header {
    display: grid !important;
  }
}

.portal-page-theme .xm8-cards-grid .xm8-card-entry {
  border-bottom: 1px solid var(--portal-border, #eeeeee);
  padding: 0.32rem 0;
  margin-bottom: 0;
}

.portal-page-theme .xm8-cards-grid .xm8-card-entry:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.portal-page-theme .xm8-cards-grid .xm8-card-entry-num {
  display: inline-block;
  font-weight: 700;
  font-size: 0.875rem;
  line-height: 1.25;
  color: var(--portal-text, #403d39);
  white-space: nowrap;
}

.portal-page-theme .xm8-cards-grid .xm8-card-col-alarm {
  display: flex;
  justify-content: center;
  align-items: center;
}

.portal-page-theme .xm8-cards-grid .xm8-card-alarm-toggle {
  min-width: 1.9rem;
  transform: scale(1);
  transform-origin: center center;
}

.portal-page-theme .xm8-cards-grid .xm8-card-config .form-control,
.portal-page-theme .xm8-cards-grid .xm8-card-config .form-control-sm,
.portal-page-theme #v-pills-xm8 .xm8-card-config .form-control,
.portal-page-theme #v-pills-xm8 .xm8-card-config .form-control-sm,
.portal-page-theme .alarms-configurations-view .xm8-card-config .form-control,
.portal-page-theme .alarms-configurations-view .xm8-card-config .form-control-sm {
  height: auto;
  min-height: 2rem;
  padding: 0.28rem 0.4rem !important;
  font-size: 0.875rem;
  line-height: 1.4;
}

.portal-page-theme .xm8-cards-grid .xm8-card-config .form-group {
  margin-bottom: 0;
}

.portal-page-theme .xm8-cards-grid__notice {
  margin-top: 0.3rem;
  margin-bottom: 0.45rem;
  font-size: 0.85rem;
  line-height: 1.35;
}

.portal-page-theme .xm8-card-config .xm8-card-columns-header,
.portal-page-theme.alarms-page .xm8-card-config .xm8-card-columns-header,
.portal-page-theme.devices-page .xm8-card-config .xm8-card-columns-header,
.portal-page-theme .alarms-xm8-device-card .xm8-card-columns-header,
.portal-page-theme .alarms-configurations-view .xm8-card-columns-header,
.portal-page-theme #alarmsConfigurationsTab .xm8-card-columns-header,
.portal-page-theme #v-pills-xm8 .xm8-card-columns-header {
  background: var(--portal-teal) !important;
  color: #fff !important;
  border-color: var(--portal-teal-dark, #004a52) !important;
  border-radius: 4px;
  font-weight: var(--table-header-font-weight, 700);
  font-size: 0.8rem;
  letter-spacing: 0.01em;
  line-height: 1.25;
  padding: 0.4rem 0.28rem !important;
  margin-bottom: 0.3rem;
  text-align: center;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.portal-page-theme .xm8-cards-grid .xm8-card-columns-header .xm8-card-col-alarm {
  font-size: 0.75rem;
  line-height: 1.2;
  white-space: normal;
}

.portal-page-theme .events-page-table tbody td {
  vertical-align: middle;
  font-size: var(--table-body-font-size, 13px);
  font-weight: var(--table-body-font-weight, 400);
}

.portal-page-theme .events-page-table .events-page-event-col {
  font-size: var(--table-body-font-size, 13px);
  font-weight: var(--table-body-font-weight, 400);
  line-height: 1.25;
  white-space: normal;
}

.portal-page-theme .events-page-table .events-event-label {
  display: inline-block;
}

.portal-page-theme .events-page-table .events-event-label.text-success {
  color: var(--color-success-dark, #659928) !important;
}

.portal-page-theme .events-page-table .events-event-label.text-warning {
  color: #c05621 !important;
}

.portal-page-theme .events-page-table .events-event-label.text-danger {
  color: #c0392b !important;
}

.portal-page-theme .events-page-table .events-event-label.text-purple {
  color: #6f42c1 !important;
}

.portal-page-theme .events-page-table .events-event-label.text-dark {
  color: #2d3748 !important;
}

.portal-page-theme .events-page-table tbody td code {
  font-size: 0.8rem;
  color: var(--portal-teal-dark, #004a52);
}

.card-body.portal-page-theme [class$="-page-table-wrap"] .dataTables_wrapper,
.card-body.portal-page-theme .doors-page-table-wrap .dataTables_wrapper,
.card-body.portal-page-theme .attendance-page-table-wrap .dataTables_wrapper {
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
  box-shadow: none !important;
}

.portal-page-theme .dataTables_length label,
.portal-page-theme .dataTables_filter label {
  color: var(--settings-form-label-color, var(--portal-muted));
  font-size: var(--settings-form-label-font-size, 0.875rem);
  font-weight: var(--settings-form-label-font-weight, 400);
}

.portal-page-theme .dataTables_length select,
.portal-page-theme .dataTables_filter input {
  border-color: var(--portal-border);
  border-radius: 6px;
}

.portal-page-theme .dataTables_length select {
  height: auto;
  min-height: calc(1.8125rem + 2px);
  line-height: 1.5;
  padding: 0.35rem 1.75rem 0.35rem 0.5rem !important;
}

.portal-page-theme .dataTables_search_clear.is-visible {
  color: var(--portal-teal);
}

.portal-page-theme .dataTables_search_clear.is-visible:hover,
.portal-page-theme .dataTables_search_clear.is-visible:focus {
  color: var(--portal-teal);
}

.portal-page-theme table.dataTable thead th,
.portal-page-theme table.dataTable.table > thead > tr > th,
.portal-page-theme .table.dataTable thead > tr > th,
.portal-page-theme .table.dataTable thead > tr > th.sorting,
.portal-page-theme .table.dataTable thead > tr > th.sorting_asc,
.portal-page-theme .table.dataTable thead > tr > th.sorting_desc {
  background: var(--portal-teal) !important;
  color: #fff !important;
  border-color: #004a52 !important;
  font-weight: var(--table-header-font-weight, 700) !important;
  font-size: var(--table-header-font-size, 15px) !important;
  letter-spacing: 0.02em;
  line-height: 1.35;
  padding: 12px 10px !important;
  vertical-align: middle;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.portal-page-theme table.table thead th {
  background: var(--portal-teal);
  color: #fff;
  border-color: #004a52;
  font-weight: var(--table-header-font-weight, 700);
  font-size: var(--table-header-font-size, 15px);
}

.portal-page-theme table.dataTable thead .sorting:after,
.portal-page-theme table.dataTable thead .sorting_asc:after,
.portal-page-theme table.dataTable thead .sorting_desc:after,
.portal-page-theme table.dataTable thead .sorting_asc_disabled:after,
.portal-page-theme table.dataTable thead .sorting_desc_disabled:after {
  color: #fff !important;
  opacity: 0.9 !important;
}

.portal-page-theme table.dataTable thead .sorting:after {
  opacity: 0.65 !important;
}

.portal-page-theme table.dataTable thead > tr > th.sorting,
.portal-page-theme table.dataTable thead > tr > th.sorting_asc,
.portal-page-theme table.dataTable thead > tr > th.sorting_desc {
  padding-right: 30px !important;
}

.portal-page-theme table.table-bordered td,
.portal-page-theme table.table-bordered th {
  border-color: var(--portal-border);
}

.portal-page-theme table.dataTable tbody td,
.portal-page-theme table.table tbody td {
  color: var(--portal-text);
  vertical-align: middle;
  font-size: var(--table-body-font-size, var(--ui-font-size-base, 13px));
  font-weight: var(--table-body-font-weight, 400);
}

.portal-page-theme .door-state-badge.badge-success {
  background-color: var(--portal-green) !important;
  color: #fff !important;
}

.portal-page-theme .door-state-badge.badge-danger {
  background-color: var(--portal-red) !important;
  color: #fff !important;
}

.portal-page-theme .door-state-badge.badge-warning {
  background-color: #f0ad4e !important;
  color: #fff !important;
}

/* Page Portes — état des portes (distinct du compteur colonne) */
.portal-page-theme [class$="-page-table-wrap"] table a:not(.table-name-edit-link):not(.area-count-link) {
  color: var(--portal-teal);
}

.portal-page-theme table.dataTable a:not(.table-name-edit-link):not(.area-count-link):hover,
.portal-page-theme [class$="-page-table-wrap"] table a:not(.table-name-edit-link):not(.area-count-link):hover {
  color: #003d44;
}

.portal-page-theme .dataTables_paginate .page-link {
  color: var(--portal-teal);
  font-weight: 500;
}

.portal-page-theme .page-item.active .page-link,
.portal-page-theme .page-item.active .page-link:hover,
.portal-page-theme .page-item.active .page-link:focus {
  background-color: var(--portal-teal);
  border-color: var(--portal-teal);
  color: #fff !important;
  box-shadow: 0 2px 4px rgba(0, 89, 97, 0.25);
}

.portal-page-theme .page-item.disabled .page-link {
  color: #94a3b8 !important;
  opacity: 1;
}

.portal-page-theme .actions-row .btn-action.text-success,
.portal-page-theme .btn-action.text-success {
  color: var(--portal-green) !important;
}

.portal-page-theme .actions-row .btn-action.text-primary,
.portal-page-theme .btn-action.text-primary {
  color: #51cbce !important;
}

.portal-page-theme .actions-row .btn-action.text-primary:hover,
.portal-page-theme .actions-row .btn-action.text-primary:focus,
.portal-page-theme .btn-action.text-primary:hover,
.portal-page-theme .btn-action.text-primary:focus {
  color: #3eb8bb !important;
}

.portal-page-theme .btn-action.text-danger {
  color: var(--portal-red) !important;
}

/* DataTables — menu colonnes */
.portal-page-theme .dt-button-collection.dropdown-menu {
  z-index: 2002;
  background: #fff;
  border: 1px solid var(--portal-border);
  border-radius: 8px;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.12);
  padding: 6px 0;
  min-width: 220px;
  max-height: none;
  overflow: visible;
}

.portal-page-theme .dt-button-collection .dropdown-item,
.portal-page-theme .dt-button-collection .dt-button {
  font-size: 0.9rem;
  line-height: 1.35;
  padding: 8px 16px;
  white-space: nowrap;
}

.portal-page-theme .dt-button-collection .dropdown-item.active,
.portal-page-theme .dt-button-collection .dt-button.dropdown-item.active {
  background-color: #edf5e4;
  color: var(--portal-text) !important;
  border-bottom: 1px solid var(--portal-border);
}

.portal-page-theme .dt-button-collection .dt-button.dropdown-item:not(.active) {
  background-color: #fff;
  color: var(--portal-muted) !important;
}

.portal-page-theme .dt-button-collection .dt-button.dropdown-item:hover {
  background-color: #fff;
  color: var(--portal-text) !important;
}

/* Panneaux formulaire (droits d'accès, contrôleurs) */
.portal-page-theme [class$="-page-form-wrap"] {
  padding: 0 20px 20px;
  background: #fff;
  border-top: 1px solid var(--portal-border);
}

.portal-page-theme .devices-page-panels {
  padding: 0 20px 20px;
  border-top: 1px solid var(--portal-border);
  background: #fff;
}

/* Utilisateurs — vue split liste / détail (hauteur viewport, scroll interne uniquement) */
.portal-page-theme.users-page-body:has(.users-split-app) {
  --users-viewport-offset: 212px;
  display: flex;
  flex-direction: column;
  max-height: calc(100vh - var(--users-viewport-offset));
  max-height: calc(100dvh - var(--users-viewport-offset));
  overflow: hidden;
}

.portal-page-theme.users-page-body:has(.users-split-app) .users-page-tabs {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  text-align: left;
}

.portal-page-theme.users-page-body:has(.users-split-app) .users-page-tabs > .tab-pane.active {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

/* Défilement page sur les vues pleine largeur — le clipping des coins reste sur .users-detail-card */

.portal-page-theme.devices-page #deviceForm {
  padding-bottom: 24px;
}

/* Crédits / modèles d'impression / paramètres avancés — pas de hauteur viewport figée */
.portal-page-theme.users-page-body:has(.users-credits-tab-pane.active),
.portal-page-theme.users-page-body:has(.users-printing-tab-pane.active),
.portal-page-theme.users-page-body:has(.users-advanced-settings-tab-pane.active),
.portal-page-theme.users-page-body.users-tab-credits-active,
.portal-page-theme.users-page-body.users-tab-printing-active,
.portal-page-theme.users-page-body.users-tab-advanced-active {
  max-height: none;
  overflow: visible;
  display: block;
}

.portal-page-theme.users-page-body:has(.users-credits-tab-pane.active) .users-page-tabs,
.portal-page-theme.users-page-body:has(.users-printing-tab-pane.active) .users-page-tabs,
.portal-page-theme.users-page-body:has(.users-advanced-settings-tab-pane.active) .users-page-tabs,
.portal-page-theme.users-page-body.users-tab-credits-active .users-page-tabs,
.portal-page-theme.users-page-body.users-tab-printing-active .users-page-tabs,
.portal-page-theme.users-page-body.users-tab-advanced-active .users-page-tabs {
  overflow: visible;
  min-height: auto;
  display: block;
  flex: none;
}

.portal-page-theme.users-page-body:has(.users-credits-tab-pane.active) .users-page-tabs > .tab-pane.active,
.portal-page-theme.users-page-body:has(.users-printing-tab-pane.active) .users-page-tabs > .tab-pane.active,
.portal-page-theme.users-page-body:has(.users-advanced-settings-tab-pane.active) .users-page-tabs > .tab-pane.active,
.portal-page-theme.users-page-body.users-tab-credits-active .users-page-tabs > .tab-pane.active,
.portal-page-theme.users-page-body.users-tab-printing-active .users-page-tabs > .tab-pane.active,
.portal-page-theme.users-page-body.users-tab-advanced-active .users-page-tabs > .tab-pane.active {
  display: block;
  flex: none;
  min-height: auto;
  overflow: visible;
}

.portal-page-theme .users-tab-pane {
  --users-side-column-width: 380px;
  margin: 0 !important;
  width: 100% !important;
  min-height: 0;
  border-top: 1px solid var(--portal-border);
}

.portal-page-theme .users-tab-pane .users-split-app {
  display: flex !important;
  flex-direction: column;
  align-items: stretch;
  flex: 1 1 auto;
  margin: 0 !important;
  width: 100% !important;
  min-height: 0;
  max-height: 100%;
  padding: var(--portal-content-gutter) 0;
  background: var(--portal-surface);
  border-top: none;
  box-sizing: border-box;
  overflow: hidden;
}

.portal-page-theme .users-tab-pane .users-tab-toolbar {
  flex-shrink: 0;
  margin: 0 0 12px;
  padding: 0;
  min-height: 0;
  background: transparent;
  border-bottom: none;
  justify-content: flex-end;
}

.portal-page-theme .users-tab-pane .users-split-columns {
  display: flex;
  flex: 1;
  align-items: stretch;
  gap: 16px;
  min-height: 0;
}

.portal-page-theme .users-tab-pane .users-split-list {
  flex: 0 0 var(--users-side-column-width);
  width: var(--users-side-column-width);
  min-width: var(--users-side-column-width);
  max-width: var(--users-side-column-width);
  min-height: 0;
  display: flex;
  flex-direction: column;
  background: transparent;
  border: none;
  padding: 0;
  box-sizing: border-box;
}

.portal-page-theme .users-tab-pane .users-split-list-card {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  overflow: hidden;
}

.portal-page-theme .users-tab-pane .users-split-list-card.users-detail-card {
  overflow: hidden;
}

.portal-page-theme .users-tab-pane .users-split-list-card .users-split-search {
  flex-shrink: 0;
  background: #fff;
  border-bottom: 1px solid var(--portal-border);
}

.portal-page-theme .users-tab-pane .users-split-list-card .users-split-list-scroll {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  background: #fff;
}

.portal-page-theme .users-tab-pane .users-split-main {
  flex: 1;
  min-width: 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  background: transparent;
}

.portal-page-theme .users-tab-pane .users-split-detail {
  flex: 1;
  min-height: 0;
  background: transparent;
  padding: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.portal-page-theme .users-tab-pane .users-split-detail--home {
  overflow: hidden;
}

.portal-page-theme .users-tab-pane .users-split-detail--home #usersWelcomePanel {
  flex-shrink: 0;
}

.portal-page-theme .users-tab-pane .users-split-detail--home #usersDetailContent {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.portal-page-theme .users-tab-pane .users-split-detail--home #usersDetailContent > .users-detail-card {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.portal-page-theme .users-tab-pane .users-split-detail--home .users-detail-layout {
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
  align-items: stretch;
}

.portal-page-theme .users-tab-pane .users-split-detail--home .users-detail-main {
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  flex: 1 1 auto;
}

.portal-page-theme .users-tab-pane .users-split-detail--home .users-detail-badges-column {
  position: static;
  top: auto;
  max-height: none;
  align-self: stretch;
  min-height: 0;
}

.portal-page-theme .users-tab-pane .users-split-detail:not(.users-split-detail--home) #usersDetailContent {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.portal-page-theme .users-tab-pane .users-split-detail:not(.users-split-detail--home) #usersDetailContent > .users-detail-card {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.portal-page-theme .users-tab-pane .users-split-detail:not(.users-split-detail--home) .users-detail-layout {
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
  align-items: stretch;
}

.portal-page-theme .users-tab-pane .users-split-detail:not(.users-split-detail--home) .users-detail-main {
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
}

.portal-page-theme .users-tab-pane .users-split-detail:not(.users-split-detail--home) .users-detail-badges-column {
  position: static;
  top: auto;
  max-height: none;
  align-self: stretch;
  height: auto;
}

.portal-page-theme .users-split-search {
  border-bottom-color: var(--portal-border);
}

.portal-page-theme .users-split-list-scroll {
  background: #fff;
}

.portal-page-theme .users-split-detail .users-welcome-panel,
.portal-page-theme .users-split-detail #usersDetailContent {
  padding-left: 0;
  padding-right: 0;
  padding-top: 0;
}

.portal-page-theme .users-split-detail .users-welcome-panel {
  padding-bottom: 16px;
}

.portal-page-theme .users-tab-pane .users-split-detail--home .users-welcome-hero {
  padding: 18px 22px;
}

.portal-page-theme .users-tab-pane .users-split-detail--home .users-welcome-steps {
  padding: 14px 22px;
  gap: 10px;
}

.portal-page-theme .users-split-detail.users-split-detail--home .users-welcome-panel {
  padding-bottom: 0;
}

.portal-page-theme .users-split-detail #usersDetailContent {
  padding-bottom: 0;
}

.portal-page-theme .users-card {
  border-color: var(--portal-border);
}

.portal-page-theme .users-card:hover {
  border-color: #c5d0d8;
}

.portal-page-theme .users-card.is-selected {
  border-color: var(--portal-teal);
  box-shadow: 0 0 0 1px var(--portal-teal);
  background: rgba(0, 89, 97, 0.05);
}

.portal-page-theme .users-detail-badges-column {
  background: #fff;
  border-left-color: var(--portal-border);
}

.portal-page-theme .users-welcome-step-num {
  background: var(--portal-teal);
}

/* Paramètres système — modules réseau, sessions, traductions, etc. */
.portal-page-theme.settings-page .settings-container {
  margin-top: 0;
}

.portal-page-theme.settings-page .settings-row {
  gap: 16px;
  margin-bottom: 16px;
  align-items: stretch;
}

.portal-page-theme.settings-page .settings-row--compact {
  align-items: stretch;
}

.portal-page-theme.settings-page .settings-row--split {
  align-items: stretch;
}

@media (min-width: 1200px) {
  .portal-page-theme.settings-page .settings-row--split > .settings-module {
    flex: 0 0 calc(50% - 8px);
    max-width: calc(50% - 8px);
  }

  .portal-page-theme.settings-page .settings-row--split > .settings-module:only-child {
    flex: 0 0 100%;
    max-width: 100%;
  }
}

@media (max-width: 1199.98px) {
  .portal-page-theme.settings-page .settings-row--split > .settings-module {
    flex: 1 1 100%;
    max-width: 100%;
  }
}

.portal-page-theme.settings-page .settings-row--split > .settings-module {
  align-self: stretch;
}

.portal-page-theme.settings-page .settings-row--split .settings-module-card {
  height: 100%;
}

.portal-page-theme.settings-page .settings-row--compact > .settings-module {
  align-self: stretch;
}

.portal-page-theme.settings-page .settings-module-card--compact {
  height: 100%;
  align-self: stretch;
  width: 100%;
  flex: 1 1 auto;
}

.portal-page-theme.settings-page .settings-module-card--compact .settings-module-header {
  flex-shrink: 0;
}

.portal-page-theme.settings-page .settings-module-card--compact .settings-module-body {
  flex: 1 1 auto;
  min-height: 0;
  padding: 10px 14px 0;
}

.portal-page-theme.settings-page .settings-module-card--compact .settings-module-body > [id$="SettingsRoot"],
.portal-page-theme.settings-page .settings-module-card--compact .settings-module-body > [id$="SettingsLoading"],
.portal-page-theme.settings-page .settings-module-card--compact .settings-module-body > [id$="SettingsEmpty"] {
  flex: 1 1 auto;
  min-height: 0;
}

.portal-page-theme.settings-page .settings-module-card--compact .settings-module-actions {
  margin-top: auto;
  padding: 8px 0 10px;
  flex-shrink: 0;
}

.portal-page-theme.settings-page .settings-module-card--compact .form-group {
  margin-bottom: 0.65rem;
}

.portal-page-theme.settings-page .settings-module-card--compact .form-group:last-child {
  margin-bottom: 0;
}

.portal-page-theme.settings-page .settings-module-card--compact .form-text {
  margin-top: 0.15rem;
  font-size: 0.8125rem;
  line-height: 1.35;
}

.portal-page-theme.settings-page .settings-row > .settings-module {
  display: flex;
  flex-direction: column;
  flex: 1 1 0;
  min-width: 0;
}

.portal-page-theme.settings-page .settings-row:last-child {
  margin-bottom: 0;
}

.portal-page-theme.settings-page .settings-module-card {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  background: #fff;
  border: none;
  border-radius: var(--ui-card-border-radius, 10px);
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06);
  overflow: hidden;
}

.portal-page-theme.settings-page .settings-datetime-card {
  overflow: visible;
}

.portal-page-theme.settings-page .settings-datetime-card .settings-module-body,
.portal-page-theme.settings-page .settings-datetime-card #datetimeSettingsRoot,
.portal-page-theme.settings-page .settings-datetime-card #datetimeValueRow {
  overflow: visible;
}

.portal-page-theme.settings-page .bootstrap-datetimepicker-widget {
  z-index: 10050;
}

.portal-page-theme.settings-page select.form-control:not([multiple]):not([size]),
.portal-page-theme.settings-page .settings-module-card .bootstrap-select > .dropdown-toggle {
  height: auto;
  min-height: calc(1.8125rem + 2px);
  line-height: 1.5;
  padding-top: 0.35rem !important;
  padding-bottom: 0.35rem !important;
}

.portal-page-theme.settings-page .settings-module-card .bootstrap-select > .dropdown-toggle {
  display: flex;
  align-items: center;
}

#translations_page select.form-control:not([multiple]):not([size]) {
  height: auto;
  min-height: calc(1.8125rem + 2px);
  line-height: 1.5;
  padding: 0.35rem 0.5rem !important;
}

.portal-page-theme.settings-page .settings-module-header {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px 20px;
  border-bottom: 1px solid var(--portal-border);
  background: #fff;
}

.portal-page-theme.settings-page .settings-module-icon {
  width: 40px;
  height: 40px;
  border-radius: 8px;
  background: var(--portal-teal);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  flex-shrink: 0;
}

.portal-page-theme.settings-page .settings-module-title {
  color: var(--portal-text);
  font-weight: 700;
  font-size: 1rem;
  line-height: 1.3;
}

.portal-page-theme.settings-page .settings-module-body {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-height: 0;
  padding: 16px 20px 0;
}

.portal-page-theme.settings-page .settings-module-body > [id$="SettingsRoot"],
.portal-page-theme.settings-page .settings-module-body > [id$="SettingsLoading"],
.portal-page-theme.settings-page .settings-module-body > [id$="SettingsEmpty"] {
  flex: 1 1 auto;
  min-height: 0;
}

.portal-page-theme.settings-page .settings-module-actions {
  margin-top: auto;
  padding: 12px 0 16px;
  border-top: 1px solid var(--portal-border);
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.5rem;
  flex-shrink: 0;
}

.portal-page-theme.settings-page .settings-module-actions .form-actions-sep {
  display: none;
}

.portal-page-theme.settings-page .settings-module-actions .form-icon-actions,
.portal-page-theme.settings-page .settings-module-actions .form-text-actions {
  justify-content: flex-end;
  width: 100%;
  max-width: 100%;
  flex-wrap: wrap;
}

.portal-page-theme.settings-page .settings-network-tabs-nav,
.portal-page-theme.settings-page .settings-backups-tabs-nav,
.portal-page-theme.settings-page .settings-module-body .nav-tabs-navigation {
  border-bottom: 1px solid var(--portal-border);
  margin-bottom: 1rem;
}

.portal-page-theme.settings-page .settings-network-tabs .nav-link,
.portal-page-theme.settings-page .settings-backups-tabs .nav-link {
  color: var(--portal-muted);
  font-weight: 600;
  border: 0;
  background: transparent;
}

.portal-page-theme.settings-page .settings-network-tabs .nav-link.active,
.portal-page-theme.settings-page .settings-backups-tabs .nav-link.active {
  color: var(--portal-teal);
  background: transparent;
  border: 0;
}

.portal-page-theme.settings-page .settings-backups-section-title,
.portal-page-theme.settings-page .settings-section-title {
  color: var(--portal-teal) !important;
  line-height: 1.4;
  margin: 0.85rem 0 0.65rem;
  text-transform: none;
  letter-spacing: 0.01em;
}

.portal-page-theme.settings-page .settings-section-title:first-child,
.portal-page-theme.settings-page #email_config_section > .settings-section-title {
  margin-top: 0;
}

.portal-page-theme.settings-page .settings-backups-sep {
  border-color: var(--portal-border);
}

.portal-page-theme.settings-page .settings-module-body .form-group > label:not(.custom-control-label) {
  display: block;
  margin-bottom: 0.4rem;
  line-height: 1.4;
  letter-spacing: 0.01em;
}

.portal-page-theme.settings-page .settings-module-body .form-text,
.portal-page-theme.settings-page .settings-module-body #emailPasswordHint {
  line-height: 1.35;
  color: var(--portal-muted);
}

.portal-page-theme.settings-page .settings-sms-quota-info {
  font-size: inherit;
  font-weight: 400;
}

.portal-page-theme.settings-page .settings-sms-quota-info strong {
  font-weight: 600;
}

/* Toggles portail — grille label (::before + texte) pour alignement vertical fiable */
.portal-page-theme .opentry-form-toggle.custom-switch {
  position: relative;
  display: block;
  min-height: 0;
  padding-left: 0;
}

.portal-page-theme .opentry-form-toggle.custom-switch .custom-control-input {
  position: absolute;
  top: 50%;
  left: 0;
  z-index: 2;
  width: 1.75rem;
  height: 1rem;
  margin: 0;
  opacity: 0;
  transform: translateY(-50%);
  cursor: pointer;
}

.portal-page-theme .opentry-form-toggle.custom-switch .custom-control-label {
  position: relative;
  display: grid;
  grid-template-columns: 1.75rem minmax(0, 1fr);
  align-items: center;
  column-gap: 0.65rem;
  margin-bottom: 0;
  padding: 0;
  font-size: var(--settings-form-label-font-size, 0.9375rem);
  font-weight: var(--settings-form-label-font-weight, 400);
  color: var(--settings-form-label-color, var(--portal-text));
  line-height: 1.35;
  cursor: pointer;
}

.portal-page-theme .opentry-form-toggle.custom-switch .custom-control-label::before {
  position: relative;
  grid-column: 1;
  grid-row: 1;
  top: auto;
  left: auto;
  display: block;
  width: 1.75rem;
  height: 1rem;
  margin: 0;
  pointer-events: none;
  content: "";
  background-color: #fff;
  border: 1px solid #adb5bd;
  border-radius: 0.5rem;
  transform: none;
  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}

.portal-page-theme .opentry-form-toggle.custom-switch .custom-control-label::after {
  position: absolute;
  top: 50%;
  left: 2px;
  width: calc(1rem - 4px);
  height: calc(1rem - 4px);
  margin: 0;
  pointer-events: none;
  content: "";
  background-color: #adb5bd;
  border-radius: 0.5rem;
  transform: translateY(-50%);
  transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out;
}

.portal-page-theme .opentry-form-toggle.custom-switch .custom-control-input:checked ~ .custom-control-label::before {
  background-color: var(--portal-teal);
  border-color: var(--portal-teal-dark);
}

.portal-page-theme .opentry-form-toggle.custom-switch .custom-control-input:checked ~ .custom-control-label::after {
  background-color: #fff;
  transform: translateY(-50%) translateX(0.75rem);
}

.portal-page-theme .opentry-form-toggle.custom-switch .custom-control-input:focus ~ .custom-control-label::before {
  box-shadow: 0 0 0 0.15rem rgba(0, 89, 97, 0.25);
}

#userDetailForm .users-builtin-field[data-users-field="can_use_mobile_app"],
#userDetailForm .users-builtin-field[data-users-field="bypass_automatic_deletion"],
#userDetailForm .users-builtin-field[data-users-field="can_login"] {
  margin-bottom: 0.5rem;
}

.portal-page-theme.settings-page .opentry-form-toggle.custom-switch .custom-control-label {
  color: var(--settings-form-label-color, var(--portal-text));
}

.portal-page-theme .users-advanced-settings-page-view > .users-detail-card {
  overflow: visible;
}

.portal-page-theme .users-settings-profile-groups-link-bar {
  margin-top: 0.75rem;
}

.portal-page-theme .users-settings-profile-groups-link-row {
  margin-top: 0.5rem;
  padding-left: 0;
}

.portal-page-theme .users-settings-profile-groups-link-wrap {
  margin-top: 0.5rem;
  padding-left: calc(1.75rem + 0.65rem);
}

.portal-page-theme .users-settings-profile-groups-link {
  padding: 6px 16px !important;
  border: 1px solid var(--portal-teal, #005961) !important;
  background: var(--portal-teal, #005961) !important;
  color: #fff !important;
  font-size: 0.8125rem;
  font-weight: 600 !important;
  text-transform: none !important;
  letter-spacing: 0.01em;
  border-radius: 20px !important;
  box-shadow: none;
  display: inline-flex;
  align-items: center;
}

.portal-page-theme .users-settings-profile-groups-link:hover,
.portal-page-theme .users-settings-profile-groups-link:focus {
  background: var(--portal-teal-dark, #004a52) !important;
  border-color: var(--portal-teal-dark, #004a52) !important;
  color: #fff !important;
  text-decoration: none;
}

.portal-page-theme.settings-page .settings-users-duration {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 0.5rem;
  max-width: 100%;
}

.portal-page-theme.settings-page .settings-users-duration-input {
  flex: 0 1 5.5rem;
  width: 5.5rem;
  min-width: 3.5rem;
}

.portal-page-theme.settings-page .settings-users-duration-unit {
  flex: 0 0 auto;
  white-space: nowrap;
  color: var(--portal-muted);
  font-size: 0.875rem;
}

/* Interface et notifications — disposition type permissions opérateurs */
.portal-page-theme.ui-settings-page .ui-settings-pills-panel {
  padding: 20px 24px 8px;
  background: #fff;
  border-bottom: 1px solid var(--portal-border);
}

.portal-page-theme.ui-settings-page .ui-settings-pills-nav .nav-link {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--portal-text);
  border-radius: 8px;
  padding: 0.55rem 0.75rem;
  margin-bottom: 0.2rem;
}

.portal-page-theme.ui-settings-page .ui-settings-pills-nav .nav-link.active {
  background: var(--portal-teal) !important;
  color: #fff !important;
}

.portal-page-theme.ui-settings-page .ui-settings-pills-nav .nav-link:hover:not(.active) {
  color: var(--portal-teal);
  background: var(--portal-help-card);
}

.portal-page-theme.ui-settings-page .ui-settings-pills-content {
  padding-left: 0.75rem;
}

.portal-page-theme.ui-settings-page .ui-settings-card {
  background: var(--portal-help-card);
  border: 1px solid var(--portal-border);
  border-left: 3px solid var(--portal-teal);
  border-radius: 0 var(--ui-card-border-radius, 10px) var(--ui-card-border-radius, 10px) 0;
  padding: 1rem 1.15rem;
  margin-bottom: 1rem;
}

.portal-page-theme.ui-settings-page .ui-settings-card:last-child {
  margin-bottom: 0;
}

.portal-page-theme.ui-settings-page .ui-settings-card__title {
  color: var(--portal-teal);
  margin: 0 0 0.75rem;
}

.portal-page-theme.ui-settings-page .ui-settings-card__lead {
  margin: -0.35rem 0 0.85rem;
  font-size: 0.85rem;
}

.portal-page-theme.ui-settings-page .ui-settings-preview {
  background: #fff;
  border-color: var(--portal-border) !important;
}

.portal-page-theme.ui-settings-page .ui-settings-color-input {
  height: 2.5rem;
  padding: 0.2rem;
}

.portal-page-theme.ui-settings-page .ui-settings-weight-samples {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.25rem;
}

.portal-page-theme.ui-settings-page .ui-settings-weight-samples span {
  font-size: 1rem;
  line-height: 1.2;
  color: var(--portal-text);
}

.portal-page-theme.ui-settings-page .ui-settings-page-step {
  flex-direction: column;
  align-items: stretch;
  padding: 16px;
}

.portal-page-theme.ui-settings-page .ui-settings-page-help-steps {
  border-bottom: 1px solid var(--portal-border);
}

.portal-page-theme.ui-settings-page .ui-settings-page-help-steps .ui-settings-page-step {
  padding: 12px;
}

.portal-page-theme.ui-settings-page .ui-settings-page-fields {
  background: #fff;
  border-bottom: 1px solid var(--portal-border);
}

.portal-page-theme.ui-settings-page .ui-settings-page-fields .ui-settings-page-steps {
  border-bottom: none;
}

.portal-page-theme.ui-settings-page .ui-settings-page-steps--two {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.portal-page-theme.ui-settings-page .ui-settings-page-confirm-section {
  padding: 20px 24px;
  background: #fff;
  border-bottom: 1px solid var(--portal-border);
}

.portal-page-theme.ui-settings-page .ui-settings-page-confirm-section > .ui-settings-section-title {
  padding: 0;
  margin: 0 0 14px;
  border-bottom: none;
}

.portal-page-theme.ui-settings-page .ui-settings-page-confirm-section > .ui-settings-page-steps--two {
  padding: 0;
  border-bottom: none;
}

.portal-page-theme.ui-settings-page .ui-settings-section-title,
.portal-page-theme.ui-settings-page .ui-settings-subsection-label {
  color: var(--portal-teal) !important;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin: 0 0 14px;
  padding-bottom: 0;
  border-bottom: none !important;
}

.portal-page-theme.ui-settings-page hr.ui-settings-separator,
.portal-page-theme.ui-settings-page hr.ui-settings-subseparator {
  border-color: var(--portal-border);
  margin: 1rem 0;
}

.portal-page-theme.ui-settings-page .ui-settings-subseparator {
  border-top-style: solid;
}

.portal-page-theme.ui-settings-page #uiFontPreview {
  background: var(--portal-help-card);
  border-color: var(--portal-border) !important;
}

.portal-page-theme.ui-settings-page .ui-settings-form .form-control,
.portal-page-theme.ui-settings-page .ui-settings-form select.form-control {
  border-color: var(--portal-border);
  border-radius: 6px;
}

.portal-page-theme.ui-settings-page .ui-settings-form select.form-control:not([multiple]):not([size]) {
  height: auto;
  min-height: calc(1.8125rem + 2px);
  line-height: 1.5;
  padding-top: 0.35rem !important;
  padding-bottom: 0.35rem !important;
}

.portal-page-theme.ui-settings-page .ui-settings-form .form-control:focus,
.portal-page-theme.ui-settings-page .ui-settings-form select.form-control:focus {
  border-color: var(--portal-teal);
  box-shadow: 0 0 0 2px rgba(0, 89, 97, 0.12);
}

.portal-page-theme.ui-settings-page .ui-settings-form .form-group {
  margin-bottom: 0.75rem;
}

.portal-page-theme.ui-settings-page .ui-settings-form .form-group:last-child {
  margin-bottom: 0;
}

.portal-page-theme.ui-settings-page .ui-settings-actions {
  margin-top: 0;
  padding: 16px 24px;
  background: #fff;
  border-top: 1px solid var(--portal-border) !important;
}

.portal-page-theme.ui-settings-page .ui-settings-actions .form-actions-sep,
.portal-page-theme.ui-settings-page .ui-settings-tab-actions .form-actions-sep {
  display: none;
}

.portal-page-theme.ui-settings-page .ui-settings-actions .form-icon-actions,
.portal-page-theme.ui-settings-page .ui-settings-actions .form-text-actions,
.portal-page-theme.ui-settings-page .ui-settings-tab-actions .form-icon-actions,
.portal-page-theme.ui-settings-page .ui-settings-tab-actions .form-text-actions {
  justify-content: flex-end;
  width: 100%;
  max-width: 100%;
  flex-wrap: wrap;
}

.portal-page-theme.ui-settings-page .ui-settings-form label {
  color: var(--settings-form-label-color, var(--portal-muted));
}

.portal-page-theme.ui-settings-page .ui-settings-form .form-text {
  color: var(--portal-muted);
}

.portal-page-theme.ui-settings-page .ui-login-background-mockup {
  aspect-ratio: 16 / 9;
  border: 1px solid rgba(0, 0, 0, 0.1);
  border-radius: 10px;
  max-width: 520px;
  overflow: hidden;
  position: relative;
}

.portal-page-theme.ui-settings-page .ui-login-background-mockup__bg {
  background-position: center;
  background-size: cover;
  inset: 0;
  position: absolute;
}

.portal-page-theme.ui-settings-page .ui-login-background-mockup__overlay {
  background: rgba(0, 0, 0, 0.45);
  inset: 0;
  position: absolute;
}

.portal-page-theme.ui-settings-page .ui-login-background-mockup__card {
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25);
  left: 50%;
  max-width: 42%;
  min-width: 130px;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
  z-index: 2;
}

.portal-page-theme.ui-settings-page .ui-login-background-mockup__card-header {
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
  font-size: 0.72rem;
  font-weight: 600;
  padding: 0.45rem 0.55rem;
  text-align: center;
}

.portal-page-theme.ui-settings-page .ui-login-background-mockup__card-body {
  padding: 0.55rem;
}

.portal-page-theme.ui-settings-page .ui-login-background-mockup__field {
  background: #f4f3ef;
  border-radius: 4px;
  height: 14px;
  margin-bottom: 0.35rem;
}

.portal-page-theme.ui-settings-page .ui-login-background-mockup__btn {
  background: var(--ui-portal-theme-color, #005961);
  border-radius: 12px;
  color: #fff;
  font-size: 0.62rem;
  font-weight: 700;
  margin-top: 0.45rem;
  padding: 0.28rem 0.35rem;
  text-align: center;
}

.portal-page-theme.ui-settings-page .ui-login-background-presets {
  display: grid;
  gap: 0.5rem;
  grid-template-columns: repeat(auto-fill, minmax(72px, 1fr));
  max-width: 520px;
}

.portal-page-theme.ui-settings-page .ui-login-background-tile {
  aspect-ratio: 4 / 3;
  position: relative;
}

.portal-page-theme.ui-settings-page .ui-login-background-tile__select {
  appearance: none;
  background: transparent;
  border: 2px solid transparent;
  border-radius: 8px;
  cursor: pointer;
  display: block;
  height: 100%;
  overflow: hidden;
  padding: 0;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
  width: 100%;
}

.portal-page-theme.ui-settings-page .ui-login-background-tile__select:hover:not(:disabled),
.portal-page-theme.ui-settings-page .ui-login-background-tile.is-selected .ui-login-background-tile__select {
  border-color: var(--ui-portal-theme-color, #51cbce);
  box-shadow: 0 0 0 1px rgba(81, 203, 206, 0.25);
}

.portal-page-theme.ui-settings-page .ui-login-background-tile__thumb {
  background-position: center;
  background-size: cover;
  display: block;
  height: 100%;
  width: 100%;
}

.portal-page-theme.ui-settings-page .ui-login-background-tile__remove {
  align-items: center;
  appearance: none;
  background: rgba(220, 53, 69, 0.92);
  border: 0;
  border-radius: 50%;
  color: #fff;
  cursor: pointer;
  display: flex;
  font-size: 0.62rem;
  height: 20px;
  justify-content: center;
  line-height: 1;
  opacity: 0;
  padding: 0;
  position: absolute;
  right: 4px;
  top: 4px;
  transition: opacity 0.15s ease;
  width: 20px;
  z-index: 2;
}

.portal-page-theme.ui-settings-page .ui-login-background-tile:hover .ui-login-background-tile__remove,
.portal-page-theme.ui-settings-page .ui-login-background-tile__remove:focus {
  opacity: 1;
}

@media (max-width: 991px) {
  .portal-page-theme.ui-settings-page .ui-settings-pills-content {
    padding-left: 0;
    padding-top: 1rem;
  }

  .portal-page-theme.ui-settings-page .ui-settings-page-steps,
  .portal-page-theme.ui-settings-page .ui-settings-page-steps--two {
    grid-template-columns: 1fr;
  }
}

/* Sauvegardes BDD + actions en attente */
.portal-page-theme.database-backups-page .database-backups-page-toolbar-wrap,
.portal-page-theme.pending-actions-page .pending-actions-page-toolbar-wrap {
  padding: 16px 24px;
  background: #fff;
  border-bottom: 1px solid var(--portal-border);
}

.portal-page-theme.database-backups-page .database-backups-actions,
.portal-page-theme.pending-actions-page .pending-actions-page-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 0.85rem 1rem;
}

.portal-page-theme.pending-actions-page .pending-actions-page-toolbar {
  justify-content: flex-end;
  align-items: center;
  gap: 0.5rem;
}

.portal-page-theme.database-backups-page .database-backups-upload-form {
  display: inline-flex;
  margin: 0;
}

.portal-page-theme.database-backups-page .database-backups-actions .btn-upload,
.portal-page-theme.database-backups-page .database-backups-toolbar .btn-upload {
  position: relative;
  overflow: hidden;
}

.portal-page-theme.database-backups-page .database-backups-actions .btn-upload input[type="file"],
.portal-page-theme.database-backups-page .database-backups-toolbar .btn-upload input[type="file"] {
  position: absolute;
  inset: 0;
  opacity: 0;
  cursor: pointer;
}

/* Modal — configuration des champs utilisateur */
.users-fields-modal {
  --portal-teal: var(--ui-portal-theme-color, #005961);
  --portal-teal-dark: var(--ui-portal-theme-color-dark, #004a52);
}

.users-fields-modal-content {
  border: none;
  border-radius: var(--ui-card-border-radius, 10px);
  overflow: hidden;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.14);
}

.users-fields-modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 16px 20px;
  background: #fff;
  border-bottom: 1px solid var(--portal-border, #eeeeee);
}

.users-fields-modal-header-main {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}

.users-fields-modal-header-icon,
.users-fields-modal-section-icon {
  width: 40px;
  height: 40px;
  border-radius: 8px;
  background: var(--portal-teal, #005961);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 1rem;
}

.users-fields-modal-header .modal-title {
  color: var(--portal-text, #2c3e50);
  font-weight: 700;
  font-size: 1.05rem;
}

.users-fields-modal-body {
  background: var(--portal-surface, #f4f4f4);
  padding: 16px 20px;
}

.users-fields-modal-section + .users-fields-modal-section {
  margin-top: 16px;
}

.users-fields-modal-section-header {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 20px;
  border-bottom: 1px solid var(--portal-border, #eeeeee);
}

.users-fields-modal-section-title {
  color: var(--portal-text, #2c3e50);
  font-size: var(--settings-section-title-font-size, 0.9375rem);
  font-weight: var(--settings-section-title-font-weight, 700);
}

.users-fields-modal-section-body {
  padding: 16px 20px;
}

.users-fields-modal-section-body label:not(.custom-control-label) {
  color: var(--settings-form-label-color, var(--portal-muted, #6c757d));
}

.users-fields-modal-section-body .form-text {
  color: var(--portal-muted, #6c757d);
}

.users-fields-modal-table-wrap {
  border: 1px solid var(--portal-border, #eeeeee);
  border-radius: 8px;
  overflow: hidden;
  background: #fff;
}

.users-fields-modal-table thead th {
  background-color: var(--portal-teal, var(--ui-portal-theme-color, #005961)) !important;
  color: #ffffff !important;
  border-color: var(--portal-teal-dark, var(--ui-portal-theme-color-dark, #004a52)) !important;
  font-weight: 700 !important;
  font-size: 0.875rem !important;
  letter-spacing: 0.02em;
  line-height: 1.35;
  padding: 10px 14px !important;
  vertical-align: middle;
  white-space: nowrap;
  text-transform: none;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.users-fields-modal-table thead th.users-fields-toggle-col {
  width: 7.5rem;
  text-align: center;
}

.users-fields-modal-table thead th.users-fields-actions-col {
  width: 9rem;
}

.users-fields-modal-table tbody td {
  vertical-align: middle;
  border-color: var(--portal-border, #eeeeee);
  padding: 9px 14px !important;
  font-size: 0.875rem;
  line-height: 1.35;
}

.users-fields-modal-table .users-field-name {
  font-weight: 600;
  color: var(--portal-text, #2c3e50);
}

.users-fields-modal-table .users-fields-toggle-cell {
  text-align: center;
  width: 7.5rem;
}

.users-fields-modal-table .users-fields-bool-cell {
  text-align: center;
  width: 7.5rem;
}

.users-fields-modal-table .users-fields-bool {
  display: inline-block;
  min-width: 2.5rem;
  padding: 0.15rem 0.55rem;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.users-fields-modal-table .users-fields-bool.is-yes {
  background: rgba(0, 89, 97, 0.12);
  color: var(--portal-teal, #005961);
}

.users-fields-modal-table .users-fields-bool.is-no {
  background: #eef1f3;
  color: var(--portal-muted, #6c757d);
}

.users-fields-modal-table .users-fields-toggle {
  display: inline-block;
  padding-left: 2.35rem;
  min-height: 1.35rem;
  margin: 0;
  vertical-align: middle;
}

.users-fields-modal-table .users-fields-toggle .custom-control-label {
  cursor: pointer;
}

.users-fields-modal-table .users-fields-toggle .custom-control-input:disabled ~ .custom-control-label {
  cursor: not-allowed;
  opacity: 0.55;
}

.users-fields-modal-form .users-fields-form-toggle {
  min-height: 1.35rem;
}

.users-fields-modal-form {
  background: var(--portal-help-card, #f5f6f7);
  border: 1px solid var(--portal-border, #eeeeee);
  border-radius: 8px;
  padding: 16px;
}

.users-fields-modal-form-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.5rem;
}

.users-fields-modal-footer {
  background: #fff;
  border-top: 1px solid var(--portal-border, #eeeeee);
  padding: 12px 20px;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.5rem;
}

@media (max-width: 991px) {
  .portal-page-theme .users-welcome-steps,
  .portal-page-theme [class$="-page-steps"]:not(.ui-settings-page-steps):not(.ui-settings-page-steps--two) {
    grid-template-columns: 1fr;
  }

  .portal-page-theme.account-security-page .account-security-page-steps {
    grid-template-columns: 1fr;
  }

  .portal-page-theme .users-tab-pane {
    display: block;
    margin: 0 !important;
    width: 100% !important;
    min-height: 0;
  }

  .portal-page-theme .users-tab-pane .users-split-app {
    padding: 12px 0;
  }

  .portal-page-theme .users-tab-pane .users-split-columns {
    flex-direction: column;
  }

  .portal-page-theme .users-tab-pane .users-split-list {
    flex: none;
    width: 100%;
    max-width: none;
    min-width: 0;
  }

  .portal-page-theme .users-tab-pane .users-split-list-card {
    max-height: 320px;
  }

  .portal-page-theme .users-tab-toolbar {
    margin-left: 0;
  }

  .portal-page-theme .operators-page-steps {
    grid-template-columns: 1fr;
  }

  .portal-page-theme .events-page-hero-top {
    flex-direction: column;
    align-items: flex-start;
  }

  .portal-page-theme .events-page-hero-filter {
    width: 100%;
    margin-left: 0;
    justify-content: flex-start;
    flex-wrap: wrap;
  }

  .portal-page-theme .events-page-filter-field {
    width: 100%;
  }

  .portal-page-theme .events-page-period-fields {
    justify-content: flex-start;
  }

  .portal-page-theme .events-page-period-fields .events-period-datetime {
    flex: 1 1 160px;
    width: auto;
    max-width: none;
  }
}

.portal-page-theme.events-page .page-tabs-header .nav-tabs .nav-item .nav-link:not(.active) {
  color: #66615b;
  opacity: 1;
}

.portal-page-theme.events-page .page-tabs-header .nav-tabs .nav-item .nav-link:not(.active):hover {
  color: var(--color-success);
}

.portal-page-theme.events-page .events-page-empty-state {
  padding: 24px;
  background: #fff;
  text-align: center;
}

.portal-page-theme.events-page .events-tab-pane .events-page-view,
.portal-page-theme.events-page .events-tab-pane .events-notifications-page-view,
.portal-page-theme.events-page .events-tab-pane .events-backups-page-view {
  margin-top: 0;
}

.portal-page-theme.events-page .events-backups-page-steps {
  margin: 0;
}

.portal-page-theme.events-page .events-notifications-page-steps {
  margin: 0;
}

.portal-page-theme.events-page .events-notifications-form-wrap {
  margin-top: 0;
  padding-top: 0;
}

/* Opérateurs — onglets principaux : même rendu que Droits d'accès / Contrôleurs (Paper Dashboard) */
.portal-page-theme.operators-page .page-tabs-header .nav-tabs .nav-item .nav-link:not(.active) {
  color: #66615b;
  opacity: 1;
}

.portal-page-theme.operators-page .page-tabs-header .nav-tabs .nav-item .nav-link:not(.active):hover {
  color: var(--color-success);
}

.portal-page-theme.operators-page .operators-page-toolbar-wrap {
  padding: 16px 24px;
  background: #fff;
  border-bottom: 1px solid var(--portal-border);
}

.portal-page-theme.operators-page .operators-page-toolbar {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  gap: 0.5rem;
}

.portal-page-theme.operators-page .operators-page-add-link {
  background-color: var(--portal-teal);
  border-color: var(--portal-teal);
}

.portal-page-theme.operators-page .operators-page-add-link:hover {
  background-color: #004a52;
  border-color: #004a52;
}

.portal-page-theme.operators-page .operators-page-form-tabs-nav {
  border-bottom: 1px solid var(--portal-border);
  margin-bottom: 1rem;
}

.portal-page-theme.operators-page .operators-page-form-tabs-nav .nav-link {
  color: var(--portal-muted);
  font-weight: 600;
}

.portal-page-theme.operators-page .operators-page-form-tabs-nav .nav-link.active {
  color: var(--portal-teal);
  border-color: var(--portal-border) var(--portal-border) #fff;
}

.portal-page-theme.operators-page .operators-page-form-tabs-content {
  padding-top: 0.25rem;
}

.portal-page-theme.operators-page #operatorsPage .perm-block {
  flex-basis: 30% !important;
}

.portal-page-theme.operators-page .operators-page-form-wrap .form-icon-actions,
.portal-page-theme.operators-page .operators-page-form-wrap .form-text-actions {
  justify-content: flex-end;
  width: 100%;
  max-width: 100%;
  flex-wrap: wrap;
  padding-top: 8px;
  border-top: 1px solid var(--portal-border);
  margin-top: 16px;
}

.portal-page-theme.operators-page .operators-page-toggles-row {
  align-items: flex-start;
}

.portal-page-theme.operators-page .operators-form-split,
.portal-page-theme.access-rights-page .operators-form-split {
  margin-left: 0;
  margin-right: 0;
}

.portal-page-theme.operators-page .operators-form-panel,
.portal-page-theme.access-rights-page .operators-form-panel,
.portal-page-theme.alarms-page .operators-form-panel,
.portal-page-theme.elevators-page .operators-form-panel,
.portal-page-theme.automations-page .operators-form-panel,
.portal-page-theme.companies-page .operators-form-panel,
.portal-page-theme.modules-page #modulesActivationForm .operators-form-panel,
.portal-page-theme.modules-page #modulesLicenseSection .operators-form-panel,
.portal-page-theme.modules-page #licenseProductSection .operators-form-panel,
.portal-page-theme.license-page #licenseSummaryCallout .operators-form-panel {
  background: var(--portal-help-card, #f8fafb);
  border: 1px solid var(--portal-border, #e2e8f0);
  border-radius: 10px;
  padding: 1rem 1.1rem;
}

.portal-page-theme.operators-page .operators-form-panel-title,
.portal-page-theme.access-rights-page .operators-form-panel-title,
.portal-page-theme.alarms-page .operators-form-panel-title,
.portal-page-theme.elevators-page .operators-form-panel-title,
.portal-page-theme.automations-page .operators-form-panel-title,
.portal-page-theme.companies-page .operators-form-panel-title,
.portal-page-theme.modules-page #modulesActivationForm .operators-form-panel-title,
.portal-page-theme.modules-page #modulesLicenseSection .operators-form-panel-title,
.portal-page-theme.modules-page #licenseProductSection .operators-form-panel-title,
.portal-page-theme.license-page #licenseSummaryCallout .operators-form-panel-title {
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--portal-teal);
  margin-bottom: 1rem;
}

.portal-page-theme.operators-page .operators-form-panel--toggles,
.portal-page-theme.access-rights-page .operators-form-panel--toggles,
.portal-page-theme.modules-page #modulesActivationForm .operators-form-panel--toggles {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}

.portal-page-theme.operators-page .operators-form-toggle-item,
.portal-page-theme.access-rights-page .operators-form-toggle-item,
.portal-page-theme.modules-page #modulesActivationForm .operators-form-toggle-item {
  padding: 0.65rem 0;
  border-bottom: 1px solid var(--portal-border, #e2e8f0);
}

.portal-page-theme.operators-page .operators-form-toggle-item:last-child,
.portal-page-theme.access-rights-page .operators-form-toggle-item:last-child,
.portal-page-theme.modules-page #modulesActivationForm .operators-form-toggle-item:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.portal-page-theme.operators-page .operators-form-toggle-help,
.portal-page-theme.access-rights-page .operators-form-toggle-help,
.portal-page-theme.users-page-body .operators-form-toggle-help,
.portal-page-theme.doors-page .operators-form-toggle-help,
.portal-page-theme.qr-pass-page .operators-form-toggle-help {
  display: block;
  margin-top: 0.35rem;
  margin-bottom: 0;
  font-size: var(--settings-help-text-font-size, 0.8125rem);
  line-height: 1.45;
}

.portal-page-theme.operators-page .operators-form-profiles-wrap,
.portal-page-theme.access-rights-page .operators-form-profiles-wrap {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--portal-border, #e2e8f0);
}

.portal-page-theme.operators-page .operators-form-profiles-wrap > .form-group > label,
.portal-page-theme.access-rights-page .operators-form-profiles-wrap > .form-group > label {
  font-weight: 600;
  margin-bottom: 0.5rem;
}

@media (max-width: 991.98px) {
  .portal-page-theme.operators-page .operators-form-panel--toggles,
  .portal-page-theme.access-rights-page .operators-form-panel--toggles {
    margin-top: 0.25rem;
  }
}

.portal-page-theme.access-rights-page .access-rights-page-form-wrap label.d-block {
  margin-bottom: 0.35rem;
}

.portal-page-theme.access-rights-page .opentry-form-toggle.custom-switch .custom-control-input:checked ~ .custom-control-label::before {
  background-color: var(--portal-teal);
  border-color: #004a52;
}

.portal-page-theme.access-rights-page .opentry-form-toggle.custom-switch .custom-control-input:focus ~ .custom-control-label::before {
  box-shadow: 0 0 0 0.15rem rgba(0, 89, 97, 0.25);
}

.portal-page-theme.access-rights-page #areaForm .operators-form-split {
  align-items: stretch;
}

.portal-page-theme.access-rights-page #areaForm .operators-form-split > [class*="col-"] {
  display: flex;
  flex-direction: column;
}

.portal-page-theme.access-rights-page #areaForm .areas-form-panels-col {
  gap: 0;
}

.portal-page-theme.access-rights-page #areaForm .operators-form-panel--fields,
.portal-page-theme.access-rights-page #areaForm .operators-form-panel--toggles {
  flex: 1 1 auto;
  width: 100%;
}

.portal-page-theme.access-rights-page #accessProfileGroupForm .operators-form-split > [class*="col-"] {
  display: flex;
  flex-direction: column;
}

.portal-page-theme.access-rights-page #areaForm .areas-form-fields-row {
  margin-bottom: 0.25rem;
}

.portal-page-theme.access-rights-page #accessProfileForm .access-profile-zones-schedules-grid {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
  gap: 1rem;
  align-items: start;
}

.portal-page-theme.access-rights-page #accessProfileForm .access-profile-zones-col .operators-form-panel-title,
.portal-page-theme.access-rights-page #accessProfileForm .access-profile-schedules-col .operators-form-panel-title {
  margin-bottom: 0.75rem;
}

.portal-page-theme.access-rights-page #areaForm .areas-form-listbox-wrap,
.portal-page-theme.access-rights-page #accessProfileForm .access-profiles-form-listbox-wrap,
.portal-page-theme.access-rights-page #accessProfileGroupForm .access-profile-groups-form-listbox-wrap {
  margin-top: 0;
  padding-top: 0;
  border-top: none;
}

.portal-page-theme.access-rights-page #areaForm .areas-form-listbox-wrap--nested {
  margin-top: 0;
  padding-top: 0;
}

.portal-page-theme.access-rights-page #areaForm .areas-form-conditional {
  margin-top: 0.65rem;
}

.portal-page-theme.access-rights-page #areaForm .bootstrap-duallistbox-container .box1 select,
.portal-page-theme.access-rights-page #areaForm .bootstrap-duallistbox-container .box2 select,
.portal-page-theme.access-rights-page #accessProfileForm .bootstrap-duallistbox-container .box1 select,
.portal-page-theme.access-rights-page #accessProfileForm .bootstrap-duallistbox-container .box2 select,
.portal-page-theme.access-rights-page #accessProfileGroupForm .bootstrap-duallistbox-container .box1 select,
.portal-page-theme.access-rights-page #accessProfileGroupForm .bootstrap-duallistbox-container .box2 select {
  min-height: 220px;
}

.portal-page-theme.access-rights-page #accessProfileForm .access-profiles-form-listbox-wrap > .form-group > label,
.portal-page-theme.access-rights-page #accessProfileGroupForm .access-profile-groups-form-listbox-wrap > .form-group > label {
  font-weight: 600;
  margin-bottom: 0.35rem;
}

#access_rights_page #areas #areaForm select.form-control:not([multiple]):not([size]),
#access_rights_page #areas #areaForm select.form-control-sm:not([multiple]):not([size]) {
  height: auto;
  min-height: calc(1.8125rem + 2px);
  line-height: 1.5;
  padding: 0.35rem 0.5rem !important;
}

#access_rights_page #areas #areaForm .bootstrap-duallistbox-container .filter {
  height: auto;
  min-height: calc(1.8125rem + 2px);
  line-height: 1.5;
  padding: 0.35rem 0.5rem !important;
}

#access_rights_page #areas .access-rights-page-table-wrap .dataTables_length select {
  height: auto;
  min-height: calc(1.8125rem + 2px);
  line-height: 1.5;
  padding: 0.35rem 1.75rem 0.35rem 0.5rem !important;
}

#access_rights_page #profiles #accessProfileForm select.form-control:not([multiple]):not([size]):not(.profile-schedule-select),
#access_rights_page #profiles #accessProfileForm select.form-control-sm:not([multiple]):not([size]):not(.profile-schedule-select) {
  height: auto;
  min-height: calc(1.8125rem + 2px);
  line-height: 1.5;
  padding: 0.35rem 0.5rem !important;
}

#access_rights_page #profiles #accessProfileForm .bootstrap-duallistbox-container .filter {
  height: auto;
  min-height: calc(1.8125rem + 2px);
  line-height: 1.5;
  padding: 0.35rem 0.5rem !important;
}

#access_rights_page #profile_groups #accessProfileGroupForm .bootstrap-duallistbox-container .filter {
  height: auto;
  min-height: calc(1.8125rem + 2px);
  line-height: 1.5;
  padding: 0.35rem 0.5rem !important;
}

/* Les selects d'horaires sont dimensionnés par access_profiles_edit.js pour
   s'aligner sur les lignes vertes du dual-listbox — ne pas surcharger ici. */

#access_rights_page #profiles .access-rights-page-table-wrap .dataTables_length select {
  height: auto;
  min-height: calc(1.8125rem + 2px);
  line-height: 1.5;
  padding: 0.35rem 1.75rem 0.35rem 0.5rem !important;
}

/* Utilisateurs — paramètres avancés (cartes) */
.portal-page-theme.users-page-body .users-advanced-settings-card-row {
  margin-left: 0;
  margin-right: 0;
  align-items: stretch;
}

.portal-page-theme.users-page-body .users-advanced-settings-card-row > [class*="col-"] {
  display: flex;
  flex-direction: column;
}

.portal-page-theme.users-page-body .users-advanced-settings-card-row .users-advanced-settings-panel-card {
  flex: 1 1 auto;
  height: 100%;
}

.portal-page-theme.users-page-body .users-advanced-settings-panel-card.operators-form-panel {
  background: var(--portal-help-card, #f8fafb);
  border: 1px solid var(--portal-border, #e2e8f0);
  border-radius: 10px;
  padding: 1rem 1.1rem;
  width: 100%;
}

.portal-page-theme.users-page-body .users-advanced-settings-panel-card .operators-form-panel-title {
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--portal-teal);
  margin-bottom: 1rem;
}

.portal-page-theme.users-page-body .users-advanced-settings-panel-card.operators-form-panel--toggles {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}

.portal-page-theme.users-page-body .users-advanced-settings-panel-card .operators-form-toggle-item {
  padding: 0.65rem 0;
  border-bottom: 1px solid var(--portal-border, #e2e8f0);
}

.portal-page-theme.users-page-body .users-advanced-settings-panel-card .operators-form-toggle-item:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

/* Portes — groupes / Contrôleurs — groupes armement / fiche contrôleur (split champs / toggles) */
.portal-page-theme.doors-page #doorGroupForm .doors-group-form-split.operators-form-split,
.portal-page-theme.devices-page #deviceArmingGroupForm .devices-group-form-split.operators-form-split,
.portal-page-theme.devices-page #deviceForm .devices-controller-form-split.operators-form-split {
  margin-left: 0;
  margin-right: 0;
  align-items: stretch;
}

.portal-page-theme.doors-page #doorGroupForm .doors-group-form-split > [class*="col-"],
.portal-page-theme.devices-page #deviceArmingGroupForm .devices-group-form-split > [class*="col-"],
.portal-page-theme.devices-page #deviceForm .devices-controller-form-split > [class*="col-"] {
  display: flex;
  flex-direction: column;
}

.portal-page-theme.doors-page #doorGroupForm .operators-form-panel,
.portal-page-theme.devices-page #deviceArmingGroupForm .operators-form-panel,
.portal-page-theme.devices-page #deviceForm .devices-controller-form-split .operators-form-panel {
  background: var(--portal-help-card, #f8fafb);
  border: 1px solid var(--portal-border, #e2e8f0);
  border-radius: 10px;
  padding: 1rem 1.1rem;
  flex: 1 1 auto;
  width: 100%;
}

.portal-page-theme.doors-page #doorGroupForm .operators-form-panel-title,
.portal-page-theme.devices-page #deviceArmingGroupForm .operators-form-panel-title,
.portal-page-theme.devices-page #deviceForm .devices-controller-form-split .operators-form-panel-title {
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--portal-teal);
  margin-bottom: 1rem;
}

.portal-page-theme.doors-page #doorGroupForm .operators-form-panel--toggles,
.portal-page-theme.devices-page #deviceArmingGroupForm .operators-form-panel--toggles,
.portal-page-theme.devices-page #deviceForm .devices-controller-form-split .operators-form-panel--toggles {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}

.portal-page-theme.doors-page #doorGroupForm .operators-form-toggle-item,
.portal-page-theme.devices-page #deviceArmingGroupForm .operators-form-toggle-item,
.portal-page-theme.devices-page #deviceForm .devices-controller-form-split .operators-form-toggle-item {
  padding: 0.65rem 0;
  border-bottom: 1px solid var(--portal-border, #e2e8f0);
}

.portal-page-theme.doors-page #doorGroupForm .operators-form-toggle-item:last-child,
.portal-page-theme.devices-page #deviceArmingGroupForm .operators-form-toggle-item:last-child,
.portal-page-theme.devices-page #deviceForm .devices-controller-form-split .operators-form-toggle-item:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.portal-page-theme.doors-page #doorGroupForm .doors-group-form-fields-row,
.portal-page-theme.devices-page #deviceArmingGroupForm .devices-group-form-fields-row,
.portal-page-theme.devices-page #deviceForm .devices-controller-form-fields-row {
  margin-bottom: 0.25rem;
}

.portal-page-theme.doors-page #doorGroupForm .doors-group-form-listbox-wrap,
.portal-page-theme.devices-page #deviceArmingGroupForm .devices-group-form-listbox-wrap {
  margin-top: 0.35rem;
  padding-top: 0.5rem;
  border-top: 1px solid var(--portal-border, #e2e8f0);
}

.portal-page-theme.doors-page #doorGroupForm .doors-group-form-listbox-wrap.dual-listbox-row,
.portal-page-theme.devices-page #deviceArmingGroupForm .devices-group-form-listbox-wrap.dual-listbox-row {
  margin-top: 0.35rem;
}

.portal-page-theme.doors-page #doorGroupForm .doors-group-form-listbox-wrap > .form-group > label,
.portal-page-theme.devices-page #deviceArmingGroupForm .devices-group-form-listbox-wrap > .form-group > label {
  font-weight: 600;
  margin-bottom: 0.35rem;
}

.portal-page-theme.doors-page #doorGroupForm .bootstrap-duallistbox-container .box1 select,
.portal-page-theme.doors-page #doorGroupForm .bootstrap-duallistbox-container .box2 select,
.portal-page-theme.devices-page #deviceArmingGroupForm .bootstrap-duallistbox-container .box1 select,
.portal-page-theme.devices-page #deviceArmingGroupForm .bootstrap-duallistbox-container .box2 select {
  min-height: 220px;
}

.portal-page-theme.doors-page #doorGroupForm .opentry-form-toggle.custom-switch .custom-control-input:checked ~ .custom-control-label::before,
.portal-page-theme.devices-page #deviceArmingGroupForm .opentry-form-toggle.custom-switch .custom-control-input:checked ~ .custom-control-label::before,
.portal-page-theme.devices-page #deviceForm .devices-controller-form-split .opentry-form-toggle.custom-switch .custom-control-input:checked ~ .custom-control-label::before {
  background-color: var(--portal-teal);
  border-color: #004a52;
}

.portal-page-theme.doors-page #doorGroupForm .opentry-form-toggle.custom-switch .custom-control-input:focus ~ .custom-control-label::before,
.portal-page-theme.devices-page #deviceArmingGroupForm .opentry-form-toggle.custom-switch .custom-control-input:focus ~ .custom-control-label::before,
.portal-page-theme.devices-page #deviceForm .devices-controller-form-split .opentry-form-toggle.custom-switch .custom-control-input:focus ~ .custom-control-label::before {
  box-shadow: 0 0 0 0.15rem rgba(0, 89, 97, 0.25);
}

@media (max-width: 991.98px) {
  .portal-page-theme.doors-page #doorGroupForm .operators-form-panel--toggles,
  .portal-page-theme.devices-page #deviceArmingGroupForm .operators-form-panel--toggles,
  .portal-page-theme.devices-page #deviceForm .devices-controller-form-split .operators-form-panel--toggles {
    margin-top: 0.25rem;
  }
}

/* QR codes temporaires — émission (split champs / émission) */
.portal-page-theme.qr-pass-page #qrPassForm .qr-pass-issue-split.operators-form-split,
.portal-page-theme.qr-pass-page #ticketForm .tickets-issue-split.operators-form-split {
  margin-left: 0;
  margin-right: 0;
  align-items: stretch;
}

.portal-page-theme.qr-pass-page #qrPassForm .qr-pass-issue-split > [class*="col-"],
.portal-page-theme.qr-pass-page #ticketForm .tickets-issue-split > [class*="col-"] {
  display: flex;
  flex-direction: column;
}

.portal-page-theme.qr-pass-page #qrPassForm .operators-form-panel,
.portal-page-theme.qr-pass-page #ticketForm .operators-form-panel {
  background: var(--portal-help-card, #f8fafb);
  border: 1px solid var(--portal-border, #e2e8f0);
  border-radius: 10px;
  padding: 1rem 1.1rem;
  flex: 1 1 auto;
  width: 100%;
}

.portal-page-theme.qr-pass-page #qrPassForm .operators-form-panel-title,
.portal-page-theme.qr-pass-page #ticketForm .operators-form-panel-title {
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--portal-teal);
  margin-bottom: 1rem;
}

.portal-page-theme.qr-pass-page #qrPassForm .operators-form-panel--options,
.portal-page-theme.qr-pass-page #ticketForm .operators-form-panel--options {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.portal-page-theme.qr-pass-page #ticketForm .operators-form-toggle-item {
  padding: 0.65rem 0;
  border-bottom: 1px solid var(--portal-border, #e2e8f0);
}

.portal-page-theme.qr-pass-page #ticketForm .operators-form-toggle-item:last-of-type {
  border-bottom: 0;
  padding-bottom: 0;
}

.portal-page-theme.qr-pass-page #ticketForm .opentry-form-toggle.custom-switch .custom-control-input:checked ~ .custom-control-label::before {
  background-color: var(--portal-teal);
  border-color: #004a52;
}

.portal-page-theme.qr-pass-page #ticketForm .opentry-form-toggle.custom-switch .custom-control-input:focus ~ .custom-control-label::before {
  box-shadow: 0 0 0 0.15rem rgba(0, 89, 97, 0.25);
}

@media (max-width: 991.98px) {
  .portal-page-theme.qr-pass-page #qrPassForm .operators-form-panel--options,
  .portal-page-theme.qr-pass-page #ticketForm .operators-form-panel--options {
    margin-top: 0.25rem;
  }
}

.portal-page-theme.operators-page .opentry-form-toggle.custom-switch .custom-control-input:checked ~ .custom-control-label::before {
  background-color: var(--portal-teal);
  border-color: #004a52;
}

.portal-page-theme.operators-page .opentry-form-toggle.custom-switch .custom-control-input:focus ~ .custom-control-label::before {
  box-shadow: 0 0 0 0.15rem rgba(0, 89, 97, 0.25);
}

.portal-page-theme.operators-page .operators-page-form-wrap label.d-block {
  margin-bottom: 0.35rem;
}

.portal-page-theme.operators-page .perm-pills-nav .nav-link.active {
  background: var(--portal-teal);
  color: #fff;
}

.portal-page-theme.operators-page .perm-pills-nav .nav-link {
  color: var(--portal-text);
}

.portal-page-theme.operators-page .perm-pills-nav .nav-link:hover:not(.active) {
  color: var(--portal-teal);
  background: var(--portal-help-card);
}

.portal-page-theme.operators-page .perm-resource-block {
  border-left-color: var(--portal-teal);
}

.portal-page-theme.operators-page .perm-levels-panel {
  padding-top: 0.25rem;
}

.portal-page-theme.operators-page .perm-levels-table thead th {
  background: var(--portal-teal) !important;
  color: #fff !important;
  border-color: #004a52 !important;
  font-weight: 700;
}

.portal-page-theme.operators-page .perm-levels-table .perm-section-label {
  background: var(--portal-help-card);
  color: var(--portal-teal);
}

.portal-page-theme.operators-page .perm-levels-filter {
  border-color: var(--portal-border);
  border-radius: 6px;
  min-width: 200px;
}

.portal-page-theme.operators-page .perm-levels-bulk-actions .btn-outline-success {
  color: var(--portal-teal);
  border-color: var(--portal-teal);
}

.portal-page-theme.operators-page .perm-levels-bulk-actions .btn-outline-success:hover {
  background: var(--portal-teal);
  color: #fff;
}

.portal-page-theme.operators-page #operator_profiles_row .bootstrap-duallistbox-container .box1 select,
.portal-page-theme.operators-page #operator_profiles_row .bootstrap-duallistbox-container .box2 select {
  border-color: var(--portal-border);
  border-radius: 6px;
}

.portal-page-theme.operators-page #operator_profiles_row .bootstrap-duallistbox-container .info {
  color: var(--portal-muted);
  font-size: 0.85rem;
}

.portal-page-theme.companies-page #companyForm .access-profiles-form-listbox-wrap,
.portal-page-theme.operators-page #companyForm .access-profiles-form-listbox-wrap {
  margin-top: 0;
  padding-top: 0;
  border-top: none;
}

.portal-page-theme.companies-page #companyForm .bootstrap-duallistbox-container .box1 select,
.portal-page-theme.companies-page #companyForm .bootstrap-duallistbox-container .box2 select,
.portal-page-theme.operators-page #companyForm .bootstrap-duallistbox-container .box1 select,
.portal-page-theme.operators-page #companyForm .bootstrap-duallistbox-container .box2 select {
  min-height: 220px;
}

.portal-page-theme.companies-page #companyForm .access-profiles-form-listbox-wrap > .form-group > label,
.portal-page-theme.operators-page #companyForm .access-profiles-form-listbox-wrap > .form-group > label {
  font-weight: 600;
  margin-bottom: 0.35rem;
}

.portal-page-theme.operators-page #operatorForm select.form-control-sm:not([multiple]):not([size]),
.portal-page-theme.companies-page #companyForm select.form-control-sm:not([multiple]):not([size]),
.portal-page-theme.operators-page #companyForm select.form-control-sm:not([multiple]):not([size]) {
  height: auto;
  min-height: calc(1.8125rem + 2px);
  line-height: 1.5;
  padding: 0.35rem 0.5rem !important;
}

.portal-page-theme.operators-page #operator_profiles_row .bootstrap-duallistbox-container .filter,
.portal-page-theme.operators-page #companyForm .bootstrap-duallistbox-container .filter {
  height: auto;
  min-height: calc(1.8125rem + 2px);
  line-height: 1.5;
  padding: 0.35rem 0.5rem !important;
}

.portal-page-theme.operators-page #id_company.operator-company-supervisor-mode {
  background-color: var(--portal-surface-muted, #f4f6f8);
  color: var(--portal-muted, #6c757d);
  cursor: not-allowed;
}

.portal-page-theme.operators-page .perm-levels-filter.form-control-sm {
  height: auto;
  min-height: calc(1.8125rem + 2px);
  line-height: 1.5;
  padding: 0.35rem 0.5rem !important;
}

.portal-page-theme.operators-page .operators-page-table-wrap .dataTables_length select {
  height: auto;
  min-height: calc(1.8125rem + 2px);
  line-height: 1.5;
  padding: 0.35rem 1.75rem 0.35rem 0.5rem !important;
}

.portal-page-theme.operators-page .operator-login-schedule__slot-row .form-control {
  height: auto;
  min-height: calc(1.8125rem + 2px);
  line-height: 1.5;
  padding: 0.35rem 0.5rem !important;
}

.portal-page-theme.operators-page .operators-page-empty-wrap {
  padding: 32px 24px 40px;
  background: #fff;
  text-align: center;
}

.portal-page-theme.operators-page .operators-page-empty-state {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  padding: 28px 36px;
  background: var(--portal-help-card);
  border: 1px dashed var(--portal-border);
  border-radius: 10px;
  max-width: 420px;
}

.portal-page-theme.operators-page .operators-page-empty-icon {
  font-size: 2rem;
  color: var(--portal-teal);
  opacity: 0.85;
}

.portal-page-theme.operators-page .operators-page-toolbar .btn-success {
  background-color: var(--portal-teal);
  border-color: var(--portal-teal);
}

.portal-page-theme.operators-page .operators-page-toolbar .btn-success:hover {
  background-color: #004a52;
  border-color: #004a52;
}

/* Logs contrôleurs — timeout bien visible (priorité sur le thème portail) */
.portal-page-theme #device_logs span.device-log-timeout,
#device_logs span.device-log-timeout {
  color: var(--portal-red, #dc3545) !important;
  font-weight: 700 !important;
}

/* Logs contrôleurs — en-tête DEVICE (bleu clair reposant) */
.portal-page-theme #device_logs .device-log-header,
#device_logs .device-log-header,
.portal-page-theme #device_logs span.bg-bluelight,
#device_logs span.bg-bluelight {
  background: var(--color-bluelight, #b8d8d8) !important;
  color: var(--portal-teal-dark, #004a52) !important;
  font-weight: 600 !important;
}

/* Sécurité du compte — disposition type Portes / Communication */
.portal-page-theme.account-security-page .account-security-page-hero-title {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.35rem;
  font-weight: 600;
  color: var(--portal-text);
}

.portal-page-theme.account-security-page .account-security-page-steps {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-bottom: none;
  align-items: stretch;
}

.portal-page-theme.account-security-page .account-security-page-step {
  flex-direction: column;
  align-items: stretch;
  height: 100%;
}

.portal-page-theme.account-security-page .account-security-page-step > .w-100 {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.portal-page-theme.account-security-page .account-security-page-step strong {
  color: var(--portal-teal);
  font-size: var(--settings-section-title-font-size, 0.9375rem);
  font-weight: var(--settings-section-title-font-weight, 700);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.portal-page-theme.account-security-page .account-security-step-body {
  flex: 1 1 auto;
  min-height: 0;
}

.portal-page-theme.account-security-page .account-security-loading {
  font-size: var(--settings-help-text-font-size, 0.8125rem);
  color: var(--portal-muted);
}

.portal-page-theme.account-security-page .account-security-qr-wrap {
  display: inline-block;
  padding: 0.75rem;
  border-radius: 10px;
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.08);
}

.portal-page-theme.account-security-page .account-security-qr-image {
  display: block;
  max-width: 220px;
}

.portal-page-theme.account-security-page .account-security-secret {
  word-break: break-all;
}

.portal-page-theme.account-security-page .account-security-backup-codes li {
  padding: 0.35rem 0.65rem;
  margin-bottom: 0.35rem;
  border-radius: 6px;
  background: rgba(0, 0, 0, 0.04);
  font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}

.portal-page-theme.account-security-page .account-security-device-card {
  padding: 0.85rem 1rem;
  margin-bottom: 0.75rem;
  border-radius: 10px;
  border: 1px solid var(--portal-border, rgba(0, 0, 0, 0.08));
  background: #fff;
}

.portal-page-theme.account-security-page .account-security-device-card__title {
  font-size: var(--settings-form-label-font-size, 0.9375rem);
  font-weight: 600;
  color: var(--portal-text);
  margin-bottom: 0.35rem;
  line-height: 1.4;
}

.portal-page-theme.account-security-page .account-security-device-card__meta {
  font-size: 0.8125rem;
  color: var(--portal-text-muted, #6c757d);
}

.portal-page-theme.account-security-page .account-security-device-card__revoke {
  margin-top: 0.65rem;
}

/* Notice discrète portail (gate module / prérequis) — remplace alert-warning flashy */
.portal-page-theme .portal-page-notice,
.portal-page-theme .elevators-page-notice,
.portal-page-theme .automations-page-notice {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem 1rem;
  margin: 0 24px 16px;
  padding: 12px 16px;
  background: var(--portal-help-card, #f5f6f7);
  border: 1px solid var(--portal-border, #eeeeee);
  border-radius: 8px;
  box-shadow: none;
}

.portal-page-theme .portal-page-notice__content,
.portal-page-theme .elevators-page-notice__content,
.portal-page-theme .automations-page-notice__content {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  flex: 1 1 16rem;
  min-width: 0;
}

.portal-page-theme .portal-page-notice__icon,
.portal-page-theme .elevators-page-notice__icon,
.portal-page-theme .automations-page-notice__icon {
  flex-shrink: 0;
  margin-top: 0.15rem;
  color: var(--portal-teal, #005961);
  opacity: 0.8;
  font-size: 1rem;
}

.portal-page-theme .portal-page-notice__text,
.portal-page-theme .elevators-page-notice__text,
.portal-page-theme .automations-page-notice__text {
  color: var(--portal-muted, #6c757d);
  font-size: var(--settings-help-text-font-size, 0.875rem);
  line-height: 1.45;
}

.portal-page-theme .portal-page-notice__action,
.portal-page-theme .elevators-page-notice__action,
.portal-page-theme .automations-page-notice__action {
  flex: 0 0 auto;
  background: transparent !important;
  border: 1px solid var(--portal-teal, #005961) !important;
  color: var(--portal-teal, #005961) !important;
  font-weight: 600 !important;
  text-transform: none !important;
  letter-spacing: 0.01em;
  border-radius: 20px !important;
  box-shadow: none !important;
  padding: 0.35rem 0.9rem !important;
}

.portal-page-theme .portal-page-notice__action:hover,
.portal-page-theme .portal-page-notice__action:focus,
.portal-page-theme .elevators-page-notice__action:hover,
.portal-page-theme .elevators-page-notice__action:focus,
.portal-page-theme .automations-page-notice__action:hover,
.portal-page-theme .automations-page-notice__action:focus {
  background: rgba(0, 89, 97, 0.08) !important;
  border-color: var(--portal-teal-dark, #004a52) !important;
  color: var(--portal-teal-dark, #004a52) !important;
  text-decoration: none;
}

/* Ascenseurs — panneaux formulaire / relais / dual-listbox */
.portal-page-theme.elevators-page .elevators-relays-panel,
.portal-page-theme.elevators-page .elevators-profile-configs-panel {
  margin-top: 0.75rem;
  padding: 1rem 1.1rem 1.15rem;
}

.portal-page-theme.elevators-page .elevators-relays-table {
  margin-bottom: 0;
  background: #fff;
}

.portal-page-theme.elevators-page .elevators-relays-table thead th,
.portal-page-theme.elevators-page .elevators-relays-table > tbody > tr:nth-child(2) > th {
  background: var(--portal-teal, #005961);
  color: #fff;
  font-weight: 600;
  vertical-align: middle;
}

.portal-page-theme.elevators-page .elevators-relays-card-header {
  background: var(--portal-teal, #005961);
  color: #fff;
  font-weight: 600;
}

.portal-page-theme.elevators-page .elevators-relays-col-check {
  width: 3.25rem;
  vertical-align: middle;
}

.portal-page-theme.elevators-page .elevators-relays-table .xm8-relay-toggle,
.portal-page-theme.automations-page .automations-relays-table .xm8-relay-toggle {
  min-width: 1.75rem;
}

.portal-page-theme.elevators-page #elevatorProfileForm .elevators-form-listbox-wrap {
  margin-top: 0;
  padding-top: 0;
  border-top: none;
}

.portal-page-theme.elevators-page #elevatorProfileForm .bootstrap-duallistbox-container .box1 select,
.portal-page-theme.elevators-page #elevatorProfileForm .bootstrap-duallistbox-container .box2 select {
  min-height: 220px;
}

.portal-page-theme.elevators-page #elevatorConfigurationForm select.form-control:not([multiple]):not([size]),
.portal-page-theme.elevators-page #elevatorProfileForm select.form-control:not([multiple]):not([size]) {
  height: auto;
  min-height: calc(1.8125rem + 2px);
  line-height: 1.5;
  padding-top: 0.35rem !important;
  padding-bottom: 0.35rem !important;
}

/* Automatismes — notices, panneaux relais, dual-listbox, selects */
.portal-page-theme.automations-page .automations-page-notice {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem 1rem;
  margin: 0 24px 16px;
  padding: 12px 16px;
  background: var(--portal-help-card, #f5f6f7);
  border: 1px solid var(--portal-border, #eeeeee);
  border-radius: 8px;
  box-shadow: none;
}

.portal-page-theme.automations-page .automations-page-notice__content {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  flex: 1 1 16rem;
  min-width: 0;
}

.portal-page-theme.automations-page .automations-page-notice__icon {
  flex-shrink: 0;
  margin-top: 0.15rem;
  color: var(--portal-teal, #005961);
  opacity: 0.8;
  font-size: 1rem;
}

.portal-page-theme.automations-page .automations-page-notice__text {
  color: var(--portal-muted, #6c757d);
  font-size: var(--settings-help-text-font-size, 0.875rem);
  line-height: 1.45;
}

.portal-page-theme.automations-page .automations-page-notice__action {
  flex: 0 0 auto;
  background: transparent !important;
  border: 1px solid var(--portal-teal, #005961) !important;
  color: var(--portal-teal, #005961) !important;
  font-weight: 600 !important;
  text-transform: none !important;
  letter-spacing: 0.01em;
  border-radius: 20px !important;
  box-shadow: none !important;
  padding: 0.35rem 0.9rem !important;
}

.portal-page-theme.automations-page .automations-page-notice__action:hover,
.portal-page-theme.automations-page .automations-page-notice__action:focus {
  background: rgba(0, 89, 97, 0.08) !important;
  border-color: var(--portal-teal-dark, #004a52) !important;
  color: var(--portal-teal-dark, #004a52) !important;
  text-decoration: none;
}

.portal-page-theme.automations-page .automations-relays-panel,
.portal-page-theme.automations-page .automations-profile-groups-panel {
  margin-top: 0.75rem;
  padding: 1rem 1.1rem 1.15rem;
}

.portal-page-theme.automations-page .automations-relays-table {
  margin-bottom: 0;
  background: #fff;
}

.portal-page-theme.automations-page .automations-relays-table thead th,
.portal-page-theme.automations-page .automations-relays-table > tbody > tr:nth-child(2) > th {
  background: var(--portal-teal, #005961);
  color: #fff;
  font-weight: 600;
  vertical-align: middle;
}

.portal-page-theme.automations-page .automations-relays-card-header {
  background: var(--portal-teal, #005961);
  color: #fff;
  font-weight: 600;
}

.portal-page-theme.automations-page .automations-relays-col-check {
  width: 3.25rem;
  vertical-align: middle;
}

.portal-page-theme.automations-page .automations-relays-card-cell .automations-relays-table,
.portal-page-theme.elevators-page .elevators-relays-card-cell .elevators-relays-table {
  width: 100%;
}

.portal-page-theme.automations-page .automations-relays-col-tempo {
  width: 9.5rem;
  white-space: normal;
  font-size: 0.8rem;
  line-height: 1.25;
}

.portal-page-theme.automations-page .automations-relay-tempo {
  max-width: 5.5rem;
  margin: 0 auto;
  text-align: center;
}

.portal-page-theme.automations-page .automations-relay-tempo:disabled {
  background-color: #e9ecef;
  opacity: 1;
}

.portal-page-theme.automations-page #automationProfileForm .automations-form-listbox-wrap {
  margin-top: 0;
  padding-top: 0;
  border-top: none;
}

.portal-page-theme.automations-page #automationProfileForm .bootstrap-duallistbox-container .box1 select,
.portal-page-theme.automations-page #automationProfileForm .bootstrap-duallistbox-container .box2 select {
  min-height: 220px;
}

.portal-page-theme.automations-page #automationGroupForm select.form-control:not([multiple]):not([size]),
.portal-page-theme.automations-page #automationProfileForm select.form-control:not([multiple]):not([size]) {
  height: auto;
  min-height: calc(1.8125rem + 2px);
  line-height: 1.5;
  padding-top: 0.35rem !important;
  padding-bottom: 0.35rem !important;
}
