/* ODIN — ambiances de l’interface : jetons de matière.
 * Chaque gris de l’habillage est un mélange entre les deux extrémités d’une rampe (--ui-<rampe>-0 → -1).
 * Valeurs par défaut = argent mat, au gris près. Une ambiance redéfinit seulement les extrémités.
 * Spécification : docs/Ambiances.md. */
:root,[data-odin-theme="argent"]{
 --ui-accent-0:#393939;--ui-accent-1:#414141;
 --ui-accent-soft-0:#d4d4d4;--ui-accent-soft-1:#dcdcdc;
 --ui-highlight-0:#c0c0c0;--ui-highlight-1:#ffffff;
 --ui-line-0:#4a4a4a;--ui-line-1:#eeeeee;
 --ui-primary-ink-0:#fafafa;--ui-primary-ink-1:#ffffff;
 --ui-primary-0:#313131;--ui-primary-1:#898989;
 --ui-rail-0:#242424;--ui-rail-1:#8a8a8a;
 --ui-rail-ink-0:#d4d4d4;--ui-rail-ink-1:#ffffff;
 --ui-selected-0:#484848;--ui-selected-1:#484848;
 --ui-surface-0:#9d9d9d;--ui-surface-1:#ffffff;
 --ui-shadow-0:#000000;--ui-shadow-1:#bababa;
 --ui-selected-ink-0:#ffffff;--ui-selected-ink-1:#ffffff;
 --ui-text-0:#242424;--ui-text-1:#dadada;
 --ui-warn-0:#5e5e5e;--ui-warn-1:#5e5e5e;
 --ui-warn-soft-0:#e0e0e0;--ui-warn-soft-1:#e0e0e0;
 --ui-scheme:light;--ui-sheen:1;--ui-glow:#348060;--ui-glow-soft:#c8ebd7;
 /* Fonds de panneaux et teintes de sens des feuilles d’ateliers : valeurs historiques en argent. */
 --ui-panel-hover:#edf4ef; --ui-panel-a:#eef0ea; --ui-panel-b:#f3f6f1; --ui-panel-c:#e9efe8; --ui-panel-d:#f7fbf6; --ui-panel-cool:#f5f8fa; --ui-panel-cool2:#edf3f8; --ui-tint-danger:#f7e4df; --ui-tint-danger-2:#faefec; --ui-tint-ok:#edf6ef; --ui-tint-ok-2:#f3f8f0; --ui-tint-warn:#fffaf0; --ui-tint-missing:#f7e6d8; --ui-danger-ink:#9b443c; --ui-conflict-ink:#854d40; --ui-info-ink:#345f80; --ui-placeholder:#66756e; --ui-link-ink:#245c4e; --ui-rd-edge:#a8bfb0; --ui-rd-node-line:#92b2a2; --ui-rd-selected:#d4e8dc;
 --ui-font-title:inherit;
 /* Couleurs d’interface des SVG générés (Économie, Niveaux, Lecture, export de lecture) : valeurs historiques en argent. */
 --ui-svg-ink:#24352f; --ui-svg-accent:#245e4d; --ui-svg-paper:#fffefa; --ui-svg-soft:#e5f0e9; --ui-svg-edge:#4d5e57; --ui-svg-edge-soft:#7a8a83; --ui-svg-node-line:#c5cfc9; --ui-svg-halo:#fbfcf9; --ui-svg-axis:#888888; --ui-svg-axis-soft:#bbbbbb; --ui-svg-faint:#b9c8be; --ui-svg-dash:#8aa395; --ui-svg-map-bg:#edf1ea; --ui-svg-chosen:#d3e7da; --ui-svg-zone-line:#9aafa0; --ui-svg-graph-edge:#668b7c; --ui-svg-grid:#a4b5a8; --ui-svg-zone:#fdfdf8; --ui-svg-arrow:#789986; --ui-svg-bar:#c7dfd2; --ui-svg-zone2:#dce9df; --ui-svg-zone2-line:#4b7964; --ui-export-ink:#203d33; --ui-export-bg:#f5f6f1; --ui-export-link:#22614a; --ui-export-line:#c7d8ce; --ui-export-edge:#b0c8b9; --ui-export-node:#e6f0e8; --ui-export-node-line:#648571; --ui-export-muted:#557567;
--ui-font-body:'Segoe UI Variable','Segoe UI',system-ui,sans-serif;
}

/* Polices des ambiances Silex (vendor/fonts, licence OFL) : servies localement, aucun service externe. */
@font-face{font-family:'Inter';font-style:normal;font-weight:100 900;font-display:swap;src:url('../vendor/fonts/inter-latin-wght-normal.woff2') format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:600;font-display:swap;src:url('../vendor/fonts/barlow-condensed-latin-600-normal.woff2') format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:700;font-display:swap;src:url('../vendor/fonts/barlow-condensed-latin-700-normal.woff2') format('woff2')}

/* Ambiances Sharp Flint (couleurs de sharp-flint.com : encre #170d17, papier #f5e6d3, os #fff0da, corail #ef4b4b, rouge #b82c43). */
[data-odin-theme="silex-nuit"]{
 --ui-surface-0:#000000;--ui-surface-1:#442b3d;
 --ui-text-0:#fff8df;--ui-text-1:#3a2030;
 --ui-line-0:#fff3dd;--ui-line-1:#120a10;
 --ui-rail-0:#050205;--ui-rail-1:#281725;
 --ui-rail-ink-0:#b79aa3;--ui-rail-ink-1:#fff0da;
 --ui-primary-0:#b82c43;--ui-primary-1:#ff915d;
 --ui-primary-ink-0:#fff0da;--ui-primary-ink-1:#fff7ea;
 --ui-selected-0:#5a2a3c;--ui-selected-1:#5a2a3c;
 --ui-selected-ink-0:#fff0da;--ui-selected-ink-1:#fff0da;
 --ui-highlight-0:#5a4352;--ui-highlight-1:#a88a98;
 --ui-shadow-0:#000000;--ui-shadow-1:#000000;
 --ui-accent-0:#f46b62;--ui-accent-1:#f08a7a;
 --ui-accent-soft-0:#3d1f2c;--ui-accent-soft-1:#232a44;
 --ui-warn-0:#e8b04b;--ui-warn-1:#e8b04b;
 --ui-warn-soft-0:#3a2a14;--ui-warn-soft-1:#3a2a14;
 --ui-scheme:dark;color-scheme:dark;--ui-glow:#ef4b4b;--ui-glow-soft:#ffc9c1;--ui-sheen:1;--ui-font-title:'Barlow Condensed','Arial Narrow',sans-serif;--ui-font-body:'Inter','Segoe UI',system-ui,sans-serif;
}
[data-odin-theme="silex-parchemin"]{
 --ui-surface-0:#d8c0a4;--ui-surface-1:#fff9eb;
 --ui-text-0:#0a020e;--ui-text-1:#fff7ec;
 --ui-line-0:#210d1a;--ui-line-1:#fff6e6;
 --ui-rail-0:#100b13;--ui-rail-1:#612744;
 --ui-rail-ink-0:#b79aa3;--ui-rail-ink-1:#fff0da;
 --ui-primary-0:#8f2033;--ui-primary-1:#ff7592;
 --ui-primary-ink-0:#fff0da;--ui-primary-ink-1:#fff7ea;
 --ui-selected-0:#24101c;--ui-selected-1:#24101c;
 --ui-selected-ink-0:#fff0da;--ui-selected-ink-1:#fff0da;
 --ui-highlight-0:#efe0c8;--ui-highlight-1:#fffaf2;
 --ui-shadow-0:#2a1020;--ui-shadow-1:#8a6a70;
 --ui-accent-0:#b82c43;--ui-accent-1:#061a37;
 --ui-accent-soft-0:#f3d6cf;--ui-accent-soft-1:#d9e0ea;
 --ui-warn-0:#8a5a12;--ui-warn-1:#8a5a12;
 --ui-warn-soft-0:#f6e3bd;--ui-warn-soft-1:#f6e3bd;
 --ui-scheme:light;color-scheme:light;--ui-sheen:1;--ui-glow:#b82c43;--ui-glow-soft:#f3d6cf;--ui-font-title:'Barlow Condensed','Arial Narrow',sans-serif;--ui-font-body:'Inter','Segoe UI',system-ui,sans-serif;
}

/* Titres en Barlow Condensed dans les ambiances qui fournissent une police de titre. */
:root[data-odin-theme^="silex"] :is(h1,h2,.brand,.eyebrow,.dialog-head h2,.ws-heading h1){font-family:var(--ui-font-title);letter-spacing:.015em}
:root[data-odin-theme^="silex"] :is(h1,h2){font-weight:700}

/* Accueil : pastille de l’ambiance d’un projet. */
.amb-swatch{display:inline-flex;vertical-align:middle;border-radius:999px;overflow:hidden;box-shadow:0 0 0 1px color-mix(in srgb,var(--ui-line-0) 35%,transparent)}.amb-swatch i{width:10px;height:10px;display:block}

/* Autres ambiances : les couleurs des SVG générés dérivent des rampes (lues par ODIN.uiColor). */
[data-odin-theme]:not([data-odin-theme="argent"]){--ui-panel-hover:color-mix(in srgb,var(--ui-accent-soft-0) 60%,var(--ui-surface-1));--ui-panel-a:color-mix(in srgb,var(--ui-surface-1) 70%,var(--ui-surface-0));--ui-panel-b:color-mix(in srgb,var(--ui-surface-1) 80%,var(--ui-surface-0));--ui-panel-c:color-mix(in srgb,var(--ui-surface-1) 65%,var(--ui-surface-0));--ui-panel-d:color-mix(in srgb,var(--ui-surface-1) 88%,var(--ui-surface-0));--ui-panel-cool:color-mix(in srgb,var(--ui-surface-1) 82%,var(--ui-surface-0));--ui-panel-cool2:color-mix(in srgb,var(--ui-accent-soft-1) 55%,var(--ui-surface-1));--ui-tint-danger:color-mix(in srgb,#c0392b 22%,var(--ui-surface-1));--ui-tint-danger-2:color-mix(in srgb,#c0392b 16%,var(--ui-surface-1));--ui-tint-ok:color-mix(in srgb,#2f8a5b 18%,var(--ui-surface-1));--ui-tint-ok-2:color-mix(in srgb,#2f8a5b 13%,var(--ui-surface-1));--ui-tint-warn:color-mix(in srgb,#c48a2c 16%,var(--ui-surface-1));--ui-tint-missing:color-mix(in srgb,#c48a2c 22%,var(--ui-surface-1));--ui-danger-ink:color-mix(in srgb,#e05a4e 70%,var(--ui-text-0));--ui-conflict-ink:color-mix(in srgb,#e07a5e 65%,var(--ui-text-0));--ui-info-ink:color-mix(in srgb,#5b9bd5 70%,var(--ui-text-0));--ui-placeholder:color-mix(in srgb,var(--ui-text-0) 55%,var(--ui-surface-1));--ui-link-ink:var(--ui-accent-0);--ui-rd-edge:color-mix(in srgb,var(--ui-text-0) 32%,var(--ui-surface-1));--ui-rd-node-line:color-mix(in srgb,var(--ui-text-0) 40%,var(--ui-surface-1));--ui-rd-selected:color-mix(in srgb,var(--ui-accent-0) 28%,var(--ui-surface-1));--ui-svg-ink:var(--ui-text-0);--ui-svg-accent:var(--ui-accent-0);--ui-svg-paper:var(--ui-surface-1);--ui-svg-soft:var(--ui-accent-soft-0);--ui-svg-edge:color-mix(in srgb,var(--ui-text-0) 70%,var(--ui-surface-1));--ui-svg-edge-soft:color-mix(in srgb,var(--ui-text-0) 50%,var(--ui-surface-1));--ui-svg-node-line:color-mix(in srgb,var(--ui-text-0) 25%,var(--ui-surface-1));--ui-svg-halo:color-mix(in srgb,var(--ui-surface-1) 85%,var(--ui-surface-0));--ui-svg-axis:color-mix(in srgb,var(--ui-text-0) 50%,var(--ui-surface-1));--ui-svg-axis-soft:color-mix(in srgb,var(--ui-text-0) 28%,var(--ui-surface-1));--ui-svg-faint:color-mix(in srgb,var(--ui-text-0) 28%,var(--ui-surface-1));--ui-svg-dash:color-mix(in srgb,var(--ui-text-0) 45%,var(--ui-surface-1));--ui-svg-map-bg:color-mix(in srgb,var(--ui-surface-1) 70%,var(--ui-surface-0));--ui-svg-chosen:color-mix(in srgb,var(--ui-accent-0) 25%,var(--ui-surface-1));--ui-svg-zone-line:color-mix(in srgb,var(--ui-text-0) 40%,var(--ui-surface-1));--ui-svg-graph-edge:color-mix(in srgb,var(--ui-text-0) 60%,var(--ui-surface-1));--ui-svg-grid:color-mix(in srgb,var(--ui-text-0) 35%,var(--ui-surface-1));--ui-svg-zone:var(--ui-surface-1);--ui-svg-arrow:color-mix(in srgb,var(--ui-text-0) 55%,var(--ui-surface-1));--ui-svg-bar:color-mix(in srgb,var(--ui-accent-0) 30%,var(--ui-surface-1));--ui-svg-zone2:color-mix(in srgb,var(--ui-accent-0) 15%,var(--ui-surface-1));--ui-svg-zone2-line:var(--ui-accent-0);--ui-export-ink:var(--ui-text-0);--ui-export-bg:color-mix(in srgb,var(--ui-surface-1) 75%,var(--ui-surface-0));--ui-export-link:var(--ui-accent-1);--ui-export-line:color-mix(in srgb,var(--ui-text-0) 22%,var(--ui-surface-1));--ui-export-edge:color-mix(in srgb,var(--ui-text-0) 30%,var(--ui-surface-1));--ui-export-node:color-mix(in srgb,var(--ui-accent-0) 12%,var(--ui-surface-1));--ui-export-node-line:color-mix(in srgb,var(--ui-text-0) 55%,var(--ui-surface-1));--ui-export-muted:color-mix(in srgb,var(--ui-text-0) 65%,var(--ui-surface-1))}

/* Dialogue « Ambiance » (web/ambiance.js) : chaque mini-maquette est rendue dans sa propre ambiance. */
#ambianceDialog{width:min(860px,94vw)}
.amb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;margin:12px 0}
.amb-card{display:flex;flex-direction:column;align-items:stretch;gap:5px;text-align:left;padding:8px;border-radius:12px;white-space:normal}
.amb-card[aria-checked=true]{outline:2px solid var(--metal-ring,currentColor);outline-offset:1px}
.amb-card small{opacity:.8;line-height:1.35}
.amb-mock{display:grid;grid-template-columns:16px 1fr;height:86px;border-radius:8px;overflow:hidden;background:color-mix(in srgb,var(--ui-surface-1) 55%,var(--ui-surface-0));color:var(--ui-text-0);font-family:var(--ui-font-body);border:1px solid color-mix(in srgb,var(--ui-line-1) 60%,var(--ui-line-0))}
.amb-mock .amb-r{background:linear-gradient(110deg,color-mix(in srgb,var(--ui-rail-1) 40%,var(--ui-rail-0)),var(--ui-rail-0))}
.amb-mock .amb-c{display:flex;flex-direction:column;gap:2px;margin:7px;padding:6px 8px;border-radius:6px;background:color-mix(in srgb,var(--ui-surface-1) 85%,var(--ui-surface-0));border:1px solid color-mix(in srgb,var(--ui-line-1) 55%,var(--ui-line-0));font-size:11px;line-height:1.2}
.amb-mock b{font-family:var(--ui-font-title);font-size:13px}.amb-mock small{color:color-mix(in srgb,var(--ui-text-1) 30%,var(--ui-text-0))}.amb-mock em{color:var(--ui-accent-0);font-style:normal}
.amb-mock i{align-self:flex-start;font-style:normal;margin-top:auto;padding:1px 7px;border-radius:4px;background:color-mix(in srgb,var(--ui-primary-1) 25%,var(--ui-primary-0));color:var(--ui-primary-ink-1)}
.amb-custom{border:1px solid color-mix(in srgb,var(--ui-line-1) 50%,var(--ui-line-0));border-radius:10px;padding:10px 12px}
.amb-row{display:flex;flex-wrap:wrap;gap:10px}.amb-row label{flex:1;min-width:150px}
.amb-colors{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px 12px;margin:10px 0}
.amb-colors label{display:flex;align-items:center;gap:8px;font-size:13px}.amb-colors input{width:38px;height:28px;padding:0;border-radius:6px;flex:none}
.amb-contrast{list-style:none;margin:6px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:3px 12px;font-size:12px}
.amb-contrast li.warn{color:var(--ui-warn-0);font-weight:600}
