/* Catalogue des modules : styles volontairement isolés du reste de l'application. */
.modules-systeme { background:#f7f8f6; color:#18322e; min-height:80vh; padding:48px 28px 80px; }
.modules-systeme * { box-sizing:border-box; }
#modules-catalogue { max-width:1250px; margin:0 auto; font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
.mc-hero { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:40px; align-items:end; padding:28px 0 56px; border-bottom:1px solid #dce5df; }
.mc-eyebrow,.mc-section-label { font-size:11px; letter-spacing:.14em; font-weight:800; color:#598075; }
.mc-eyebrow { display:flex; align-items:center; gap:9px; }
.mc-eyebrow span,.mc-status-dot,.mc-category span { width:7px; height:7px; border-radius:50%; background:#2d9a78; display:inline-block; }
.modules-systeme .mc-hero h1 { color:#18322e; font-size:clamp(42px,5.4vw,70px); line-height:1.04; letter-spacing:-.055em; margin:24px 0 19px; font-weight:700; }
.mc-hero h1 em { font-style:normal; color:#438876; }
.mc-hero-copy > p { max-width:550px; color:#647b73; font-size:16px; line-height:1.7; margin:0; }
.mc-hero-foot { color:#7d9089; font-size:11px; font-weight:600; margin-top:36px; display:flex; align-items:center; gap:8px; }
.mc-divider { margin:0 4px; color:#c4d2ca; }
.mc-summary { background:#173b33; color:#eef9f2; border-radius:14px; padding:23px 25px 18px; min-height:208px; position:relative; overflow:hidden; }
.mc-summary:after { content:''; position:absolute; width:175px; height:175px; border:1px solid rgba(255,255,255,.09); border-radius:50%; right:-72px; top:-79px; box-shadow:0 0 0 24px rgba(255,255,255,.025),0 0 0 49px rgba(255,255,255,.025); pointer-events:none; }
.mc-summary-icon { float:right; font-size:24px; color:#b9dec9; }
.mc-summary strong { display:block; font-size:43px; letter-spacing:-.04em; line-height:1; }
.mc-summary div > span { display:block; margin-top:5px; font-size:12px; color:#c0d9cb; }
.mc-summary p { font-size:12px; line-height:1.6; color:#b3cbbf; margin:17px 0; max-width:225px; }
.mc-summary-bottom { border-top:1px solid #406056; padding-top:13px; font-size:9px; font-weight:800; letter-spacing:.13em; color:#a9c8b7; display:flex; justify-content:space-between; }
.mc-summary-bottom span { font-size:15px !important; margin:0 !important; }
.mc-content { padding-top:48px; }
.mc-intro { display:flex; justify-content:space-between; align-items:end; gap:24px; }
.modules-systeme .mc-intro h2 { font-size:27px; line-height:1.2; letter-spacing:-.035em; color:#18322e; margin:12px 0 9px; }
.mc-intro p { color:#72867d; font-size:13px; margin:0; line-height:1.6; }
.mc-search { flex:0 0 300px; display:flex; align-items:center; gap:10px; padding:0 14px; height:46px; border:1px solid #dbe5df; border-radius:8px; background:#fff; color:#789288; }
.mc-search:focus-within { border-color:#428e77; box-shadow:0 0 0 3px #dcefe7; }
.mc-search > span:first-child { font-size:24px; line-height:1; }
.mc-search input { width:100%; min-width:0; border:0; outline:0; background:transparent; color:#18322e; font:inherit; font-size:12px; }
.mc-search input::placeholder { color:#9aaea3; }
.mc-search-hint { font-size:8px; font-weight:800; letter-spacing:.07em; color:#acbbb2; }
.mc-filter-row { display:flex; align-items:center; justify-content:space-between; gap:20px; margin:30px 0 22px; border-bottom:1px solid #dfe8e2; }
.mc-filters { display:flex; flex-wrap:wrap; gap:5px 22px; }
.mc-filters button { border:0; border-bottom:2px solid transparent; background:transparent; color:#81958b; padding:0 1px 15px; font:inherit; font-size:12px; font-weight:650; cursor:pointer; }
.mc-filters button[aria-pressed="true"] { color:#23755e; border-bottom-color:#328c6f; }
.mc-count { color:#8da096; font-size:11px; white-space:nowrap; padding-bottom:15px; }
.mc-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.mc-card { display:flex; flex-direction:column; background:#fff; border:1px solid #e0e9e2; border-radius:11px; padding:22px 23px 0; box-shadow:0 3px 14px rgba(30,69,52,.025); min-width:0; }
.mc-card:hover { border-color:#c4d9cc; box-shadow:0 8px 24px rgba(30,69,52,.06); }
.mc-card-top { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.mc-category { display:inline-flex; align-items:center; gap:6px; background:#edf6f0; color:#39775f; border-radius:4px; padding:5px 8px; font-size:10px; font-weight:700; }
.mc-category-resultats { background:#f0f5f7; color:#517885; }.mc-category-resultats span { background:#739aa5; }
.mc-category-formation { background:#f8f4eb; color:#997744; }.mc-category-formation span { background:#bc975b; }
.mc-category-technique { background:#f2f1f8; color:#766b95; }.mc-category-technique span { background:#9185aa; }
.mc-card-number { font-size:11px; font-weight:700; color:#bdccc2; }
.modules-systeme .mc-card h3 { margin:18px 0 5px; color:#18322e; font-size:18px; letter-spacing:-.025em; line-height:1.25; }
.mc-file { color:#94a89c; font-family:ui-monospace,SFMono-Regular,Consolas,monospace; font-size:10px; overflow-wrap:anywhere; }
.mc-description { color:#70867b; font-size:13px; line-height:1.65; margin:15px 0 19px; }
.mc-functions-label { font-size:9px; letter-spacing:.1em; font-weight:800; color:#91a59a; margin-top:auto; margin-bottom:9px; }
.mc-functions { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:20px; }
.mc-functions code { color:#59756a; font-family:ui-monospace,SFMono-Regular,Consolas,monospace; background:#f4f7f4; border:1px solid #edf2ee; border-radius:4px; padding:5px 7px; font-size:10px; overflow-wrap:anywhere; max-width:100%; }
.mc-card-footer { border-top:1px solid #eef2ee; min-height:48px; display:flex; align-items:center; }
.mc-card-footer button { display:flex; align-items:center; gap:7px; width:100%; background:none; border:0; padding:12px 0; color:#347c65; font:inherit; font-size:11px; font-weight:700; text-align:left; cursor:pointer; }
.mc-arrow { margin-left:auto; font-size:15px; }.mc-no-settings { font-size:11px; color:#a2b1a8; }
.mc-card button:focus-visible,.mc-filters button:focus-visible { outline:2px solid #268268; outline-offset:3px; }
.mc-empty { grid-column:1/-1; padding:55px 20px; text-align:center; border:1px dashed #d5e3da; border-radius:10px; color:#647d70; }.mc-empty p { font-size:13px; }
.mc-note { display:flex; align-items:flex-start; gap:12px; background:#edf3ef; border-radius:9px; color:#638071; padding:17px 20px; margin-top:26px; font-size:12px; line-height:1.6; }.mc-note > span { font-size:17px; color:#579578; }.mc-note p { margin:0; }.mc-note strong { color:#3d6a55; }
@media(max-width:760px) { .modules-systeme { padding:32px 18px 60px; }.mc-hero { grid-template-columns:1fr; gap:28px; padding:14px 0 35px; }.mc-hero-foot { margin-top:22px; flex-wrap:wrap; }.mc-summary { min-height:0; }.mc-content { padding-top:35px; }.mc-intro { display:block; }.mc-search { margin-top:20px; width:100%; }.mc-filter-row { align-items:flex-start; flex-direction:column; gap:0; }.mc-filters { gap:0 16px; }.mc-filters button { padding:10px 1px; }.mc-count { padding:12px 0; }.mc-grid { grid-template-columns:1fr; } }

.mc-error:not(:empty) { margin:16px 0; padding:14px 18px; border:1px solid #d9b3a4; border-radius:8px; background:#fff5ef; color:#803e25; font-size:13px; line-height:1.5; }

/* Parcours du résultat — rubrique interactive du catalogue. */
.mc-view-nav { display:flex; align-items:center; gap:8px; padding-top:26px; }
.mc-view-nav button { border:1px solid transparent; border-radius:7px; padding:10px 16px; background:transparent; color:#82968b; font:inherit; font-size:12px; font-weight:700; cursor:pointer; }
.mc-view-nav button[aria-pressed="true"] { background:#e6f1e9; color:#236d54; border-color:#d4e7d9; }
.mc-view-nav button span { padding-left:4px; }
.mc-content[hidden], .mw-view[hidden] { display:none; }
.mw-view { padding-top:46px; }
.mw-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:29px; }
.modules-systeme .mw-heading h2 { margin:12px 0 10px; color:#18322e; font-size:30px; letter-spacing:-.04em; line-height:1.15; }
.mw-heading p { max-width:630px; margin:0; color:#71877b; font-size:13px; line-height:1.7; }
.mw-info { display:inline-flex; align-items:center; gap:8px; flex-shrink:0; color:#638576; font-size:11px; font-weight:650; padding:9px 12px; background:#eef4ef; border:1px solid #e0ebe2; border-radius:7px; }
.mw-info span { color:#4d9974; font-size:15px; }
.mw-map { border-radius:14px; padding:26px; background:#173b33; color:#edf8f2; overflow:hidden; }
.mw-map-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:25px; }
.mw-overline { color:#9dc6ae; font-size:10px; font-weight:800; letter-spacing:.13em; }
.modules-systeme .mw-map h3 { margin:9px 0 0; color:#f1faf4; font-size:19px; letter-spacing:-.025em; }
.mw-map-hint { color:#a4c4b1; font-size:11px; padding-top:3px; }.mw-map-hint span { margin-left:8px; color:#bce3ca; }
.mw-steps { list-style:none; display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:8px; margin:0; padding:0; }
.mw-steps li { min-width:0; }
.mw-step { position:relative; width:100%; min-height:114px; display:flex; flex-direction:column; align-items:flex-start; text-align:left; gap:14px; padding:14px 12px; background:#244a3f; border:1px solid #365e50; border-radius:8px; color:#d7eadc; font:inherit; cursor:pointer; transition:background .16s,border-color .16s; }
.mw-step:hover { background:#31594a; border-color:#80ae91; }
.mw-step[aria-pressed="true"] { background:#e5f4e9; color:#1c5743; border-color:#e5f4e9; }
.mw-step-index { font-size:10px; font-weight:800; letter-spacing:.1em; color:#8cbaa0; }
.mw-step[aria-pressed="true"] .mw-step-index { color:#519675; }
.mw-step-copy strong, .mw-step-copy small { display:block; overflow-wrap:anywhere; }
.mw-step-copy strong { font-size:12px; line-height:1.25; }.mw-step-copy small { font-size:10px; line-height:1.35; margin-top:4px; color:#a5c5b2; }
.mw-step[aria-pressed="true"] .mw-step-copy small { color:#6e9680; }
.mw-step-arrow { position:absolute; right:11px; top:10px; color:#89b99b; font-size:14px; }
.mw-map-foot { display:flex; align-items:center; gap:12px; margin-top:21px; color:#91b59f; font-size:9px; font-weight:800; letter-spacing:.1em; }.mw-map-foot span:nth-child(even) { color:#5f9475; font-size:13px; }
.mw-detail-shell { margin-top:14px; background:#fff; border:1px solid #e0e9e2; border-radius:11px; box-shadow:0 3px 14px rgba(30,69,52,.025); }
.mw-detail { padding:28px 28px 0; }
.mw-detail-intro { display:grid; grid-template-columns:72px minmax(0,1fr); gap:20px; align-items:start; }
.mw-detail-index { display:block; white-space:nowrap; color:#357f62; font-size:30px; line-height:1; font-weight:750; letter-spacing:-.05em; }.mw-detail-index span { color:#bbcfc1; font-size:12px; letter-spacing:0; }
.mw-detail-kicker { color:#72a18a; font-size:10px; font-weight:800; letter-spacing:.11em; }
.modules-systeme .mw-detail h3 { color:#18322e; font-size:21px; letter-spacing:-.035em; margin:8px 0 10px; line-height:1.25; }
.mw-detail-intro p { margin:0; max-width:850px; color:#688174; font-size:13px; line-height:1.75; }
.mw-detail-data { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin:25px 0 0 92px; padding:19px 0; border-top:1px solid #edf2ed; }
.mw-detail-data span { color:#90a79a; font-size:9px; font-weight:800; letter-spacing:.1em; }.mw-detail-data p { margin:7px 0 0; color:#476757; font-size:11px; line-height:1.6; overflow-wrap:anywhere; }
.mw-controls { border-top:1px solid #edf2ed; padding:13px 28px; display:flex; justify-content:space-between; align-items:center; gap:10px; color:#94a89c; font-size:11px; }
.mw-controls > div { display:flex; gap:8px; }.mw-controls button { font:inherit; font-weight:700; font-size:11px; border-radius:6px; padding:9px 12px; cursor:pointer; border:1px solid #dce9df; background:white; color:#477963; }.mw-controls button:last-child { background:#28755c; border-color:#28755c; color:#fff; }.mw-controls button:disabled { opacity:.4; cursor:default; }
.mw-uses-head { display:flex; justify-content:space-between; align-items:end; gap:24px; margin:56px 0 20px; }
.modules-systeme .mw-uses-head h3 { color:#18322e; font-size:24px; letter-spacing:-.035em; line-height:1.2; margin:11px 0 0; }.mw-uses-head > p { color:#81968a; font-size:12px; line-height:1.6; max-width:350px; margin:0; }
.mw-uses { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }.mw-uses article { background:#fff; border:1px solid #e0e9e2; border-radius:9px; padding:20px; }.mw-uses article > span { color:#7fa48e; font-size:9px; font-weight:800; letter-spacing:.11em; }
.modules-systeme .mw-uses h4 { color:#254f3d; font-size:14px; margin:17px 0 8px; }.mw-uses p { color:#789084; font-size:11px; line-height:1.7; margin:0; }
.mw-notes { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:24px; }.mw-notes article { display:flex; align-items:flex-start; gap:13px; padding:20px; border-radius:9px; background:#edf3ef; }.mw-note-icon { flex:0 0 32px; height:32px; border-radius:7px; display:flex; align-items:center; justify-content:center; background:#dcebe0; color:#4b8b6b; font-size:17px; }.modules-systeme .mw-notes h3 { color:#416e56; font-size:13px; margin:0 0 6px; }.mw-notes p { color:#6e8979; font-size:11px; line-height:1.65; margin:0; }
.mc-view-nav button:focus-visible,.mw-view button:focus-visible { outline:2px solid #268268; outline-offset:3px; }
@media (max-width:1000px) { .mw-steps { grid-template-columns:repeat(3,minmax(0,1fr)); }.mw-uses { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:760px) { .mc-view-nav { flex-wrap:wrap; padding-top:20px; }.mc-view-nav button { padding:10px 12px; }.mw-view { padding-top:32px; }.mw-heading { align-items:flex-start; flex-direction:column; gap:16px; }.mw-map { padding:20px 16px; }.mw-map-head { flex-direction:column; gap:8px; }.mw-steps { grid-template-columns:repeat(2,minmax(0,1fr)); }.mw-step { min-height:96px; }.mw-map-foot { gap:8px; font-size:8px; flex-wrap:wrap; }.mw-detail { padding:22px 18px 0; }.mw-detail-intro { grid-template-columns:1fr; gap:14px; }.mw-detail-data { grid-template-columns:1fr; gap:14px; margin:22px 0 0; }.mw-controls { padding:13px 18px; flex-wrap:wrap; }.mw-uses-head { align-items:flex-start; flex-direction:column; gap:10px; margin-top:42px; }.mw-notes { grid-template-columns:1fr; } }
@media (max-width:380px) { .mw-uses { grid-template-columns:1fr; } }
@media (prefers-reduced-motion:reduce) { .mw-step { transition:none; } }
