/* ==========================================================================
   ERP Maison C — thème de l'interface (par-dessus l'admin Django)
   Couleur principale : --mc-principale / --mc-foncee / --mc-claire (Paramètres > Apparence)
   ========================================================================== */

/* ---------- Jetons : mode clair ---------- */
:root {
  --mc-accent: #b8862f;            /* laiton : petits accents */
  --mc-fond: #f3f2ee;              /* fond de page */
  --mc-carte: #ffffff;             /* cartes, formulaires */
  --mc-carte-2: #f8f7f4;           /* en-têtes de tableaux, zones secondaires */
  --mc-trait: #e4e1d9;
  --mc-texte: #1d2126;
  --mc-texte-2: #626872;
  --mc-lien: var(--mc-principale);
  --mc-teinte: color-mix(in srgb, var(--mc-principale) 9%, transparent);
  --mc-ombre: 0 1px 2px rgba(20, 24, 31, .05), 0 4px 14px rgba(20, 24, 31, .06);
  --mc-ombre-forte: 0 10px 30px rgba(20, 24, 31, .18);
  --mc-rayon: 12px;
  --mc-succes: #15803d;  --mc-succes-fond: #e8f6ec;
  --mc-alerte: #a16207;  --mc-alerte-fond: #fdf4dc;
  --mc-critique: #c0392b; --mc-critique-fond: #fdecea;
  --mc-info: #1d4ed8;    --mc-info-fond: #e8effd;

  /* Variables de l'admin Django, branchées sur le thème */
  --primary: var(--mc-principale);
  --secondary: var(--mc-principale);
  --accent: var(--mc-accent);
  --header-bg: var(--mc-principale);
  --header-color: #fff;
  --header-link-color: #fff;
  --breadcrumbs-bg: transparent;
  --breadcrumbs-fg: var(--mc-texte-2);
  --breadcrumbs-link-fg: var(--mc-lien);
  --body-bg: var(--mc-carte);
  --body-fg: var(--mc-texte);
  --body-quiet-color: var(--mc-texte-2);
  --link-fg: var(--mc-lien);
  --link-hover-color: var(--mc-foncee);
  --link-selected-fg: var(--mc-principale);
  --hairline-color: var(--mc-trait);
  --border-color: #d6d2c8;
  --darkened-bg: var(--mc-carte-2);
  --selected-row: var(--mc-teinte);
  --button-bg: var(--mc-principale);
  --button-hover-bg: var(--mc-foncee);
  --default-button-bg: var(--mc-principale);
  --default-button-hover-bg: var(--mc-foncee);
  --object-tools-bg: #475569;
  --object-tools-hover-bg: #334155;
  --message-success-bg: var(--mc-succes-fond);
  --message-warning-bg: var(--mc-alerte-fond);
  --message-error-bg: var(--mc-critique-fond);
  --font-family-primary: "Segoe UI", system-ui, -apple-system, Roboto, "Helvetica Neue", Arial, sans-serif;
}

/* ---------- Jetons : mode sombre (réglage du système ou bouton lune) ---------- */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --mc-fond: #0e1013; --mc-carte: #171a1f; --mc-carte-2: #1d2127; --mc-trait: #2a2f37;
    --mc-texte: #e8eaed; --mc-texte-2: #a3a9b2; --mc-lien: var(--mc-claire);
    --mc-teinte: color-mix(in srgb, var(--mc-claire) 14%, transparent);
    --mc-ombre: 0 1px 2px rgba(0, 0, 0, .4); --mc-ombre-forte: 0 10px 30px rgba(0, 0, 0, .6);
    --mc-succes: #4ade80; --mc-succes-fond: #10291a; --mc-alerte: #fbbf24; --mc-alerte-fond: #2e2410;
    --mc-critique: #f87171; --mc-critique-fond: #331716; --mc-info: #93b4ff; --mc-info-fond: #16213a;
    --header-bg: #13161a; --border-color: #363c45; --body-bg: var(--mc-carte); --body-fg: var(--mc-texte);
    --body-quiet-color: var(--mc-texte-2); --link-fg: var(--mc-lien); --link-hover-color: #fff;
    --darkened-bg: var(--mc-carte-2); --hairline-color: var(--mc-trait); --selected-row: var(--mc-teinte);
  }
}
html[data-theme="dark"] {
  --mc-fond: #0e1013; --mc-carte: #171a1f; --mc-carte-2: #1d2127; --mc-trait: #2a2f37;
  --mc-texte: #e8eaed; --mc-texte-2: #a3a9b2; --mc-lien: var(--mc-claire);
  --mc-teinte: color-mix(in srgb, var(--mc-claire) 14%, transparent);
  --mc-ombre: 0 1px 2px rgba(0, 0, 0, .4); --mc-ombre-forte: 0 10px 30px rgba(0, 0, 0, .6);
  --mc-succes: #4ade80; --mc-succes-fond: #10291a; --mc-alerte: #fbbf24; --mc-alerte-fond: #2e2410;
  --mc-critique: #f87171; --mc-critique-fond: #331716; --mc-info: #93b4ff; --mc-info-fond: #16213a;
  --header-bg: #13161a; --border-color: #363c45; --body-bg: var(--mc-carte); --body-fg: var(--mc-texte);
  --body-quiet-color: var(--mc-texte-2); --link-fg: var(--mc-lien); --link-hover-color: #fff;
  --darkened-bg: var(--mc-carte-2); --hairline-color: var(--mc-trait); --selected-row: var(--mc-teinte);
}

/* ---------- Base ---------- */
html, body { background: var(--mc-fond); }
body { color: var(--mc-texte); font-size: 14px; -webkit-font-smoothing: antialiased; }
a:link, a:visited { color: var(--mc-lien); }
.ico { flex: none; vertical-align: middle; }
#container { min-width: 0; height: auto; min-height: 100%; }  /* grandit avec la page : l'en-tête et le ruban restent collés en défilant */
#main { background: var(--mc-fond); }
.main > .content { min-width: 0; }                       /* la page ne déborde plus à droite */
.inline-group .tabular, .inline-group .tabular fieldset.module { overflow-x: auto; }
.main > #nav-sidebar + .content, .main > .content { padding: 22px 28px 40px; }
#content { padding: 0; }
#content > h1, .content h1 { font-size: 24px; font-weight: 650; color: var(--mc-texte); margin: 4px 0 6px; letter-spacing: -.01em; }
#content > h2, #content-subtitle { color: var(--mc-texte-2); font-weight: 500; }
.mc-muet, .mc-vide { color: var(--mc-texte-2); }
.mc-vide { padding: 28px; text-align: center; background: var(--mc-carte); border: 1px dashed var(--border-color); border-radius: var(--mc-rayon); }

/* ---------- En-tête ---------- */
#header.mc-header {
  display: flex; align-items: center; gap: 18px; padding: 10px 22px; min-height: 62px;
  background: var(--header-bg); color: #fff; box-shadow: 0 2px 10px rgba(0, 0, 0, .12);
  position: sticky; top: 0; z-index: 40; overflow: visible;
  flex-direction: row !important; justify-content: flex-start !important; /* l'admin passe en colonne sur petit écran */
}
html[data-theme="dark"] #header.mc-header { border-bottom: 2px solid var(--mc-principale); }
.mc-marque { display: flex; align-items: center; gap: 12px; color: #fff !important; text-decoration: none !important; min-width: 0; }
/* Logo CENTURION ERP (core/static/maisonc/logo) : emblème sans fond sur l'en-tête, toujours foncé */
/* Logo bleu (C) : posé sur une pastille blanche, sinon il se perd sur le bandeau bleu foncé */
.mc-embleme { width: 42px; height: 42px; flex: none; object-fit: contain; margin: -2px 0 -2px -2px; padding: 4px;
  box-sizing: border-box; background: #fff; border-radius: 11px; box-shadow: 0 1px 3px rgba(0, 0, 0, .25); }
.mc-logo-connexion { display: none; }
.mc-marque-texte { display: flex; flex-direction: column; line-height: 1.1; }
.mc-marque-texte b { font-size: 17px; font-weight: 800; letter-spacing: .07em; }
.mc-marque-texte small { font-size: 10.5px; font-weight: 700; color: #e2c27a; letter-spacing: .42em; }

.mc-recherche { flex: 1; max-width: 560px; margin: 0 auto; position: relative; display: flex; align-items: center; }
.mc-recherche .ico { position: absolute; left: 12px; color: rgba(255, 255, 255, .7); }
#header .mc-recherche input {
  width: 100%; height: 40px; padding: 0 44px 0 40px; border-radius: 10px; font-size: 14px;
  background: rgba(255, 255, 255, .12); border: 1px solid rgba(255, 255, 255, .18); color: #fff;
  transition: background .15s, border-color .15s;
}
#header .mc-recherche input::placeholder { color: rgba(255, 255, 255, .65); }
#header .mc-recherche input:focus { outline: none; background: rgba(255, 255, 255, .2); border-color: rgba(255, 255, 255, .5); }
.mc-recherche kbd {
  position: absolute; right: 10px; font: 600 11px var(--font-family-primary); color: rgba(255, 255, 255, .75);
  border: 1px solid rgba(255, 255, 255, .35); border-radius: 5px; padding: 1px 6px;
}

.mc-utilisateur { display: flex; align-items: center; gap: 10px; margin-left: auto; }
/* Les icônes Django ont un fond (currentColor) : même couleur que l'en-tête, pictogramme en blanc */
.mc-utilisateur .theme-toggle svg { color: var(--header-bg); fill: #fff; }
.mc-menu-user { position: relative; }
.mc-menu-user summary { list-style: none; display: flex; align-items: center; gap: 10px; cursor: pointer; padding: 4px 8px; border-radius: 10px; }
.mc-menu-user summary::-webkit-details-marker { display: none; }
.mc-menu-user summary:hover, .mc-menu-user[open] summary { background: rgba(255, 255, 255, .12); }
.mc-avatar {
  width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; font-weight: 700; font-size: 13px;
  background: rgba(255, 255, 255, .92); color: var(--mc-principale);
}
.mc-qui { display: flex; flex-direction: column; line-height: 1.15; color: #fff; }
.mc-qui b { font-size: 13px; }
.mc-qui small { font-size: 11px; opacity: .75; }
.mc-menu {
  position: absolute; right: 0; top: calc(100% + 8px); min-width: 230px; padding: 6px; z-index: 50;
  background: var(--mc-carte); border: 1px solid var(--mc-trait); border-radius: 10px; box-shadow: var(--mc-ombre-forte);
}
.mc-menu a, .mc-menu button {
  display: flex; align-items: center; gap: 10px; width: 100%; padding: 9px 10px; border-radius: 7px; border: 0;
  background: none; color: var(--mc-texte) !important; font: inherit; font-size: 13px; cursor: pointer; text-align: left;
  text-decoration: none !important;
}
.mc-menu a:hover, .mc-menu button:hover { background: var(--mc-teinte); }
.mc-menu form { margin: 0; }

/* ---------- Fil d'Ariane ---------- */
div.breadcrumbs {
  background: var(--mc-carte); color: var(--mc-texte-2); border-bottom: 1px solid var(--mc-trait);
  padding: 9px 28px; font-size: 12.5px;
}
div.breadcrumbs a { color: var(--mc-lien); }

/* ---------- Menu latéral ---------- */
#nav-sidebar { background: var(--mc-carte); border-right: 1px solid var(--mc-trait); padding: 14px 10px 30px; flex: 0 0 262px; }
.toggle-nav-sidebar { background: var(--mc-carte); border-right: 1px solid var(--mc-trait); color: var(--mc-texte-2); }
.toggle-nav-sidebar:hover, .toggle-nav-sidebar:focus { background: var(--mc-teinte); }
#nav-filter {
  width: 100%; margin: 6px 0 12px; padding: 8px 10px; border-radius: 8px; border: 1px solid var(--mc-trait);
  background: var(--mc-carte-2); color: var(--mc-texte); font-size: 13px; box-sizing: border-box;
}
.mc-nav-accueil {
  display: flex; align-items: center; gap: 10px; padding: 9px 12px; border-radius: 9px; font-weight: 600;
  color: var(--mc-texte) !important; text-decoration: none !important;
}
.mc-nav-accueil:hover { background: var(--mc-teinte); }
.mc-nav-accueil.actif { background: var(--mc-principale); color: #fff !important; }
#nav-sidebar .module { margin-bottom: 10px; background: none; border: 0; box-shadow: none; }
#nav-sidebar .module caption, #nav-sidebar .module caption a.section {
  background: none; color: var(--mc-texte-2); padding: 12px 10px 6px; font-size: 11px; font-weight: 700;
  letter-spacing: .07em; text-transform: uppercase; text-align: left;
}
#nav-sidebar .module caption a.section { display: flex; align-items: center; gap: 8px; padding: 0; text-decoration: none; }
#nav-sidebar .current-app .section:link, #nav-sidebar .current-app .section:visited { color: var(--mc-lien); }
#nav-sidebar table { width: 100%; }
#nav-sidebar th, #nav-sidebar td { border: 0; padding: 0; background: none; }
#nav-sidebar th[scope=row] { display: flex; align-items: center; gap: 10px; padding: 7px 10px; border-radius: 8px; position: relative; font-weight: 500; }
#nav-sidebar th[scope=row] a { color: var(--mc-texte); font-size: 13.5px; text-decoration: none; }
#nav-sidebar th[scope=row] a::after { content: ""; position: absolute; inset: 0; }   /* toute la ligne est cliquable */
#nav-sidebar .mc-ico-modele { color: var(--mc-texte-2); display: inline-flex; }
#nav-sidebar tr:hover th[scope=row] { background: var(--mc-teinte); }
#nav-sidebar .current-model th[scope=row] { background: var(--mc-teinte); box-shadow: inset 3px 0 0 var(--mc-accent); }
#nav-sidebar .current-model th[scope=row] a { color: var(--mc-lien); font-weight: 650; }
#nav-sidebar .current-model .mc-ico-modele { color: var(--mc-lien); }
#nav-sidebar tr { background: none !important; }
#nav-sidebar td { width: 28px; vertical-align: middle; }
#nav-sidebar a.addlink {
  display: inline-grid; place-items: center; width: 24px; height: 24px; padding: 0; border-radius: 6px; opacity: 0;
  background: var(--mc-principale) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M5 12h14M12 5v14'/%3E%3C/svg%3E") center no-repeat;
  transition: opacity .12s;
}
#nav-sidebar tr:hover a.addlink, #nav-sidebar a.addlink:focus { opacity: 1; }

/* ---------- Cartes : modules, ensembles de champs, listes ---------- */
.module, fieldset.module, .inline-group, #changelist, .mc-carte, .dashboard .module {
  background: var(--mc-carte); border: 1px solid var(--mc-trait); border-radius: var(--mc-rayon); box-shadow: var(--mc-ombre);
}
fieldset.module { padding: 0 0 6px; margin-bottom: 18px; overflow: hidden; }
.module h2, .module caption, fieldset.module h2.fieldset-heading, .inline-group h2 {
  background: var(--mc-carte-2); color: var(--mc-texte); font-size: 13px; font-weight: 700; letter-spacing: .02em;
  text-transform: none; padding: 11px 16px; border-bottom: 1px solid var(--mc-trait); margin: 0;
}
fieldset.module h2.fieldset-heading { border-radius: var(--mc-rayon) var(--mc-rayon) 0 0; }
fieldset .description { padding: 10px 16px 0; color: var(--mc-texte-2); }
.inline-group { overflow: hidden; margin-bottom: 18px; }
.inline-group .tabular table { width: 100%; }
fieldset details > summary { list-style: none; cursor: pointer; }

/* ---------- Champs de formulaire ---------- */
.form-row { padding: 10px 16px; border-bottom: 1px solid var(--mc-trait); }
.form-row:last-child { border-bottom: 0; }
.aligned label { color: var(--mc-texte-2); font-weight: 600; font-size: 13px; }
.required label, label.required { color: var(--mc-texte); }
input[type=text], input[type=password], input[type=email], input[type=url], input[type=number], input[type=tel],
input[type=search], textarea, select, .vTextField, .vDateField, .vTimeField {
  border: 1px solid var(--border-color); border-radius: 8px; padding: 7px 10px; background: var(--mc-carte);
  color: var(--mc-texte); font-size: 14px; transition: border-color .12s, box-shadow .12s;
}
select { padding: 6px 8px; min-height: 36px; }
input:focus, textarea:focus, select:focus {
  outline: none; border-color: var(--mc-principale);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--mc-principale) 22%, transparent);
}
.select2-container--admin-autocomplete .select2-selection--single { border-radius: 8px !important; min-height: 36px; border-color: var(--border-color) !important; }
.select2-container--admin-autocomplete .select2-selection--single .select2-selection__rendered { line-height: 34px !important; }
.select2-container--admin-autocomplete .select2-selection--single .select2-selection__arrow { height: 34px !important; }
div.help, p.help, .help { color: var(--mc-texte-2); font-size: 12px; }
.errornote { border-radius: 10px; background: var(--mc-critique-fond); color: var(--mc-critique); border: 1px solid color-mix(in srgb, var(--mc-critique) 35%, transparent); }
ul.errorlist li { background: var(--mc-critique-fond); color: var(--mc-critique); border-radius: 6px; padding: 6px 10px; }

/* ---------- Boutons ---------- */
.button, input[type=submit], input[type=button], .submit-row input, a.button {
  border-radius: 9px; padding: 9px 16px; font-weight: 600; font-size: 13.5px; border: 0; cursor: pointer;
  transition: background .12s, transform .05s, box-shadow .12s;
}
.button:active, input[type=submit]:active { transform: translateY(1px); }
.submit-row {
  position: sticky; bottom: 0; z-index: 20; margin: 16px 0 0; padding: 12px 16px; border-radius: var(--mc-rayon);
  background: color-mix(in srgb, var(--mc-carte) 92%, transparent); backdrop-filter: blur(6px);
  border: 1px solid var(--mc-trait); box-shadow: 0 -4px 16px rgba(20, 24, 31, .06);
}
.submit-row input.default { box-shadow: 0 2px 6px color-mix(in srgb, var(--mc-principale) 35%, transparent); }
.submit-row a.deletelink { border-radius: 9px; padding: 9px 16px; }
.submit-row a.closelink { border-radius: 9px; }
.mc-envoi input[type=submit], .mc-envoi button[type=submit] { opacity: .65; cursor: progress; }

/* Outils en haut des fiches / listes : boutons « pilule » */
.object-tools { float: none !important; margin: 0 0 14px !important; display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
#content-main > .object-tools:first-child { margin-top: -4px !important; }
.object-tools li { margin: 0 !important; display: block; }
.object-tools a, .object-tools a:link, .object-tools a:visited, .mc-bouton-action, .mc-lien-action {
  display: inline-flex; align-items: center; gap: 7px; padding: 8px 14px; border-radius: 9px; border: 0;
  font: 600 12.5px var(--font-family-primary); text-transform: none; letter-spacing: 0; cursor: pointer;
  background: var(--c, #475569); color: #fff !important; float: none; height: auto; line-height: 1.2;
  box-shadow: 0 1px 2px rgba(0, 0, 0, .12); transition: filter .12s, transform .05s;
}
.object-tools a:hover, .mc-bouton-action:hover, .mc-lien-action:hover { filter: brightness(1.1); background: var(--c, #475569); text-decoration: none; }
.object-tools a.addlink {
  --c: var(--mc-principale); padding-left: 32px;
  background: var(--mc-principale) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M5 12h14M12 5v14'/%3E%3C/svg%3E") 12px center no-repeat;
  font-size: 13.5px; padding-top: 10px; padding-bottom: 10px;
}
.object-tools a.historylink { --c: transparent; background: var(--mc-carte); color: var(--mc-texte-2) !important; border: 1px solid var(--mc-trait); box-shadow: none; }
.mc-action { display: inline; margin: 0; }

/* ---------- Bandeau d'état des documents ---------- */
.mc-bandeau {
  display: flex; align-items: center; gap: 10px; padding: 11px 16px; margin: 0 0 16px; border-radius: 10px;
  font-weight: 600; font-size: 13.5px; border: 1px solid transparent;
}
.mc-bandeau.mc-info { background: var(--mc-info-fond); color: var(--mc-info); }
.mc-bandeau.mc-succes { background: var(--mc-succes-fond); color: var(--mc-succes); }
.mc-bandeau.mc-critique { background: var(--mc-critique-fond); color: var(--mc-critique); }
.mc-bandeau.mc-neutre { background: var(--mc-carte-2); color: var(--mc-texte-2); }

/* ---------- Badges de statut ---------- */
.mc-badge {
  display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px 3px 8px; border-radius: 999px; white-space: nowrap;
  font-size: 12px; font-weight: 650; color: color-mix(in srgb, var(--c) 85%, var(--mc-texte));
  background: color-mix(in srgb, var(--c) 13%, transparent);
}
.mc-badge::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--c); }

/* ---------- Listes ---------- */
#changelist { padding: 0; overflow: hidden; }
#changelist .changelist-form-container { background: var(--mc-carte); }
#changelist #toolbar { background: var(--mc-carte); border-bottom: 1px solid var(--mc-trait); padding: 12px 14px; margin: 0; }
#changelist #toolbar form input[type=text], #changelist-search input[type=text] { border-radius: 9px; padding: 8px 12px; min-width: 260px; }
#changelist #toolbar form input[type=submit] { background: var(--mc-principale); color: #fff; }
#changelist .actions { background: var(--mc-carte-2); border-bottom: 1px solid var(--mc-trait); padding: 8px 14px; }
#result_list { width: 100%; }
#result_list thead th {
  background: var(--mc-carte-2); color: var(--mc-texte-2); font-size: 11.5px; font-weight: 700; text-transform: uppercase;
  letter-spacing: .04em; border-bottom: 1px solid var(--mc-trait); padding: 0; white-space: nowrap;
}
#result_list thead th .text a, #result_list thead th .text span { padding: 10px 12px; color: var(--mc-texte-2); }
#result_list tbody tr { transition: background .1s; background: var(--mc-carte); }
#result_list tbody tr:nth-child(even) { background: color-mix(in srgb, var(--mc-carte-2) 55%, var(--mc-carte)); }
#result_list tbody tr:hover { background: var(--mc-teinte); }
#result_list td, #result_list th { padding: 10px 12px; border-bottom: 1px solid var(--mc-trait); vertical-align: middle; font-size: 13.5px; }
#result_list th a { font-weight: 650; }
#changelist .paginator { background: var(--mc-carte); border-top: 0; padding: 12px 14px; color: var(--mc-texte-2); }
.paginator a:link, .paginator a:visited, .paginator .this-page { border-radius: 6px; padding: 4px 9px; }
.paginator .this-page { background: var(--mc-principale); color: #fff; }
#changelist-filter {
  background: var(--mc-carte); border: 1px solid var(--mc-trait); border-radius: var(--mc-rayon); box-shadow: var(--mc-ombre);
  overflow: hidden;
}
#changelist-filter h2 { background: var(--mc-carte-2); color: var(--mc-texte); font-size: 13px; text-transform: none; }
#changelist-filter h3 { color: var(--mc-texte-2); font-size: 12px; text-transform: uppercase; letter-spacing: .05em; }
#changelist-filter li.selected a { color: var(--mc-lien) !important; font-weight: 700; }
#changelist-filter li.selected { border-left-color: var(--mc-accent); }
.change-list .filtered .results, .change-list .filtered .paginator { margin-right: 0; }

/* Tableaux des lignes (factures, devis…) */
.inline-group .tabular thead th { background: var(--mc-carte-2); color: var(--mc-texte-2); font-size: 11.5px; text-transform: uppercase; letter-spacing: .03em; }
.inline-group .tabular td { padding: 8px 6px; vertical-align: top; }
.inline-group .tabular td input[type=number] { width: 7.5em; }
.inline-group .tabular td.field-quantite input, .inline-group .tabular td.field-remise input,
.inline-group .tabular td.field-taux_tva input { width: 5em; }
.inline-group .add-row td { padding: 10px; background: var(--mc-carte-2); }
.inline-group .add-row a { font-weight: 650; }
.inline-group tr.has_original td { padding-top: 8px; }
td.field-montant_aff p, td.field-montant_aff { font-weight: 700; white-space: nowrap; font-variant-numeric: tabular-nums; }

/* ---------- Messages (notifications) ---------- */
ul.messagelist {
  position: fixed; top: 74px; right: 20px; z-index: 60; width: min(440px, calc(100vw - 40px)); padding: 0; margin: 0;
  display: flex; flex-direction: column; gap: 8px;
}
ul.messagelist li {
  margin: 0; padding: 12px 40px 12px 44px; border-radius: 10px; font-size: 13.5px; font-weight: 500; line-height: 1.45;
  color: var(--mc-texte); background-color: var(--mc-carte) !important; background-position: 14px 14px !important;
  border: 1px solid var(--mc-trait); border-left: 4px solid var(--mc-succes); box-shadow: var(--mc-ombre-forte);
  animation: mc-entree .25s ease-out; position: relative; transition: opacity .3s, transform .3s;
}
ul.messagelist li.warning { border-left-color: var(--mc-alerte); }
ul.messagelist li.error { border-left-color: var(--mc-critique); }
ul.messagelist li.info { border-left-color: var(--mc-info); }
ul.messagelist li.mc-sortie { opacity: 0; transform: translateX(20px); }
.mc-fermer { position: absolute; top: 8px; right: 8px; border: 0; background: none; color: var(--mc-texte-2); cursor: pointer; padding: 4px; border-radius: 6px; }
.mc-fermer:hover { background: var(--mc-teinte); }
@keyframes mc-entree { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: none; } }

/* ---------- Fenêtre de confirmation ---------- */
.mc-dialogue {
  border: 0; border-radius: 16px; padding: 0; width: min(460px, calc(100vw - 32px)); box-shadow: var(--mc-ombre-forte);
  background: var(--mc-carte); color: var(--mc-texte);
}
.mc-dialogue::backdrop { background: rgba(15, 18, 22, .45); backdrop-filter: blur(2px); }
.mc-dialogue form { padding: 22px 22px 18px; margin: 0; }
.mc-dialogue h3 { margin: 0 0 8px; font-size: 18px; font-weight: 700; color: var(--mc-texte); }
.mc-dialogue p { margin: 0 0 14px; color: var(--mc-texte-2); font-size: 14px; line-height: 1.5; }
.mc-dialogue label { display: flex; flex-direction: column; gap: 6px; font-weight: 600; font-size: 13px; margin-bottom: 14px; }
.mc-dialogue textarea { width: 100%; box-sizing: border-box; font: inherit; }
.mc-dialogue [hidden], .mc-fiche[hidden], fieldset[hidden] { display: none !important; }
.mc-erreur { color: var(--mc-critique); font-weight: 600; }
.mc-dialogue-boutons { display: flex; justify-content: flex-end; gap: 8px; }
.mc-btn {
  display: inline-flex; align-items: center; gap: 8px; padding: 9px 18px; border-radius: 9px; border: 0; cursor: pointer;
  font: 600 13.5px var(--font-family-primary); background: var(--c, var(--mc-principale)); color: #fff;
}
a.mc-btn:link, a.mc-btn:visited { color: #fff; text-decoration: none; }
.mc-btn:hover { filter: brightness(1.1); }
.mc-btn-secondaire, a.mc-btn-secondaire:link, a.mc-btn-secondaire:visited { background: var(--mc-carte-2); color: var(--mc-texte); border: 1px solid var(--mc-trait); }

/* ---------- Saisie dynamique : fiches express, infos article, totaux en direct ---------- */
.mc-fiche {
  display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: center; margin-top: 8px; padding: 8px 12px; border-radius: 9px;
  background: var(--mc-carte-2); border: 1px solid var(--mc-trait); font-size: 12.5px; color: var(--mc-texte-2); max-width: 640px;
}
.mc-fiche b { color: var(--mc-texte); }
.mc-fiche .mc-rouge { color: var(--mc-critique); font-weight: 700; }
.mc-fiche .mc-vert { color: var(--mc-succes); font-weight: 700; }
.mc-info-article { display: flex; align-items: center; gap: 8px; margin-top: 6px; font-size: 12px; color: var(--mc-texte-2); max-width: 340px; }
.mc-info-article img { width: 34px; height: 34px; object-fit: cover; border-radius: 6px; border: 1px solid var(--mc-trait); }
.mc-info-article .mc-rouge { color: var(--mc-critique); font-weight: 700; }
.mc-auto { background: color-mix(in srgb, var(--mc-accent) 10%, var(--mc-carte)) !important; }
tr.mc-ligne-alerte td { background: color-mix(in srgb, var(--mc-critique) 6%, transparent); }

.mc-totaux {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; margin: 0 0 18px; padding: 14px;
  background: var(--mc-carte); border: 1px solid var(--mc-trait); border-radius: var(--mc-rayon); box-shadow: var(--mc-ombre);
}
.mc-totaux div { display: flex; flex-direction: column; gap: 2px; padding: 4px 8px; }
.mc-totaux span { font-size: 11.5px; color: var(--mc-texte-2); text-transform: uppercase; letter-spacing: .04em; font-weight: 700; }
.mc-totaux b { font-size: 19px; font-variant-numeric: tabular-nums; }
.mc-totaux .mc-ttc { background: var(--mc-principale); color: #fff; border-radius: 10px; padding: 8px 12px; }
.mc-totaux .mc-ttc span { color: rgba(255, 255, 255, .8); }
.mc-totaux .mc-ttc b { font-size: 22px; }
.mc-totaux small { grid-column: 1 / -1; color: var(--mc-texte-2); font-size: 11.5px; padding: 0 8px; }

/* ---------- Recherche globale ---------- */
.mc-recherche-grande { display: flex; align-items: center; gap: 10px; padding: 8px 10px 8px 16px; margin-bottom: 16px;
  background: var(--mc-carte); border: 1px solid var(--mc-trait); border-radius: 14px; box-shadow: var(--mc-ombre); color: var(--mc-texte-2); }
.mc-recherche-grande input { flex: 1; border: 0 !important; box-shadow: none !important; font-size: 16px; padding: 8px 4px; background: none; }
.mc-resultats { display: grid; grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); gap: 14px; }
.mc-resultats .mc-carte { padding: 0; overflow: hidden; }
.mc-resultats h2 { display: flex; align-items: center; gap: 8px; margin: 0; padding: 12px 16px; font-size: 14px;
  background: var(--mc-carte-2); border-bottom: 1px solid var(--mc-trait); color: var(--mc-texte); }
.mc-compteur { margin-left: auto; font-size: 12px; background: var(--mc-teinte); color: var(--mc-lien); padding: 1px 8px; border-radius: 999px; }
.mc-resultats ul { list-style: none; margin: 0; padding: 4px; }
.mc-resultats li { list-style: none; padding: 0; }
.mc-resultats li a { display: flex; align-items: center; gap: 10px; padding: 9px 12px; border-radius: 8px; text-decoration: none; color: var(--mc-texte) !important; }
.mc-resultats li a:hover { background: var(--mc-teinte); }
.mc-resultats img { width: 38px; height: 38px; border-radius: 6px; object-fit: cover; }
.mc-res-texte { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.mc-res-texte small { color: var(--mc-texte-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* ---------- Page de connexion ---------- */
html:has(body.login) { background: radial-gradient(1100px 700px at 15% -10%, color-mix(in srgb, var(--mc-principale) 40%, transparent), transparent 70%),
                                 radial-gradient(900px 600px at 110% 110%, color-mix(in srgb, var(--mc-accent) 25%, transparent), transparent 70%),
                                 var(--mc-fond); min-height: 100%; }
body.login { background: transparent; padding-top: 10vh; }
/* Haut de la carte : bandeau blanc avec le logo complet centré (même en thème sombre : logo prévu sur fond blanc) */
body.login #header.mc-header { justify-content: center !important; background: #fff; box-shadow: none; position: static;
  padding: 18px 22px 10px; border-bottom: 1px solid var(--mc-trait); }
body.login .mc-marque { margin: 0 auto; }
body.login .mc-embleme, body.login .mc-marque-texte { display: none; }
body.login .mc-logo-connexion { display: block; width: 230px; max-width: 70vw; height: auto; }
body.login .mc-utilisateur { position: absolute; right: 20px; top: 16px; }
body.login .mc-utilisateur .theme-toggle svg { color: #fff; fill: rgba(0, 0, 0, .55); }
body.login #container {
  background: var(--mc-carte); border: 1px solid var(--mc-trait); border-radius: 18px; box-shadow: var(--mc-ombre-forte);
  margin: 0 auto; overflow: hidden; width: 400px; max-width: calc(100vw - 32px);
}
body.login #content { padding: 22px 28px 28px; }
body.login .main > .content { padding: 0; }
body.login #main, body.login .main { background: var(--mc-carte); }
body.login .form-row { border: 0; padding: 8px 0; }
body.login .form-row input { width: 100%; box-sizing: border-box; padding: 10px 12px; }
body.login .submit-row { position: static; box-shadow: none; border: 0; background: none; padding: 10px 0 0; }
body.login .submit-row input { width: 100%; padding: 12px; font-size: 15px; }
body.login div.breadcrumbs { display: none; }

/* ---------- Petits écrans ---------- */
@media (max-width: 1024px) {
  .mc-qui, .mc-recherche kbd, .mc-marque-texte small { display: none; }
  .main > #nav-sidebar + .content, .main > .content { padding: 16px; }
}
@media (max-width: 767px) {
  #header.mc-header { flex-wrap: wrap; padding: 10px 14px; }
  .mc-recherche { order: 3; flex-basis: 100%; max-width: none; }
  .mc-marque-texte { display: none; }
}

/* ---------- Impression : pas d'habillage ---------- */
@media print {
  #header, div.breadcrumbs, #nav-sidebar, .toggle-nav-sidebar, .object-tools, .submit-row, ul.messagelist { display: none !important; }
}

/* ---------- Titres de pages ---------- */
.mc-titre-etiquette { display: inline-block; vertical-align: middle; margin-left: 8px; padding: 3px 10px; border-radius: 999px;
  font-size: 12px; font-weight: 650; background: var(--mc-teinte); color: var(--mc-lien); }
#content > h2 { font-size: 15px; margin: 0 0 12px; }

/* ---------- Couleurs d'état utilitaires ---------- */
.mc-rouge { color: var(--mc-critique) !important; font-weight: 700; }
.mc-orange { color: var(--mc-alerte) !important; font-weight: 700; }
.mc-vert { color: var(--mc-succes) !important; font-weight: 700; }
.mc-bleu { color: var(--mc-info) !important; font-weight: 700; }

/* ---------- Saisie des ventes : lecteur de code-barres et fenêtres F2 / F3 / Ctrl+M ---------- */
.mc-scan {
  display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin: 0 0 12px; padding: 12px 14px;
  background: var(--mc-carte); border: 1px dashed color-mix(in srgb, var(--mc-principale) 45%, var(--mc-trait));
  border-radius: var(--mc-rayon);
}
.mc-scan label { font-weight: 700; color: var(--mc-texte); }
.mc-scan input { flex: 1; min-width: 240px; font-size: 15px; padding: 9px 12px !important; }
.mc-scan input:focus { background: color-mix(in srgb, var(--mc-principale) 6%, var(--mc-carte)); }
.mc-scan-retour { font-size: 13px; }
.mc-raccourcis { flex-basis: 100%; font-size: 12px; color: var(--mc-texte-2); }
kbd { display: inline-block; padding: 0 6px; border: 1px solid var(--mc-trait); border-bottom-width: 2px; border-radius: 5px;
  background: var(--mc-carte-2); font: 600 11px var(--font-family-primary); color: var(--mc-texte); }
.mc-alerte-prix { font-size: 11.5px; margin-top: 4px; max-width: 170px; line-height: 1.3; }
.mc-pop {
  position: absolute; z-index: 1000; min-width: 300px; max-width: 420px; padding: 0 0 10px; outline: none;
  background: var(--mc-carte); border: 1px solid var(--mc-trait); border-radius: 12px; box-shadow: var(--mc-ombre-forte);
}
.mc-pop-titre { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 10px 12px 10px 14px;
  background: var(--mc-carte-2); border-bottom: 1px solid var(--mc-trait); border-radius: 12px 12px 0 0; }
.mc-pop-titre .mc-fermer { position: static; }
.mc-pop p { margin: 8px 14px 0; font-size: 12.5px; }
.mc-liste-prix { display: flex; flex-direction: column; gap: 6px; padding: 10px 12px 0; }
.mc-choix-prix { display: flex; justify-content: space-between; gap: 16px; padding: 10px 12px; border-radius: 9px; cursor: pointer;
  border: 1px solid var(--mc-trait); background: var(--mc-carte); color: var(--mc-texte); font: inherit; font-size: 13.5px; }
.mc-choix-prix:hover, .mc-choix-prix:focus { border-color: var(--mc-principale); background: var(--mc-teinte); }
.mc-pop-table { width: calc(100% - 24px); margin: 8px 12px 0; border-collapse: collapse; font-size: 13px; }
.mc-pop-table td, .mc-pop-table th { padding: 6px 4px; border-bottom: 1px solid var(--mc-trait); text-align: left; }
.mc-pop-table .d { text-align: right; }
.mc-pop-table tr.mc-actuel td { background: var(--mc-teinte); font-weight: 700; }
.mc-pop-table tr.mc-total td { font-weight: 700; border-bottom: 0; }

/* ---------- Paiement à la validation d'une facture ---------- */
.mc-paiement { margin: 4px 0 16px; }
.mc-a-regler { font-size: 15px; margin: 0 0 10px !important; color: var(--mc-texte) !important; }
.mc-choix { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 12px; }
.mc-choix label { display: block !important; margin: 0 !important; cursor: pointer; }
.mc-choix input { position: absolute; opacity: 0; }
.mc-choix span { display: flex; flex-direction: column; gap: 2px; padding: 10px; border: 2px solid var(--mc-trait); border-radius: 10px; height: 100%; box-sizing: border-box; }
.mc-choix small { font-weight: 400; color: var(--mc-texte-2); font-size: 11.5px; }
.mc-choix input:checked + span { border-color: var(--mc-principale); background: var(--mc-teinte); }
.mc-choix input:focus-visible + span { box-shadow: 0 0 0 3px color-mix(in srgb, var(--mc-principale) 30%, transparent); }
.mc-grille-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.mc-paiement label { display: flex; flex-direction: column; gap: 5px; font-weight: 600; font-size: 13px; margin-bottom: 10px; }
.mc-paiement input[type=number], .mc-paiement select { width: 100%; box-sizing: border-box; }

/* ---------- Clôture de caisse ---------- */
.mc-cloture { margin: 0 0 18px; padding: 16px; background: var(--mc-carte); border: 1px solid var(--mc-trait);
  border-radius: var(--mc-rayon); box-shadow: var(--mc-ombre); }
.mc-cloture h3 { margin: 0 0 12px; font-size: 15px; color: var(--mc-texte); }
.mc-cloture-chiffres { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 10px; }
.mc-cloture-chiffres div { display: flex; flex-direction: column; gap: 3px; padding: 10px 12px; border-radius: 10px; background: var(--mc-carte-2); }
.mc-cloture-chiffres span { font-size: 11.5px; text-transform: uppercase; letter-spacing: .04em; color: var(--mc-texte-2); font-weight: 700; }
.mc-cloture-chiffres b { font-size: 19px; font-variant-numeric: tabular-nums; }
.mc-cloture-chiffres .mc-percu { background: var(--mc-succes-fond); }
.mc-cloture-chiffres .mc-theorique { background: var(--mc-principale); color: #fff; }
.mc-cloture-chiffres .mc-theorique span { color: rgba(255, 255, 255, .8); }
.mc-cloture-chiffres .mc-ecart { border: 2px dashed var(--mc-trait); background: var(--mc-carte); }
.mc-cloture-detail { margin: 12px 0 0; padding-left: 18px; color: var(--mc-texte-2); font-size: 13px; }
.mc-note-coffre { margin: 12px 0 0; padding: 10px 12px; border-radius: 9px; background: color-mix(in srgb, var(--mc-accent) 14%, var(--mc-carte)); font-size: 13px; }
#id_solde_compte { font-size: 18px; font-weight: 700; width: 220px; }

/* ---------- Pages d'import ---------- */
.mc-etapes { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 14px; margin-bottom: 16px; }
.mc-etape { padding: 18px; position: relative; }
.mc-etape h2 { margin: 6px 0 8px; font-size: 16px; color: var(--mc-texte); background: none; padding: 0; border: 0; }
.mc-etape p { color: var(--mc-texte-2); }
.mc-etape form { display: flex; flex-direction: column; gap: 10px; align-items: flex-start; }
.mc-num { display: inline-grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; font-weight: 800;
  background: var(--mc-principale); color: #fff; }
.mc-case { display: flex; gap: 8px; align-items: center; font-size: 13px; color: var(--mc-texte); }
.mc-tableau { width: 100%; border-collapse: collapse; }
.mc-tableau th { background: var(--mc-carte-2); text-align: left; padding: 9px 10px; font-size: 11.5px; text-transform: uppercase; color: var(--mc-texte-2); }
.mc-tableau td { padding: 8px 10px; border-bottom: 1px solid var(--mc-trait); vertical-align: top; font-size: 13px; }
.mc-tableau .d { text-align: right; white-space: nowrap; }
.mc-tableau tr.mc-ligne-erreur td { background: var(--mc-critique-fond); }

/* ---------- Réception : valeur d'entrée en stock ---------- */
.mc-totaux .mc-stock { background: #16a085; }
.mc-totaux .mc-a-saisir { background: var(--mc-critique-fond); border-radius: 10px; }
.mc-totaux .mc-a-saisir b { color: var(--mc-critique); font-size: 15px; }
.form-row[hidden] { display: none !important; }

/* ---------- Barre d'étapes des documents (achats : BC -> réception -> facture) ---------- */
.mc-etapes-doc { list-style: none; display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 0;
  margin: 0 0 14px; padding: 0; background: var(--mc-carte); border: 1px solid var(--mc-trait); border-radius: var(--mc-rayon);
  overflow: hidden; }
.mc-etapes-doc li { display: flex; align-items: center; gap: 10px; padding: 12px 14px; position: relative; list-style: none;
  border-right: 1px solid var(--mc-trait); }
.mc-etapes-doc li:last-child { border-right: 0; }
.mc-etapes-doc .mc-num { width: 28px; height: 28px; flex: none; font-size: 13px; background: var(--mc-carte-2);
  color: var(--mc-texte-2); border: 2px solid var(--mc-trait); }
.mc-etapes-doc li span:last-child { display: flex; flex-direction: column; line-height: 1.25; }
.mc-etapes-doc small { color: var(--mc-texte-2); font-size: 11.5px; }
.mc-etapes-doc li.mc-fait .mc-num { background: var(--mc-succes); border-color: var(--mc-succes); color: #fff; }
.mc-etapes-doc li.mc-actuel { background: var(--mc-teinte); box-shadow: inset 0 -3px 0 var(--mc-principale); }
.mc-etapes-doc li.mc-actuel .mc-num { background: var(--mc-principale); border-color: var(--mc-principale); color: #fff; }
.mc-etapes-doc li.mc-avenir { opacity: .6; }

/* ---------- Réceptions : bons de commande à réceptionner ---------- */
.mc-a-recevoir { margin: 0 0 18px; padding: 0; overflow-x: auto; }
.mc-a-recevoir h2 { display: flex; align-items: center; gap: 8px; margin: 0; padding: 12px 16px; font-size: 15px;
  background: var(--mc-carte-2); border-bottom: 1px solid var(--mc-trait); color: var(--mc-texte); }
.mc-a-recevoir form { margin: 0; }
.mc-sous-liste { font-size: 15px !important; margin: 4px 0 10px !important; color: var(--mc-texte) !important; }
td.field-commandee_aff, td.field-deja_recu_aff { color: var(--mc-texte-2); white-space: nowrap; }
td.field-quantite input { font-weight: 700; }

/* Bon de commande : choix du type d'achat (local / import) en grandes cases */
form .aligned .field-type_achat div.radiolist.inline { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; }
form .field-type_achat div.radiolist.inline div { margin: 0; padding: 0; }
form .field-type_achat div.radiolist label {
  display: flex; align-items: center; gap: 8px; padding: 10px 16px; border: 1.5px solid var(--mc-trait);
  border-radius: 10px; cursor: pointer; font-weight: 600; background: var(--mc-carte);
}
form .field-type_achat div.radiolist label:has(input:checked) {
  border-color: var(--mc-principale); box-shadow: inset 0 0 0 1px var(--mc-principale);
}
form .field-type_achat div.radiolist input[type="radio"] { margin: 0; accent-color: var(--mc-principale); }

/* ---------- Galerie courante (CENTURION : plusieurs galeries) ---------- */
.mc-galerie { position: relative; flex-shrink: 0; }
.mc-galerie summary, .mc-galerie-fixe {
  list-style: none; display: flex; align-items: center; gap: 8px; padding: 6px 12px; border-radius: 999px;
  background: rgba(255, 255, 255, .14); border: 1px solid rgba(255, 255, 255, .25); color: #fff;
  font-size: 13px; font-weight: 700; white-space: nowrap;
}
.mc-galerie summary { cursor: pointer; }
.mc-galerie summary::-webkit-details-marker { display: none; }
.mc-galerie summary:hover, .mc-galerie[open] summary { background: rgba(255, 255, 255, .24); }
.mc-galerie img { height: 22px; max-width: 60px; object-fit: contain; background: #fff; border-radius: 5px; padding: 1px; }
.mc-galerie .mc-menu { left: 0; right: auto; }
.mc-menu-titre { display: block; padding: 6px 10px 4px; color: var(--mc-texte-2); font-size: 11.5px; }
.mc-menu button[aria-current] { font-weight: 700; background: var(--mc-teinte); }
@media (max-width: 760px) { .mc-galerie span:not([aria-hidden]) { max-width: 110px; overflow: hidden; text-overflow: ellipsis; } }

/* ---------- Bilan de la galerie ---------- */
.mc-bilan-periode { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; padding: 12px 16px; margin-bottom: 14px; }
.mc-bilan-periode h2 { margin: 0 6px; font-size: 18px; min-width: 150px; text-align: center; }
.mc-bilan-dates { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-left: auto; }
.mc-bilan-dates label { display: flex; align-items: center; gap: 6px; font-weight: 600; }
.mc-bilan-tuiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 10px; margin-bottom: 14px; }
.mc-bilan-tuile {
  display: flex; flex-direction: column; gap: 2px; padding: 12px 14px; border-radius: 12px;
  background: var(--mc-carte); border: 1px solid var(--mc-trait); box-shadow: var(--mc-ombre, none);
}
.mc-bilan-tuile span { font-size: 12px; color: var(--mc-texte-2); }
.mc-bilan-tuile b { font-size: 19px; white-space: nowrap; }
.mc-bilan-tuile small { font-size: 11.5px; color: var(--mc-texte-2); }
.mc-bilan-final { background: var(--mc-principale); border-color: var(--mc-principale); }
.mc-bilan-final span, .mc-bilan-final small, .mc-bilan-final b { color: #fff; }
.mc-bilan-grille { display: grid; grid-template-columns: repeat(auto-fit, minmax(420px, 1fr)); gap: 14px; }
.mc-bilan-bloc { padding: 4px 0 8px; overflow-x: auto; min-width: 0; }
.mc-bilan-bloc h2 { font-size: 15px; margin: 10px 16px; }
.mc-bilan-bloc h2 small { font-weight: 400; color: var(--mc-texte-2); }
.mc-bilan-large { grid-column: 1 / -1; }
.mc-bilan-table { width: 100%; }
.mc-bilan-table td, .mc-bilan-table th { padding: 7px 14px; }
.mc-bilan-detail td { color: var(--mc-texte-2); padding-left: 28px !important; }
.mc-bilan-sous-total td { font-weight: 700; background: var(--mc-teinte); }
.mc-bilan-total td { font-weight: 800; border-top: 2px solid var(--mc-principale); background: var(--mc-teinte); }
.mc-bilan-note { margin: 8px 16px 4px; font-size: 12px; }
@media (max-width: 760px) { .mc-bilan-grille { grid-template-columns: 1fr; } .mc-bilan-dates { margin-left: 0; } }

/* ---------- Taille d'affichage (menu utilisateur) ---------- */
.mc-taille { display: flex; align-items: center; gap: 4px; padding: 6px 10px; border-bottom: 1px solid var(--mc-trait); margin-bottom: 4px; }
.mc-taille span { flex: 1; font-size: 13px; color: var(--mc-texte); }
.mc-menu .mc-taille button { width: auto; padding: 4px 8px; border: 1px solid var(--mc-trait); border-radius: 6px; font-weight: 700; font-size: 12px; justify-content: center; }

/* ---------- Photo de l'article dans les lignes ---------- */
td.field-photo_aff { width: 60px; }
.mc-photo-ligne { width: 52px; height: 52px; object-fit: cover; border-radius: 8px; border: 1px solid var(--mc-trait);
                  display: block; transition: transform .15s; transform-origin: left center; background: #fff; }
.mc-photo-ligne:hover { transform: scale(3.2); position: relative; z-index: 20; box-shadow: var(--mc-ombre-forte); }

/* ---------- Statistiques des ventes ---------- */
.mc-stats-raccourcis { display: flex; flex-wrap: wrap; gap: 6px; }
.mc-stats-raccourcis .mc-actif { outline: 2px solid var(--mc-principale); font-weight: 800; }
.mc-onglets { display: flex; flex-wrap: wrap; gap: 4px; margin: 16px 0 0; border-bottom: 2px solid var(--mc-trait); }
.mc-onglets a { padding: 9px 16px; border-radius: 10px 10px 0 0; color: var(--mc-texte-2) !important; font-weight: 600;
                text-decoration: none !important; border: 1px solid transparent; border-bottom: 0; }
.mc-onglets a:hover { background: var(--mc-teinte); }
.mc-onglets a[aria-current] { background: var(--mc-carte); color: var(--mc-principale) !important; border-color: var(--mc-trait);
                              margin-bottom: -2px; border-bottom: 2px solid var(--mc-carte); }
.mc-stats-table td:nth-child(4) { min-width: 210px; white-space: nowrap; }
.mc-barre-ligne { display: inline-block; vertical-align: middle; width: 90px; height: 8px; margin-right: 8px;
                  background: var(--mc-teinte); border-radius: 4px; overflow: hidden; }
.mc-barre-ligne span { display: block; height: 100%; background: var(--mc-principale); border-radius: 4px; }
.mc-evol { font-weight: 700; white-space: nowrap; }

/* ---------- Menu de gauche : les modules seulement ---------- */
#nav-sidebar { flex: 0 0 220px; }
.mc-modules { list-style: none; margin: 10px 0 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.mc-module {
  display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 10px; position: relative;
  color: var(--mc-texte) !important; text-decoration: none !important; font-weight: 600; font-size: 14px;
}
.mc-module .ico { color: var(--mc-texte-2); flex-shrink: 0; }
.mc-module span { flex: 1; }
.mc-module small { font-size: 11px; color: var(--mc-texte-2); background: var(--mc-teinte); border-radius: 999px; padding: 1px 7px; }
.mc-module:hover { background: var(--mc-teinte); }
.mc-module.actif { background: var(--mc-principale); color: #fff !important; }
.mc-module.actif .ico, .mc-module.actif small { color: #fff; }
.mc-module.actif small { background: rgba(255, 255, 255, .2); }

/* ---------- Ruban du module (comme Excel) ---------- */
.mc-ruban {
  display: flex; align-items: stretch; gap: 0; background: var(--mc-carte); border-bottom: 1px solid var(--mc-trait);
  box-shadow: 0 2px 6px rgba(0, 0, 0, .05); position: sticky; top: var(--mc-haut-entete, 62px); z-index: 35;
  min-height: 74px;
}
.mc-ruban-titre {
  display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: 4px; flex-shrink: 0;
  padding: 8px 18px; min-width: 150px; border-right: 1px solid var(--mc-trait); color: var(--mc-principale);
  font-weight: 800; font-size: 14px; background: var(--mc-teinte);
}
.mc-ruban-boutons { display: flex; align-items: stretch; gap: 2px; padding: 6px 10px; overflow-x: auto; scrollbar-width: thin; }
.mc-ruban-groupe { position: relative; display: flex; border-radius: 9px; }
.mc-ruban-bouton {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; min-width: 92px;
  max-width: 120px; padding: 8px 10px 6px; border-radius: 9px; color: var(--mc-texte) !important;
  text-decoration: none !important; font-size: 12px; font-weight: 600; text-align: center; line-height: 1.15;
}
.mc-ruban-bouton .ico { color: var(--mc-principale); }
.mc-ruban-groupe:hover { background: var(--mc-teinte); }
.mc-ruban-groupe.actif { background: var(--mc-teinte); box-shadow: inset 0 -3px 0 var(--mc-principale); }
.mc-ruban-groupe.actif .mc-ruban-bouton { color: var(--mc-principale) !important; }
.mc-ruban-ajout {
  position: absolute; top: 4px; right: 4px; width: 20px; height: 20px; border-radius: 50%; display: grid;
  place-items: center; color: #fff !important; background: var(--mc-principale); opacity: 0; transition: opacity .12s;
}
.mc-ruban-groupe:hover .mc-ruban-ajout, .mc-ruban-ajout:focus { opacity: 1; }
.mc-ruban-ajout .ico { stroke-width: 3; }
@media (max-width: 760px) {
  .mc-ruban { top: 0; position: relative; min-height: 0; }
  .mc-ruban-titre { display: none; }
  .mc-ruban-bouton { min-width: 76px; }
}

/* ---------- Recherche du haut : résultats pendant la frappe ---------- */
.mc-recherche-resultats {
  position: absolute; top: calc(100% + 6px); left: 0; right: 0; z-index: 60; max-height: 70vh; overflow-y: auto;
  background: var(--mc-carte); border: 1px solid var(--mc-trait); border-radius: 12px; box-shadow: var(--mc-ombre-forte);
  padding: 6px;
}
.mc-recherche-resultats a { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; padding: 8px 10px;
                            border-radius: 8px; color: var(--mc-texte) !important; text-decoration: none !important; }
.mc-recherche-resultats a:hover, .mc-recherche-resultats a:focus { background: var(--mc-teinte); }
.mc-recherche-resultats a small { flex-basis: 100%; color: var(--mc-texte-2); font-size: 12px; }
.mc-recherche-resultats p { padding: 10px; margin: 0; }
.mc-rr-groupe { padding: 8px 10px 2px; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .05em;
                color: var(--mc-texte-2); }
.mc-rr-tout { justify-content: center; font-weight: 700; border-top: 1px solid var(--mc-trait); margin-top: 4px; }
body.mc-chargement #changelist-form { opacity: .55; transition: opacity .1s; }

/* ---------- Liste « Client » des devis : téléphones sous le nom, « Créer le client » si rien n'est trouvé ---------- */
.mc-s2-detail { display: block; font-size: 12px; color: var(--mc-texte-2); }
.select2-results__option--highlighted .mc-s2-detail { color: inherit; opacity: .85; }
.mc-s2-vide { display: flex; flex-direction: column; gap: 8px; padding: 4px 0; }
.mc-s2-vide small { color: var(--mc-texte-2); }
.mc-s2-creer { align-self: flex-start; border: 0; border-radius: 8px; padding: 8px 14px; cursor: pointer; font-weight: 700;
               background: var(--mc-principale); color: #fff; font-size: 14px; }
.mc-s2-creer:hover, .mc-s2-creer:focus { filter: brightness(1.08); }

/* ---------- Bilan : calcul détaillé (formule de la direction) ---------- */
.mc-bilan-tuiles { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 900px) { .mc-bilan-tuiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.mc-bilan-formule { margin: 0 16px 10px; padding: 8px 12px; border-radius: 8px; background: var(--mc-teinte); font-weight: 600; }
.mc-bilan-ligne td { font-weight: 700; border-top: 1px solid var(--mc-trait); }
.mc-bilan-sous td { color: var(--mc-texte-2); }
.mc-bilan-sous td:first-child { padding-left: 32px !important; }
.mc-bilan-table td.mc-bilan-signe { width: 30px; text-align: center; font-weight: 800; color: var(--mc-principale); }
.mc-bilan-detail td.mc-bilan-signe { padding-left: 14px !important; color: var(--mc-texte-2); font-weight: 600; }

/* Messages aux clients (SMS / WhatsApp) */
.mc-sms-outils { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 6px; }
.mc-sms-outils select { max-width: 260px; }
.mc-sms-compteur { margin-top: 6px; font-size: 13px; color: var(--mc-texte-2); }
.mc-apercu-sms { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.mc-apercu-sms li { background: var(--mc-teinte); border-radius: 10px; padding: 8px 12px; max-width: 520px; white-space: pre-line; }
.mc-whatsapp-tete { padding: 10px 16px; margin-bottom: 12px; }
.mc-whatsapp-progres { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.mc-whatsapp-progres progress { width: 220px; height: 12px; }
#mc-wa-cherche { flex: 1; min-width: 220px; max-width: 360px; }
.mc-choix-clients { margin-top: 12px; border: 1px solid var(--mc-trait); border-radius: 12px; background: var(--mc-carte); }
.mc-choix-barre { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; padding: 10px 12px;
  border-bottom: 1px solid var(--mc-trait); }
.mc-choix-barre input[type=search] { flex: 1; min-width: 240px; }
.mc-choix-barre label { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; cursor: pointer; }
.mc-choix-liste { max-height: 380px; overflow: auto; }
.mc-choix-liste table { width: 100%; }
.mc-choix-liste td { padding: 6px 10px; cursor: pointer; vertical-align: middle; }
.mc-choix-liste input[type=checkbox] { width: 18px; height: 18px; cursor: pointer; }
.mc-choix-liste td.mc-histo-num { white-space: nowrap; }
.mc-choix-liste tr.mc-choix-pris td { background: color-mix(in srgb, var(--mc-succes) 10%, transparent); }
.mc-choix-plus { margin: 8px 12px 12px; }
#logout-form kbd, .mc-utilisateur kbd { font-size: 11px; padding: 1px 5px; border-radius: 4px; border: 1px solid currentColor;
  opacity: .6; margin-left: 6px; }
button.mc-contacter { border: 0; cursor: pointer; font: inherit; }
.mc-contacter-fenetre { width: min(420px, calc(100vw - 32px)); padding: 18px; border: 0; border-radius: 14px; overflow: visible;
 
  background: var(--mc-carte); color: var(--mc-texte); box-shadow: 0 20px 60px rgba(0, 0, 0, .3); }
.mc-contacter-fenetre::backdrop { background: rgba(15, 23, 42, .45); }
.mc-contacter-fenetre h3 { margin: 0 0 12px; font-size: 17px; }
.mc-contacter-choix-liste { display: grid; gap: 10px; margin-bottom: 14px; }
a.mc-contacter-choix { display: grid; gap: 2px; padding: 12px 14px; border-radius: 12px; text-decoration: none !important;
  color: #fff !important; background: var(--c); }
a.mc-contacter-choix:hover { filter: brightness(1.08); }
a.mc-contacter-choix b { font-size: 16px; }
a.mc-contacter-choix small { opacity: .9; }
.mc-wa-mode { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; margin: 0 0 12px; font-size: 13px;
  color: var(--mc-texte-2); }
.mc-wa-mode label { display: inline-flex; align-items: center; gap: 5px; cursor: pointer; }
.mc-whatsapp-tete .mc-wa-mode { margin: 10px 0 0; }
.mc-qr-contact summary { cursor: pointer; font-weight: 600; color: var(--mc-lien); }
.mc-qr-contact > div { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; margin-top: 10px; }
.mc-qr-contact p { margin: 0; max-width: 360px; }
.mc-qr svg { display: block; width: 168px; height: auto; border-radius: 8px; }
fieldset.mc-criteres[hidden], .form-row.field-clients[hidden] { display: none !important; }
.mc-whatsapp table { width: 100%; }
.mc-whatsapp td { vertical-align: top; padding: 8px 12px; }
.mc-wa-texte { max-width: 520px; color: var(--mc-texte-2); font-size: 13px; }
.mc-wa-ok { display: none; color: var(--mc-succes); font-weight: 700; margin-left: 8px; }
tr.mc-wa-fait { background: color-mix(in srgb, var(--mc-succes) 10%, transparent); }
tr.mc-wa-fait .mc-wa-ok { display: inline; }
tr.mc-wa-fait .mc-wa-ouvrir { opacity: .55; }

/* État du stock : barre de filtres Famille › Catégorie › Article */
.mc-filtre-stock { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px 16px; padding: 12px 16px; margin-bottom: 14px; }
.mc-filtre-stock label { display: flex; flex-direction: column; gap: 4px; font-weight: 600; font-size: 13px; color: var(--mc-texte-2); }
.mc-filtre-stock select { min-width: 200px; }
.mc-filtre-stock .mc-filtre-article { flex: 1; min-width: 260px; max-width: 520px; }
@media (max-width: 767px) { .mc-filtre-stock label, .mc-filtre-stock select { width: 100%; min-width: 0; } }

/* Articles › 📜 Historique de l'article : onglets mouvements / ventes / achats / devis */
.mc-histo-entete { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.mc-histo-photo { height: 56px; width: 56px; object-fit: cover; border-radius: 8px; border: 1px solid var(--mc-trait); }
.mc-historique-article section.mc-onglet { border-top-left-radius: 0; margin-top: 0; overflow-x: auto; }
.mc-historique-article section.mc-onglet h2 { margin: 18px 16px 6px; }
.mc-historique-article section.mc-onglet > p { margin: 10px 16px; }
.mc-historique-article tfoot th { background: var(--mc-teinte); color: var(--mc-texte); font-weight: 700; }
.mc-historique-article td.mc-histo-num { white-space: nowrap; font-size: 12.5px; }
.mc-historique-article td { vertical-align: top; }
.mc-historique-article .mc-bilan-table th, .mc-historique-article .mc-bilan-table td { padding-left: 9px; padding-right: 9px; }
.mc-histo-type { display: inline-block; padding: 1px 8px; border-radius: 10px; font-size: 12px; font-weight: 600;
  white-space: nowrap; background: color-mix(in srgb, var(--c, #64748b) 14%, transparent); color: var(--c, #64748b); }
.mc-histo-entree, .mc-histo-achat, .mc-histo-ret_cli, .mc-histo-inv_plus { --c: #1e8449; }
.mc-histo-sortie, .mc-histo-vente, .mc-histo-ret_four, .mc-histo-inv_moins { --c: #c0392b; }
.mc-histo-transfert { --c: #2a78d6; }
.mc-histo-reparation { --c: #8e44ad; }

/* ==========================================================================
   Site adaptable : ordinateur, tablette, téléphone
   - téléphone (767 px et moins) : menu en tiroir (bouton ☰), listes et lignes de documents en fiches,
     champs pleine largeur
   - tablette (768 à 1100 px) : menu de gauche plus étroit
   ========================================================================== */
.mc-burger, .mc-burger[hidden], .mc-tiroir-tete, .mc-deplier, .mc-sous-ecrans, .mc-voile { display: none; }
.mc-resultats { grid-template-columns: repeat(auto-fit, minmax(min(340px, 100%), 1fr)); }

/* Écrans tactiles : ce qui n'apparaît qu'au survol de la souris reste visible ; pas d'aide clavier */
@media (hover: none) {
  .mc-ruban-ajout { opacity: 1; }
  .mc-photo-ligne:hover { transform: none; box-shadow: none; }
  .mc-raccourcis, .mc-recherche kbd { display: none; }
}

@media (min-width: 768px) and (max-width: 1100px) {
  #nav-sidebar { flex-basis: 196px; padding-left: 8px; padding-right: 8px; }
  .mc-module { padding: 9px 10px; font-size: 13.5px; }
  .mc-ruban-titre { min-width: 0; padding: 8px 12px; }
  .mc-ruban-bouton { min-width: 82px; }
}

@media (max-width: 767px) {
  /* En-tête : ☰, logo, galerie, thème, utilisateur ; la recherche passe en dessous */
  #header.mc-header { height: auto !important; min-height: 0; flex: none; gap: 8px 10px; padding: 8px 12px; flex-wrap: wrap; }
  .mc-ruban, div.breadcrumbs { flex: none; }
  .mc-burger:not([hidden]) {
    display: inline-grid; place-items: center; width: 42px; height: 42px; flex: none; border: 0; border-radius: 10px;
    background: rgba(255, 255, 255, .14); color: #fff; cursor: pointer;
  }
  .mc-embleme { width: 38px; height: 38px; padding: 3px; }
  .mc-galerie { min-width: 0; flex-shrink: 1; }
  .mc-galerie-fixe { padding: 5px 10px; font-size: 12.5px; min-width: 0; }
  .mc-galerie-fixe span { overflow: hidden; text-overflow: ellipsis; }
  .mc-utilisateur { gap: 4px; }
  .mc-menu-user summary { padding: 2px; }
  .mc-recherche { order: 3; flex-basis: 100%; max-width: none; margin: 0; }
  #header .mc-recherche input { height: 40px; font-size: 16px; }  /* 16 px : pas de zoom automatique sur iPhone */
  .mc-taille { display: none; }                                   /* pas de zoom sur téléphone */

  /* Menu en tiroir */
  #nav-sidebar {
    display: block !important; position: fixed !important; top: 0; bottom: 0; left: 0 !important; z-index: 80;
    width: min(320px, 86vw); height: 100%; max-height: none; margin: 0 !important; padding: 0 10px 30px;
    overflow-y: auto; border: 0; box-shadow: var(--mc-ombre-forte);
    transform: translateX(-104%); visibility: hidden; transition: transform .22s ease, visibility .22s;
  }
  body.mc-tiroir-ouvert { overflow: hidden; }
  body.mc-tiroir-ouvert #nav-sidebar { transform: none; visibility: visible; }
  .toggle-nav-sidebar { display: none !important; }
  .mc-voile {
    display: block; position: fixed; inset: 0; z-index: 75; background: rgba(15, 18, 22, .45);
    opacity: 0; pointer-events: none; transition: opacity .2s;
  }
  body.mc-tiroir-ouvert .mc-voile { opacity: 1; pointer-events: auto; }
  .mc-tiroir-tete {
    display: flex; align-items: center; justify-content: space-between; position: sticky; top: 0; z-index: 1;
    padding: 12px 4px 8px 8px; background: var(--mc-carte); font-weight: 800; font-size: 16px; color: var(--mc-texte);
  }
  .mc-tiroir-fermer {
    display: grid; place-items: center; width: 40px; height: 40px; border: 0; border-radius: 9px; background: none;
    color: var(--mc-texte-2); cursor: pointer;
  }
  .mc-tiroir-fermer:hover { background: var(--mc-teinte); }
  .mc-nav-accueil, .mc-module { padding: 12px; }
  .mc-module-ligne { display: flex; align-items: center; gap: 4px; }
  .mc-module-ligne .mc-module { flex: 1; min-width: 0; }
  .mc-deplier {
    display: grid; place-items: center; width: 42px; height: 42px; flex: none; border: 0; border-radius: 9px;
    background: none; color: var(--mc-texte-2); cursor: pointer; transition: transform .15s;
  }
  .mc-module-li.ouvert .mc-deplier { transform: rotate(180deg); }
  .mc-module-li.ouvert .mc-sous-ecrans { display: block; }
  .mc-sous-ecrans { list-style: none; margin: 2px 0 8px 20px; padding: 0 0 0 8px; border-left: 2px solid var(--mc-trait); }
  .mc-sous-ecrans li { display: flex; align-items: center; list-style: none; padding: 0; }
  .mc-sous-ecrans a:first-child {
    flex: 1; display: flex; align-items: center; gap: 10px; padding: 10px; border-radius: 8px; font-size: 14px;
    color: var(--mc-texte) !important; text-decoration: none !important;
  }
  .mc-sous-ecrans a:first-child .ico { color: var(--mc-texte-2); }
  .mc-sous-ecrans a.actif { background: var(--mc-teinte); color: var(--mc-lien) !important; font-weight: 700; }
  .mc-sous-ajout {
    display: grid; place-items: center; width: 38px; height: 38px; border-radius: 8px; color: var(--mc-principale) !important;
  }
  .mc-sous-ajout:hover { background: var(--mc-teinte); }

  /* Ruban : défile de gauche à droite */
  .mc-ruban { position: relative; top: 0; min-height: 0; }
  .mc-ruban-titre { display: none; }
  .mc-ruban-boutons { padding: 6px 8px; }
  .mc-ruban-bouton { min-width: 78px; padding: 8px 6px 6px; font-size: 11.5px; }

  /* Contenu */
  .main > #nav-sidebar + .content, .main > .content { padding: 12px 12px 30px; }
  div.breadcrumbs { padding: 8px 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  #content > h1, .content h1 { font-size: 21px; }
  .object-tools { justify-content: flex-start; }
  ul.messagelist { top: 10px; right: 10px; left: 10px; width: auto; }
  /* 16 px au moins dans les champs : sinon le téléphone agrandit la page quand on touche un champ */
  input[type=text], input[type=password], input[type=email], input[type=url], input[type=number], input[type=tel],
  input[type=search], input[type=date], textarea, select, .select2-container .select2-search__field,
  .select2-container .select2-selection__rendered, .select2-results__option { font-size: 16px !important; }

  /* Listes : chaque ligne devient une fiche (titre de colonne à gauche, valeur à droite) */
  #changelist #toolbar form > div { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
  #changelist #toolbar form input[type=text], #changelist-search input[type=text] { flex: 1; min-width: 0; width: auto; }
  #changelist .actions { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; }
  #changelist .actions label { display: flex; flex: 1; align-items: center; gap: 6px; min-width: 0; }
  #changelist .actions select { flex: 1; min-width: 0; width: auto; }
  #changelist .results { overflow: visible; }
  #result_list { display: block; width: 100%; }
  #result_list thead { display: none; }
  #result_list tbody { display: block; padding: 2px 0; }
  #result_list tbody tr {
    display: block; position: relative; margin: 10px; padding: 4px 14px; border: 1px solid var(--mc-trait);
    border-radius: 12px; background: var(--mc-carte) !important; box-shadow: var(--mc-ombre);
  }
  #result_list tbody td, #result_list tbody th {
    display: flow-root; min-height: 22px; padding: 8px 0; border-bottom: 1px dashed var(--mc-trait);
    text-align: right; white-space: normal; overflow-wrap: anywhere;
  }
  #result_list tbody tr > :last-child { border-bottom: 0; }
  #result_list tbody td::before, #result_list tbody th::before {
    content: attr(data-label); float: left; max-width: 45%; margin-right: 12px; text-align: left; font-size: 12.5px;
    font-weight: 600; color: var(--mc-texte-2); line-height: 1.6;
  }
  #result_list tbody tr > .action-checkbox + *, #result_list tbody tr > :first-child:not(.action-checkbox) {
    font-size: 15px; padding-right: 34px;
  }
  #result_list tbody td.action-checkbox { position: absolute; top: 2px; right: 6px; padding: 8px; border: 0; min-height: 0; }
  #result_list tbody td.action-checkbox::before { content: none; }
  #result_list tbody td.action-checkbox input { width: 20px; height: 20px; }
  #result_list tbody tr.selected { box-shadow: inset 0 0 0 2px var(--mc-principale); }

  /* Formulaires : un champ par ligne, pleine largeur */
  .form-row { padding: 10px 12px; }
  .aligned .form-row input:not([type=checkbox]):not([type=radio]):not([type=file]), .aligned .form-row select,
  .aligned .form-row textarea, .aligned .vTextField { width: 100%; max-width: 100%; box-sizing: border-box; }
  .aligned .form-row .select2-container { width: 100% !important; max-width: 100%; }
  .aligned .related-widget-wrapper { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; width: 100%; }
  .aligned .related-widget-wrapper > select, .aligned .related-widget-wrapper > .select2-container { flex: 1 1 100%; }
  .mc-fiche { max-width: none; }

  /* Lignes de documents (devis, facture, commande…) : une fiche par ligne */
  .inline-group .tabular, .inline-group .tabular fieldset.module { overflow: visible; }
  .inline-group .tabular table { display: block; width: 100%; }
  .inline-group .tabular thead { display: none; }
  .inline-group .tabular tbody { display: block; }
  .inline-group .tabular tbody tr.form-row:not(.empty-form) {
    display: grid; grid-template-columns: 1fr 1fr; gap: 8px 12px; margin: 10px; padding: 12px;
    border: 1px solid var(--mc-trait); border-radius: 12px; background: var(--mc-carte);
  }
  .inline-group .tabular tbody tr.form-row > td { display: block; padding: 0; border: 0; min-width: 0; }
  .inline-group .tabular tbody tr.form-row > td[data-label]::before {
    content: attr(data-label); display: block; margin-bottom: 3px; font-size: 11.5px; font-weight: 700;
    letter-spacing: .03em; text-transform: uppercase; color: var(--mc-texte-2);
  }
  .inline-group .tabular tbody tr.form-row > td.hidden, .inline-group .tabular td.original:not(:has(p)) { display: none; }
  .inline-group .tabular td.original, .inline-group .tabular td.field-article, .inline-group .tabular td.field-designation,
  .inline-group .tabular td.field-ligne_facture, .inline-group .tabular td.field-ligne_reception,
  .inline-group .tabular td.field-lien { grid-column: 1 / -1; }
  .inline-group .tabular td input:not([type=checkbox]):not([type=radio]), .inline-group .tabular td select,
  .inline-group .tabular td textarea { width: 100% !important; box-sizing: border-box; }
  .inline-group .tabular td .select2-container { width: 100% !important; }
  .inline-group .tabular td.field-montant_aff { align-self: end; font-size: 16px; }
  .inline-group .tabular tr.add-row, .inline-group .tabular tr.row-form-errors { display: block; }
  .inline-group .tabular tr.add-row td, .inline-group .tabular tr.row-form-errors td { display: block; }
  .mc-info-article, .mc-alerte-prix { max-width: none; }

  /* Bouton d'enregistrement : en bas du formulaire, sans couvrir l'écran */
  .submit-row { position: static; display: flex; flex-direction: column; gap: 8px; backdrop-filter: none; }
  .submit-row input, .submit-row a.button, .submit-row a.deletelink, .submit-row a.closelink {
    width: 100%; box-sizing: border-box; margin: 0 !important; text-align: center;
  }

  /* Tableaux des écrans maison (historique, rapports, imports…) : défilent dans leur cadre */
  :is(.mc-carte, section, div):has(> table.mc-tableau) { overflow-x: auto; }
  .mc-scan input { min-width: 0; flex-basis: 100%; }
  .mc-choix, .mc-grille-2 { grid-template-columns: 1fr; }
  .mc-onglets { flex-wrap: nowrap; overflow-x: auto; }
  .mc-onglets a { white-space: nowrap; }
  .mc-bilan-periode h2 { min-width: 0; flex: 1; }
  .mc-bilan-tuile b { font-size: 17px; }
  .mc-totaux b { font-size: 17px; }
  .mc-pop {
    position: fixed !important; left: 8px !important; right: 8px !important; top: auto !important; bottom: 8px !important;
    min-width: 0; max-width: none; max-height: 70vh; overflow-y: auto;
  }
}

/* ---------- Devis / facture : marge en direct (direction seulement) ; fiche client : M. / Mme ---------- */
.mc-totaux .mc-marge { background: var(--mc-succes-fond); border-radius: 10px; padding: 8px 12px; }
.mc-totaux .mc-marge b { color: var(--mc-succes); }
.mc-totaux .mc-marge em { font-style: normal; font-size: 11.5px; color: var(--mc-texte-2); }
form .field-type ul, form .field-civilite div.radiolist, form .field-civilite ul { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; }
form .field-type ul li, form .field-civilite ul li, form .field-civilite div.radiolist div { list-style: none; margin: 0; padding: 0; }
form .field-type label:has(input[type=radio]), form .field-civilite label:has(input[type=radio]) {
  display: flex; align-items: center; gap: 8px; padding: 9px 16px; border: 1.5px solid var(--mc-trait); border-radius: 10px;
  cursor: pointer; font-weight: 600; background: var(--mc-carte); color: var(--mc-texte); width: auto;
}
form .field-type label:has(input:checked), form .field-civilite label:has(input:checked) {
  border-color: var(--mc-principale); box-shadow: inset 0 0 0 1px var(--mc-principale);
}
form .field-type input[type=radio], form .field-civilite input[type=radio] { margin: 0; accent-color: var(--mc-principale); }

/* ---------- Import des articles et du stock ---------- */
.mc-champ-fichier { display: flex; flex-direction: column; gap: 4px; font-weight: 600; font-size: 13px; color: var(--mc-texte); }
.mc-champ-fichier input { font-weight: 400; }

/* ---------- Règlement client : factures à régler et répartition du versement ---------- */
.mc-repartition { margin: 0 0 18px; padding: 14px 16px; }
.mc-repartition h3 { display: flex; align-items: center; gap: 8px; margin: 0 0 10px; font-size: 15px; color: var(--mc-texte); }
.mc-repartition .mc-choix { margin: 6px 0 12px; }
.mc-repartition .mc-defile { overflow-x: auto; border: 1px solid var(--mc-trait); border-radius: 10px; }
.mc-repartition input.mc-montant-facture { width: 9em; text-align: right; }
.mc-repartition .mc-tout { border: 1px solid var(--mc-trait); background: var(--mc-carte-2); color: var(--mc-texte);
                           border-radius: 7px; padding: 6px 9px; cursor: pointer; font-weight: 600; }
.mc-repartition .mc-tout:hover { background: var(--mc-teinte); }
.mc-repartition-resume { margin: 12px 0 0; padding: 10px 12px; border-radius: 9px; background: var(--mc-carte-2); }
fieldset.mc-repartition-champs { display: none; }

/* ---------- Statistiques : détail d'une ligne (catégorie, vendeur, client…) ---------- */
.mc-stats-detail { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin: 16px 0 12px; }
.mc-stats-detail h2 { margin: 0; font-size: 18px; color: var(--mc-texte); }
.mc-sous-onglets { margin: 0; flex-basis: 100%; }
a.mc-ouvrir { font-weight: 650; }
a.mc-ouvrir::after { content: " ›"; color: var(--mc-texte-2); }

/* ---------- Coût vs prix : résumé en tuiles ---------- */
.mc-cout-prix-resume { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 10px; margin: 0 0 8px; }
.mc-cout-prix-resume a { display: flex; flex-direction: column; gap: 2px; padding: 12px 14px; text-decoration: none !important;
                         color: var(--mc-texte) !important; }
.mc-cout-prix-resume a:hover { border-color: var(--mc-principale); }
.mc-cout-prix-resume span { font-size: 12px; color: var(--mc-texte-2); }
.mc-cout-prix-resume b { font-size: 22px; }
.mc-cout-prix-note { margin: 0 0 12px; font-size: 12.5px; }
.mc-login-aide { margin: 14px 0 0; padding: 10px 12px; border-radius: 9px; background: var(--mc-carte-2); font-size: 12.5px;
                 color: var(--mc-texte-2); line-height: 1.45; }

/* ---------- Diagnostic et journal des erreurs (Paramètres) ---------- */
.mc-diag-outils { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 14px; }
.mc-diag-bloc { padding: 4px 0 6px; margin-bottom: 14px; }
.mc-diag-bloc h2 { font-size: 15px; margin: 10px 16px; color: var(--mc-texte); background: none; padding: 0; border: 0; }
.mc-diag-liste { list-style: none; margin: 0; padding: 0; }
.mc-diag-liste > li { display: flex; gap: 12px; align-items: flex-start; padding: 10px 16px; border-top: 1px solid var(--mc-trait); list-style: none; }
.mc-diag-etat { flex: none; display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; font-weight: 800;
                font-size: 13px; color: #fff; background: var(--mc-texte-2); }
.mc-diag-ok .mc-diag-etat { background: var(--mc-succes); }
.mc-diag-attention .mc-diag-etat { background: #d68910; }
.mc-diag-probleme .mc-diag-etat { background: var(--mc-critique); }
.mc-diag-info .mc-diag-etat { background: var(--mc-info); }
.mc-diag-probleme { background: var(--mc-critique-fond); }
.mc-diag-texte { flex: 1; min-width: 0; }
.mc-diag-texte > span { color: var(--mc-texte-2); }
.mc-diag-conseil { margin: 4px 0 0; font-weight: 600; color: var(--mc-texte); }
.mc-diag-texte details { margin-top: 6px; font-size: 12.5px; }
.mc-diag-texte details ul { margin: 6px 0 0; padding-left: 18px; color: var(--mc-texte-2); }
.mc-diag-texte form { margin: 0; }
.mc-diag-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 10px; }
.mc-diag-quoi { font-weight: 700; color: var(--mc-texte); }
.mc-diag-aide { margin: 0 0 14px; color: var(--mc-texte-2); }
.mc-diag-reparer { font-size: 15px; padding: 9px 18px; }
.mc-diag-compte-rendu { padding: 6px 18px 12px; margin-bottom: 14px; border-left: 4px solid var(--mc-accent); }
.mc-diag-compte-rendu h2 { font-size: 15px; background: none; border: 0; padding: 8px 0; color: var(--mc-texte); }
.mc-diag-compte-rendu ul { margin: 4px 0 10px; padding-left: 4px; list-style: none; line-height: 1.6; }
.mc-diag-faits li { color: var(--mc-succes); }
.mc-diag-echecs li { color: var(--mc-critique); }
.mc-diag-texte details a { color: var(--mc-lien); }
.mc-diag-guide { padding: 6px 18px 10px; }
.mc-diag-guide h2 { display: flex; align-items: center; gap: 8px; font-size: 15px; background: none; border: 0; padding: 8px 0; color: var(--mc-texte); }
.mc-diag-guide ol { padding-left: 20px; line-height: 1.6; }
.mc-diag-guide code { background: var(--mc-carte-2); padding: 1px 5px; border-radius: 4px; }
pre.mc-trace { max-height: 420px; overflow: auto; white-space: pre-wrap; word-break: break-word; font-size: 11.5px;
               background: var(--mc-carte-2); border: 1px solid var(--mc-trait); border-radius: 8px; padding: 10px; margin: 0; }

/* ---------- Remise globale (devis / facture) ---------- */
.mc-totaux .mc-remise-globale b { color: var(--mc-critique); }
input.mc-erreur-champ { border-color: var(--mc-critique) !important; box-shadow: 0 0 0 3px color-mix(in srgb, var(--mc-critique) 20%, transparent); }
#id_remise_globale { width: 12em; }

/* Paramètres › Galeries : couleur des documents imprimés */
input.mc-couleur { width: 64px; height: 36px; padding: 2px; cursor: pointer; vertical-align: middle; }
.mc-apercus { display: flex; flex-wrap: wrap; gap: 8px; }
.mc-apercus + .help { margin: 8px 0 0 !important; padding: 0 !important; }

/* Articles et stock › Codes-barres : options, onglets, listes à cocher */
.mc-codes-options, .mc-codes-barre { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; padding: 12px 16px; }
.mc-codes-options label, .mc-codes-barre label { display: flex; align-items: center; gap: 6px; font-weight: 600; }
.mc-codes-barre input[type=search] { flex: 1; min-width: 220px; }
.mc-onglets { display: flex; flex-wrap: wrap; gap: 6px; margin: 14px 0 0; }
.mc-onglets button { display: inline-flex; align-items: center; gap: 6px; padding: 9px 16px; border: 1px solid var(--mc-trait);
  border-bottom: 0; border-radius: 10px 10px 0 0; background: var(--mc-carte-2); color: var(--mc-texte-2); font-weight: 600; cursor: pointer; }
.mc-onglets button.actif { background: var(--mc-carte); color: var(--mc-lien); box-shadow: inset 0 3px 0 var(--mc-accent); }
.mc-codes section.mc-onglet { border-top-left-radius: 0; margin-top: 0; overflow-x: auto; }
.mc-codes-table { width: 100%; }
.mc-codes-table td, .mc-codes-table th { padding: 7px 12px; }
.mc-codes-table input[type=checkbox] { width: 18px; height: 18px; cursor: pointer; }
.mc-codes-table code { font-size: 12px; }

/* Montants saisis (1 000 000) : alignés à droite comme dans les tableaux */
input.mc-montant { text-align: right; font-variant-numeric: tabular-nums; }
.mc-info-article .mc-promo { margin-left: 8px; padding: 1px 8px; border-radius: 999px; background: #fdecea; color: #b03a2e;
  font-weight: 600; white-space: nowrap; }
/* Arrivage : liste des factures à cocher sur toute la largeur */
.field-receptions #id_receptions { flex: 1 1 auto; width: auto; max-width: 820px; }
.field-receptions #id_receptions > div { padding: 5px 0; border-bottom: 1px solid var(--hairline-color, #eee); }
.field-receptions #id_receptions label { display: flex; gap: 8px; align-items: baseline; width: auto; min-width: 0;
  float: none; padding: 0; font-weight: normal; }
/* Réceptions : barre « Attribuer à un arrivage » au-dessus de la liste */
.mc-barre-arrivage { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; margin: 4px 0 10px; }
.mc-barre-arrivage .mc-muet { max-width: 720px; }
.mc-dialogue select { max-width: 100%; width: 100%; text-overflow: ellipsis; }
/* Paiement en plusieurs devises (fenêtre de la facture) */
.mc-multidevise { display: grid; gap: 8px; margin-top: 6px; }
.mc-multidevise .md-ligne { border: 1px solid var(--mc-bord, #ddd); border-radius: 8px; padding: 8px 10px; }
.mc-multidevise .md-titre { display: flex; gap: 8px; align-items: baseline; flex-wrap: wrap; margin-bottom: 6px; }
.mc-multidevise .md-titre small { color: var(--mc-texte-2, #666); }
.mc-multidevise .md-taux { margin-left: auto; display: inline-flex; gap: 6px; align-items: center; font-weight: normal; }
.mc-multidevise .md-taux input { width: 7.5em; text-align: right; }
.mc-multidevise .md-champs { display: grid; grid-template-columns: 1.3fr 1.2fr 1fr auto; gap: 6px 10px; align-items: end; }
.mc-multidevise .md-champs label { display: grid; gap: 2px; margin: 0; }
.mc-multidevise .md-montant { text-align: right; font-weight: 600; }
.mc-multidevise .md-gnf { grid-column: 1 / -1; text-align: right; color: var(--mc-texte-2, #666); font-size: .92em; }
.mc-multidevise .md-gnf:empty { display: none; }
.mc-multidevise .md-total { display: flex; flex-wrap: wrap; gap: 6px 16px; justify-content: space-between;
  padding: 8px 10px; border-radius: 8px; background: var(--mc-carte-2, #f4f6f8); }
.mc-multidevise .md-solde { font-weight: 700; }
@media (max-width: 767px) { .mc-multidevise .md-champs { grid-template-columns: 1fr 1fr; } }
.mc-multidevise .mc-vert { color: var(--mc-succes); }
/* Trésorerie : argent disponible par devise (en tête des listes) */
.mc-dispo { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 10px; margin: 0 0 14px; }
.mc-dispo-devise { background: var(--mc-carte, #fff); border: 1px solid var(--mc-bord, #ddd); border-radius: 10px;
  padding: 10px 12px; display: grid; gap: 2px; align-content: start; }
.mc-dispo-titre { font-size: .82em; color: var(--mc-texte-2, #666); text-transform: uppercase; letter-spacing: .03em; }
.mc-dispo-devise > b { font-size: 1.35em; }
.mc-dispo-devise small { color: var(--mc-texte-2, #666); }
.mc-dispo-devise ul { list-style: none; margin: 6px 0 0; padding: 0; font-size: .9em; }
.mc-dispo-devise li { display: flex; justify-content: space-between; gap: 8px; padding: 1px 0; }
.mc-dispo-total { background: var(--mc-carte-2, #f4f6f8); }
/* Fenêtre plus large et champs alignés pour le paiement en plusieurs devises */
.mc-dialogue:has(.mc-multidevise:not([hidden])) { width: min(760px, 96vw); max-width: 96vw; }
.mc-multidevise .md-champs > label { min-width: 0; margin-bottom: 0; }
.mc-multidevise .md-champs input, .mc-multidevise .md-champs select { width: 100%; min-width: 0; box-sizing: border-box; }
.mc-multidevise .md-champs .md-completer { align-self: end; }
.mc-multidevise .md-titre .md-taux { flex-direction: row; align-items: center; margin: 0 0 0 auto; font-weight: 600; }
.mc-multidevise .md-titre .md-taux input { width: 7.5em; }
/* Règlement client : option « plusieurs devises » */
.mc-md-reglement { padding: 10px 14px; }
.mc-md-reglement .mc-md-option { display: flex; gap: 8px; align-items: center; font-weight: 600; cursor: pointer; width: auto; }
.mc-md-reglement .mc-md-corps { margin-top: 8px; max-width: 820px; }
/* Plusieurs sessions sur le même poste (menu utilisateur, page de connexion) */
.mc-sessions { display: grid; gap: 2px; padding: 6px 0; border-top: 1px solid var(--mc-bord, #ddd); }
.mc-sessions > span { font-size: 12px; color: var(--mc-texte-2, #666); padding: 0 12px; }
.mc-login-sessions { display: flex; flex-wrap: wrap; gap: 8px; }
.mc-login-sessions a { padding: 4px 12px; border-radius: 999px; border: 1px solid var(--mc-bord, #ccc); text-decoration: none; }
.mc-login-session { text-align: center; font-weight: 700; margin: 0 0 8px; }
/* ---------- Bureau à onglets ---------- */
body.mc-bureau { overflow: hidden; }
body.mc-bureau #content { padding: 0 !important; margin: 0; max-width: none; width: 100%; }
body.mc-bureau .main > #nav-sidebar + .content, body.mc-bureau .content { overflow: hidden; }
.mc-bureau-onglets { display: flex; flex-direction: column; min-width: 0; }
.mc-bureau-barre { display: flex; gap: 2px; align-items: flex-end; overflow-x: auto; scrollbar-width: thin;
  padding: 6px 8px 0; background: var(--mc-carte-2, #eef1f4); border-bottom: 1px solid var(--mc-bord, #d9dee4); flex: none; }
.mc-bureau-onglet { display: flex; align-items: center; gap: 6px; padding: 7px 8px 7px 12px; max-width: 230px; min-width: 90px;
  border: 1px solid transparent; border-bottom: 0; border-radius: 9px 9px 0 0; cursor: pointer; white-space: nowrap;
  color: var(--mc-texte-2, #555); font-size: 13px; user-select: none; }
.mc-bureau-onglet:hover { background: var(--mc-carte, #fff); }
.mc-bureau-onglet.actif { background: var(--mc-carte, #fff); color: var(--mc-texte, #222); border-color: var(--mc-bord, #d9dee4);
  font-weight: 600; margin-bottom: -1px; padding-bottom: 8px; }
.mc-bureau-onglet .titre { overflow: hidden; text-overflow: ellipsis; flex: 1; }
.mc-bureau-onglet.modifie .titre::after { content: " ●"; color: var(--mc-alerte, #e67e22); }
.mc-bureau-onglet .fermer { border: 0; background: transparent; color: inherit; cursor: pointer; width: 20px; height: 20px;
  border-radius: 50%; line-height: 1; font-size: 15px; padding: 0; opacity: .6; }
.mc-bureau-onglet .fermer:hover { opacity: 1; background: var(--mc-teinte, rgba(0,0,0,.08)); }
.mc-bureau-zone { position: relative; flex: none; }
.mc-bureau-zone iframe { display: block; width: 100%; height: 100%; border: 0; background: var(--mc-fond, #f5f6f8); }
.mc-bureau-zone iframe[hidden] { display: none; }
.mc-onglets-option b { margin-left: 4px; }
/* Page affichée dans un onglet : l'en-tête et le menu des modules sont ceux du bureau */
html.mc-dans-onglet #header, html.mc-dans-onglet #nav-sidebar, html.mc-dans-onglet #toggle-nav-sidebar,
html.mc-dans-onglet .mc-burger, html.mc-dans-onglet .mc-voile { display: none !important; }
html.mc-dans-onglet .main > #nav-sidebar + .content, html.mc-dans-onglet .main.shifted > #nav-sidebar + .content {
  max-width: 100% !important; }
/* Dans un onglet il n'y a pas d'en-tête : le ruban du module reste collé tout en haut en défilant */
html.mc-dans-onglet .mc-ruban { top: 0; }
/* Listes déroulantes à recherche (select2) : jamais plus larges que l'écran (téléphone, tablette) */
@media (max-width: 1100px) {
  .select2-container--open .select2-dropdown { max-width: calc(100vw - 16px); box-sizing: border-box; }
  .select2-container { max-width: 100%; }
}
/* Téléphone : la barre « Action / Envoyer » des listes passe à la ligne au lieu de dépasser */
@media (max-width: 767px) {
  #changelist .actions { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
  #changelist .actions label { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; max-width: 100%; }
  #changelist .actions select { max-width: calc(100vw - 140px); }
  .object-tools { flex-wrap: wrap; }
}
/* Proposition de commande */
.mc-proposition .mc-carte { padding: 12px 14px; margin-bottom: 12px; }
.mc-proposition-champs { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: end; margin-top: 10px; }
.mc-proposition-champs label { display: grid; gap: 3px; font-weight: 600; font-size: 13px; }
.mc-proposition .mc-groupe th { background: var(--mc-carte-2, #f1f4f7); color: var(--mc-texte); text-align: left; }
.mc-proposition .mc-qte-proposee { width: 6em; text-align: right; }
.mc-proposition .mc-sans-stock td:first-child { box-shadow: inset 3px 0 0 var(--mc-critique, #c0392b); }
.mc-proposition-actions { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; }
.mc-etat-stock { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 10px; }
/* Position GPS du client */
.mc-position { display: grid; gap: 8px; max-width: 640px; }
.mc-position-etat { margin: 0; }
.mc-position-lien { display: flex; gap: 6px; flex-wrap: wrap; }
.mc-position-lien input { flex: 1 1 260px; min-width: 0; }
/* Statistiques : carte des clients */
.mc-carte-clients { padding: 12px 14px; }
#mc-carte { height: min(70vh, 640px); border-radius: 10px; border: 1px solid var(--mc-bord, #ddd); }
/* Carte des clients : nombre de clients d'un quartier, liste dans la bulle */
.mc-carte-nombre { background: transparent; border: 0; box-shadow: none; font-weight: 700; color: #6b4e12; }
.mc-carte-nombre::before { display: none; }
.mc-carte-liste { max-height: 220px; overflow-y: auto; min-width: 220px; }
.mc-carte-outils { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }

/* ---------- Barre de filtres des listes : AU-DESSUS du tableau, jamais à côté (gabarit admin/filter.html, erp.js) ----------
   Chaque filtre = bouton « Titre : choix ▾ » ; sa liste s'ouvre par-dessus la page. Sélecteurs à 2 id : passent
   avant responsive.css de Django, chargé après cette feuille. */
#changelist.filtered { overflow: visible; flex-direction: column; align-items: stretch; }
#changelist.filtered .changelist-form-container { overflow: hidden; border-radius: 0 0 var(--mc-rayon) var(--mc-rayon); }
#changelist #changelist-filter {
  order: -1; flex: none; width: auto; margin: 0; position: relative; z-index: 30; overflow: visible;
  display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 10px 14px;
  background: var(--mc-carte-2); border: 0; border-bottom: 1px solid var(--mc-trait); box-shadow: none;
  border-radius: var(--mc-rayon) var(--mc-rayon) 0 0;
}
#changelist #changelist-filter > h2 {
  margin: 0 4px 0 0; padding: 0; background: none; border: 0; font-size: 13px; font-weight: 700; color: var(--mc-texte-2);
}
#changelist #changelist-filter-extra-actions { order: 99; display: flex; gap: 14px; margin: 0 0 0 auto; padding: 0; border: 0; }
#changelist #changelist-filter-extra-actions h3 { margin: 0; padding: 0; font-size: 12px; text-transform: none; letter-spacing: 0; }
#changelist #changelist-filter-extra-actions a { display: inline; color: var(--mc-lien); }
#changelist #changelist-filter details.mc-filtre { position: relative; margin: 0; }
#changelist #changelist-filter details.mc-filtre > summary {
  display: flex; align-items: center; gap: 6px; margin: 0; padding: 6px 10px 6px 12px; cursor: pointer; user-select: none;
  border: 1px solid var(--mc-trait); border-radius: 999px; background: var(--mc-carte); font-size: 13px; white-space: nowrap;
}
#changelist #changelist-filter details.mc-filtre > summary::before { content: none; }
#changelist #changelist-filter details.mc-filtre > summary::after { content: "▾"; font-size: 11px; color: var(--mc-texte-2); }
#changelist #changelist-filter details.mc-filtre > summary:hover { border-color: var(--mc-principale); }
#changelist #changelist-filter details.mc-filtre[open] > summary {
  border-color: var(--mc-principale); box-shadow: 0 0 0 3px color-mix(in srgb, var(--mc-principale) 18%, transparent);
}
.mc-filtre-titre { color: var(--mc-texte-2); }
.mc-filtre-titre::after { content: " :"; }
.mc-filtre-valeur { font-weight: 650; color: var(--mc-texte); max-width: 220px; overflow: hidden; text-overflow: ellipsis; }
#changelist #changelist-filter details.mc-filtre-actif > summary {
  border-color: var(--mc-principale); background: color-mix(in srgb, var(--mc-principale) 12%, var(--mc-carte));
}
#changelist #changelist-filter details.mc-filtre-actif .mc-filtre-valeur { color: var(--mc-lien); }
#changelist #changelist-filter details.mc-filtre > ul {
  position: absolute; top: calc(100% + 6px); left: 0; z-index: 50; min-width: 220px; max-width: min(360px, 90vw);
  max-height: min(60vh, 420px); overflow: auto; margin: 0; padding: 6px; background: var(--mc-carte);
  border: 1px solid var(--mc-trait); border-radius: 10px; box-shadow: var(--mc-ombre-forte);
}
#changelist #changelist-filter details.mc-filtre.mc-a-droite > ul { left: auto; right: 0; }
#changelist #changelist-filter details.mc-filtre li,
#changelist #changelist-filter details.mc-filtre li.selected { margin: 0; padding: 0; border: 0; }
#changelist #changelist-filter details.mc-filtre li a { padding: 7px 10px; border-radius: 6px; color: var(--mc-texte); }
#changelist #changelist-filter details.mc-filtre li a:hover { background: var(--mc-teinte); }
#changelist #changelist-filter details.mc-filtre li.selected a {
  font-weight: 700; color: var(--mc-lien) !important; background: color-mix(in srgb, var(--mc-principale) 10%, transparent);
}
@media (max-width: 767px) {
  #changelist #changelist-filter { padding: 8px 10px; }
  #changelist #changelist-filter > h2 { flex-basis: 100%; }
  #changelist #changelist-filter-extra-actions { flex-basis: 100%; margin: 0; }
  .mc-filtre-valeur { max-width: 140px; }
}