/* =====================================================================
   Style des boutons : Standard / Egis / Constance (Réglages)
   Un style pour l'ensemble, et au choix un autre pour les barres d'outils (haut)
   ou pour les bannettes et pastilles (bas). Tout passe par des variables :
   la barre prend le style le plus proche (le sien, sinon celui de l'ensemble).
   ===================================================================== */
/* --- Egis (par défaut) : traits fins, sobres --- */
:root, [data-icons="egis"],
html:root [data-bar-icons="egis"][data-bar-icons][data-bar-icons],
:root[data-icons-top="egis"] :is(.quick, .lab-bar, .zoom, .topbar, .room-bar, .folders-bar, .folder-head, .edit-bar),
:root[data-icons-bottom="egis"] :is(.tray, .report-dock, .sync-pill, .iso-bar, .cocon-pill) {
  --ic-stroke: 1.6; --ic-filter: none;
  --lbl-font: var(--font-ui); --lbl-size: 1em; --lbl-lh: normal;
  --bar-bg: var(--glass); --bar-line: var(--glass-line); --bar-shadow: var(--shadow); --bar-blur: blur(var(--blur)) saturate(1.4); --bar-halo: none;
  --hover-bg: var(--line); --hover-outline: 0 solid transparent;
  --sketch-display: none; --bin-icon-top: 0px; --bin-icon-size: 22px; --bin-art-h: 26px; --bin-lbl: 11px;
}
/* --- Standard : les icônes classiques, un peu plus épaisses --- */
[data-icons="standard"],
html:root [data-bar-icons="standard"][data-bar-icons][data-bar-icons],
:root[data-icons-top="standard"] :is(.quick, .lab-bar, .zoom, .topbar, .room-bar, .folders-bar, .folder-head, .edit-bar),
:root[data-icons-bottom="standard"] :is(.tray, .report-dock, .sync-pill, .iso-bar, .cocon-pill) {
  --ic-stroke: 2.1; --ic-filter: none;
  --lbl-font: system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif; --lbl-size: 1em; --lbl-lh: normal;
  --bar-bg: var(--glass); --bar-line: var(--glass-line); --bar-shadow: var(--shadow); --bar-blur: blur(var(--blur)) saturate(1.4); --bar-halo: none;
  --hover-bg: var(--line); --hover-outline: 0 solid transparent;
  --sketch-display: none; --bin-icon-top: 0px; --bin-icon-size: 22px; --bin-art-h: 26px; --bin-lbl: 11px;
}
/* --- Constance : dessiné au feutre, sans fond, posé sur le tableau --- */
[data-icons="constance"],
html:root [data-bar-icons="constance"][data-bar-icons][data-bar-icons],
:root[data-icons-top="constance"] :is(.quick, .lab-bar, .zoom, .topbar, .room-bar, .folders-bar, .folder-head, .edit-bar),
:root[data-icons-bottom="constance"] :is(.tray, .report-dock, .sync-pill, .iso-bar, .cocon-pill) {
  --ic-stroke: 1.9; --ic-filter: url(#planck-feutre);
  --lbl-font: 'Caveat', cursive; --lbl-size: 1.32em; --lbl-lh: 1;
  --bar-bg: transparent; --bar-line: transparent; --bar-shadow: none; --bar-blur: none; --bar-halo: drop-shadow(0 0 1.5px var(--bg)) drop-shadow(0 0 4px var(--bg));
  --hover-bg: transparent; --hover-outline: 1.6px solid currentColor;
  --sketch-display: block; --bin-icon-top: -5px; --bin-icon-size: 19px; --bin-art-h: 34px; --bin-lbl: 16px;
}

/* --- ce que ces variables changent --- */
.icon { stroke-width: var(--ic-stroke); filter: var(--ic-filter); }
:is(.quick, .lab-bar, .zoom, .topbar, .room-bar, .folders-bar, .folder-head, .edit-bar, .tray, .report-dock, .sync-pill, .iso-bar, .cocon-pill).glass {
  background: var(--bar-bg); border-color: var(--bar-line); box-shadow: var(--bar-shadow);
  -webkit-backdrop-filter: var(--bar-blur); backdrop-filter: var(--bar-blur);
}
:is(.quick, .lab-bar, .zoom, .room-bar, .folders-bar, .folder-head, .edit-bar, .tray, .report-dock, .sync-pill, .iso-bar, .cocon-pill) { filter: var(--bar-halo); }
:is(.quick, .lab-bar, .zoom, .topbar, .room-bar, .folders-bar, .folder-head, .edit-bar, .tray, .report-dock, .iso-bar) :is(.tool, .bin, .report-pill, .bugbin-btn) > span:last-child,
.sync-pill span, .zoom-level, .zoom b, .bin-label {
  font-family: var(--lbl-font); font-size: var(--lbl-size); line-height: var(--lbl-lh);
}
:is(.quick, .lab-bar, .zoom, .topbar, .room-bar, .folders-bar, .folder-head, .edit-bar, .tray, .report-dock, .iso-bar) :is(.tool, .bin, button):hover {
  background: var(--hover-bg); outline: var(--hover-outline); outline-offset: -3px;
}
:is(.quick, .lab-bar, .zoom, .room-bar, .folders-bar, .folder-head, .edit-bar, .iso-bar) .tool[aria-pressed="true"] { outline: var(--hover-outline); outline-offset: -3px; }
.bin-art { height: var(--bin-art-h); }
.bin-art .sketch-bin { display: var(--sketch-display); }
.bin-art .icon { top: var(--bin-icon-top); width: var(--bin-icon-size); height: var(--bin-icon-size); }
.bin-label { font-size: var(--bin-lbl); }
.bugbin-btn span { font-family: var(--lbl-font); font-size: calc(var(--bin-lbl) + 1px); }

/* --- Styles gagnés à la Papeterie --- */
[data-icons="craie"],
html:root [data-bar-icons="craie"][data-bar-icons][data-bar-icons],
:root[data-icons-top="craie"] :is(.quick, .lab-bar, .zoom, .topbar, .room-bar, .folders-bar, .folder-head, .edit-bar),
:root[data-icons-bottom="craie"] :is(.tray, .report-dock, .sync-pill, .iso-bar, .cocon-pill) { --ic-stroke: 2.2; --ic-filter: url(#planck-craie); --ic-color: #f4f1e8; --lbl-font: 'Caveat', cursive; --lbl-size: 1.3em; --lbl-lh: 1; --bar-bg: rgba(30,48,40,.88); --bar-line: rgba(255,255,255,.25); --bar-shadow: var(--shadow); --bar-blur: none; --bar-halo: none; --hover-bg: rgba(255,255,255,.08); --hover-outline: 1.5px dashed rgba(255,255,255,.6); --sketch-display: none; --bin-icon-top: 0px; --bin-icon-size: 22px; --bin-art-h: 26px; --bin-lbl: 15px; --lbl-color: #f4f1e8; }
[data-icons="pochoir"],
html:root [data-bar-icons="pochoir"][data-bar-icons][data-bar-icons],
:root[data-icons-top="pochoir"] :is(.quick, .lab-bar, .zoom, .topbar, .room-bar, .folders-bar, .folder-head, .edit-bar),
:root[data-icons-bottom="pochoir"] :is(.tray, .report-dock, .sync-pill, .iso-bar, .cocon-pill) { --ic-stroke: 2.8; --ic-filter: none; --ic-color: currentColor; --lbl-font: 'Special Elite', 'Courier New', monospace; --lbl-size: .95em; --lbl-lh: 1.1; --bar-bg: var(--glass); --bar-line: currentColor; --bar-shadow: 4px 4px 0 rgba(0,0,0,.35); --bar-blur: none; --bar-halo: none; --hover-bg: var(--line); --hover-outline: 0 solid transparent; --sketch-display: none; --bin-icon-top: 0px; --bin-icon-size: 22px; --bin-art-h: 26px; --bin-lbl: 11px; --lbl-color: inherit; }
[data-icons="plan"],
html:root [data-bar-icons="plan"][data-bar-icons][data-bar-icons],
:root[data-icons-top="plan"] :is(.quick, .lab-bar, .zoom, .topbar, .room-bar, .folders-bar, .folder-head, .edit-bar),
:root[data-icons-bottom="plan"] :is(.tray, .report-dock, .sync-pill, .iso-bar, .cocon-pill) { --ic-stroke: 1.3; --ic-filter: none; --ic-color: #e8f0ff; --lbl-font: Consolas, 'SF Mono', Menlo, monospace; --lbl-size: .9em; --lbl-lh: 1.1; --bar-bg: #0d3b8c; --bar-line: rgba(255,255,255,.4); --bar-shadow: 0 8px 20px rgba(0,0,0,.35); --bar-blur: none; --bar-halo: none; --hover-bg: rgba(255,255,255,.1); --hover-outline: 1px dashed rgba(255,255,255,.7); --sketch-display: none; --bin-icon-top: 0px; --bin-icon-size: 22px; --bin-art-h: 26px; --bin-lbl: 11px; --lbl-color: #e8f0ff; }
[data-icons="neon"],
html:root [data-bar-icons="neon"][data-bar-icons][data-bar-icons],
:root[data-icons-top="neon"] :is(.quick, .lab-bar, .zoom, .topbar, .room-bar, .folders-bar, .folder-head, .edit-bar),
:root[data-icons-bottom="neon"] :is(.tray, .report-dock, .sync-pill, .iso-bar, .cocon-pill) { --ic-stroke: 1.8; --ic-filter: drop-shadow(0 0 2px #ff2bd6) drop-shadow(0 0 6px #ff2bd6); --ic-color: #ffd6f7; --lbl-font: var(--font-ui); --lbl-size: 1em; --lbl-lh: normal; --bar-bg: rgba(10,4,20,.85); --bar-line: #ff2bd6; --bar-shadow: 0 0 14px rgba(255,43,214,.45); --bar-blur: none; --bar-halo: none; --hover-bg: rgba(255,43,214,.15); --hover-outline: 0 solid transparent; --sketch-display: none; --bin-icon-top: 0px; --bin-icon-size: 22px; --bin-art-h: 26px; --bin-lbl: 11px; --lbl-color: #ffd6f7; }
[data-icons="or"],
html:root [data-bar-icons="or"][data-bar-icons][data-bar-icons],
:root[data-icons-top="or"] :is(.quick, .lab-bar, .zoom, .topbar, .room-bar, .folders-bar, .folder-head, .edit-bar),
:root[data-icons-bottom="or"] :is(.tray, .report-dock, .sync-pill, .iso-bar, .cocon-pill) { --ic-stroke: 1.9; --ic-filter: drop-shadow(0 1px 0 rgba(0,0,0,.35)); --ic-color: #d9a400; --lbl-font: Didot, 'Bodoni MT', Georgia, serif; --lbl-size: 1em; --lbl-lh: normal; --bar-bg: linear-gradient(180deg, rgba(40,32,10,.9), rgba(20,16,4,.92)); --bar-line: #d9a400; --bar-shadow: 0 8px 22px rgba(0,0,0,.4); --bar-blur: none; --bar-halo: none; --hover-bg: rgba(217,164,0,.14); --hover-outline: 0 solid transparent; --sketch-display: none; --bin-icon-top: 0px; --bin-icon-size: 22px; --bin-art-h: 26px; --bin-lbl: 11px; --lbl-color: #f3d27a; }
[data-icons="pixel"],
html:root [data-bar-icons="pixel"][data-bar-icons][data-bar-icons],
:root[data-icons-top="pixel"] :is(.quick, .lab-bar, .zoom, .topbar, .room-bar, .folders-bar, .folder-head, .edit-bar),
:root[data-icons-bottom="pixel"] :is(.tray, .report-dock, .sync-pill, .iso-bar, .cocon-pill) { --ic-stroke: 2.4; --ic-filter: url(#planck-pixel); --ic-color: currentColor; --lbl-font: 'Courier New', monospace; --lbl-size: .9em; --lbl-lh: 1; --bar-bg: var(--glass); --bar-line: currentColor; --bar-shadow: 4px 4px 0 currentColor; --bar-blur: none; --bar-halo: none; --hover-bg: var(--line); --hover-outline: 0 solid transparent; --sketch-display: none; --bin-icon-top: 0px; --bin-icon-size: 22px; --bin-art-h: 26px; --bin-lbl: 11px; --lbl-color: inherit; }
.icon { color: var(--ic-color, currentColor); }
:is(.quick, .lab-bar, .zoom, .topbar, .room-bar, .folders-bar, .folder-head, .edit-bar, .tray, .report-dock, .sync-pill, .iso-bar) :is(.tool, .bin, .report-pill, .bugbin-btn) > span:last-child { color: var(--lbl-color, inherit); }
[data-icons="pixel"] .icon, html:root [data-bar-icons="pixel"][data-bar-icons][data-bar-icons] .icon, :root[data-icons-top="pixel"] :is(.quick, .lab-bar, .zoom, .topbar, .room-bar, .folders-bar, .folder-head, .edit-bar) .icon, :root[data-icons-bottom="pixel"] :is(.tray, .report-dock, .sync-pill, .iso-bar, .cocon-pill) .icon { stroke-linecap: square; stroke-linejoin: miter; shape-rendering: crispEdges; }
[data-icons="pochoir"] :is(.tool, .bin) > span:last-child, html:root [data-bar-icons="pochoir"][data-bar-icons][data-bar-icons] :is(.tool, .bin) > span:last-child { text-transform: uppercase; }
