/*
 * Keypass — habillage KAIMAN pour TeamPass 3.
 *
 * Ce fichier est le point d'extension prévu par TeamPass (public/assets/css/custom.css) :
 * il est chargé après les styles d'origine et n'est jamais remplacé par une mise à jour.
 * Le retirer suffit à retrouver l'apparence d'origine. Aucun fichier de TeamPass n'est modifié.
 *
 * Repères repris du site kaiman.fr : vert #A0DC3C, encre #0B1620, fond papier #F5F6F2,
 * police Geist, coins très arrondis, boutons en pilule.
 */

@font-face { font-family: "Geist"; src: url("./geist-latin-wght-normal.woff2") format("woff2"); font-weight: 100 900; font-style: normal; font-display: swap; }
@font-face { font-family: "Geist Mono"; src: url("./geist-mono-latin-wght-normal.woff2") format("woff2"); font-weight: 100 900; font-style: normal; font-display: swap; }

:root {
  --k-brand: #A0DC3C; --k-brand-hover: #8EC439; --k-brand-ink: #3D6B14; --k-brand-deep: #2C4F0D; --k-brand-tint: #F1FAE2; --k-brand-tint-2: #E6F6CC;
  --k-night: #0B1620; --k-night-2: #132230; --k-ink: #0B1620; --k-ink-soft: #132230; --k-text: #1C2833; --k-body: #2F3B45; --k-muted: #5E6A74;
  --k-paper: #F5F6F2; --k-stone: #ECEFE8; --k-hover: #EDF0E8; --k-line: #E1E6DD; --k-line-2: #D5DBD1; --k-white: #FFFFFF;
  --k-danger: #B42318; --k-danger-tint: #FDECEA; --k-warn: #A5561F; --k-warn-tint: #FCF2E9; --k-info: #2C5F8A; --k-info-tint: #EDF3F9;
  --k-radius: 14px; --k-radius-lg: 20px; --k-radius-xl: 28px;
  --k-shadow: 0 1px 2px rgba(11, 22, 32, .04), 0 12px 32px -20px rgba(11, 22, 32, .28);
  --k-focus: 0 0 0 4px rgba(160, 220, 60, .32);
  --k-font: "Geist", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  --k-mono: "Geist Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;
}

/* ------------------------------------------------------------------ Base */
body, .content-wrapper, .main-footer, .main-header, .main-sidebar, .modal, .dropdown-menu, .btn, .form-control, .card, .nav-link, .jstree, .select2-container, .toast, .alertify, h1, h2, h3, h4, h5, h6, input, select, textarea, button {
  font-family: var(--k-font) !important; letter-spacing: -.005em;
}
body { color: var(--k-text); -webkit-font-smoothing: antialiased; font-feature-settings: "ss01"; }
body:not(.dark-mode), body:not(.dark-mode) .content-wrapper, body:not(.dark-mode) .wrapper { background: var(--k-paper) !important; }
a { color: var(--k-brand-ink); }
a:hover { color: var(--k-ink); text-decoration: none; }
::selection { background: var(--k-brand-tint-2); color: var(--k-ink); }
* { scrollbar-width: thin; scrollbar-color: var(--k-line-2) transparent; }

/* ------------------------------------------------------------------ Connexion */
html, body.login-page { height: auto; min-height: 100vh; }
body.login-page { padding: 48px 16px; background: var(--k-night) !important; background-image: radial-gradient(900px 520px at 12% 8%, rgba(160, 220, 60, .16), transparent 60%), radial-gradient(700px 480px at 92% 96%, rgba(160, 220, 60, .10), transparent 62%) !important; min-height: 100vh; display: flex; align-items: center; justify-content: center; }
.login-page .login-box { width: min(440px, calc(100vw - 32px)); margin: 0 auto; }
.login-page .login-logo { margin-bottom: 28px; font-size: 0; color: transparent; display: flex; align-items: center; justify-content: center; gap: 14px; }
.login-page .login-logo img, .login-page .login-logo > div { display: none !important; }
.login-page .login-logo::before { content: "K"; width: 52px; height: 52px; border-radius: 16px; background: var(--k-brand); color: var(--k-night); font: 700 28px/52px var(--k-font); text-align: center; box-shadow: 0 12px 30px -10px rgba(160, 220, 60, .6); }
.login-page .login-logo::after { content: "Keypass"; color: #fff; font: 600 30px/1 var(--k-font); letter-spacing: -.03em; }
.login-page .login-box > .card { border: 0; border-radius: var(--k-radius-xl); box-shadow: 0 40px 80px -30px rgba(0, 0, 0, .6); overflow: hidden; background: #fff; }
.login-page .card-header { background: transparent; border: 0 !important; padding: 32px 36px 0; text-align: left !important; }
.login-page .card-header h3 { font-size: 22px; font-weight: 600; letter-spacing: -.02em; color: var(--k-ink); margin: 0; }
.login-page .card-header::after { content: "Gestionnaire de mots de passe de l'équipe KAIMAN"; display: block; margin-top: 6px; font-size: 14px; color: var(--k-muted); }
.login-page .card-body { padding: 24px 36px 34px; }
.login-page .input-group { margin-bottom: 12px !important; }
.login-page .input-group-text { background: var(--k-paper); border: 1px solid var(--k-line); border-right: 0; border-radius: 14px 0 0 14px; color: var(--k-muted); width: 48px; justify-content: center; }
.login-page .form-control { height: 50px; border: 1px solid var(--k-line); border-left: 0; border-radius: 0 14px 14px 0 !important; font-size: 15px; background: var(--k-paper); color: var(--k-ink); }
.login-page .form-control:focus { background: #fff; border-color: var(--k-brand-hover); box-shadow: none; }
.login-page .input-group:focus-within .input-group-text { border-color: var(--k-brand-hover); background: #fff; color: var(--k-brand-ink); }
.login-page .input-group:focus-within { border-radius: 14px; box-shadow: var(--k-focus); }
.login-page .row.mt-5 { margin-top: 22px !important; }
.login-page #but_identify_user { height: 52px; font-size: 15.5px; border-radius: 999px !important; }
.login-page .login-box > .card > .card-body:not(.hidden) ~ .card-body { border-top: 1px solid var(--k-line); }
.login-page .login-box::after { content: "Outil interne · accès réservé à l'équipe KAIMAN"; display: block; text-align: center; margin-top: 22px; color: rgba(255, 255, 255, .45); font-size: 12.5px; }

/* ------------------------------------------------------------------ Boutons */
.btn { border-radius: 999px; font-weight: 600; font-size: 14px; padding: .5rem 1.05rem; border-width: 1px; box-shadow: none !important; transition: background .15s, border-color .15s, color .15s, transform .05s; }
.btn:active { transform: translateY(1px); }
.btn-sm { padding: .32rem .75rem; font-size: 13px; }
.btn-xs { border-radius: 999px; }
.btn:focus, .btn.focus { box-shadow: var(--k-focus) !important; }
.btn-primary, .btn-info, .btn-success, .bg-primary.btn, .btn-primary:not(:disabled):not(.disabled).active { background: var(--k-brand) !important; border-color: var(--k-brand) !important; color: var(--k-night) !important; }
.btn-primary:hover, .btn-info:hover, .btn-success:hover { background: var(--k-brand-hover) !important; border-color: var(--k-brand-hover) !important; color: var(--k-night) !important; }
.btn-default, .btn-secondary, .btn-light, .btn-outline-secondary, .btn-outline-primary, .btn-outline-info { background: #fff !important; border-color: var(--k-line-2) !important; color: var(--k-text) !important; }
.btn-default:hover, .btn-secondary:hover, .btn-light:hover, .btn-outline-secondary:hover, .btn-outline-primary:hover, .btn-outline-info:hover { background: var(--k-hover) !important; border-color: var(--k-line-2) !important; color: var(--k-ink) !important; }
.btn-dark { background: var(--k-night) !important; border-color: var(--k-night) !important; color: #fff !important; }
.btn-danger { background: var(--k-danger) !important; border-color: var(--k-danger) !important; color: #fff !important; }
.btn-warning { background: #F4D6BC !important; border-color: #F4D6BC !important; color: #6b3610 !important; }
.btn-group > .btn { border-radius: 999px; }
.btn-group > .btn:not(:last-child):not(.dropdown-toggle) { border-top-right-radius: 0; border-bottom-right-radius: 0; }
.btn-group > .btn:not(:first-child) { border-top-left-radius: 0; border-bottom-left-radius: 0; }
.input-group-append .btn, .input-group-prepend .btn { border-radius: 0 12px 12px 0; }
.input-group-prepend .btn { border-radius: 12px 0 0 12px; }

/* ------------------------------------------------------------------ Champs */
.form-control, .custom-select, .select2-container--bootstrap4 .select2-selection { border-radius: 12px; border-color: var(--k-line-2); color: var(--k-ink); font-size: 14.5px; min-height: 40px; }
.form-control:focus, .custom-select:focus, .select2-container--bootstrap4.select2-container--focus .select2-selection { border-color: var(--k-brand-hover) !important; box-shadow: var(--k-focus) !important; }
.input-group > .form-control:not(:last-child) { border-top-right-radius: 0; border-bottom-right-radius: 0; }
.input-group > .form-control:not(:first-child) { border-top-left-radius: 0; border-bottom-left-radius: 0; }
.input-group-text { border-color: var(--k-line-2); background: var(--k-paper); color: var(--k-muted); border-radius: 12px; }
label { font-weight: 600; font-size: 13.5px; color: var(--k-text); }
.select2-dropdown { border-color: var(--k-line-2); border-radius: 12px; overflow: hidden; box-shadow: var(--k-shadow); }
.select2-container--bootstrap4 .select2-results__option--highlighted, .select2-container--bootstrap4 .select2-results__option--highlighted[aria-selected] { background: var(--k-brand-tint-2); color: var(--k-ink); }
.custom-control-input:checked ~ .custom-control-label::before { background: var(--k-brand); border-color: var(--k-brand); }

/* ------------------------------------------------------------------ Menu latéral */
.main-sidebar, .main-sidebar.sidebar-dark-primary { background: var(--k-night) !important; box-shadow: none !important; }
.main-sidebar .brand-link { border-bottom: 1px solid rgba(255, 255, 255, .07) !important; height: 64px; display: flex; align-items: center; padding: 0 18px; }
.main-sidebar .brand-link .brand-image { display: none; }
.main-sidebar .brand-link .tp-brand-home-link { display: flex; align-items: center; gap: 12px; text-decoration: none; }
.main-sidebar .brand-link .tp-brand-home-link::before { content: "K"; flex: none; width: 34px; height: 34px; border-radius: 11px; background: var(--k-brand); color: var(--k-night); font: 700 19px/34px var(--k-font); text-align: center; }
.main-sidebar .brand-link .brand-text { font-size: 0 !important; }
.main-sidebar .brand-link .brand-text::after { content: "Keypass"; font: 600 18px/1 var(--k-font); letter-spacing: -.02em; color: #fff; }
.sidebar-collapse .main-sidebar:not(:hover) .brand-link .brand-text::after { content: ""; }
.main-sidebar .sidebar { padding: 10px 10px 0; }
.nav-sidebar > .nav-item { margin-bottom: 2px; }
.nav-sidebar .nav-link { border-radius: 12px !important; color: rgba(255, 255, 255, .72) !important; font-size: 14.5px; font-weight: 500; padding: .6rem .8rem; }
.nav-sidebar .nav-link p { font-weight: 500; }
.nav-sidebar .nav-link .nav-icon { color: rgba(255, 255, 255, .5); font-size: 15px; margin-right: .45rem; }
.nav-sidebar .nav-link:hover { background: rgba(255, 255, 255, .07) !important; color: #fff !important; }
.sidebar-dark-primary .nav-sidebar > .nav-item > .nav-link.active, .nav-sidebar .nav-link.active { background: var(--k-brand) !important; color: var(--k-night) !important; box-shadow: none !important; }
.nav-sidebar .nav-link.active .nav-icon, .nav-sidebar .nav-link.active p { color: var(--k-night) !important; font-weight: 600; }
.nav-sidebar .nav-treeview { padding-left: 10px; }
.nav-sidebar .nav-treeview > .nav-item > .nav-link.active { background: rgba(160, 220, 60, .16) !important; color: var(--k-brand) !important; }
.nav-sidebar .nav-treeview > .nav-item > .nav-link.active .nav-icon, .nav-sidebar .nav-treeview > .nav-item > .nav-link.active p { color: var(--k-brand) !important; }
.main-sidebar .menu-footer, .main-sidebar #sidebar-footer { border-top: 1px solid rgba(255, 255, 255, .07); }
.main-sidebar #sidebar-footer .text-info, .main-sidebar #sidebar-footer i { color: rgba(255, 255, 255, .5) !important; }
.main-sidebar #sidebar-footer i:hover { color: var(--k-brand) !important; }

/* ------------------------------------------------------------------ Barre du haut */
body:not(.dark-mode) .main-header { background: rgba(245, 246, 242, .88) !important; backdrop-filter: blur(10px); border-bottom: 1px solid var(--k-line) !important; box-shadow: none; }
.main-header { min-height: 64px; }
.main-header .nav-link { color: var(--k-body); border-radius: 12px; }
body:not(.dark-mode) .main-header .nav-link:hover { background: var(--k-hover); color: var(--k-ink); }
.tp-account-chip { border-radius: 999px !important; padding: 5px 12px 5px 5px !important; }
body:not(.dark-mode) .tp-account-chip { background: #fff; box-shadow: 0 0 0 1px var(--k-line); }
.tp-account-avatar { background: var(--k-night) !important; color: var(--k-brand) !important; font-weight: 600; }
.dropdown-menu { border: 0; border-radius: 16px; box-shadow: 0 0 0 1px var(--k-line), 0 24px 48px -20px rgba(11, 22, 32, .35); padding: 8px; }
.dropdown-item { border-radius: 10px; padding: .5rem .75rem; font-size: 14px; }
body:not(.dark-mode) .dropdown-item:hover, body:not(.dark-mode) .dropdown-item:focus { background: var(--k-hover); color: var(--k-ink); }
.dropdown-item.active, .dropdown-item:active { background: var(--k-brand-tint-2); color: var(--k-ink); }

/* ------------------------------------------------------------------ Titres et cartes */
.content-header { padding: 22px 18px 6px; }
.content-header h1 { font-size: 26px; font-weight: 600; letter-spacing: -.03em; color: var(--k-ink); }
.content-header h1 i, .content-header h1 .fa-solid { color: var(--k-brand-ink); font-size: .8em; }
.breadcrumb { background: transparent; font-size: 13.5px; }
.breadcrumb-item.active { color: var(--k-muted); }
.card { border: 0; border-radius: var(--k-radius-lg); box-shadow: var(--k-shadow); }
body:not(.dark-mode) .card { background: #fff; box-shadow: 0 0 0 1px var(--k-line), var(--k-shadow); }
.card.card-outline, .card.card-primary.card-outline, .card.card-info.card-outline, .card-primary.card-outline, .card-info.card-outline, .card-warning.card-outline, .card-success.card-outline, .card-danger.card-outline, .card-secondary.card-outline { border-top: 0 !important; }
.card > .card-header { background: transparent; border-bottom: 1px solid var(--k-line); padding: 14px 18px; border-radius: var(--k-radius-lg) var(--k-radius-lg) 0 0; }
.card-title { font-size: 16px; font-weight: 600; letter-spacing: -.015em; color: var(--k-ink); }
body:not(.dark-mode) .card-primary:not(.card-outline) > .card-header, body:not(.dark-mode) .card-info:not(.card-outline) > .card-header, body:not(.dark-mode) .card-warning:not(.card-outline) > .card-header, body:not(.dark-mode) .card-success:not(.card-outline) > .card-header, body:not(.dark-mode) .card-secondary:not(.card-outline) > .card-header, body:not(.dark-mode) .card-dark:not(.card-outline) > .card-header { background: var(--k-night) !important; color: #fff; border-bottom: 0; }
body:not(.dark-mode) .card-primary:not(.card-outline) > .card-header .card-title, body:not(.dark-mode) .card-info:not(.card-outline) > .card-header .card-title, body:not(.dark-mode) .card-warning:not(.card-outline) > .card-header .card-title, body:not(.dark-mode) .card-success:not(.card-outline) > .card-header .card-title, body:not(.dark-mode) .card-secondary:not(.card-outline) > .card-header .card-title, body:not(.dark-mode) .card-dark:not(.card-outline) > .card-header .card-title, body:not(.dark-mode) .card-dark:not(.card-outline) > .card-header a { color: #fff; }
body:not(.dark-mode) .card-danger:not(.card-outline) > .card-header { background: var(--k-danger) !important; color: #fff; }
.card-footer { background: transparent; border-top: 1px solid var(--k-line); border-radius: 0 0 var(--k-radius-lg) var(--k-radius-lg); padding: 14px 18px; }
.main-footer { background: transparent !important; border-top: 1px solid var(--k-line); color: var(--k-muted); font-size: 12.5px; }
.main-footer a { color: var(--k-brand-ink); }
.elevation-1, .elevation-2, .elevation-3, .elevation-4 { box-shadow: none !important; }

/* ------------------------------------------------------------------ Étiquettes, alertes, textes d'état */
.badge { border-radius: 999px; font-weight: 600; padding: .32em .65em; font-size: 11.5px; letter-spacing: 0; }
.badge-primary, .badge-info, .badge-success, .bg-info, .bg-primary:not(.btn), .bg-success, .bg-teal { background: var(--k-brand-tint-2) !important; color: var(--k-brand-deep) !important; }
.badge-secondary, .badge-light, .bg-gray, .bg-secondary { background: var(--k-stone) !important; color: var(--k-body) !important; }
.badge-danger, .bg-danger { background: var(--k-danger-tint) !important; color: var(--k-danger) !important; }
.badge-warning, .bg-warning, .bg-orange { background: var(--k-warn-tint) !important; color: var(--k-warn) !important; }
.badge-dark, .bg-dark { background: var(--k-night) !important; color: #fff !important; }
.text-info, .text-primary, .text-teal, .text-success { color: var(--k-brand-ink) !important; }
.text-danger { color: var(--k-danger) !important; }
.text-warning, .text-orange { color: var(--k-warn) !important; }
.text-secondary, .text-muted { color: var(--k-muted) !important; }
.alert { border: 0; border-radius: var(--k-radius); font-size: 14px; }
.alert-info, .callout.callout-info { background: var(--k-info-tint) !important; color: #1f4666 !important; }
.alert-success { background: var(--k-brand-tint) !important; color: var(--k-brand-deep) !important; }
.alert-warning { background: var(--k-warn-tint) !important; color: #7a3f15 !important; }
.alert-danger { background: var(--k-danger-tint) !important; color: var(--k-danger) !important; }
.alert .icon, .alert i { color: inherit !important; }
.callout { border-radius: var(--k-radius); border-left-width: 3px; box-shadow: none; }
body:not(.dark-mode) .callout { background: #fff; box-shadow: 0 0 0 1px var(--k-line); }
.callout.callout-info, .callout.callout-success { border-left-color: var(--k-brand) !important; }
.progress { border-radius: 999px; background: var(--k-stone); height: .6rem; }
.progress-bar { background: var(--k-brand) !important; }
.nav-tabs { border-bottom: 1px solid var(--k-line); }
.nav-tabs .nav-link { border: 0; border-bottom: 2px solid transparent; color: var(--k-muted); font-weight: 500; border-radius: 0; }
.nav-tabs .nav-link.active, .nav-tabs .nav-item.show .nav-link { background: transparent; border-bottom-color: var(--k-brand); color: var(--k-ink); font-weight: 600; }
.nav-pills .nav-link.active, .nav-pills .show > .nav-link { background: var(--k-night); color: #fff; border-radius: 999px; }
.page-item.active .page-link { background: var(--k-night); border-color: var(--k-night); color: #fff; }
.page-link { color: var(--k-text); border-color: var(--k-line); }
.page-item:first-child .page-link { border-radius: 999px 0 0 999px; } .page-item:last-child .page-link { border-radius: 0 999px 999px 0; }

/* ------------------------------------------------------------------ Tableaux */
.table { color: var(--k-text); font-size: 14px; }
.table thead th { border-top: 0; border-bottom: 1px solid var(--k-line); font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; color: var(--k-muted); }
.table td, .table th { border-top-color: var(--k-line); vertical-align: middle; }
body:not(.dark-mode) .table-striped tbody tr:nth-of-type(odd) { background: transparent; }
body:not(.dark-mode) .table-hover tbody tr:hover, body:not(.dark-mode) table.dataTable tbody tr:hover { background: var(--k-paper); }
.dataTables_wrapper .dataTables_info, .dataTables_wrapper .dataTables_length { color: var(--k-muted); font-size: 13px; }

/* ------------------------------------------------------------------ Arborescence des dossiers */
#jstree, .jstree-default { font-size: 14.5px; }
.jstree-default .jstree-anchor { border-radius: 10px; padding: 0 8px 0 4px; height: 32px; line-height: 32px; color: var(--k-text); max-width: calc(100% - 28px); }
.jstree-default .jstree-node { min-height: 32px; line-height: 32px; margin-left: 18px; }
.jstree-default .jstree-icon.jstree-ocl { height: 32px; line-height: 32px; opacity: .55; }
.jstree-default .jstree-hovered { background: var(--k-hover) !important; box-shadow: none !important; }
.jstree-default .jstree-clicked { background: var(--k-brand-tint-2) !important; box-shadow: none !important; color: var(--k-ink) !important; font-weight: 600; }
.jstree-default .jstree-anchor > .jstree-themeicon, .jstree-default .jstree-anchor i.fa-folder, .jstree-default .jstree-anchor i.fa-folder-open, .jstree-default .jstree-anchor i[class*="fa-"] { color: var(--k-brand-ink); margin-right: 4px; }
.jstree-default .jstree-clicked i[class*="fa-"] { color: var(--k-brand-deep); }
.jstree-anchor .badge, .jstree-anchor .items_count, .jstree-anchor span[class*="badge"] { background: var(--k-stone) !important; color: var(--k-body) !important; font-weight: 600; margin-left: 6px; }

/* ------------------------------------------------------------------ Liste des éléments (esprit NordPass : lignes aérées, pastille à l'initiale) */
#teampass_items_list, #table_teampass_items_list { border-collapse: separate; border-spacing: 0; width: 100%; }
.list-item-row > td { border-top: 1px solid var(--k-line) !important; padding: 0 !important; }
.list-item-row:first-child > td { border-top: 0 !important; }
.list-item-row .list-item-description { min-height: 60px; padding: 8px 18px !important; gap: 10px; align-items: center; }
.list-item-row .list-item-clicktoshow { flex: 1 1 auto; min-width: 0; gap: 12px; }
.list-item-row .list-item-clicktoshow::before { content: attr(data-initial); }
.list-item-row .list-item-clicktoshow::before { content: "\f084"; font-family: "Font Awesome 7 Free", "Font Awesome 6 Free", "Font Awesome 5 Free"; font-weight: 900; flex: none; width: 40px; height: 40px; border-radius: 13px; background: var(--k-brand-tint-2); color: var(--k-brand-deep); display: inline-flex; align-items: center; justify-content: center; font-size: 15px; }
tr.list-item-row:nth-child(4n+2) .list-item-clicktoshow::before { background: #EDF3F9; color: #2C5F8A; }
tr.list-item-row:nth-child(4n+3) .list-item-clicktoshow::before { background: #F2EFFA; color: #5A3FA6; }
tr.list-item-row:nth-child(4n+4) .list-item-clicktoshow::before { background: #FCF2E9; color: #A5561F; }
.list-item-row .list-item-clicktoshow > i.user-fa-icon.null { display: none; }
.list-item-row .list-item-clicktoshow > i.user-fa-icon:not(.null) { color: var(--k-brand-ink); margin: 0 !important; }
.list-item-row .icon-container { color: var(--k-line-2); opacity: 0; transition: opacity .12s; width: 14px; margin-left: -8px; }
.list-item-row:hover .icon-container { opacity: 1; }
.list-item-row .list-item-row-description { font-size: 15px; font-weight: 600; color: var(--k-ink); letter-spacing: -.01em; }
.list-item-row .list-item-clicktoshow .text-secondary { font-size: 13px; color: var(--k-muted) !important; }
body:not(.dark-mode) .list-item-row:hover > td { background: var(--k-paper); }
.list-item-row .list-item-actions .btn, .list-item-row .list-item-actions i { color: var(--k-muted); }
.list-item-row .item-favorite-star.fa-star, .list-item-row .fa-star.text-warning { color: #E0A72B !important; }

/* ------------------------------------------------------------------ Fiche d'un élément */
#card-item-label { font-size: 22px; font-weight: 600; letter-spacing: -.02em; color: var(--k-ink); }
.item-details-card .list-group-item, .item-details-card li.list-group-item { border-color: var(--k-line); padding: 14px 4px; }
.item-details-card .list-group-item b, .item-details-card .list-group-item > b { font-weight: 600; color: var(--k-muted); font-size: 13.5px; }
#card-item-pwd, #card-item-login, #card-item-email, #card-item-url, #card-item-otp, .item-details-card .text-right.float-right, .item-details-card .float-right.pointer { font-family: var(--k-mono) !important; font-size: 14px; color: var(--k-ink); }
#card-item-pwd { letter-spacing: .08em; }
.item-details-card .btn.btn-secondary.btn-sm, .item-details-card .btn-copy-clipboard { width: 34px; height: 34px; padding: 0; display: inline-flex; align-items: center; justify-content: center; border-radius: 11px; }
.item-details-card .navbar, .item-details-card-menu { background: transparent !important; border-bottom: 1px solid var(--k-line); padding: 6px 10px; }
.item-details-card .navbar .nav-link, .item-details-card-menu .nav-link, .item-details-card .navbar a { color: var(--k-body) !important; border-radius: 999px; padding: 6px 12px !important; font-size: 13.5px; font-weight: 500; }
.item-details-card .navbar .nav-link:hover, .item-details-card .navbar a:hover { background: var(--k-hover); color: var(--k-ink) !important; }
.item-details-card .navbar .nav-link i { color: var(--k-brand-ink); margin-right: 4px; }
body:not(.dark-mode) .item-details-card .card.card-default > .card-header, body:not(.dark-mode) .item-details-card .card-header.bg-gray-dark, body:not(.dark-mode) .card-header.bg-gray-dark, body:not(.dark-mode) .bg-gray-dark { background: var(--k-paper) !important; color: var(--k-ink) !important; border-bottom: 1px solid var(--k-line); }
body:not(.dark-mode) .bg-gray-dark .card-title, body:not(.dark-mode) .bg-gray-dark h3, body:not(.dark-mode) .bg-gray-dark a, body:not(.dark-mode) .bg-gray-dark i { color: var(--k-ink) !important; }

/* ------------------------------------------------------------------ Fenêtres et messages */
.modal-content { border: 0; border-radius: var(--k-radius-xl); box-shadow: 0 40px 80px -30px rgba(11, 22, 32, .55); overflow: hidden; }
.modal-header { border-bottom: 1px solid var(--k-line); padding: 20px 24px; }
body:not(.dark-mode) .modal-header.bg-primary, body:not(.dark-mode) .modal-header.bg-info, body:not(.dark-mode) .modal-header[class*="bg-"] { background: var(--k-night) !important; color: #fff !important; }
.modal-title { font-weight: 600; letter-spacing: -.015em; }
.modal-body { padding: 22px 24px; }
.modal-footer { border-top: 1px solid var(--k-line); padding: 16px 24px; }
.modal-backdrop.show { background: var(--k-night); opacity: .55; }
#toast-container > div { border-radius: 16px !important; box-shadow: 0 24px 48px -20px rgba(11, 22, 32, .5) !important; opacity: 1 !important; font-family: var(--k-font) !important; }
#toast-container > .toast-success { background-color: var(--k-night) !important; color: #fff; }
#toast-container > .toast-info { background-color: var(--k-night-2) !important; }
#toast-container > .toast-error { background-color: var(--k-danger) !important; }
#toast-container > .toast-warning { background-color: #8a4a1a !important; }
.alertify .ajs-dialog { border-radius: var(--k-radius-xl); overflow: hidden; }
.alertify .ajs-header { font-family: var(--k-font); font-weight: 600; }
.tooltipster-sidetip .tooltipster-box, .tooltip-inner { background: var(--k-night) !important; border: 0 !important; border-radius: 10px !important; font-family: var(--k-font); }
#tp-page-progress-bar { background: var(--k-brand) !important; }

/* ------------------------------------------------------------------ Volet d'accès rapide */
body:not(.dark-mode) .control-sidebar.tp-qa { background: #fff; border-left: 1px solid var(--k-line); box-shadow: -24px 0 48px -32px rgba(11, 22, 32, .3); }

/* ------------------------------------------------------------------ Thème sombre
   Les couleurs de texte et de trait changent ; les surfaces sombres et le vert restent ceux de la marque.
   Tous les couples texte / fond ci-dessous ont un contraste d'au moins 4,5:1. */
body.dark-mode {
  --k-ink: #F2F5EE; --k-text: #E6EAE3; --k-body: #D3D9CE; --k-muted: #A9B2A4;
  --k-line: rgba(255, 255, 255, .10); --k-line-2: rgba(255, 255, 255, .18); --k-hover: rgba(255, 255, 255, .07); --k-paper: #0F1D29; --k-stone: rgba(255, 255, 255, .12);
  --k-brand-ink: #A0DC3C; --k-brand-deep: #D3F291; --k-brand-tint: rgba(160, 220, 60, .14); --k-brand-tint-2: rgba(160, 220, 60, .22);
  --k-danger: #FF8A80; --k-danger-tint: rgba(255, 99, 88, .16); --k-warn: #F4B27E; --k-warn-tint: rgba(244, 178, 126, .16); --k-info: #9CC7EA; --k-info-tint: rgba(108, 168, 220, .16);
  color: var(--k-text);
}
body.dark-mode, body.dark-mode .content-wrapper, body.dark-mode .wrapper { background: var(--k-night) !important; color: var(--k-text); }
body.dark-mode .main-header { background: rgba(11, 22, 32, .92) !important; border-bottom: 1px solid var(--k-line) !important; }
body.dark-mode .main-header .nav-link { color: var(--k-body); }
body.dark-mode .main-header .nav-link:hover { background: var(--k-hover); color: #fff; }
body.dark-mode .main-sidebar { border-right: 1px solid var(--k-line); }
body.dark-mode .card, body.dark-mode .modal-content, body.dark-mode .dropdown-menu, body.dark-mode .control-sidebar.tp-qa, body.dark-mode .callout, body.dark-mode .list-group-item, body.dark-mode .select2-dropdown { background: var(--k-night-2) !important; color: var(--k-text); box-shadow: 0 0 0 1px var(--k-line); }
body.dark-mode .card > .card-header, body.dark-mode .card-footer, body.dark-mode .modal-header, body.dark-mode .modal-footer, body.dark-mode .bg-gray-dark, body.dark-mode .card-header.bg-gray-dark { background: transparent !important; color: var(--k-ink) !important; border-color: var(--k-line) !important; }
body.dark-mode .card-title, body.dark-mode .modal-title, body.dark-mode h1, body.dark-mode h2, body.dark-mode h3, body.dark-mode h4, body.dark-mode h5, body.dark-mode label, body.dark-mode .content-header h1, body.dark-mode #card-item-label { color: var(--k-ink) !important; }
body.dark-mode .tp-account-chip { background: var(--k-night-2); box-shadow: 0 0 0 1px var(--k-line); color: var(--k-text); }
body.dark-mode .tp-account-chip *, body.dark-mode #countdown { color: var(--k-body) !important; }
body.dark-mode .tp-account-avatar { background: var(--k-brand) !important; color: var(--k-night) !important; }
body.dark-mode .dropdown-item { color: var(--k-text); }
body.dark-mode .dropdown-item:hover, body.dark-mode .dropdown-item:focus { background: var(--k-hover); color: #fff; }
body.dark-mode .btn-default, body.dark-mode .btn-secondary, body.dark-mode .btn-light, body.dark-mode .btn-outline-secondary, body.dark-mode .btn-outline-primary, body.dark-mode .btn-outline-info { background: rgba(255, 255, 255, .07) !important; border-color: var(--k-line-2) !important; color: var(--k-ink) !important; }
body.dark-mode .btn-default:hover, body.dark-mode .btn-secondary:hover, body.dark-mode .btn-light:hover, body.dark-mode .btn-outline-secondary:hover, body.dark-mode .btn-outline-primary:hover, body.dark-mode .btn-outline-info:hover { background: rgba(255, 255, 255, .14) !important; color: #fff !important; }
body.dark-mode .btn-dark, body.dark-mode .btn-group-toggle .btn.active, body.dark-mode .btn-group .btn.active:not(.btn-primary), body.dark-mode .nav-pills .nav-link.active, body.dark-mode .page-item.active .page-link { background: var(--k-brand) !important; border-color: var(--k-brand) !important; color: var(--k-night) !important; }
body.dark-mode .btn-danger { background: #C8362B !important; border-color: #C8362B !important; color: #fff !important; }
body.dark-mode .btn-warning { background: #F4D6BC !important; color: #5a2c0c !important; }
body.dark-mode .form-control, body.dark-mode .custom-select, body.dark-mode .input-group-text, body.dark-mode .select2-container--bootstrap4 .select2-selection, body.dark-mode .note-editor .note-editing-area, body.dark-mode .note-editable { background: rgba(255, 255, 255, .06) !important; border-color: var(--k-line-2) !important; color: var(--k-ink) !important; }
body.dark-mode .input-group-text { color: var(--k-body) !important; }
body.dark-mode .select2-selection__rendered, body.dark-mode .select2-results__option { color: var(--k-ink) !important; }
body.dark-mode .note-editor .note-toolbar, body.dark-mode .note-editor .note-statusbar { background: rgba(255, 255, 255, .04) !important; }
body.dark-mode .note-editor .note-btn { color: var(--k-body) !important; }
body.dark-mode ::placeholder, body.dark-mode .select2-selection__placeholder { color: #A9B2A4 !important; opacity: 1; }
body.dark-mode a { color: var(--k-brand); }
body.dark-mode a:hover { color: #fff; }
body.dark-mode .nav-sidebar .nav-link { color: rgba(255, 255, 255, .78) !important; }
body.dark-mode .nav-sidebar .nav-link.active, body.dark-mode .nav-sidebar .nav-link.active p, body.dark-mode .nav-sidebar .nav-link.active .nav-icon { color: var(--k-night) !important; }
body.dark-mode .jstree-default .jstree-anchor, body.dark-mode .jstree-default-dark .jstree-anchor { color: var(--k-text) !important; }
body.dark-mode .jstree-default .jstree-hovered, body.dark-mode .jstree-default-dark .jstree-hovered { background: var(--k-hover) !important; }
body.dark-mode .jstree-default .jstree-clicked, body.dark-mode .jstree-default-dark .jstree-clicked { background: var(--k-brand-tint-2) !important; color: #fff !important; }
body.dark-mode #jstree, body.dark-mode .jstree, body.dark-mode .jstree-container-ul, body.dark-mode #jstree-container, body.dark-mode .card-body { background: transparent !important; }
body.dark-mode .list-item-row > td { background: transparent; }
body.dark-mode .list-item-row:hover > td { background: var(--k-hover); }
body.dark-mode .list-item-row .list-item-row-description { color: var(--k-ink); }
body.dark-mode tr.list-item-row .list-item-clicktoshow::before { background: rgba(160, 220, 60, .18); color: #C9F07F; }
body.dark-mode tr.list-item-row:nth-child(4n+2) .list-item-clicktoshow::before { background: rgba(108, 168, 220, .2); color: #B4D6F2; }
body.dark-mode tr.list-item-row:nth-child(4n+3) .list-item-clicktoshow::before { background: rgba(150, 125, 220, .22); color: #D2C6F5; }
body.dark-mode tr.list-item-row:nth-child(4n+4) .list-item-clicktoshow::before { background: rgba(232, 150, 90, .2); color: #F4C7A3; }
body.dark-mode .item-details-card .callout, body.dark-mode #card-item-description, body.dark-mode .item-details-card .callout.callout-info { background: var(--k-night-2) !important; color: var(--k-text) !important; box-shadow: 0 0 0 1px var(--k-line); }
body.dark-mode #card-item-pwd, body.dark-mode #card-item-login, body.dark-mode #card-item-email, body.dark-mode #card-item-url, body.dark-mode .item-details-card .float-right.pointer { color: var(--k-ink); }
body.dark-mode .item-details-card .navbar .nav-link, body.dark-mode .item-details-card .navbar a { color: var(--k-body) !important; }
body.dark-mode .item-details-card .navbar .nav-link:hover, body.dark-mode .item-details-card .navbar a:hover { background: var(--k-hover); color: #fff !important; }
body.dark-mode .table, body.dark-mode table td, body.dark-mode table.dataTable td { color: var(--k-text); border-color: var(--k-line) !important; }
body.dark-mode .table-hover tbody tr:hover, body.dark-mode table.dataTable tbody tr:hover { background: var(--k-hover); color: #fff; }
body.dark-mode .page-link { background: rgba(255, 255, 255, .06); border-color: var(--k-line-2); color: var(--k-text); }
body.dark-mode .page-item.disabled .page-link { background: transparent; color: #A9B2A4; }
body.dark-mode .dataTables_wrapper .dataTables_info, body.dark-mode .dataTables_wrapper .dataTables_length, body.dark-mode .dataTables_length label { color: var(--k-muted) !important; }
body.dark-mode .search-folder-title, body.dark-mode [class*="search-folder"] { color: var(--k-ink) !important; }
body.dark-mode [class*="search-folder"]:not(.search-folder-title):not(.badge) { background-color: transparent; border-color: var(--k-line) !important; }
body.dark-mode .alert-info, body.dark-mode .callout.callout-info { background: var(--k-info-tint) !important; color: #CFE4F6 !important; }
body.dark-mode .alert-success { background: var(--k-brand-tint) !important; color: #D3F291 !important; }
body.dark-mode .alert-warning { background: var(--k-warn-tint) !important; color: #F8D3B4 !important; }
body.dark-mode .alert-danger { background: var(--k-danger-tint) !important; color: #FFC4BE !important; }
body.dark-mode .badge-secondary, body.dark-mode .badge-light, body.dark-mode .bg-gray, body.dark-mode .bg-secondary { color: var(--k-ink) !important; }
body.dark-mode .badge-dark, body.dark-mode .bg-dark { background: rgba(255, 255, 255, .14) !important; color: #fff !important; }
body.dark-mode .nav-tabs .nav-link { color: var(--k-muted); } body.dark-mode .nav-tabs .nav-link.active { color: var(--k-ink); }
body.dark-mode .nav-pills .nav-link:not(.active) { color: var(--k-body); }
body.dark-mode .main-footer { color: var(--k-muted); border-top-color: var(--k-line); }
body.dark-mode .tp-skip-link { background: var(--k-brand) !important; color: var(--k-night) !important; }
body.dark-mode .text-dark, body.dark-mode .text-body { color: var(--k-ink) !important; }
body.dark-mode .progress { background: rgba(255, 255, 255, .12); }

/* ------------------------------------------------------------------ Petits écrans */
@media (max-width: 767.98px) {
  .content-header { padding: 16px 12px 4px; } .content-header h1 { font-size: 22px; }
  .list-item-row .list-item-description { padding: 8px 12px !important; }
  .login-page .card-header { padding: 26px 22px 0; } .login-page .card-body { padding: 20px 22px 26px; }
}

/* ------------------------------------------------------------------ Ajustements après essai sur la copie */
/* Un seul indicateur de focus : l'anneau vert (le contour bleu d'origine est retiré). */
.form-control:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, .btn:focus-visible, a:focus-visible, button:focus-visible { outline: none !important; }
a:focus-visible, .nav-link:focus-visible { box-shadow: var(--k-focus); border-radius: 10px; }

/* Page des éléments : bandeau de la liste, champ de recherche, boutons de l'en-tête de carte */
.card-header .input-group .form-control { border-radius: 999px 0 0 999px !important; padding-left: 16px; }
.card-header .input-group .input-group-append .btn { border-radius: 0 !important; }
.card-header .input-group .input-group-append .btn:last-child, .card-header .input-group .input-group-append .dropdown-toggle { border-radius: 0 999px 999px 0 !important; padding-right: 14px; }
.card .card-header.p-0, .card .nav-tabs, .card-tabs > .card-header, .card-outline-tabs > .card-header { border-bottom: 1px solid var(--k-line) !important; }
.card.card-primary.card-outline-tabs > .card-header a.active, .card-outline-tabs > .card-header a.active, .card-primary.card-outline-tabs > .card-header a.active { border-top: 0 !important; border-bottom: 2px solid var(--k-brand) !important; }
.card-outline-tabs > .card-header a:hover { border-top-color: transparent !important; }
[class*="border-primary"], [class*="border-info"] { border-color: var(--k-line) !important; }
.list-item-row .list-item-clicktoshow .text-secondary i { color: var(--k-line-2); }

/* Fiche : sections repliables, description, boutons ronds */
.item-details-card .card > .card-header .card-title, .item-details-card .card-header h3.card-title, .item-details-card .card-header h3:not(#card-item-label) { font-size: 15px !important; font-weight: 600; }
.item-details-card .card > .card-header .card-title i, .item-details-card .card-header h3:not(#card-item-label) i { font-size: 15px; color: var(--k-brand-ink); }
.item-details-card .callout, #card-item-description, .item-details-card .callout.callout-info { background: #fff !important; color: var(--k-body) !important; border-left: 3px solid var(--k-brand) !important; box-shadow: 0 0 0 1px var(--k-line); border-radius: var(--k-radius); }
.item-details-card .btn.btn-tool, .item-details-card .card-header > .btn, .but-back-to-list, .item-details-card button.close-element, .card-header .btn-default.btn-sm { border-radius: 999px !important; min-width: 36px; height: 36px; }
.item-details-card a[class*="text-"], .item-details-card .list-group-item a { color: var(--k-brand-ink) !important; font-family: var(--k-font) !important; font-size: 14px; }

/* Tableaux : lignes horizontales seulement, valeurs techniques lisibles */
.table-bordered, .table-bordered td, .table-bordered th { border-left: 0 !important; border-right: 0 !important; }
.table-bordered { border-top: 0 !important; border-bottom: 0 !important; }
table.dataTable td { overflow-wrap: anywhere; word-break: normal; }
.dataTables_length label, .dataTables_filter label { display: inline-flex; align-items: center; gap: 8px; font-weight: 500; color: var(--k-muted); margin: 0 0 10px; }
.dataTables_length select { width: auto !important; min-width: 78px; display: inline-block; }
.dataTables_paginate .pagination { margin-top: 6px; }
.page-link { font-size: 13.5px; padding: .45rem .8rem; }

/* Formulaire d'un élément : champs avec libellé accolé, éditeur de texte, générateur */
.input-group-prepend .input-group-text { border-radius: 12px 0 0 12px; font-weight: 500; }
.input-group-append .input-group-text { border-radius: 0 12px 12px 0; }
.note-editor.note-frame, .note-editor.note-airframe { border: 1px solid var(--k-line-2) !important; border-radius: 12px !important; overflow: hidden; box-shadow: none; }
.note-editor .note-toolbar { background: var(--k-paper); border-bottom: 1px solid var(--k-line); }
.note-editor .note-btn { border-radius: 8px !important; background: transparent !important; border-color: transparent !important; padding: .28rem .55rem; }
.note-editor .note-btn:hover { background: var(--k-hover) !important; }
.note-editor .note-statusbar { background: var(--k-paper) !important; border-top: 1px solid var(--k-line) !important; }
.nav-pills .nav-link { border-radius: 999px; color: var(--k-muted); font-weight: 500; padding: .5rem 1rem; }
.nav-pills .nav-link:not(.active):hover { background: var(--k-hover); color: var(--k-ink); }
.btn-group-toggle .btn.active, .btn-group .btn.active:not(.btn-primary) { background: var(--k-night) !important; border-color: var(--k-night) !important; color: #fff !important; }
.icheckbox_flat-blue.checked, .iradio_flat-blue.checked { filter: hue-rotate(250deg) saturate(1.3); }

/* Résultats de recherche : cartes de dossier */
.search-folder-card, .tp-search-folder, [class*="search-result-folder"] { border-radius: var(--k-radius) !important; border-color: var(--k-line) !important; }

/* En-têtes de tableau (y compris le bandeau « Éléments » de la liste) : plus de bleu d'origine */
thead th, table thead th { background: transparent !important; color: var(--k-muted) !important; border-bottom: 1px solid var(--k-line) !important; font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; }
thead th i, thead th .fa-solid { color: var(--k-brand-ink) !important; }
.tp-skip-link { background: var(--k-night) !important; color: #fff !important; border-radius: 0 0 12px 0; }
/* Groupes de boutons : angles cohérents */
.btn-group > .btn, .btn-group > .btn-group > .btn, .btn-group > div.btn { border-radius: 12px; }
.btn-group > .btn:not(:last-child):not(.dropdown-toggle), .btn-group > .btn-group:not(:last-child) > .btn, .btn-group > div.btn:not(:last-child) { border-top-right-radius: 0; border-bottom-right-radius: 0; }
.btn-group > .btn:not(:first-child), .btn-group > .btn-group:not(:first-child) > .btn, .btn-group > div.btn:not(:first-child) { border-top-left-radius: 0; border-bottom-left-radius: 0; }
.btn-group > .btn:only-child { border-radius: 12px !important; }
table th { background: transparent !important; border-bottom: 1px solid var(--k-line) !important; border-top: 0 !important; color: var(--k-muted) !important; }
table thead, table thead tr, table tbody { border-color: var(--k-line) !important; }

/* ------------------------------------------------------------------ Contraste (thème clair) : textes d'exemple, liens et repères trop pâles */
::placeholder, .form-control::placeholder { color: #5E6A74 !important; opacity: 1; }
.select2-container--bootstrap4 .select2-selection__placeholder, .select2-selection__placeholder { color: #5E6A74 !important; }
#tp-qa-seeall, .tp-qa a, .control-sidebar a { color: var(--k-brand-ink) !important; font-weight: 600; }
#countdown, .tp-account-exp { color: #46525D !important; }
.list-item-row .list-item-clicktoshow .text-secondary i { color: var(--k-muted); }
.list-item-row .icon-container { color: var(--k-muted); }
.jstree-default .jstree-icon.jstree-ocl { opacity: .8; }
.login-page .login-box::after { color: rgba(255, 255, 255, .68); }
.login-page ::placeholder { color: #5E6A74 !important; }
.btn.disabled, .btn:disabled { opacity: .55; }
.text-gray, .text-lightgray, .text-light:not(.btn):not(.badge) { color: var(--k-muted) !important; }
.nav-sidebar .nav-link .nav-icon { color: rgba(255, 255, 255, .7); }
.main-sidebar #sidebar-footer .text-info, .main-sidebar #sidebar-footer i { color: rgba(255, 255, 255, .7) !important; }
body.dark-mode .fav-placeholder, body.dark-mode .fav-placeholder p, body.dark-mode .card-body > p, body.dark-mode .text-muted, body.dark-mode .text-secondary, body.dark-mode small { color: var(--k-muted) !important; }
