/*
 * carbon-theme.css — design system IBM Carbon (thème g10) appliqué à l'application.
 * Couleur principale conservée : vert #1ab394 (rôle "interactive" de Carbon : boutons primaires,
 * liens, sélection, focus). Chargé en dernier ; s'active avec <body class="... carbon">.
 * Réf. : https://carbondesignsystem.com (tokens g10, UI shell, boutons, champs, onglets, tableaux, tags).
 */

:root {
    /* Couleur principale (interactive) */
    --cds-interactive: #1ab394;
    --cds-interactive-hover: #179d82;
    --cds-interactive-active: #11735f;
    --cds-link: #0f7a63;               /* vert assombri : lisible sur fond clair (contraste AA) */
    --cds-highlight: #d9f4ee;          /* fond de sélection teinté */

    /* Neutres Carbon (gray) */
    --cds-background: #f4f4f4;         /* gray 10 */
    --cds-layer-01: #ffffff;
    --cds-layer-02: #f4f4f4;
    --cds-layer-hover: #e8e8e8;
    --cds-layer-selected: #e0e0e0;
    --cds-field: #f4f4f4;
    --cds-border-subtle: #e0e0e0;      /* gray 20 */
    --cds-border-strong: #8d8d8d;      /* gray 50 */
    --cds-text-primary: #161616;       /* gray 100 */
    --cds-text-secondary: #525252;     /* gray 70 */
    --cds-text-helper: #6f6f6f;        /* gray 60 */
    --cds-icon: #525252;
    --cds-btn-secondary: #393939;      /* gray 80 */
    --cds-btn-secondary-hover: #474747;

    /* Couleurs de support */
    --cds-error: #da1e28;
    --cds-success: #24a148;
    --cds-warning: #f1c21b;
    --cds-info: #0043ce;

    --cds-font: 'IBM Plex Sans', 'Helvetica Neue', Arial, sans-serif;
    --cds-mono: 'IBM Plex Mono', Menlo, Consolas, monospace;
    --cds-motion: 110ms cubic-bezier(0.2, 0, 0.38, 0.9);   /* productive motion */
    --cds-shadow-menu: 0 2px 6px rgba(0, 0, 0, 0.3);
}

/* ======================= Base & typographie ======================= */
body.carbon,
body.carbon #page-wrapper,
body.carbon .gray-bg,
body.carbon .wrapper-content {
    background-color: var(--cds-background);
}

body.carbon {
    font-family: var(--cds-font);
    font-size: 14px;
    letter-spacing: 0.16px;
    color: var(--cds-text-primary);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

body.carbon h1, body.carbon h2, body.carbon h3, body.carbon h4, body.carbon h5, body.carbon h6,
body.carbon .ibox-title h5,
body.carbon .label, body.carbon .badge,
body.carbon .btn, body.carbon .form-control, body.carbon .table,
body.carbon .nav > li > a {
    font-family: var(--cds-font);
}

body.carbon h1, body.carbon h2, body.carbon h3 { font-weight: 400; color: var(--cds-text-primary); }
body.carbon h4, body.carbon h5, body.carbon h6 { font-weight: 600; color: var(--cds-text-primary); }
body.carbon .font-bold, body.carbon strong, body.carbon b { font-weight: 600; }
body.carbon code, body.carbon pre, body.carbon kbd { font-family: var(--cds-mono); }

body.carbon a { color: var(--cds-link); transition: color var(--cds-motion); }
body.carbon a:hover { color: var(--cds-interactive-active); }
body.carbon .text-muted { color: var(--cds-text-helper); }
body.carbon .text-navy { color: var(--cds-link); }
body.carbon hr { border-top-color: var(--cds-border-subtle); }

/* Focus visible Carbon : contour de 2 px dans la couleur principale */
body.carbon a:focus-visible,
body.carbon button:focus-visible,
body.carbon .btn:focus-visible,
body.carbon [tabindex]:focus-visible {
    outline: 2px solid var(--cds-interactive);
    outline-offset: -2px;
}

/* ======================= UI shell : en-tête ======================= */
body.carbon .navbar-fixed-top,
body.carbon .navbar-static-top {
    background: var(--cds-interactive) !important;
    background-image: none !important;
    border: none;
    border-bottom: 1px solid rgba(0, 0, 0, 0.12);
    box-shadow: none;
}

body.carbon .navbar-fixed-top a,
body.carbon .navbar-fixed-top .text-muted,
body.carbon .navbar-fixed-top .welcome-message,
body.carbon .nav-header .text-muted {
    color: #ffffff;
}

body.carbon .navbar-minimalize.btn-primary {
    background: transparent;
    border: none;
    border-radius: 0;
    box-shadow: none;
}

body.carbon .navbar-minimalize.btn-primary:hover {
    background: rgba(0, 0, 0, 0.12);
}

body.carbon .navbar-top-links li a:hover,
body.carbon .navbar-top-links .open > a {
    background: rgba(0, 0, 0, 0.12) !important;
}

body.carbon .count-info .label {
    border-radius: 8px;
    background: var(--cds-error);
}

/* ======================= UI shell : navigation latérale ======================= */
body.carbon .navbar-static-side {
    background: var(--cds-layer-01);
    border-right: 1px solid var(--cds-border-subtle);
    box-shadow: none;
}

body.carbon #side-menu > li {
    border-left: none;
    background: transparent;
}

body.carbon #side-menu > li > a {
    position: relative;
    margin: 0;
    padding: 12px 16px 12px 20px;
    border-radius: 0;
    color: var(--cds-text-secondary);
    font-weight: 600;
    font-size: 14px;
    line-height: 18px;
    transition: background-color var(--cds-motion), color var(--cds-motion);
}

body.carbon #side-menu > li > a:hover,
body.carbon #side-menu > li > a:focus {
    background: var(--cds-layer-hover);
    color: var(--cds-text-primary);
    font-weight: 600;
}

body.carbon #side-menu > li.active,
body.carbon #side-menu > li.active > a {
    background: transparent;
    color: var(--cds-text-primary);
}

body.carbon #side-menu .nav-second-level {
    background: transparent;
    padding: 0 0 4px;
}

body.carbon #side-menu .nav-second-level li a {
    position: relative;
    margin: 0;
    padding: 8px 16px 8px 46px;
    border-radius: 0;
    color: var(--cds-text-secondary);
    font-weight: 400;
    line-height: 18px;
    transition: background-color var(--cds-motion), color var(--cds-motion);
}

body.carbon #side-menu .nav-second-level li a:hover {
    background: var(--cds-layer-hover);
    color: var(--cds-text-primary);
}

/* Page courante (titleMenuManag ajoute bg-success au <li>) : indicateur latéral Carbon */
body.carbon #side-menu li.bg-success {
    background: transparent !important;
}

body.carbon #side-menu li.bg-success > a {
    background: var(--cds-layer-selected) !important;
    color: var(--cds-text-primary) !important;
    font-weight: 600 !important;
    box-shadow: inset 4px 0 0 var(--cds-interactive);
}

body.carbon #side-menu .label {
    border-radius: 12px;
}

/* ======================= Tuiles / panneaux ======================= */
body.carbon .ibox,
body.carbon .panel,
body.carbon .contact-box,
body.carbon .widget,
body.carbon .mail-box,
body.carbon .mail-box-header,
body.carbon .tabs-container .panel-body,
body.carbon .cp-panel {
    border: none;
    border-radius: 0;
    box-shadow: none;
    background-color: var(--cds-layer-01);
}

body.carbon .ibox-title {
    border: none;
    border-bottom: 1px solid var(--cds-border-subtle);
    background: var(--cds-layer-01);
    padding: 16px;
    min-height: 0;
}

body.carbon .ibox-title h5 {
    font-size: 16px;
    font-weight: 600;
    color: var(--cds-text-primary);
}

body.carbon .ibox-content {
    border: none;
    padding: 16px;
}

body.carbon .panel-heading {
    border-radius: 0;
}

/* En-têtes neutres : blancs ; en-têtes colorés (panel-primary...) : couleur conservée */
body.carbon .panel-default > .panel-heading,
body.carbon .cp-panel-header {
    border-bottom: 1px solid var(--cds-border-subtle);
    background: var(--cds-layer-01);
    color: var(--cds-text-primary);
    font-weight: 600;
}

body.carbon .panel-primary {
    border-color: var(--cds-interactive);
}

body.carbon .panel-primary > .panel-heading {
    background: var(--cds-interactive);
    border-color: var(--cds-interactive);
    color: #ffffff;
}

body.carbon .panel-primary > .panel-heading a,
body.carbon .panel-primary > .panel-heading .panel-title {
    color: #ffffff;
    font-weight: 600;
}

body.carbon .page-heading {
    background: var(--cds-layer-01);
    box-shadow: none;
    border-bottom: 1px solid var(--cds-border-subtle) !important;
}

body.carbon .footer {
    background: var(--cds-layer-01);
    border-top: 1px solid var(--cds-border-subtle);
    color: var(--cds-text-helper);
    font-size: 12px;
}

/* Bandeaux de section (bg-success = couleur principale, bg-primary = bleu) : aplats sans arrondi */
body.carbon .bg-success,
body.carbon .bg-primary,
body.carbon .bg-info,
body.carbon .bg-warning,
body.carbon .bg-danger {
    border-radius: 0;
}

/* ======================= Boutons ======================= */
body.carbon .btn {
    border-radius: 0;
    border-width: 1px;
    font-weight: 400;
    letter-spacing: 0.16px;
    box-shadow: none;
    transition: background-color var(--cds-motion), border-color var(--cds-motion), color var(--cds-motion), outline var(--cds-motion);
}

body.carbon .btn:focus,
body.carbon .btn:active:focus,
body.carbon .btn.active:focus {
    outline: 2px solid var(--cds-interactive);
    outline-offset: -2px;
    box-shadow: inset 0 0 0 3px #ffffff;
}

/* Primaire : couleur principale */
body.carbon .btn-primary,
body.carbon .btn-success {
    background-color: var(--cds-interactive);
    border-color: transparent;
    color: #ffffff;
}

body.carbon .btn-primary:hover,
body.carbon .btn-success:hover,
body.carbon .btn-primary:focus,
body.carbon .btn-success:focus {
    background-color: var(--cds-interactive-hover);
    border-color: transparent;
    color: #ffffff;
}

body.carbon .btn-primary:active,
body.carbon .btn-success:active,
body.carbon .btn-primary.active {
    background-color: var(--cds-interactive-active);
}

/* Secondaire (gris foncé Carbon) */
body.carbon .btn-default,
body.carbon .btn-white {
    background-color: var(--cds-btn-secondary);
    border-color: transparent;
    color: #ffffff;
}

/* style.css impose padding: 20px 0 à tous les .btn-default (même btn-xs) : marges Bootstrap rétablies,
   sauf pour les boutons pleine largeur qui l'utilisent comme tuile */
body.carbon .btn-default { padding: 6px 12px; }
body.carbon .btn-default.btn-lg { padding: 10px 16px; }
body.carbon .btn-default.btn-sm { padding: 5px 10px; }
body.carbon .btn-default.btn-xs { padding: 1px 5px; }
body.carbon .btn-default.btn-block { padding: 20px 0; }

body.carbon .btn-default:hover,
body.carbon .btn-white:hover,
body.carbon .btn-default:focus,
body.carbon .btn-white:focus {
    background-color: var(--cds-btn-secondary-hover);
    border-color: transparent;
    color: #ffffff;
}

/* Tertiaire (contour) */
body.carbon .btn-outline,
body.carbon .btn-outline.btn-primary,
body.carbon .btn-outline.btn-default {
    background-color: transparent;
    border: 1px solid var(--cds-interactive);
    color: var(--cds-link);
}

body.carbon .btn-outline:hover,
body.carbon .btn-outline.btn-primary:hover,
body.carbon .btn-outline.btn-default:hover {
    background-color: var(--cds-interactive);
    color: #ffffff;
}

/* Danger */
body.carbon .btn-danger {
    background-color: var(--cds-error);
    border-color: transparent;
    color: #ffffff;
}

body.carbon .btn-danger:hover {
    background-color: #b81921;
    border-color: transparent;
}

body.carbon .btn-warning { background-color: var(--cds-warning); border-color: transparent; color: var(--cds-text-primary); }
body.carbon .btn-info { background-color: var(--cds-info); border-color: transparent; color: #ffffff; }

/* Fantôme */
body.carbon .btn-link {
    color: var(--cds-link);
    border-color: transparent;
}

body.carbon .btn-link:hover {
    background: var(--cds-layer-hover);
    text-decoration: none;
}

body.carbon .btn-circle {
    border-radius: 50%;
}

body.carbon .btn[disabled],
body.carbon .btn.disabled {
    background-color: #c6c6c6;
    border-color: transparent;
    color: #8d8d8d;
    opacity: 1;
}

/* ======================= Champs de saisie ======================= */
body.carbon .form-control,
body.carbon select.form-control,
body.carbon textarea.form-control {
    background-color: var(--cds-field);
    border: none;
    border-bottom: 1px solid var(--cds-border-strong);
    border-radius: 0;
    box-shadow: none;
    color: var(--cds-text-primary);
    font-size: 14px;
    letter-spacing: 0.16px;
    transition: outline var(--cds-motion), background-color var(--cds-motion);
}

/* Champ posé sur un fond gris : passe en blanc (field-02) */
body.carbon .gray-bg .form-control,
body.carbon #page-wrapper > .wrapper-content > .form-control {
    background-color: var(--cds-field);
}

body.carbon .ibox .form-control,
body.carbon .panel .form-control,
body.carbon .modal .form-control {
    background-color: var(--cds-layer-02);
}

body.carbon .form-control::placeholder {
    color: #a8a8a8;
}

body.carbon .form-control:focus {
    outline: 2px solid var(--cds-interactive);
    outline-offset: -2px;
    border-bottom-color: transparent;
    box-shadow: none;
}

body.carbon .form-control[disabled],
body.carbon .form-control[readonly] {
    background-color: var(--cds-layer-02);
    border-bottom-color: transparent;
    color: #8d8d8d;
}

body.carbon .input-group-addon {
    border: none;
    border-bottom: 1px solid var(--cds-border-strong);
    border-radius: 0;
    background: var(--cds-layer-02);
    color: var(--cds-icon);
}

body.carbon label,
body.carbon .control-label {
    font-size: 12px;
    font-weight: 400;
    letter-spacing: 0.32px;
    color: var(--cds-text-secondary);
}

/* Chosen (listes multiples) */
body.carbon .chosen-container .chosen-single,
body.carbon .chosen-container-multi .chosen-choices {
    background: var(--cds-field) !important;
    border: none !important;
    border-bottom: 1px solid var(--cds-border-strong) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

body.carbon .chosen-container-active .chosen-single,
body.carbon .chosen-container-active .chosen-choices {
    outline: 2px solid var(--cds-interactive);
    outline-offset: -2px;
}

body.carbon .chosen-container .chosen-drop {
    border: none;
    border-radius: 0;
    box-shadow: var(--cds-shadow-menu);
}

body.carbon .chosen-container .chosen-results li.highlighted {
    background: var(--cds-layer-hover) !important;
    color: var(--cds-text-primary) !important;
}

body.carbon .chosen-container-multi .chosen-choices li.search-choice {
    background: var(--cds-highlight) !important;
    color: var(--cds-text-primary) !important;
    border: none !important;
    border-radius: 12px !important;
    box-shadow: none;
}

/* Cases à cocher / radio : couleur principale */
body.carbon input[type="checkbox"],
body.carbon input[type="radio"] {
    accent-color: var(--cds-interactive);
}

/* ======================= Onglets (line tabs) ======================= */
body.carbon .nav-tabs {
    border-bottom: none;
    box-shadow: inset 0 -2px 0 var(--cds-border-subtle);
}

body.carbon .nav-tabs > li > a {
    margin-right: 0;
    border: none;
    border-radius: 0;
    color: var(--cds-text-secondary);
    padding: 10px 16px;
    box-shadow: inset 0 -2px 0 var(--cds-border-subtle);
    transition: box-shadow var(--cds-motion), color var(--cds-motion);
}

body.carbon .nav-tabs > li > a:hover {
    background: transparent;
    border: none;
    color: var(--cds-text-primary);
    box-shadow: inset 0 -2px 0 var(--cds-border-strong);
}

body.carbon .nav-tabs > li.active > a,
body.carbon .nav-tabs > li.active > a:hover,
body.carbon .nav-tabs > li.active > a:focus {
    border: none;
    background: transparent;
    color: var(--cds-text-primary);
    font-weight: 600;
    box-shadow: inset 0 -2px 0 var(--cds-interactive);
}

body.carbon .tab-content,
body.carbon .tabs-container .tab-pane .panel-body {
    border: none;
    background: var(--cds-layer-01);
}

body.carbon .nav-pills > li > a {
    border-radius: 0;
}

body.carbon .nav-pills > li.active > a,
body.carbon .nav-pills > li.active > a:hover {
    background: var(--cds-interactive);
}

/* ======================= Tableaux (data table) ======================= */
body.carbon .table {
    background: var(--cds-layer-01);
    font-size: 14px;
}

body.carbon .table > thead > tr > th {
    background: var(--cds-layer-selected);
    color: var(--cds-text-primary);
    font-weight: 600;
    border-bottom: none;
    padding: 12px 16px;
}

body.carbon .table > tbody > tr > td,
body.carbon .table > tbody > tr > th {
    border-top: none;
    border-bottom: 1px solid var(--cds-border-subtle);
    color: var(--cds-text-secondary);
}

body.carbon .table-condensed > tbody > tr > td,
body.carbon .table-condensed > thead > tr > th {
    padding: 6px 12px;
}

body.carbon .table-striped > tbody > tr:nth-of-type(odd) {
    background-color: var(--cds-layer-01);
}

body.carbon .table-striped > tbody > tr:nth-of-type(even) {
    background-color: var(--cds-layer-02);
}

body.carbon .table-hover > tbody > tr:hover,
body.carbon .table > tbody > tr:hover {
    background-color: var(--cds-layer-hover);
}

body.carbon .table > tbody > tr:hover > td {
    color: var(--cds-text-primary);
}

/* Listes de sélection (contacts, plantations...) */
body.carbon .folder-list li {
    border-radius: 0;
    border-bottom: 1px solid var(--cds-border-subtle) !important;
}

body.carbon .folder-list li:hover {
    background-color: var(--cds-layer-hover);
}

body.carbon ul li.on2, body.carbon ul li.on3, body.carbon ul li.on4,
body.carbon ul li.on5, body.carbon ul li.on6, body.carbon ul li.on7, body.carbon ul li.on8,
body.carbon .active-contact-item,
body.carbon .active-plant-item {
    background-color: var(--cds-layer-selected) !important;
    box-shadow: inset 3px 0 0 var(--cds-interactive);
    border-left-color: transparent !important;
}

/* Pagination */
body.carbon .pagination > li > a,
body.carbon .pagination > li > span {
    border: none;
    border-radius: 0 !important;
    margin: 0;
    color: var(--cds-text-secondary);
    background: transparent;
}

body.carbon .pagination > li > a:hover {
    background: var(--cds-layer-hover);
    color: var(--cds-text-primary);
}

body.carbon .pagination > .active > a,
body.carbon .pagination > .active > span,
body.carbon .pagination > .active > a:hover {
    background: transparent;
    color: var(--cds-text-primary);
    font-weight: 600;
    box-shadow: inset 0 -2px 0 var(--cds-interactive);
}

/* ======================= Tags (labels / badges) ======================= */
body.carbon .label,
body.carbon .badge {
    display: inline-flex;
    align-items: center;
    min-height: 20px;
    padding: 2px 8px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: 400;
    letter-spacing: 0.32px;
    line-height: 16px;
    text-shadow: none;
}

/* Comme Bootstrap : un tag vide (compteur à zéro rempli plus tard) reste masqué */
body.carbon .label:empty,
body.carbon .badge:empty {
    display: none;
}

body.carbon .label:not([style*="background"]),
body.carbon .badge:not([style*="background"]) {
    background-color: var(--cds-layer-selected);
    color: var(--cds-text-primary);
}

body.carbon .label-primary:not([style*="background"]), body.carbon .badge-primary:not([style*="background"]),
body.carbon .label-success:not([style*="background"]), body.carbon .badge-success:not([style*="background"]) {
    background-color: var(--cds-highlight); color: #0b5e4d;
}
body.carbon .label-info:not([style*="background"]), body.carbon .badge-info:not([style*="background"]) {
    background-color: #d0e2ff; color: #002d9c;
}
body.carbon .label-warning:not([style*="background"]), body.carbon .badge-warning:not([style*="background"]) {
    background-color: #fcf4d6; color: #8e6a00;
}
body.carbon .label-danger:not([style*="background"]), body.carbon .badge-danger:not([style*="background"]) {
    background-color: #ffd7d9; color: #a2191f;
}

/* ======================= Notifications (alertes) ======================= */
body.carbon .alert {
    border: none;
    border-radius: 0;
    border-left: 3px solid var(--cds-info);
    background: #edf5ff;
    color: var(--cds-text-primary);
    box-shadow: none;
}

body.carbon .alert-success { border-left-color: var(--cds-success); background: #defbe6; }
body.carbon .alert-info    { border-left-color: var(--cds-info); background: #edf5ff; }
body.carbon .alert-warning { border-left-color: var(--cds-warning); background: #fcf4d6; }
body.carbon .alert-danger  { border-left-color: var(--cds-error); background: #fff1f1; }

/* Toastr */
body.carbon #toast-container > div {
    border-radius: 0;
    box-shadow: var(--cds-shadow-menu);
    opacity: 1;
    font-family: var(--cds-font);
}

/* ======================= Modales, menus déroulants ======================= */
body.carbon .modal-content {
    border: none;
    border-radius: 0;
    background: var(--cds-layer-01);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.25);
}

body.carbon .modal-header {
    border-bottom: none;
    padding: 16px 16px 8px 16px;
}

body.carbon .modal-header .modal-title,
body.carbon .modal-header h4 {
    font-size: 20px;
    font-weight: 400;
    color: var(--cds-text-primary);
}

body.carbon .modal-body {
    padding: 8px 16px 24px;
    color: var(--cds-text-primary);
}

body.carbon .modal-footer {
    border-top: none;
    background: var(--cds-layer-02);
    padding: 12px 16px;
}

body.carbon .modal-backdrop.in {
    background: #161616;
    opacity: 0.5;
}

body.carbon .dropdown-menu {
    border: none;
    border-radius: 0;
    box-shadow: var(--cds-shadow-menu);
    padding: 4px 0;
    background: var(--cds-layer-01);
}

body.carbon .dropdown-menu > li > a {
    padding: 10px 16px;
    color: var(--cds-text-secondary);
    border-radius: 0;
}

body.carbon .dropdown-menu > li > a:hover,
body.carbon .dropdown-menu > li > a:focus {
    background: var(--cds-layer-hover);
    color: var(--cds-text-primary);
}

body.carbon .dropdown-menu .divider {
    background-color: var(--cds-border-subtle);
}

body.carbon .popover,
body.carbon .tooltip-inner {
    border-radius: 2px;
}

body.carbon .tooltip-inner {
    background: #393939;
    font-size: 12px;
}

/* ======================= Progression ======================= */
body.carbon .progress {
    height: 8px;
    border-radius: 0;
    background: var(--cds-border-subtle);
    box-shadow: none;
}

body.carbon .progress-bar {
    background-color: var(--cds-interactive);
    box-shadow: none;
}

/* ======================= Cartes Leaflet ======================= */
body.carbon .leaflet-bar,
body.carbon .leaflet-control-layers {
    border: none !important;
    border-radius: 0 !important;
    box-shadow: var(--cds-shadow-menu) !important;
}

body.carbon .leaflet-bar a {
    border-radius: 0 !important;
    color: var(--cds-text-primary);
}

body.carbon .leaflet-bar a:hover {
    background: var(--cds-layer-hover);
}

body.carbon .leaflet-popup-content-wrapper,
body.carbon .leaflet-popup-tip {
    border-radius: 0;
    box-shadow: var(--cds-shadow-menu);
    font-family: var(--cds-font);
}

body.carbon .map-legend {
    border-radius: 0;
    box-shadow: var(--cds-shadow-menu);
    font-family: var(--cds-font);
}

/* ======================= Barres de défilement ======================= */
body.carbon ::-webkit-scrollbar { width: 8px; height: 8px; }
body.carbon ::-webkit-scrollbar-track { background: transparent; }
body.carbon ::-webkit-scrollbar-thumb { background: #c6c6c6; }
body.carbon ::-webkit-scrollbar-thumb:hover { background: #8d8d8d; }

/* ======================= Écran de connexion ======================= */
body.carbon.login-carbon {
    min-height: 100vh;
    background: var(--cds-background);
}

.login-carbon .loginscreen.middle-box {
    margin-top: 10vh;
    padding: 32px 32px 24px;
    width: 400px;
    max-width: calc(100% - 32px);
    background: var(--cds-layer-01);
    border-top: 4px solid var(--cds-interactive);
    border-radius: 0;
    box-shadow: none;
    text-align: left;
}

.login-carbon .loginscreen img.img-responsive {
    margin: 0 0 24px !important;
    max-height: 72px;
}

.login-carbon .login-title {
    font-size: 28px;
    font-weight: 300;
    margin: 0 0 24px;
    color: var(--cds-text-primary);
}

.login-carbon .form-group {
    margin: 0 0 16px !important;
}

.login-carbon .form-control {
    height: 40px;
    background: var(--cds-field);
}

.login-carbon #valider {
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 48px;
    width: 100%;
    margin-top: 8px;
    padding: 0 16px;
    background: var(--cds-interactive) !important;
    color: #ffffff !important;
    border: none;
    border-radius: 0;
    font-size: 14px;
    text-align: left;
}

.login-carbon #valider:hover {
    background: var(--cds-interactive-hover) !important;
}

.login-carbon #valider::after {
    content: "\2192";
    font-size: 18px;
}

.login-carbon .login-links {
    margin-top: 16px;
    font-size: 14px;
}

.login-carbon .login-footer {
    margin-top: 24px;
    padding-top: 16px;
    border-top: 1px solid var(--cds-border-subtle);
    color: var(--cds-text-helper);
    font-size: 12px;
}

/* ---------------------------------------------------------------------------
   Applications intégrées (Plantations, Forests EUDR, DDS Project) : cadre plein écran
   --------------------------------------------------------------------------- */
body.carbon .embedded-app {
    margin: 0;
    padding: 0;
    background: var(--cds-layer-01, #ffffff);
    border: 1px solid var(--cds-border-subtle);
}
body.carbon .embedded-app-frame {
    display: block;
    width: 100%;
    min-height: 400px;
    border: 0;
    background: #ffffff;
}

/* ---------------------------------------------------------------------------
   Messagerie (onglet Chat de la fiche contact — OpenIM)
   --------------------------------------------------------------------------- */
.icoop-chat {
    display: flex;
    flex-direction: column;
    height: 560px;
    max-height: calc(100vh - 220px);
    min-height: 360px;
    padding: 0 !important;
    background: var(--cds-layer-01, #fff);
    border: 1px solid var(--cds-border-subtle, #e0e0e0);
}
.icoop-chat-header {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 16px;
    border-bottom: 1px solid var(--cds-border-subtle, #e0e0e0);
    font-family: var(--cds-font, inherit);
    color: var(--cds-text-primary, #161616);
}
.icoop-chat-header .fa-comments { color: var(--cds-interactive, #1ab394); }
.icoop-chat-title { font-weight: 600; }
.icoop-chat-peer { color: var(--cds-text-secondary, #525252); }
.icoop-chat-status { margin-left: auto; font-size: 12px; color: var(--cds-text-helper, #6f6f6f); }
.icoop-chat-status[data-kind="error"] { color: var(--cds-error, #da1e28); }
.icoop-chat-messages {
    flex: 1;
    overflow-y: auto;
    padding: 16px;
    background: var(--cds-background, #f4f4f4);
}
.icoop-chat-empty {
    margin-top: 48px;
    text-align: center;
    color: var(--cds-text-helper, #6f6f6f);
    line-height: 1.8;
}
.icoop-chat-empty .fa, .icoop-chat-empty .fas, .icoop-chat-empty .far { font-size: 28px; }
.icoop-chat-msg { display: flex; flex-direction: column; margin-bottom: 12px; max-width: 75%; }
.icoop-chat-msg.is-mine { margin-left: auto; align-items: flex-end; }
.icoop-chat-msg.is-theirs { margin-right: auto; align-items: flex-start; }
.icoop-chat-bubble {
    padding: 8px 12px;
    font-size: 14px;
    line-height: 1.43;
    white-space: normal;
    word-wrap: break-word;
    overflow-wrap: anywhere;
}
.is-mine .icoop-chat-bubble { background: var(--cds-interactive, #1ab394); color: #fff; }
.is-theirs .icoop-chat-bubble {
    background: var(--cds-layer-01, #fff);
    color: var(--cds-text-primary, #161616);
    border: 1px solid var(--cds-border-subtle, #e0e0e0);
}
.icoop-chat-time { margin-top: 2px; font-size: 11px; color: var(--cds-text-helper, #6f6f6f); }
.icoop-chat-form {
    display: flex;
    flex-direction: column;
    border-top: 1px solid var(--cds-border-subtle, #e0e0e0);
}
/* Toolbar : pièce jointe + micro */
.icoop-chat-toolbar {
    display: flex;
    align-items: center;
    gap: 2px;
    padding: 3px 8px;
    border-bottom: 1px solid var(--cds-border-subtle, #e0e0e0);
    background: var(--cds-layer-01, #fff);
    min-height: 34px;
}
.icoop-chat-tool-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: none;
    border: none;
    padding: 5px 7px;
    cursor: pointer;
    color: var(--cds-text-secondary, #525252);
    border-radius: 4px;
    font-size: 15px;
    line-height: 1;
    transition: color 0.15s, background 0.15s;
    user-select: none;
}
.icoop-chat-tool-btn:hover { color: var(--cds-interactive, #1ab394); background: var(--cds-hover-ui, #e8e8e8); }
.icoop-chat-tool-btn.is-recording { color: #da1e28; }
/* Statut enregistrement */
.icoop-chat-rec-status { display: flex; align-items: center; gap: 5px; font-size: 12px; color: #da1e28; margin-left: 4px; }
.icoop-chat-rec-dot { width: 8px; height: 8px; background: #da1e28; border-radius: 50%; flex-shrink: 0; animation: icoop-blink 1s step-start infinite; }
.icoop-chat-rec-hint { color: var(--cds-text-helper, #6f6f6f); }
@keyframes icoop-blink { 0%, 100% { opacity: 1; } 50% { opacity: 0; } }
/* Ligne input + bouton */
.icoop-chat-input-row {
    display: flex;
    align-items: stretch;
}
.icoop-chat-input-row textarea {
    flex: 1;
    resize: none;
    height: auto !important;
    min-height: 52px;
    margin: 0 !important;
    border: 0 !important;
    border-bottom: 1px solid var(--cds-border-strong, #8d8d8d) !important;
    background: var(--cds-field, #f4f4f4) !important;
}
.icoop-chat-input-row .btn { margin: 0 !important; min-width: 110px; }
/* Bulles media */
.icoop-chat-bubble audio  { display: block; max-width: 230px; margin: 2px 0; }
.icoop-chat-bubble video  { display: block; max-width: 250px; max-height: 160px; margin: 2px 0; border-radius: 4px; }
.icoop-chat-file-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 2px 0;
    text-decoration: none;
    color: inherit;
    font-size: 13px;
    word-break: break-all;
}
.icoop-chat-file-link:hover { text-decoration: underline; }
.is-mine  .icoop-chat-file-link { color: rgba(255,255,255,0.92); }
.icoop-chat-file-link .fas { font-size: 16px; flex-shrink: 0; }
