/* Thème Trialogue pour Tryton (sao) — généré par make_theme.py
   Couleur de marque : #3949a0
   Pour changer de couleur, relancer le script plutôt que de
   modifier ce fichier à la main. */

/* ==========================================================================
   1. Palette (teintes sao recalculées)
   ========================================================================== */
a {
  color: #3949a0;
}
a:hover,
a:focus {
  color: #1f2857;
}
.text-primary {
  color: #3949a0;
}
a.text-primary:hover,
a.text-primary:focus {
  color: #273270;
}
.bg-primary {
  background-color: #3949a0;
}
a.bg-primary:hover,
a.bg-primary:focus {
  background-color: #273270;
}
.form-control:focus {
  border-color: #7785ce;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(119, 133, 206, 0.6);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(119, 133, 206, 0.6);
}
.btn-primary {
  background-color: #3949a0;
  border-color: #303e87;
}
.btn-primary:focus,
.btn-primary.focus {
  background-color: #273270;
  border-color: #05060f;
}
.btn-primary:hover {
  background-color: #273270;
  border-color: #1b234e;
}
.btn-primary:active,
.btn-primary.active,
.open > .dropdown-toggle.btn-primary {
  background-color: #273270;
  border-color: #1b234e;
}
.btn-primary:active:hover,
.btn-primary.active:hover,
.open > .dropdown-toggle.btn-primary:hover,
.btn-primary:active:focus,
.btn-primary.active:focus,
.open > .dropdown-toggle.btn-primary:focus,
.btn-primary:active.focus,
.btn-primary.active.focus,
.open > .dropdown-toggle.btn-primary.focus {
  background-color: #1b234e;
  border-color: #05060f;
}
.btn-primary.disabled:hover,
.btn-primary[disabled]:hover,
fieldset[disabled] .btn-primary:hover,
.btn-primary.disabled:focus,
.btn-primary[disabled]:focus,
fieldset[disabled] .btn-primary:focus,
.btn-primary.disabled.focus,
.btn-primary[disabled].focus,
fieldset[disabled] .btn-primary.focus {
  background-color: #3949a0;
  border-color: #303e87;
}
.btn-primary .badge {
  color: #3949a0;
}
.btn-info {
  background-color: #8a93c5;
  border-color: #7b85be;
}
.btn-info:focus,
.btn-info.focus {
  background-color: #6d79b7;
  border-color: #414b84;
}
.btn-info:hover {
  background-color: #6d79b7;
  border-color: #5966ad;
}
.btn-info:active,
.btn-info.active,
.open > .dropdown-toggle.btn-info {
  background-color: #6d79b7;
  border-color: #5966ad;
}
.btn-info:active:hover,
.btn-info.active:hover,
.open > .dropdown-toggle.btn-info:hover,
.btn-info:active:focus,
.btn-info.active:focus,
.open > .dropdown-toggle.btn-info:focus,
.btn-info:active.focus,
.btn-info.active.focus,
.open > .dropdown-toggle.btn-info.focus {
  background-color: #5966ad;
  border-color: #414b84;
}
.btn-info.disabled:hover,
.btn-info[disabled]:hover,
fieldset[disabled] .btn-info:hover,
.btn-info.disabled:focus,
.btn-info[disabled]:focus,
fieldset[disabled] .btn-info:focus,
.btn-info.disabled.focus,
.btn-info[disabled].focus,
fieldset[disabled] .btn-info.focus {
  background-color: #8a93c5;
  border-color: #7b85be;
}
.btn-info .badge {
  color: #8a93c5;
}
.btn-link {
  color: #3949a0;
}
.btn-link:hover,
.btn-link:focus {
  color: #1f2857;
}
.dropdown-menu > .active > a,
.dropdown-menu > .active > a:hover,
.dropdown-menu > .active > a:focus {
  background-color: #3949a0;
}
.nav .open > a,
.nav .open > a:hover,
.nav .open > a:focus {
  border-color: #3949a0;
}
.nav-pills > li.active > a,
.nav-pills > li.active > a:hover,
.nav-pills > li.active > a:focus {
  background-color: #3949a0;
}
.navbar-inverse {
  background-color: #3949a0;
  border-color: #273270;
}
.navbar-inverse .navbar-brand {
  color: #8894d4;
}
.navbar-inverse .navbar-nav > li > a {
  color: #8894d4;
}
.navbar-inverse .navbar-nav > .active > a,
.navbar-inverse .navbar-nav > .active > a:hover,
.navbar-inverse .navbar-nav > .active > a:focus {
  background-color: #273270;
}
.navbar-inverse .navbar-nav > .open > a,
.navbar-inverse .navbar-nav > .open > a:hover,
.navbar-inverse .navbar-nav > .open > a:focus {
  background-color: #273270;
}
@media (max-width: 767px) {
.navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {
  border-color: #273270;
}
}
@media (max-width: 767px) {
.navbar-inverse .navbar-nav .open .dropdown-menu .divider {
  background-color: #273270;
}
}
@media (max-width: 767px) {
.navbar-inverse .navbar-nav .open .dropdown-menu > li > a {
  color: #8894d4;
}
}
@media (max-width: 767px) {
.navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,
.navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,
.navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {
  background-color: #273270;
}
}
.navbar-inverse .navbar-collapse,
.navbar-inverse .navbar-form {
  border-color: #2d397e;
}
.navbar-inverse .navbar-link {
  color: #8894d4;
}
.navbar-inverse .btn-link {
  color: #8894d4;
}
.pagination > li > a,
.pagination > li > span {
  color: #3949a0;
}
.pagination > li > a:hover,
.pagination > li > span:hover,
.pagination > li > a:focus,
.pagination > li > span:focus {
  color: #1f2857;
}
.pagination > .active > a,
.pagination > .active > span,
.pagination > .active > a:hover,
.pagination > .active > span:hover,
.pagination > .active > a:focus,
.pagination > .active > span:focus {
  background-color: #3949a0;
  border-color: #3949a0;
}
.label-primary {
  background-color: #3949a0;
}
.label-primary[href]:hover,
.label-primary[href]:focus {
  background-color: #273270;
}
.label-info {
  background-color: #8a93c5;
}
.label-info[href]:hover,
.label-info[href]:focus {
  background-color: #6d79b7;
}
.list-group-item.active > .badge,
.nav-pills > .active > a > .badge {
  color: #3949a0;
}
a.thumbnail:hover,
a.thumbnail:focus,
a.thumbnail.active {
  border-color: #3949a0;
}
.progress-bar {
  background-color: #3949a0;
}
.progress-bar-info {
  background-color: #8a93c5;
}
.list-group-item.active,
.list-group-item.active:hover,
.list-group-item.active:focus {
  background-color: #3949a0;
  border-color: #3949a0;
}
.list-group-item.active .list-group-item-text,
.list-group-item.active:hover .list-group-item-text,
.list-group-item.active:focus .list-group-item-text {
  color: #a8b0e0;
}
.panel-default > .panel-heading {
  background-color: #3949a0;
}
.panel-default > .panel-heading .badge {
  color: #3949a0;
}
.panel-primary {
  border-color: #3949a0;
}
.panel-primary > .panel-heading {
  background-color: #3949a0;
  border-color: #3949a0;
}
.panel-primary > .panel-heading + .panel-collapse > .panel-body {
  border-top-color: #3949a0;
}
.panel-primary > .panel-heading .badge {
  color: #3949a0;
}
.panel-primary > .panel-footer + .panel-collapse > .panel-body {
  border-bottom-color: #3949a0;
}
html[theme="default"] .btn-primary:focus,
html[theme="default"] .btn-primary:hover,
html[theme="default"] .btn-primary:active:hover {
  background-color: #2e3c82;
}
html[theme="default"] .btn-primary:active {
  background-color: #242e66;
  background-image: -webkit-radial-gradient(circle, #242e66 10%, #3949a0 11%);
  background-image: radial-gradient(circle, #242e66 10%, #3949a0 11%);
}
html[theme="default"] .btn-info:focus,
html[theme="default"] .btn-info:hover,
html[theme="default"] .btn-info:active:hover {
  background-color: #7983bd;
}
html[theme="default"] .btn-info:active {
  background-color: #6672b4;
  background-image: -webkit-radial-gradient(circle, #6672b4 10%, #8a93c5 11%);
  background-image: radial-gradient(circle, #6672b4 10%, #8a93c5 11%);
}
html[theme="default"] textarea:focus,
html[theme="default"] textarea.form-control:focus,
html[theme="default"] input.form-control:focus,
html[theme="default"] input[type=text]:focus,
html[theme="default"] input[type=password]:focus,
html[theme="default"] input[type=email]:focus,
html[theme="default"] input[type=number]:focus,
html[theme="default"] [type=text].form-control:focus,
html[theme="default"] [type=password].form-control:focus,
html[theme="default"] [type=email].form-control:focus,
html[theme="default"] [type=tel].form-control:focus,
html[theme="default"] [contenteditable].form-control:focus {
  -webkit-box-shadow: inset 0 -2px 0 #3949a0;
  box-shadow: inset 0 -2px 0 #3949a0;
}
html[theme="default"] select:focus,
html[theme="default"] select.form-control:focus {
  -webkit-box-shadow: inset 0 -2px 0 #3949a0;
  box-shadow: inset 0 -2px 0 #3949a0;
}
html[theme="default"] input[type="radio"]:focus:after,
html[theme="default"] .radio input[type="radio"]:focus:after,
html[theme="default"] .radio-inline input[type="radio"]:focus:after {
  border-color: #8a93c5 !important;
}
html[theme="default"] input[type="radio"]:before,
html[theme="default"] .radio input[type="radio"]:before,
html[theme="default"] .radio-inline input[type="radio"]:before {
  background-color: #3949a0;
}
html[theme="default"] input[type="radio"]:checked:after,
html[theme="default"] .radio input[type="radio"]:checked:after,
html[theme="default"] .radio-inline input[type="radio"]:checked:after {
  border-color: #3949a0;
}
html[theme="default"] input[type="checkbox"]:focus:after,
html[theme="default"] .checkbox input[type="checkbox"]:focus:after,
html[theme="default"] .checkbox-inline input[type="checkbox"]:focus:after {
  border-color: #8a93c5 !important;
}
html[theme="default"] input[type="checkbox"]:checked:after,
html[theme="default"] .checkbox input[type="checkbox"]:checked:after,
html[theme="default"] .checkbox-inline input[type="checkbox"]:checked:after,
html[theme="default"] input[type="checkbox"]:indeterminate:after,
html[theme="default"] .checkbox input[type="checkbox"]:indeterminate:after,
html[theme="default"] .checkbox-inline input[type="checkbox"]:indeterminate:after {
  background-color: #3949a0;
  border-color: #3949a0;
}
html[theme="default"] .nav-tabs > li > a:hover,
html[theme="default"] .nav-tabs > li > a:focus:hover {
  -webkit-box-shadow: inset 0 -2px 0 #3949a0;
  box-shadow: inset 0 -2px 0 #3949a0;
  color: #3949a0;
}
html[theme="default"] .nav-tabs > li.active > a,
html[theme="default"] .nav-tabs > li.active > a:focus {
  -webkit-box-shadow: inset 0 -2px 0 #3949a0;
  box-shadow: inset 0 -2px 0 #3949a0;
  color: #3949a0;
}
html[theme="default"] .nav-tabs > li.active > a:hover,
html[theme="default"] .nav-tabs > li.active > a:focus:hover {
  color: #3949a0;
}
html[theme="default"] .alert-info {
  background-color: #8a93c5;
}
html[theme="default"] .progress-bar:last-child:before {
  background-color: #97a2da;
}
.navbar-inverse .close {
  color: #8894d4;
}
.navbar-inverse .active .close,
.navbar-inverse .active .close:hover,
.navbar-inverse .active .close:focus {
  background-color: #273270;
}
.modal-header {
  background-color: #3949a0;
}
.list-group-item-selected {
  color: #7785ce;
  background-color: #c8ceeb;
}
a.list-group-item-selected,
button.list-group-item-selected {
  color: #7785ce;
}
a.list-group-item-selected:hover,
button.list-group-item-selected:hover,
a.list-group-item-selected:focus,
button.list-group-item-selected:focus {
  color: #7785ce;
  background-color: #b8bfe6;
}
a.list-group-item-selected.active,
button.list-group-item-selected.active,
a.list-group-item-selected.active:hover,
button.list-group-item-selected.active:hover,
a.list-group-item-selected.active:focus,
button.list-group-item-selected.active:focus {
  background-color: #7785ce;
  border-color: #7785ce;
}
.table > thead > tr > td.selected,
.table > tbody > tr > td.selected,
.table > tfoot > tr > td.selected,
.table > thead > tr > th.selected,
.table > tbody > tr > th.selected,
.table > tfoot > tr > th.selected,
.table > thead > tr.selected > td,
.table > tbody > tr.selected > td,
.table > tfoot > tr.selected > td,
.table > thead > tr.selected > th,
.table > tbody > tr.selected > th,
.table > tfoot > tr.selected > th {
  background-color: #c8ceeb;
}
.table-hover > tbody > tr > td.selected:hover,
.table-hover > tbody > tr > th.selected:hover,
.table-hover > tbody > tr.selected:hover > td,
.table-hover > tbody > tr:hover > .selected,
.table-hover > tbody > tr.selected:hover > th {
  background-color: #b8bfe6;
}
html.accesskey *[accesskey] ~ span[data-accesskey]:after,
html.accesskey *[accesskey]:after {
  background-color: #8a93c5;
}

/* ==========================================================================
   2. Finitions
   ========================================================================== */
:root {
  --tl-brand: #3949a0;
  --tl-brand-dark: #293573;
  --tl-brand-soft: #edeef8;
  --tl-line: #d1d4e5;
  --tl-focus: rgba(57, 73, 160, 0.25);
  --tl-focus-strong: rgba(57, 73, 160, 0.6);
  --tl-radius: 6px;
}

/* Fond général légèrement teinté, panneaux blancs bien détachés */
html[theme] body,
html[theme] #tabs,
html[theme] .tab-content {
  background-color: #f6f7fb;
}
html[theme] .panel,
html[theme] .tab-form .panel {
  border-radius: var(--tl-radius);
  border-color: var(--tl-line);
  box-shadow: 0 1px 3px rgba(20, 30, 70, 0.08);
}
html[theme] .panel > .panel-heading {
  border-top-left-radius: var(--tl-radius);
  border-top-right-radius: var(--tl-radius);
}

/* Barre du haut : un peu plus sombre que la marque, titre affirmé */
html[theme] .navbar-static-top.navbar-inverse {
  background-color: var(--tl-brand-dark);
  border-color: var(--tl-brand-dark);
}
html[theme] .navbar-static-top .navbar-brand,
html[theme] .navbar-static-top .navbar-brand:hover,
html[theme] .navbar-static-top .navbar-brand:focus {
  color: #fff;
  font-weight: 600;
  letter-spacing: 0.02em;
}

/* Menu de gauche */
html[theme] #menu {
  background-color: #fff;
  border-right: 1px solid var(--tl-line);
}

/* Séparateurs de formulaire = titres de section */
html[theme] .form-separator label,
html[theme] .form-separator > label {
  color: var(--tl-brand);
  font-weight: 600;
  font-size: 0.85em;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
html[theme] .form-separator hr {
  border-top: 2px solid var(--tl-line);
  margin-top: 2px;
}

/* Onglets de notebook : soulignement épais sur l'onglet actif */
html[theme] .form .nav-tabs > li.active > a,
html[theme] .form .nav-tabs > li.active > a:hover,
html[theme] .form .nav-tabs > li.active > a:focus {
  color: var(--tl-brand);
  font-weight: 600;
  border-bottom: 3px solid var(--tl-brand);
}

/* Listes : en-têtes discrets, survol et zébrage doux */
html[theme] .treeview > table > thead > tr > th {
  background-color: var(--tl-brand-soft);
  color: #2b2f3a;
  font-weight: 600;
  border-bottom: 2px solid var(--tl-line);
}
/* (les lignes et cellules colorées par le module gardent leur couleur) */
html[theme] .treeview > table > tbody > tr:nth-child(even):not(.success):not(.warning):not(.danger) > td:not(.success):not(.warning):not(.danger) {
  background-color: #fafbfe;
}
html[theme] .treeview > table > tbody > tr:hover:not(.success):not(.warning):not(.danger) > td:not(.success):not(.warning):not(.danger) {
  background-color: var(--tl-brand-soft);
}

/* Boutons un peu plus doux */
html[theme] .btn {
  border-radius: var(--tl-radius);
}
html[theme] .modal-content {
  border-radius: calc(var(--tl-radius) * 1.5);
  overflow: hidden;
}

/* ==========================================================================
   3. Confort de lecture (écrans d'accueil, utilisateurs peu à l'aise)
   ========================================================================== */
html[theme] body {
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue",
    Arial, sans-serif;
  font-size: 16px;
  color: #1f2330;
  -webkit-font-smoothing: antialiased;
}

/* Libellés lisibles : pas d'italique, contraste fort */
html[theme] .form label,
html[theme] .board label {
  font-size: 15px;
  font-style: normal;
  font-weight: 500;
  color: #3a4050;
}
html[theme] .form label.editable,
html[theme] .board label.editable,
html[theme] .treeview label.editable {
  font-style: normal;
}
/* Champ obligatoire : libellé en gras + astérisque rouge */
html[theme] .form label.required,
html[theme] .board label.required {
  font-weight: 700;
  color: #1f2330;
}
html[theme] .form label.required::after {
  content: " *";
  color: #c62828;
  font-weight: 700;
}

/* Champs en vraies cases, bien visibles et assez hautes */
html[theme] .form input.form-control:not([type=checkbox]):not([type=radio]),
html[theme] .form textarea.form-control,
html[theme] .form [contenteditable].form-control {
  min-height: 40px;
  font-size: 16px;
  background-color: #fff;
  border: 1px solid #c3c8d6;
  border-radius: var(--tl-radius);
  box-shadow: none;
  padding: 6px 10px;
}
html[theme] .form select.form-control.form-control:not([multiple]) {
  min-height: 40px;
  font-size: 16px;
  background-color: #fff;
  box-shadow: none;
  border: 1px solid #c3c8d6;
  border-radius: var(--tl-radius);
  padding: 6px 28px 6px 10px;
}
html[theme] .form input.form-control:focus,
html[theme] .form select.form-control:focus,
html[theme] .form textarea.form-control:focus {
  border-color: var(--tl-brand);
  box-shadow: 0 0 0 3px var(--tl-focus);
  outline: none;
}
html[theme] .form input.form-control[readonly],
html[theme] .form textarea.form-control[readonly] {
  background-color: #f1f3f8;
  border-color: #e1e4ec;
  color: #4a5060;
}
/* Champ en erreur : bordure rouge bien nette */
html[theme] .form .has-error input.form-control,
html[theme] .form .has-error select.form-control {
  border-color: #c62828;
  box-shadow: 0 0 0 3px rgba(198, 40, 40, 0.15);
}
/* Icônes dans les champs (recherche, calendrier, effacer…) */
html[theme] .form .input-group.input-icon-primary > input.form-control,
html[theme] .form .input-icon.input-icon-primary > input.form-control {
  padding-left: 40px;
}
html[theme] .form .input-group.input-icon-secondary > input.form-control,
html[theme] .form .input-icon.input-icon-secondary > input.form-control {
  padding-right: 40px;
}
html[theme] .form .input-icon > .icon-secondary {
  right: 0;
  left: auto;
}
html[theme] .form .input-icon > .icon-primary {
  left: 0;
  right: auto;
}
html[theme] .form .input-icon .icon-input {
  width: 40px;
  height: 40px;
  line-height: 40px;
}
/* Dates et heures : assez larges pour la valeur + l'icône */
html[theme] .form .form-date input.form-control,
html[theme] .form .form-datetime input.form-control {
  min-width: 155px;
}
html[theme] .form .form-time input.form-control {
  min-width: 110px;
}
/* Icônes accolées aux champs (recherche, calendrier…) */
html[theme] .form .input-group-btn > .btn {
  min-height: 40px;
}

/* Libellés sur fond de couleur (titres de listes) et titres de section */
html[theme] .form .panel-heading label,
html[theme] .form .panel-heading .title {
  color: #fff;
  font-weight: 600;
}
html[theme] .form .form-separator label {
  color: var(--tl-brand);
  font-weight: 700;
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
/* Pas d'astérisque dans les en-têtes de colonnes */
html[theme] .form .treeview label.required::after,
html[theme] .form th label.required::after {
  content: none;
}
/* Cases à cocher plus grandes */
html[theme] .form input[type=checkbox] {
  width: 20px;
  height: 20px;
  accent-color: var(--tl-brand);
}

/* Grands boutons, faciles à viser */
html[theme] .btn {
  min-height: 40px;
  font-size: 15px;
  font-weight: 600;
  padding: 8px 16px;
}
html[theme] .modal-footer .btn {
  min-height: 46px;
  min-width: 130px;
  font-size: 16px;
}
html[theme] .modal-footer .btn-primary {
  box-shadow: 0 4px 12px var(--tl-focus);
}

/* Assistant : fenêtre plus large, titre plus grand */
@media (min-width: 768px) {
  html[theme] .modal-dialog {
    width: min(940px, 94vw);
  }
}
html[theme] .modal-header .modal-title {
  font-size: 22px;
  font-weight: 600;
}
html[theme] .modal-body {
  padding: 16px 24px;
}
/* Dans les fenêtres, champs un peu moins hauts pour éviter de défiler */
html[theme] .modal .form input.form-control:not([type=checkbox]):not([type=radio]),
html[theme] .modal .form select.form-control.form-control:not([multiple]) {
  min-height: 38px;
  height: 38px;
}

/* Listes : lignes plus hautes, texte plus grand */
html[theme] .treeview > table > tbody > tr > td {
  font-size: 15px;
  padding-top: 9px;
  padding-bottom: 9px;
  vertical-align: middle;
}
html[theme] .treeview > table > thead > tr > th {
  font-size: 14px;
  padding-top: 10px;
  padding-bottom: 10px;
}

/* Menu de gauche aéré */
html[theme] #menu .treeview > table > tbody > tr > td {
  font-size: 16px;
  padding-top: 10px;
  padding-bottom: 10px;
  border: none;
}
html[theme] #menu .treeview > table > tbody > tr.selected > td,
html[theme] #menu .treeview > table > tbody > tr:hover > td {
  background-color: var(--tl-brand-soft);
}

/* Onglets plus grands */
html[theme] .nav-tabs > li > a {
  font-size: 16px;
  padding: 10px 18px;
}

/* Calendrier : jour courant discret, heures fermées grisées */
html[theme] .fc-unthemed td.fc-today,
html[theme] .fc td.fc-today {
  background-color: var(--tl-brand-soft);
}
html[theme] .fc .fc-nonbusiness {
  background-color: #eceef3;
}
html[theme] .fc-event {
  border-radius: 4px;
  font-size: 13px;
}

/* Focus clavier toujours visible */
html[theme] a:focus-visible,
html[theme] button:focus-visible,
html[theme] .btn:focus-visible {
  outline: 3px solid var(--tl-focus-strong);
  outline-offset: 2px;
}

/* Barre du haut : léger dégradé */
html[theme] .navbar-static-top.navbar-inverse {
  background-image: linear-gradient(90deg, var(--tl-brand-dark), var(--tl-brand));
}
