/* Elunis CORE — socle visuel commun.
   Toutes les couleurs viennent des jetons Elunis (static/core/elunis_themes.css) : les thèmes
   clairs, intermédiaires et sombres s'appliquent sans règle spécifique à chaque écran. */

/* Valeurs de repli sans poids de spécificité : les thèmes Elunis l'emportent toujours. */
:where(:root) {
  --navy:#14213c; --purple:#6246d9; --purple2:#9175ee; --ink:#182036; --muted:#5f6c80;
  --line:#dce3ed; --bg:#f4f6fb; --surface:#fff; --surface-alt:#f1f5f9; --blue:#0B2E5B;
  --blue-soft:#E7F4F7; --danger:#b42318; --warning:#a15c00;
  --radius:14px; --radius-sm:10px;
  --sidebar-width:268px;
  --mc-sidebar-bg:linear-gradient(180deg, color-mix(in srgb, var(--elunis-primary, #0B2E5B) 70%, #000) 0%, var(--elunis-primary, #0B2E5B) 100%);
}

* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--bg); color:var(--ink); font:15px/1.55 "Inter", system-ui, -apple-system, "Segoe UI", sans-serif; -webkit-font-smoothing:antialiased; }
a { color:var(--blue); }
h1, h2, h3 { line-height:1.2; letter-spacing:-.01em; }
h2 { font-size:1.25rem; }
code { padding:1px 6px; border-radius:6px; background:var(--surface-alt); font-size:.84em; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
:is(a,button,input,select,textarea,summary):focus-visible { outline:3px solid var(--elunis-accent, #a78bfa); outline-offset:2px; }

/* ---------- Coquille ---------- */
.mc-shell { display:grid; grid-template-columns:var(--sidebar-width) minmax(0,1fr); min-height:100vh; }
.mc-shell.is-anonymous { display:block; }
.mc-sidebar { position:sticky; top:0; height:100vh; overflow-y:auto; display:flex; flex-direction:column; gap:6px; padding:18px 14px 20px; background:var(--mc-sidebar-bg); color:#fff; scrollbar-width:thin; scrollbar-color:rgba(255,255,255,.25) transparent; }
.mc-brand { display:flex; align-items:center; gap:11px; padding:4px 8px 16px; color:#fff; text-decoration:none; }
.mc-brand img { width:80px; height:25px; object-fit:contain; border-radius:0; box-shadow:none; }
.mc-brand strong { display:block; white-space:nowrap; font-size:.88rem; line-height:1.2; letter-spacing:.06em; }
.mc-brand small { display:block; color:rgba(255,255,255,.62); font-size:.72rem; letter-spacing:.04em; }
.control-nav { display:flex; flex-direction:column; gap:14px; }
.control-nav-section { margin:0; }
.control-nav-title { margin:0 10px 6px; color:rgba(255,255,255,.55); font-size:.68rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
.mc-sidebar .control-nav a { position:relative; display:flex; align-items:center; gap:11px; padding:8px 10px; border-radius:10px; color:rgba(255,255,255,.84); font-size:.92rem; font-weight:560; text-decoration:none; transition:background .15s ease, color .15s ease; }
.mc-sidebar .control-nav a svg { flex:none; width:19px; height:19px; opacity:.9; }
.mc-sidebar .control-nav a:hover { background:rgba(255,255,255,.1); color:#fff; }
.mc-sidebar .control-nav a.active { background:rgba(255,255,255,.16); color:#fff; font-weight:720; box-shadow:inset 3px 0 var(--elunis-accent, #11BFE3); }
.mc-nav-count { margin-left:auto; min-width:22px; padding:1px 7px; border-radius:20px; background:var(--elunis-accent, #11BFE3); color:#061426; font-size:.72rem; font-weight:800; text-align:center; }
.mc-nav-count.is-danger { background:#ff8a80; }
.mc-sidebar-footer { margin-top:auto; padding:14px 10px 0; border-top:1px solid rgba(255,255,255,.12); color:rgba(255,255,255,.6); font-size:.75rem; }

.mc-main-column { min-width:0; display:flex; flex-direction:column; }
.mc-topbar { position:sticky; top:0; z-index:20; display:flex; align-items:center; gap:14px; padding:12px clamp(16px,3vw,36px); background:color-mix(in srgb, var(--surface) 88%, transparent); backdrop-filter:saturate(1.4) blur(10px); border-bottom:1px solid var(--line); }
.mc-search { position:relative; flex:1; max-width:520px; }
.mc-search svg { position:absolute; left:12px; top:50%; width:18px; height:18px; transform:translateY(-50%); color:var(--muted); pointer-events:none; }
.mc-search input { width:100%; padding:10px 14px 10px 40px; border:1px solid var(--line); border-radius:12px; background:var(--surface-alt); color:var(--ink); font:inherit; }
.mc-search input:focus { background:var(--surface); border-color:var(--blue); }
.mc-search kbd { position:absolute; right:10px; top:50%; transform:translateY(-50%); padding:1px 7px; border:1px solid var(--line); border-radius:6px; background:var(--surface); color:var(--muted); font:600 .72rem/1.6 system-ui; }
.mc-topbar-actions { display:flex; align-items:center; gap:10px; margin-left:auto; }
.mc-topbar-actions form { margin:0; }
.mc-quick { position:relative; }
.mc-quick > summary { list-style:none; }
.mc-quick > summary::-webkit-details-marker { display:none; }
.mc-quick-menu { position:absolute; right:0; top:calc(100% + 8px); z-index:30; min-width:250px; padding:8px; border:1px solid var(--line); border-radius:14px; background:var(--surface); box-shadow:var(--shadow, 0 18px 40px rgba(15,23,42,.14)); }
.mc-quick-menu a { display:flex; gap:11px; align-items:flex-start; padding:10px; border-radius:10px; color:var(--ink); text-decoration:none; }
.mc-quick-menu a:hover { background:var(--blue-soft); }
.mc-quick-menu a svg { flex:none; width:20px; height:20px; margin-top:2px; color:var(--blue); }
.mc-quick-menu strong { display:block; font-size:.9rem; }
.mc-quick-menu small { display:block; font-size:.78rem; }
.mc-account { display:flex; align-items:center; gap:10px; }
.mc-avatar { display:inline-grid; place-items:center; width:36px; height:36px; border-radius:50%; background:var(--blue); color:var(--button-ink, #fff); font-weight:800; font-size:.85rem; }
.mc-account-name { line-height:1.2; }
.mc-account-name strong { display:block; font-size:.86rem; }
.mc-account-name small { font-size:.74rem; }
.mood-theme-switcher select { width:auto; min-width:140px; padding:7px 9px; font-size:.82rem; }
/* Menu du compte, comme dans l'ERP : avatar et nom, puis apparence et déconnexion. */
.mc-account-menu { position:relative; }
.mc-account-menu > summary { display:flex; align-items:center; gap:9px; min-height:40px; padding:3px 12px 3px 3px; border:1px solid var(--line); border-radius:999px; background:var(--surface); color:var(--ink); font-weight:700; font-size:.86rem; list-style:none; cursor:pointer; transition:border-color .15s ease, box-shadow .15s ease; }
.mc-account-menu > summary::-webkit-details-marker { display:none; }
.mc-account-menu > summary::after { content:""; width:7px; height:7px; margin-left:2px; border-right:2px solid var(--muted); border-bottom:2px solid var(--muted); transform:rotate(45deg) translateY(-2px); }
.mc-account-menu > summary:hover, .mc-account-menu[open] > summary { border-color:color-mix(in srgb, var(--blue) 40%, var(--line)); box-shadow:0 6px 18px rgba(15,23,42,.08); }
.mc-account-menu > summary .mc-avatar { width:32px; height:32px; font-size:.78rem; }
.mc-account-label { max-width:160px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.mc-account-panel { position:absolute; right:0; top:calc(100% + 10px); z-index:40; width:290px; padding:10px; border:1px solid var(--line); border-radius:16px; background:var(--surface); box-shadow:0 18px 40px rgba(15,23,42,.16); }
.mc-account-head { display:flex; align-items:center; gap:11px; padding:8px 8px 14px; margin-bottom:8px; border-bottom:1px solid var(--line); }
.mc-account-head .mc-avatar { width:42px; height:42px; font-size:.95rem; }
.mc-account-head strong, .mc-account-head small { display:block; }
.mc-account-head small { color:var(--muted); font-size:.78rem; }
.mc-account-panel > label { display:block; margin:8px 8px 4px; color:var(--muted); font-size:.72rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.mc-account-panel .mood-theme-switcher { display:block; margin:0; padding:0 8px; }
html body .mc-account-panel .mood-theme-switcher select { width:100%; max-width:none; min-height:38px; border-radius:10px; font-size:.86rem; }
.mc-account-logout { margin:12px 0 0; padding-top:10px; border-top:1px solid var(--line); }
html body .mc-account-logout button { width:100%; min-height:38px; background:transparent; color:var(--danger); border:1px solid transparent; box-shadow:none; font-weight:700; }
html body .mc-account-logout button:hover { background:color-mix(in srgb, var(--danger) 10%, var(--surface)); color:var(--danger); }
.nav-toggle { display:none; }

main { width:100%; max-width:1320px; min-width:0; margin:0 auto; padding:28px clamp(16px,3vw,40px) 60px; }
.mc-breadcrumb { display:flex; flex-wrap:wrap; gap:6px; align-items:center; margin:0 0 12px; color:var(--muted); font-size:.84rem; }
.mc-breadcrumb a { color:var(--muted); text-decoration:none; }
.mc-breadcrumb a:hover { color:var(--blue); text-decoration:underline; }
.mc-breadcrumb span[aria-hidden] { opacity:.5; }

/* ---------- Composants historiques, restylés ---------- */
.card { padding:20px; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow, 0 5px 20px rgba(24,32,54,.035)); }
.hero { display:flex; justify-content:space-between; align-items:flex-end; gap:20px; margin-bottom:22px; }
.hero h1 { margin:4px 0 6px; font-size:clamp(1.6rem, 2.4vw, 2.15rem); }
.hero p { margin:0; max-width:760px; }
.eyebrow { color:var(--blue); font-size:.72rem; font-weight:850; letter-spacing:.13em; text-transform:uppercase; }
.muted, small { color:var(--muted); }
.grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:14px; margin-bottom:22px; }
.kpi strong { display:block; font-size:1.7rem; color:var(--blue); }
a.card { color:inherit; text-decoration:none; transition:transform .15s ease, border-color .15s ease; }
a.card:hover { transform:translateY(-2px); border-color:var(--blue); }
table { width:100%; border-collapse:collapse; }
th, td { padding:11px 12px; text-align:left; border-bottom:1px solid var(--line); vertical-align:top; }
th { background:var(--surface-alt); color:var(--muted); font-size:.76rem; font-weight:800; letter-spacing:.05em; text-transform:uppercase; white-space:nowrap; }
tbody tr:hover td { background:color-mix(in srgb, var(--blue-soft) 45%, transparent); }
.badge { display:inline-flex; align-items:center; gap:5px; margin:2px; padding:3px 9px; border-radius:20px; background:var(--blue-soft); color:var(--blue); font-size:.75rem; font-weight:650; white-space:nowrap; }
.active { color:var(--success, #08783e); } .inactive { color:var(--danger); } .warning { color:var(--warn, var(--warning)); }
.button, button { display:inline-flex; align-items:center; justify-content:center; gap:7px; padding:10px 15px; border:0; border-radius:10px; background:var(--blue); color:var(--button-ink, #fff); text-decoration:none; font:inherit; font-weight:680; cursor:pointer; transition:filter .15s ease, transform .1s ease; }
.button:hover, button:hover { filter:brightness(1.08); }
.button:active, button:active { transform:translateY(1px); }
button[disabled], .button[aria-disabled="true"] { opacity:.55; cursor:not-allowed; }
.secondary { background:var(--surface-alt); color:var(--ink); border:1px solid var(--line); }
.button.danger, button.danger { background:var(--danger); color:#fff; }
.button.ghost, button.ghost { background:transparent; color:var(--blue); border:1px solid transparent; }
.button.small, button.small { padding:6px 10px; font-size:.82rem; border-radius:8px; }
.button-icon { display:inline-flex; align-items:center; gap:7px; vertical-align:middle; }
.button-icon svg { width:17px; height:17px; flex:none; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.list-row-actions { display:inline-flex; align-items:center; gap:7px; }
.list-row-action { display:inline-flex; align-items:center; justify-content:center; width:32px; height:32px; padding:5px; border:1px solid transparent; border-radius:8px; color:var(--blue); background:transparent; text-decoration:none; line-height:1; cursor:pointer; }
.list-row-action:hover { background:var(--blue-soft); }
.list-row-action-delete { color:var(--danger); }
.list-row-action-delete:hover { background:var(--danger-soft, #fff0ee); }
.list-row-action-icon { display:block; flex:none; width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
label { display:block; margin:15px 0 5px; font-weight:700; }
input, select, textarea { width:100%; padding:10px 11px; border:1px solid var(--input-border, #b9c1cf); border-radius:10px; background:var(--surface); color:var(--ink); font:inherit; }
input[type=checkbox], input[type=radio] { width:auto; margin-right:7px; accent-color:var(--blue); }
.messages { display:grid; gap:8px; margin:0 0 18px; padding:0; list-style:none; }
.messages li { padding:12px 14px; border-radius:12px; background:var(--success-soft, #e4f5e9); color:var(--success, #11734E); font-weight:600; border:1px solid color-mix(in srgb, currentColor 25%, transparent); }
.messages li.error { background:var(--danger-soft); color:var(--danger); }
.messages li.warning { background:var(--warn-soft); color:var(--warn); }
.messages li.info { background:var(--info-soft); color:var(--info); }
.form-help { color:var(--muted); font-size:.85rem; }
.module-box { margin:10px 0; padding:12px; border:1px solid var(--line); border-radius:9px; }

/* ---------- Connexion ---------- */
.mc-login-page { display:grid; place-items:center; min-height:100vh; padding:24px 16px; background:radial-gradient(1200px 600px at 10% -10%, color-mix(in srgb, var(--elunis-accent, #11BFE3) 28%, transparent), transparent), var(--mc-sidebar-bg); }
.mc-login-page main { max-width:none; padding:0; }
.login { width:min(430px, 100%); margin:0 auto; padding:28px; }
.login-brand-logo { display:block; width:190px; max-width:100%; height:auto; margin:0 auto 18px; object-fit:contain; }
.login .logo { margin:0; text-align:center; font-size:1.5rem; font-weight:900; letter-spacing:.025em; }
.login .logo span { color:var(--blue); }
.login-intro, .login-help { text-align:center; }
.login button { width:100%; margin-top:20px; }

/* ---------- Nouveaux composants ---------- */
.mc-page-head { display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:18px; margin-bottom:22px; }
.mc-page-head h1 { margin:4px 0 6px; font-size:clamp(1.6rem, 2.4vw, 2.15rem); }
.mc-page-head p { margin:0; max-width:760px; color:var(--muted); }
.mc-page-actions { display:flex; flex-wrap:wrap; gap:8px; }
.mc-section { margin-bottom:24px; }
.mc-section-head { display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:12px; margin-bottom:12px; }
.mc-section-head h2 { margin:3px 0 0; }
.mc-section-head p { margin:6px 0 0; color:var(--muted); font-size:.9rem; }
.mc-grid-2 { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(0,1fr); gap:18px; align-items:start; }
.mc-grid-3 { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }

.mc-stats { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:14px; margin-bottom:22px; }
.mc-stat { position:relative; display:flex; flex-direction:column; gap:4px; padding:18px 18px 16px; overflow:hidden; border:1px solid var(--line); border-radius:var(--radius); background:var(--surface); box-shadow:var(--shadow); color:inherit; text-decoration:none; }
a.mc-stat:hover { border-color:var(--blue); }
.mc-stat::after { content:""; position:absolute; right:-30px; top:-30px; width:110px; height:110px; border-radius:50%; background:var(--blue-soft); opacity:.7; }
.mc-stat > * { position:relative; z-index:1; }
.mc-stat-label { color:var(--muted); font-size:.78rem; font-weight:750; letter-spacing:.04em; text-transform:uppercase; }
.mc-stat-value { font-size:1.9rem; font-weight:820; line-height:1.1; color:var(--ink); font-variant-numeric:tabular-nums; }
.mc-stat-value small { font-size:.9rem; font-weight:650; }
.mc-stat-foot { color:var(--muted); font-size:.82rem; }
.mc-stat.is-danger .mc-stat-value { color:var(--danger); }
.mc-stat.is-danger::after { background:var(--danger-soft); }
.mc-stat.is-warning .mc-stat-value { color:var(--warn); }
.mc-stat.is-warning::after { background:var(--warn-soft); }
.mc-stat.is-success::after { background:var(--success-soft); }

.mc-chip { display:inline-flex; align-items:center; gap:6px; padding:3px 10px; border-radius:20px; background:var(--surface-alt); color:var(--muted); font-size:.76rem; font-weight:700; white-space:nowrap; }
.mc-chip::before { content:""; width:7px; height:7px; border-radius:50%; background:currentColor; }
.mc-chip.plain::before { display:none; }
.mc-chip.ok { background:var(--success-soft); color:var(--success); }
.mc-chip.warning { background:var(--warn-soft); color:var(--warn); }
.mc-chip.error { background:var(--danger-soft); color:var(--danger); }
.mc-chip.info { background:var(--info-soft); color:var(--info); }
.mc-chip.demo { background:var(--purple-soft); color:var(--purple); }

.mc-inbox { display:grid; gap:10px; margin:0; padding:0; list-style:none; }
.mc-inbox-item { display:grid; grid-template-columns:40px minmax(0,1fr) auto; gap:14px; align-items:center; padding:14px 16px; border:1px solid var(--line); border-left:4px solid var(--info); border-radius:12px; background:var(--surface); }
.mc-inbox-item.error { border-left-color:var(--danger); }
.mc-inbox-item.warning { border-left-color:var(--warn-line, var(--warn)); }
.mc-inbox-item.ok { border-left-color:var(--success); }
.mc-inbox-icon { display:grid; place-items:center; width:40px; height:40px; border-radius:12px; background:var(--info-soft); color:var(--info); }
.mc-inbox-item.error .mc-inbox-icon { background:var(--danger-soft); color:var(--danger); }
.mc-inbox-item.warning .mc-inbox-icon { background:var(--warn-soft); color:var(--warn); }
.mc-inbox-item.ok .mc-inbox-icon { background:var(--success-soft); color:var(--success); }
.mc-inbox-icon svg { width:20px; height:20px; }
.mc-inbox-item strong { display:block; }
.mc-inbox-item p { margin:2px 0 0; color:var(--muted); font-size:.86rem; }
.mc-inbox-meta { display:block; margin-top:4px; color:var(--muted); font-size:.74rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; }

.mc-empty { display:grid; justify-items:center; gap:8px; padding:34px 20px; border:1px dashed var(--line); border-radius:var(--radius); background:var(--surface-alt); text-align:center; }
.mc-empty svg { width:40px; height:40px; color:var(--success); }
.mc-empty strong { font-size:1.02rem; }
.mc-empty p { margin:0; max-width:520px; color:var(--muted); }

.mc-toolbar { display:flex; flex-wrap:wrap; gap:10px; align-items:flex-end; padding:14px 16px; border-bottom:1px solid var(--line); }
.mc-toolbar label { margin:0 0 4px; font-size:.74rem; font-weight:800; letter-spacing:.05em; text-transform:uppercase; color:var(--muted); }
.mc-toolbar .field { min-width:150px; flex:1; }
.mc-toolbar .field.wide { flex:2.2; min-width:220px; }
.mc-toolbar input, .mc-toolbar select { padding:8px 10px; }
.mc-toolbar-actions { display:flex; gap:8px; align-items:center; }
.mc-list { padding:0; overflow:hidden; }
.mc-list-scroll { overflow-x:auto; }
.mc-list-head { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:12px; padding:16px 18px; border-bottom:1px solid var(--line); }
.mc-list-head h2 { margin:0; font-size:1.1rem; }
.mc-list table td { vertical-align:middle; }
.mc-list .actions-cell { width:1%; white-space:nowrap; }
.mc-identity { display:flex; align-items:center; gap:12px; min-width:210px; }
.mc-identity a { font-weight:760; color:var(--ink); text-decoration:none; }
.mc-identity a:hover { color:var(--blue); text-decoration:underline; }
.mc-identity small { display:block; }
.mc-monogram { display:inline-grid; place-items:center; flex:none; width:38px; height:38px; border-radius:11px; background:var(--blue-soft); color:var(--blue); font-weight:850; font-size:.9rem; letter-spacing:.02em; }
.mc-monogram.demo { background:var(--purple-soft); color:var(--purple); }
.mc-money { font-variant-numeric:tabular-nums; white-space:nowrap; font-weight:700; }
.mc-foot-note { padding:12px 18px; color:var(--muted); font-size:.82rem; border-top:1px solid var(--line); }

.mc-bars { display:grid; gap:9px; }
.mc-bar { display:grid; grid-template-columns:minmax(120px,190px) minmax(0,1fr) 42px; gap:12px; align-items:center; font-size:.88rem; }
.mc-bar-track { height:9px; border-radius:9px; background:var(--surface-alt); overflow:hidden; }
.mc-bar-fill { display:block; height:100%; border-radius:9px; background:linear-gradient(90deg, var(--blue), var(--elunis-accent, var(--blue))); }
.mc-bar strong { text-align:right; font-variant-numeric:tabular-nums; }

.mc-timeline { display:grid; gap:0; margin:0; padding:0; list-style:none; }
.mc-timeline li { position:relative; display:grid; grid-template-columns:18px minmax(0,1fr); gap:12px; padding:0 0 16px; }
.mc-timeline li::before { content:""; position:absolute; left:8px; top:18px; bottom:0; width:2px; background:var(--line); }
.mc-timeline li:last-child::before { display:none; }
.mc-timeline-dot { width:18px; height:18px; margin-top:2px; border:4px solid var(--surface); border-radius:50%; background:var(--blue); box-shadow:0 0 0 1px var(--line); }
.mc-timeline strong { display:block; font-size:.9rem; }
.mc-timeline small { display:block; }

.mc-tenant-head { display:flex; flex-wrap:wrap; gap:18px; align-items:center; justify-content:space-between; margin-bottom:14px; }
.mc-tenant-identity { display:flex; align-items:center; gap:16px; min-width:0; }
.mc-tenant-identity .mc-monogram { width:58px; height:58px; border-radius:16px; font-size:1.25rem; }
.mc-tenant-identity h1 { margin:2px 0 4px; font-size:clamp(1.45rem, 2.2vw, 2rem); }
.mc-tenant-identity p { margin:0; color:var(--muted); font-size:.88rem; }
.mc-tenant-chips { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
.mc-tabs { display:flex; gap:4px; margin:0 0 22px; padding:4px; overflow-x:auto; border:1px solid var(--line); border-radius:13px; background:var(--surface); scrollbar-width:thin; }
.mc-tabs a { flex:none; padding:8px 14px; border-radius:10px; color:var(--muted); font-size:.88rem; font-weight:680; text-decoration:none; white-space:nowrap; }
.mc-tabs a:hover { background:var(--surface-alt); color:var(--ink); }
.mc-tabs a[aria-current="page"] { background:var(--blue); color:var(--button-ink, #fff); }

.mc-health { display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:12px; }
.mc-health-card { display:flex; flex-direction:column; gap:6px; padding:16px; border:1px solid var(--line); border-radius:13px; background:var(--surface); color:inherit; text-decoration:none; }
a.mc-health-card:hover { border-color:var(--blue); }
.mc-health-card header { display:flex; align-items:center; justify-content:space-between; gap:8px; color:var(--muted); font-size:.76rem; font-weight:800; letter-spacing:.05em; text-transform:uppercase; }
.mc-health-card strong { font-size:1.05rem; }
.mc-health-card p { margin:0; color:var(--muted); font-size:.84rem; }

.mc-kv { display:grid; grid-template-columns:minmax(120px,auto) minmax(0,1fr); gap:9px 16px; margin:0; font-size:.9rem; }
.mc-kv dt { color:var(--muted); }
.mc-kv dd { margin:0; font-weight:650; overflow-wrap:anywhere; }

.mc-steps { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:10px; margin:0 0 20px; padding:0; list-style:none; counter-reset:step; }
.mc-steps li { position:relative; padding:12px 14px 12px 46px; border:1px solid var(--line); border-radius:12px; background:var(--surface); font-size:.86rem; counter-increment:step; }
.mc-steps li::before { content:counter(step); position:absolute; left:12px; top:11px; display:grid; place-items:center; width:24px; height:24px; border-radius:50%; background:var(--blue-soft); color:var(--blue); font-weight:800; font-size:.8rem; }
.mc-steps li strong { display:block; }

.mc-progress { height:8px; border-radius:8px; background:var(--surface-alt); overflow:hidden; }
.mc-progress span { display:block; height:100%; background:var(--blue); border-radius:8px; }
.mc-progress.warning span { background:var(--warn-line, var(--warn)); }
.mc-progress.error span { background:var(--danger); }

.mc-callout { display:flex; gap:12px; align-items:flex-start; padding:14px 16px; border-radius:12px; background:var(--info-soft); color:var(--ink); border:1px solid color-mix(in srgb, var(--info) 25%, transparent); }
.mc-callout svg { flex:none; width:20px; height:20px; margin-top:2px; color:var(--info); }
.mc-callout.warning { background:var(--warn-soft); border-color:color-mix(in srgb, var(--warn) 30%, transparent); }
.mc-callout.warning svg { color:var(--warn); }
.mc-callout.error { background:var(--danger-soft); border-color:color-mix(in srgb, var(--danger) 30%, transparent); }
.mc-callout.error svg { color:var(--danger); }
.mc-callout.success { background:var(--success-soft, #e4f5e9); border-color:color-mix(in srgb, var(--success, #11734E) 30%, transparent); }
.mc-callout.success svg { color:var(--success, #11734E); }
.mc-callout p { margin:2px 0 0; color:var(--muted); font-size:.88rem; }

.mc-secret { display:flex; flex-wrap:wrap; align-items:center; gap:10px; padding:12px 14px; border:1px dashed var(--warn-line, var(--warn)); border-radius:12px; background:var(--warn-soft); }
.mc-secret code { padding:6px 10px; font-size:1rem; background:var(--surface); user-select:all; }

.mc-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 18px; }
.mc-form-grid .full { grid-column:1 / -1; }
.mc-fieldset { margin:0 0 16px; padding:18px; border:1px solid var(--line); border-radius:var(--radius); background:var(--surface); }
.mc-fieldset legend { padding:0 6px; font-weight:800; }
.mc-choice-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:8px; }
.mc-choice { display:flex; gap:8px; align-items:flex-start; margin:0; padding:10px 12px; border:1px solid var(--line); border-radius:10px; background:var(--surface-alt); font-weight:600; cursor:pointer; }
.mc-choice:has(input:checked) { border-color:var(--blue); background:var(--blue-soft); }
.mc-choice input { margin-top:3px; }
.mc-errors { color:var(--danger); font-size:.84rem; font-weight:650; }
.mc-radio-row { display:flex; flex-wrap:wrap; gap:8px; }
.mc-radio-row .mc-choice { flex:1; min-width:120px; }

.mc-dialog { width:min(560px, calc(100vw - 32px)); padding:0; border:1px solid var(--line); border-radius:18px; background:var(--surface); color:var(--ink); box-shadow:0 30px 80px rgba(0,0,0,.35); }
.mc-dialog::backdrop { background:rgba(8,15,30,.55); backdrop-filter:blur(3px); }
.mc-dialog-body { padding:22px; }
.mc-dialog-actions { display:flex; justify-content:flex-end; gap:8px; padding:14px 22px; border-top:1px solid var(--line); background:var(--surface-alt); border-radius:0 0 18px 18px; }
.mc-loading { display:none; align-items:center; gap:10px; }
.is-busy .mc-loading { display:inline-flex; }
.mc-spinner { width:18px; height:18px; border:3px solid color-mix(in srgb, currentColor 25%, transparent); border-top-color:currentColor; border-radius:50%; animation:mc-spin .8s linear infinite; }
@keyframes mc-spin { to { transform:rotate(360deg); } }

.mc-switch { display:inline-flex; align-items:center; gap:8px; margin:0; font-weight:650; }

@media (prefers-reduced-motion: reduce) {
  * { transition:none !important; animation:none !important; scroll-behavior:auto !important; }
}

@media (max-width: 1080px) {
  .mc-grid-2 { grid-template-columns:minmax(0,1fr); }
  .mc-grid-3 { grid-template-columns:minmax(0,1fr); }
}

@media (max-width: 900px) {
  .mc-shell { display:block; }
  .mc-sidebar { position:fixed; inset:0 auto 0 0; z-index:50; width:min(300px, 86vw); transform:translateX(-102%); transition:transform .2s ease; box-shadow:18px 0 50px rgba(0,0,0,.35); }
  body.nav-open .mc-sidebar { transform:none; }
  body.nav-open::after { content:""; position:fixed; inset:0; z-index:40; background:rgba(8,15,30,.5); }
  .nav-toggle { display:inline-flex; padding:8px 10px; }
  .mc-topbar { flex-wrap:wrap; gap:10px; padding:10px 16px; }
  .mc-search { order:3; flex-basis:100%; max-width:none; }
  .mc-search kbd { display:none; }
  .mc-account-label { display:none; }
  .mc-account-menu > summary { padding-right:10px; }
  main { padding:20px 16px 48px; }
  .hero, .mc-page-head { display:block; }
  .hero > * + *, .mc-page-head > * + * { margin-top:12px; }
  .mc-form-grid { grid-template-columns:minmax(0,1fr); }
  .button-icon .button-label { display:none; }
  .button-icon { padding:9px 11px; }
  .mc-page-actions .button-icon .button-label, .mc-quick .button-label { display:inline; }
  .mc-inbox-item { grid-template-columns:36px minmax(0,1fr); }
  .mc-inbox-item > :last-child { grid-column:1 / -1; }
  .mc-bar { grid-template-columns:minmax(0,1fr) 38px; }
  .mc-bar .mc-bar-track { grid-column:1 / -1; grid-row:2; }
  .mc-kv { grid-template-columns:minmax(0,1fr); gap:2px; }
  .mc-kv dd { margin-bottom:8px; }

  /* Listes : une carte par ligne, colonne d'actions conservée en tête. */
  .mc-list table, .mc-list tbody, .mc-list tr, .mc-list td { display:block; width:100%; }
  .mc-list thead { display:none; }
  .mc-list tr { padding:12px 4px; border-bottom:1px solid var(--line); }
  .mc-list td { position:relative; padding:6px 14px 6px 136px; border-bottom:0; overflow-wrap:anywhere; }
  .mc-list td::before { content:attr(data-label); position:absolute; left:14px; top:9px; width:112px; color:var(--muted); font-size:.7rem; font-weight:800; letter-spacing:.05em; text-transform:uppercase; }
  .mc-list td[data-label=""] { padding-left:14px; }
  .mc-list td.actions-cell { width:100%; }
  .mc-list td[data-label=""]::before { display:none; }
  .mc-identity { min-width:0; }
}
.mc-health-card header { flex-wrap:wrap; }
.mc-health-card header .mc-chip, .mc-kv .mc-chip { text-transform:none; letter-spacing:0; }
.mc-maintenance-banner { display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; margin:0 0 18px; padding:12px 16px; border:1px solid #e3b341; border-radius:12px; background:#fff6db; color:#5c4100; }
.mc-maintenance-banner form { margin:0; }
