/*
 * adns-compat-bs3.css — lot 0 de la migration de charte (mail-adns, web-adns)
 *
 * Genere par scripts/generer_compat_bs3.py a partir de inventaire/classes.csv. NE PAS EDITER A LA MAIN.
 * Objet : donner une regle, en mode Front, aux classes Bootstrap 3 / PixelAdmin que les gabarits
 *         mail-adns et web-adns emettent encore hors de toute branche Pixel (etat hybride, rapport 01 §8).
 * Couverture : 146 classes sur 257 sans regle en Front, soit 3903 occurrences sur 4212 (92.7 %).
 * Portee : aucune (production)
 * Chargement en production : apres front-dashboard-v211-overrides.css et adns-field.css, en mode Front
 *         seulement (binding frontDashboardModuleCSS ou ajout dans HeaderFooterApplicationBootstrap).
 * Les couleurs passent par les variables --bs-* : la charte proposee les recolore sans reecrire ces regles.
 * Toutes les regles sont en :where() (specificite nulle) : une classe Front l'emporte toujours.
 */

/* ---------- A. Utilitaires PixelAdmin (declarations recopiees de PixelAdmin 2.3.1) ---------- */
:where(.b-a-0) { border-width:0!important; }
:where(.b-a-1) { border-style:solid!important;border-width:1px!important; }
:where(.b-b-0) { border-bottom-width:0!important; }
:where(.b-b-1) { border-bottom-width:1px!important;border-bottom-style:solid!important; }
:where(.b-r-1) { border-right-style:solid!important; }
:where(.b-t-0) { border-top-width:0!important; }
:where(.b-x-0) { border-right-width:0!important;border-left-width:0!important; }
:where(.box) { background:#fff;display:table;height:100%;table-layout:fixed!important;width:100%;position:relative;overflow:hidden;margin-bottom:20px;border-radius:2px;z-index:1; }
:where(.box-cell) { float:none;position:relative;display:table-cell;overflow:hidden;padding:0;vertical-align:inherit;border-color:rgba(0,0,0,.05); }
:where(.box-container) { display:table;height:100%;table-layout:fixed!important;width:100%; }
:where(.box-row) { float:none;display:table-row;width:100%;padding:0;vertical-align:top; }
:where(.font-size-11) { font-size:11px!important; }
:where(.font-size-12) { font-size:12px!important; }
:where(.font-size-13) { font-size:13px!important; }
:where(.font-size-14) { font-size:14px!important; }
:where(.font-size-16) { font-size:16px!important; }
:where(.font-size-17) { font-size:17px!important; }
:where(.font-size-18) { font-size:18px!important; }
:where(.font-size-20) { font-size:20px!important; }
:where(.font-size-24) { font-size:24px!important; }
:where(.font-size-28) { font-size:28px!important; }
:where(.font-size-34) { font-size:34px!important; }
:where(.font-size-52) { font-size:52px!important; }
:where(.font-weight-bold) { font-weight:700!important; }
:where(.font-weight-normal) { font-weight:400!important; }
:where(.font-weight-semibold) { font-weight:600!important; }
:where(.m-a-0) { margin:0!important; }
:where(.m-a-2) { margin:15px!important; }
:where(.m-b-0) { margin-bottom:0!important; }
:where(.m-b-1) { margin-bottom:10px!important; }
:where(.m-b-2) { margin-bottom:15px!important; }
:where(.m-b-3) { margin-bottom:20px!important; }
:where(.m-l-1) { margin-left:10px!important; }
:where(.m-l-2) { margin-left:15px!important; }
:where(.m-l-3) { margin-left:20px!important; }
:where(.m-r-1) { margin-right:10px!important; }
:where(.m-r-2) { margin-right:15px!important; }
:where(.m-r-3) { margin-right:20px!important; }
:where(.m-t-0) { margin-top:0!important; }
:where(.m-t-1) { margin-top:10px!important; }
:where(.m-t-2) { margin-top:15px!important; }
:where(.m-t-3) { margin-top:20px!important; }
:where(.m-t-4) { margin-top:30px!important; }
:where(.m-x-1) { margin-right:10px!important;margin-left:10px!important; }
:where(.m-y-0) { margin-top:0!important;margin-bottom:0!important; }
:where(.m-y-1) { margin-top:10px!important;margin-bottom:10px!important; }
:where(.p-a-0) { padding:0!important; }
:where(.p-a-1) { padding:10px!important; }
:where(.p-a-2) { padding:15px!important; }
:where(.p-b-0) { padding-bottom:0!important; }
:where(.p-b-2) { padding-bottom:15px!important; }
:where(.p-l-1) { padding-left:10px!important; }
:where(.p-l-3) { padding-left:20px!important; }
:where(.p-r-1) { padding-right:10px!important; }
:where(.p-x-0) { padding-right:0!important;padding-left:0!important; }
:where(.p-x-1) { padding-right:10px!important;padding-left:10px!important; }
:where(.p-x-2) { padding-right:15px!important;padding-left:15px!important; }
:where(.p-x-3) { padding-right:20px!important;padding-left:20px!important; }
:where(.p-y-0) { padding-top:0!important;padding-bottom:0!important; }
:where(.p-y-1) { padding-top:10px!important;padding-bottom:10px!important; }
:where(.p-y-2) { padding-top:15px!important;padding-bottom:15px!important; }
:where(.p-y-3) { padding-top:20px!important;padding-bottom:20px!important; }
:where(.valign-bottom) { vertical-align:bottom!important; }
:where(.valign-middle) { vertical-align:middle!important; }
:where(.valign-top) { vertical-align:top!important; }
@media (max-width:543px) {
  :where(.hidden-xs) { display:none!important; }
}

/* ---------- Alignements et flottants (Bootstrap 3) ---------- */
:where(.text-right) { text-align: right !important; }
:where(.text-left) { text-align: left !important; }
:where(.pull-right) { float: right !important; }
:where(.pull-left) { float: left !important; }
:where(.pull-right > .dropdown-menu, .dropdown-menu.pull-right) { right: 0; left: auto; }

/* ---------- Formulaires ---------- */
:where(.form-group) { margin-bottom: 1rem; }
:where(.control-label) { display: inline-block; margin-bottom: .5rem; font-size: .875rem; color: var(--bs-gray-900, #1e2022); }
:where(.form-horizontal .form-group) {
  display: flex; flex-wrap: wrap;
  margin-left: calc(-.5 * var(--bs-gutter-x, 1.5rem)); margin-right: calc(-.5 * var(--bs-gutter-x, 1.5rem));
}
:where(.form-horizontal .form-group > [class*="col-"]) { padding-left: calc(.5 * var(--bs-gutter-x, 1.5rem)); padding-right: calc(.5 * var(--bs-gutter-x, 1.5rem)); }
@media (min-width: 576px) {
  :where(.form-horizontal .control-label) { margin-bottom: 0; padding-top: calc(.6125rem + .0625rem); text-align: right; }
}
:where(.form-control-static) { padding-top: calc(.6125rem + .0625rem); padding-bottom: calc(.6125rem + .0625rem); margin-bottom: 0; min-height: 2.6rem; color: var(--bs-gray-900, #1e2022); }
:where(.help-block) { display: block; margin-top: .25rem; margin-bottom: .5rem; font-size: .8125rem; color: var(--bs-gray-600, #8c98a4); }
:where(.checkbox, .radio) { display: block; margin: .5rem 0; }
:where(.checkbox label, .radio label) { display: inline-flex; align-items: center; gap: .5rem; margin: 0; cursor: pointer; }
:where(.form-inline) { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
:where(.form-inline .form-group) { display: inline-flex; align-items: center; gap: .5rem; margin-bottom: 0; }
:where(.input-group-btn) { display: flex; }
:where(.input-group-btn > .btn) { position: relative; z-index: 2; }
:where(.custom-control-indicator) { display: none; }

/* ---------- Panneaux (Bootstrap 3) traduits en cartes Front ---------- */
:where(.panel) {
  position: relative; display: flex; flex-direction: column; min-width: 0; margin-bottom: 1.5rem;
  background-color: var(--bs-body-bg, #fff);
  border: var(--bs-border-width, .0625rem) solid var(--bs-border-color, rgba(231,234,243,.7));
  border-radius: var(--bs-border-radius-lg, .75rem);
  box-shadow: 0 .375rem .75rem rgba(140,152,164,.075);
}
:where(.panel-heading) {
  padding: 1rem 1.3125rem; border-bottom: var(--bs-border-width, .0625rem) solid var(--bs-border-color, rgba(231,234,243,.7));
  border-top-left-radius: inherit; border-top-right-radius: inherit;
}
:where(.panel-title) { margin: 0; font-size: 1rem; font-weight: 600; color: var(--bs-gray-900, #1e2022); }
:where(.panel-title-icon) { display: inline-block; margin-right: .5rem; color: inherit; line-height: 1; }
:where(.panel-body) { flex: 1 1 auto; padding: 1.3125rem; }
:where(.panel-footer) {
  padding: 1rem 1.3125rem; border-top: var(--bs-border-width, .0625rem) solid var(--bs-border-color, rgba(231,234,243,.7));
  border-bottom-left-radius: inherit; border-bottom-right-radius: inherit;
}
:where(.panel.card) { display: flex; }   /* double classe « panel panel-default card » : la carte gagne */
:where(.thumbnail) {
  display: block; padding: .25rem; margin-bottom: 1rem; background-color: var(--bs-body-bg, #fff);
  border: var(--bs-border-width, .0625rem) solid var(--bs-border-color, rgba(231,234,243,.7)); border-radius: var(--bs-border-radius, .5rem);
}
:where(.note) {
  margin-bottom: 1rem; padding: 1rem 1.25rem; border-left: .1875rem solid var(--bs-gray-400, #bdc5d1);
  background: var(--bs-gray-100, #f9fafc); border-radius: 0 var(--bs-border-radius, .5rem) var(--bs-border-radius, .5rem) 0;
}
:where(.note-info) { border-left-color: var(--bs-info); background: rgba(var(--bs-info-rgb), .08); }
:where(.note-success) { border-left-color: var(--bs-success); background: rgba(var(--bs-success-rgb), .08); }
:where(.note-warning) { border-left-color: var(--bs-warning); background: rgba(var(--bs-warning-rgb), .12); }
:where(.note-danger) { border-left-color: var(--bs-danger); background: rgba(var(--bs-danger-rgb), .08); }
:where(.page-header-icon) { display: inline-block; margin-right: .625rem; font-size: 1.375rem; line-height: 1; }

/* ---------- Boutons (Bootstrap 3 / PixelAdmin) ---------- */
:where(.btn-default) {
  color: var(--bs-gray-700, #677788); background-color: var(--bs-body-bg, #fff);
  border: var(--bs-border-width, .0625rem) solid var(--bs-border-color, rgba(231,234,243,.7));
}
:where(.btn-default:hover, .btn-default:focus) { color: var(--bs-primary); box-shadow: 0 3px 6px -2px rgba(140,152,164,.25); }
:where(.btn.btn-outline) { background-color: transparent; }
:where(.btn.btn-outline.btn-primary) { color: var(--bs-primary); border-color: var(--bs-primary); }
:where(.btn.btn-outline.btn-success) { color: var(--bs-success); border-color: var(--bs-success); }
:where(.btn.btn-outline.btn-info) { color: var(--bs-info); border-color: var(--bs-info); }
:where(.btn.btn-outline.btn-warning) { color: var(--bs-warning); border-color: var(--bs-warning); }
:where(.btn.btn-outline.btn-danger) { color: var(--bs-danger); border-color: var(--bs-danger); }
:where(.btn.btn-outline.btn-default, .btn.btn-outline:not([class*="btn-primary"]):not([class*="btn-success"]):not([class*="btn-info"]):not([class*="btn-warning"]):not([class*="btn-danger"])) {
  color: var(--bs-gray-700, #677788); border-color: var(--bs-border-color, rgba(231,234,243,.7));
}
:where(.btn.btn-outline.btn-primary:hover) { color: #fff; background-color: var(--bs-primary); }
:where(.btn.btn-outline.btn-success:hover) { color: #fff; background-color: var(--bs-success); }
:where(.btn.btn-outline.btn-info:hover) { color: #fff; background-color: var(--bs-info); }
:where(.btn.btn-outline.btn-warning:hover) { color: #1e2022; background-color: var(--bs-warning); }
:where(.btn.btn-outline.btn-danger:hover) { color: #fff; background-color: var(--bs-danger); }
:where(.btn-label-icon) { display: inline-block; margin-right: .375rem; }
:where(.btn-label-icon.left) { margin-right: .375rem; float: none; }
:where(.btn-label-icon.right) { margin-left: .375rem; float: none; }
:where(.btn-block) { display: block; width: 100%; }
:where(.btn-rounded) { border-radius: 50rem !important; }

/* ---------- Etiquettes (label label-*) : rendues comme les badges Front ---------- */
:where(.label) {
  display: inline-block; padding: .35em .65em; font-size: .75em; font-weight: 600; line-height: 1;
  color: #fff; text-align: center; white-space: nowrap; vertical-align: baseline; border-radius: var(--bs-border-radius-sm, .3125rem);
  background-color: var(--bs-secondary);
}
:where(.label-primary) { background-color: var(--bs-primary); }
:where(.label-success) { background-color: var(--bs-success); }
:where(.label-info) { background-color: var(--bs-info); }
:where(.label-warning) { background-color: var(--bs-warning); color: #1e2022; }
:where(.label-danger) { background-color: var(--bs-danger); }
:where(.label-default) { background-color: var(--bs-secondary); }
:where(.label.badge) { padding: var(--bs-badge-padding-y, .35em) var(--bs-badge-padding-x, .65em); }

/* ---------- Grille AdnsAjaxGrid : classes maison definies seulement dans les feuilles Pixel ---------- */
:where(.ajaxGridTable > tbody > tr:hover > td, .ajaxGridTable > tr:hover > td) { background-color: rgba(var(--bs-primary-rgb), .035); }
:where(.ajaxGridSelectedRow > td) { background-color: rgba(var(--bs-primary-rgb), .07) !important; }
:where(.ajaxGridSelectedRow > td:first-child) { box-shadow: inset 3px 0 0 var(--bs-primary); }

/* ---------- Modificateurs Bootstrap 3 / 4 encore emis ---------- */
:where(.panel-default) { border-color: var(--bs-border-color, rgba(231,234,243,.7)); }
:where(.panel-wide) { width: 100%; }
:where(.text-ellipsis) { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
:where(.text-xs-center) { text-align: center !important; }
:where(.text-default) { color: var(--bs-body-color, #677788) !important; }
:where(.display-inline-block) { display: inline-block !important; }
:where(.col-xs-12) { flex: 0 0 auto; width: 100%; }
:where(.label-pill) { border-radius: 50rem; }
:where(.badge-primary) { background-color: var(--bs-primary); color: #fff; }
:where(.badge-info) { background-color: var(--bs-info); color: #fff; }
:where(.badge-warning) { background-color: var(--bs-warning); color: #1e2022; }
:where(.input-group-addon) {
  display: flex; align-items: center; padding: .6125rem 1rem; font-size: .875rem; color: var(--bs-gray-700, #677788);
  background-color: var(--bs-body-bg, #fff); border: var(--bs-border-width, .0625rem) solid var(--bs-border-color, rgba(231,234,243,.7));
}
:where(.has-error .form-control) { border-color: var(--bs-danger); }
:where(.has-error .control-label, .has-error .help-block) { color: var(--bs-danger); }
:where(.has-success .form-control) { border-color: var(--bs-success); }
:where(.has-success .control-label, .has-success .help-block) { color: var(--bs-success); }
:where(tr.success > td) { background-color: rgba(var(--bs-success-rgb), .08); }
:where(tr.warning > td) { background-color: rgba(var(--bs-warning-rgb), .14); }
:where(.navbar-default) { background-color: var(--bs-gray-100, #f9fafc); border: var(--bs-border-width, .0625rem) solid var(--bs-border-color, rgba(231,234,243,.7)); border-radius: var(--bs-border-radius, .5rem); }

/* ---------- Ajouts web-adns (inventaire du 04/10/2026) ---------- */
:where(.col-xs-1) { flex: 0 0 auto; width: 8.333333%; }
:where(.col-xs-2) { flex: 0 0 auto; width: 16.666667%; }
:where(.col-xs-3) { flex: 0 0 auto; width: 25%; }
:where(.col-xs-4) { flex: 0 0 auto; width: 33.333333%; }
:where(.col-xs-6) { flex: 0 0 auto; width: 50%; }
:where(.col-xs-8) { flex: 0 0 auto; width: 66.666667%; }
:where(.col-xs-9) { flex: 0 0 auto; width: 75%; }
:where(.col-xs-10) { flex: 0 0 auto; width: 83.333333%; }
:where(.col-xs-11) { flex: 0 0 auto; width: 91.666667%; }
:where(.panel-heading-controls) { float: right; display: flex; align-items: center; gap: .5rem; }
:where(.panel-info) { border-color: rgba(var(--bs-info-rgb), .35); }
:where(.panel-info > .panel-heading) { background-color: rgba(var(--bs-info-rgb), .08); }
:where(.panel-danger) { border-color: rgba(var(--bs-danger-rgb), .35); }
:where(.panel-danger > .panel-heading) { background-color: rgba(var(--bs-danger-rgb), .08); }
:where(.well) {
  min-height: 1.25rem; padding: 1rem; margin-bottom: 1rem; background-color: var(--bs-gray-100, #f9fafc);
  border: var(--bs-border-width, .0625rem) solid var(--bs-border-color, rgba(231,234,243,.7)); border-radius: var(--bs-border-radius, .5rem);
}
:where(.media) { display: flex; align-items: flex-start; }
:where(.media-left) { padding-right: .75rem; }
:where(.media-body) { flex: 1 1 auto; min-width: 0; }
:where(.img-circle) { border-radius: 50%; }
:where(.navbar-right) { margin-left: auto; }

/* ---------- Divers ---------- */
:where(.navbar-header) { display: flex; align-items: center; }
:where(.divider) { height: 0; margin: .5rem 0; overflow: hidden; border-top: var(--bs-border-width, .0625rem) solid var(--bs-border-color, rgba(231,234,243,.7)); }

/* ---------- Decalages de colonnes Bootstrap 3 (col-*-offset-N), aux paliers Bootstrap 5 ---------- */
@media (min-width: 576px) {
  :where(.col-sm-offset-2) { margin-left: 16.666667%; }
  :where(.col-sm-offset-3) { margin-left: 25.000000%; }
}
@media (min-width: 768px) {
  :where(.col-md-offset-1) { margin-left: 8.333333%; }
  :where(.col-md-offset-2) { margin-left: 16.666667%; }
  :where(.col-md-offset-3) { margin-left: 25.000000%; }
  :where(.col-md-offset-4) { margin-left: 33.333333%; }
}
@media (min-width: 992px) {
  :where(.col-lg-offset-2) { margin-left: 16.666667%; }
}
