/* Atelier uniquement : présentation commune, sans masquer les champs métier.
   Les variables du thème gardent le mode sombre et la marque du déploiement. */
:root {
  --workshop-sidebar: 238px;
  --workshop-header-height: 56px;
  --workshop-dock-height: 44px;
  --workshop-title-height: 36px;
  --workshop-paper: #15263b;
  --workshop-surface: #101c2c;
  --workshop-soft: #203c5b;
  --workshop-primary: #8bc7ff;
  --workshop-primary-hover: #b1d9ff;
  --workshop-on-primary: #102032;
  --workshop-chrome: #192e46;
  --workshop-input-border: #6683a3;
  --bg: #101c2c; --bg2: #101c2c; --panel: #15263b;
  --line: #324b66; --text: #e9f2fc; --muted: #afc2d8;
  --accent: #8bc7ff; --accent2: #8bc7ff;
  --shadow: none;
  --font-sans: system-ui, -apple-system, "Segoe UI", sans-serif;
}
:root[data-theme="light"] {
  --workshop-paper: #fff; --workshop-surface: #edf4fb;
  --workshop-soft: #e1effc; --workshop-primary: #2364a6;
  --workshop-primary-hover: #1c528a;
  --workshop-on-primary: #fff;
  --workshop-chrome: #e7f1fb;
  --workshop-input-border: #8299b2;
  --bg: #edf4fb; --bg2: #edf4fb; --panel: #fff;
  --line: #d1dfed; --text: #20354d; --muted: #52677e;
  --accent: #2364a6; --accent2: #2364a6; --danger: #aa373c;
  --warn: #906219; --ok: #216943; --shadow: none;
}
body, :root[data-theme="light"] body { background: var(--workshop-surface); padding: 0; font-size: calc(14px * var(--workshop-font-scale, 1)); }
button, input, select, textarea { font-family: inherit; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible { outline: 2px solid var(--workshop-primary); outline-offset: 3px; }
.workshop-skip { position: fixed; top: -100px; left: 250px; z-index: 5000; padding: 12px; background: var(--panel); color: var(--text); }
.workshop-skip:focus { top: 8px; }
.app { display: block; }
.glass { border-radius: 13px; box-shadow: none; backdrop-filter: none; background: var(--workshop-paper); }
#appHeader { position: sticky; top: 0; border-radius: 0; border: 0; border-bottom: 1px solid var(--line); min-height: var(--workshop-header-height); padding: 6px 18px; display: flex; gap: 12px; background: var(--workshop-paper); }
#appHeader .brand img { width: 35px; height: 35px; object-fit: contain; }
#appHeader .app-header-navigation { flex: 0 0 auto; }
#appHeader .app-header-search { order: 1; margin: 0 auto 0 0; max-width: 410px; flex: 1; }
#appHeader .app-header-search input { border: 0; border-radius: 7px; height: 34px; background: var(--workshop-surface); padding: 6px 10px; font-size: calc(13px * var(--workshop-font-scale, 1)); }
#appAccountMenu { order: 3; }
#appThemeToggleBtn { order: 4; flex: none; }
#globalBinsaImportProgress { order: 5; }
body.workshop-authenticated .app { margin-left: var(--workshop-sidebar); width: calc(100% - var(--workshop-sidebar)); }
body.workshop-authenticated #appHeader > .brand { display: none; }
#appView { padding: 14px; gap: 12px; min-width: 0; }
#appView > *, #appView .grid > *, #appView .panel { min-width: 0; }
#appView > .panel > h2 { font-size: calc(19px * var(--workshop-font-scale, 1)); font-weight: 650; letter-spacing: -.3px; margin: 0 0 10px; }
#flash { margin: 16px 30px 0; border-radius: 9px; }
#upcomingPanel { margin: 20px 30px; }
#loginView { max-width: 470px; margin: 70px auto; padding: 34px; }
#loginView h2 { font-size: calc(25px * var(--workshop-font-scale, 1)); }
#loginBtn { margin-top: 16px; width: 100%; }
.workshop-sidebar { display: none; position: fixed; inset: 0 auto 0 0; width: var(--workshop-sidebar); z-index: 250; background: var(--workshop-paper); border-right: 1px solid var(--line); padding: 14px 12px 12px; flex-direction: column; overflow-y: auto; }
body.workshop-authenticated .workshop-sidebar { display: flex; }
.workshop-brand { display: flex; align-items: center; gap: 12px; padding: 0 10px 14px; }
.workshop-brand img { width: 36px; height: 40px; object-fit: contain; }
.workshop-brand strong { display: block; font-size: calc(19px * var(--workshop-font-scale, 1)); font-weight: 700; }
.workshop-brand small { display: block; font-size: calc(9px * var(--workshop-font-scale, 1)); letter-spacing: 1.2px; color: var(--muted); }
.workshop-sidebar-foot { margin-top: auto; padding: 25px 12px 4px; color: var(--muted); font-size: calc(11px * var(--workshop-font-scale, 1)); }
.workshop-sidebar-foot span { font-size: calc(10px * var(--workshop-font-scale, 1)); }
#workshopNavigation { margin-top: 9px; }
#adminNavPanel { padding: 0; margin: 0; }
#adminNavPanel .admin-nav { display: flex; flex-direction: column; gap: 4px; }
#adminNavPanel .admin-nav-drawer { display: block; position: static; padding: 0; background: none; border: none; box-shadow: none; max-height: none; overflow: visible; }
#adminNavPanel .admin-nav-group { min-width: 0; }
#adminNavPanel .admin-nav-group-toggle, .workshop-home-button { display: flex; align-items: center; text-align: left; width: 100%; border: 0; background: transparent; padding: 8px 10px; border-radius: 8px; color: var(--muted); font-weight: 600; font-size: calc(13px * var(--workshop-font-scale, 1)); min-height: 36px; }
#adminNavPanel .admin-nav-group-toggle:hover, .workshop-home-button:hover { background: var(--workshop-soft); color: var(--text); }
#adminNavPanel .admin-nav-group.has-active > .admin-nav-group-toggle, .workshop-home-button.admin-tab-active { color: var(--workshop-primary); background: var(--workshop-soft); }
#adminNavPanel .admin-nav-group-count { display: none; }
#adminNavPanel .admin-nav-group-toggle::after { margin-left: auto; }
#adminNavPanel .admin-nav-group-items { position: static; inset: auto; min-width: 0; width: 100%; padding: 3px 0 8px 10px; margin: 0; border: 0; border-left: 1px solid var(--line); border-radius: 0; box-shadow: none; background: transparent; max-height: none; overflow: visible; }
#adminNavPanel .admin-nav-group:not(.is-open) .admin-nav-group-items { display: none; }
#adminNavPanel .admin-nav-group.is-open .admin-nav-group-items { display: flex; flex-direction: column; }
#adminNavPanel .admin-nav-group-items > .btn { width: 100%; min-height: 38px; text-align: left; justify-content: flex-start; white-space: normal; border: 0; padding: 9px 10px; background: transparent; color: var(--muted); font-size: calc(12px * var(--workshop-font-scale, 1)); font-weight: 450; }
#adminNavPanel .admin-nav-group-items > .btn.admin-tab-active { color: var(--workshop-primary); background: var(--workshop-soft); font-weight: 650; }
#adminNavNoResults { position: static; min-width: 0; background: transparent; border: 0; color: var(--muted); }
#adminNavDropdownMenu, #appAccountMenuPanel { background: var(--workshop-paper); border: 1px solid var(--line); border-radius: 10px; box-shadow: 0 12px 35px #173e681c; color: var(--text); }
#adminNavDropdownMenu .admin-dropdown-item, #adminNavDropdownMenu button { color: var(--text); }
#adminNavDropdownMenu .admin-dropdown-item:hover, #adminNavDropdownMenu button:hover { background: var(--workshop-soft); }
#appAccountMenuPanel { width: 280px; }
#web-workshop-banner { position: fixed; right: 16px; bottom: 9px; z-index: 190; pointer-events: none; border: 1px solid #cfac63; border-radius: 6px; background: #fff6df; color: #76551c; font: 600 calc(10px * var(--workshop-font-scale, 1))/1.5 system-ui,sans-serif; padding: 4px 9px; }
.panel { padding: 12px; }
.btn { border-radius: 8px; padding: 6px 10px; min-height: 32px; background: var(--workshop-paper); font-size: calc(12px * var(--workshop-font-scale, 1)); font-weight: 550; transition: background .12s; }
.btn:hover { transform: none; filter: none; background: var(--workshop-soft); }
.btn-primary, .btn-success, .btn.primary { background: var(--workshop-primary); color: var(--workshop-paper); border-color: var(--workshop-primary); }
:root[data-theme="light"] .btn-primary, :root[data-theme="light"] .btn-success, :root[data-theme="light"] .btn.primary { color: #fff; }
.btn-danger { background: var(--danger); color: #fff; border-color: var(--danger); }
input, select, textarea { font-size: calc(14px * var(--workshop-font-scale, 1)); background: var(--workshop-paper); border-color: var(--line); color: var(--text); border-radius: 7px; padding: 6px 9px; }
label { font-size: calc(13px * var(--workshop-font-scale, 1)); color: var(--muted); }
th { background: var(--workshop-surface); color: var(--muted); font-weight: 550; font-size: calc(11px * var(--workshop-font-scale, 1)); border-color: var(--line); }
td { padding: 8px 10px; font-size: calc(12px * var(--workshop-font-scale, 1)); border-color: var(--line); }
tbody tr:hover, tbody tr.active { background: var(--workshop-soft); }
.table-wrap { border-color: var(--line); border-radius: 9px; }
.pill { background: var(--workshop-soft); color: var(--text); border-color: var(--line); font-size: calc(11px * var(--workshop-font-scale, 1)); }
#installationsPanel { grid-template-columns: minmax(0,1fr); }
#installationsPanel > .panel > h2 { font-size: calc(19px * var(--workshop-font-scale, 1)); margin: 0 0 10px; }
.installation-sheet-tabs { gap: 5px; padding-bottom: 8px; }
#adminMapPanel .map-layout { gap: 18px; }
.stock-photo-thumb { border-radius: 8px; object-fit: contain; }
.workshop-page-heading { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 8px; }
.workshop-page-heading h1 { font-size: calc(22px * var(--workshop-font-scale, 1)); letter-spacing: -.4px; font-weight: 650; margin: 3px 0; }
.workshop-page-heading .sub { margin: 0; }
.workshop-eyebrow { color: var(--muted); font-size: calc(10px * var(--workshop-font-scale, 1)); font-weight: 650; letter-spacing: 1.5px; }
#workshopHomeStatus { margin: 0 0 10px; font-size: calc(11px * var(--workshop-font-scale, 1)); }
.workshop-stats { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; margin-bottom: 12px; }
.workshop-stat { padding: 12px; display: flex; flex-direction: column; gap: 5px; }
.workshop-stat .sub { margin: 0; font-size: calc(12px * var(--workshop-font-scale, 1)); }
.workshop-stat-value { font-size: calc(27px * var(--workshop-font-scale, 1)); line-height: 1.2; font-weight: 650; }
.workshop-stat small.sub { font-size: calc(10px * var(--workshop-font-scale, 1)); }
.workshop-home-grid { display: grid; grid-template-columns: minmax(0,1.6fr) minmax(260px,1fr); gap: 12px; align-items: start; }
.workshop-card { padding: 12px; min-width: 0; }
.workshop-card h2 { margin: 0 0 10px; font-size: calc(15px * var(--workshop-font-scale, 1)); font-weight: 650; }
.workshop-card-toolbar { display: flex; align-items: start; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
.workshop-card-toolbar p { margin: 0; font-size: calc(11px * var(--workshop-font-scale, 1)); }
.workshop-installation-row { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 10px 0; border-top: 1px solid var(--line); }
.workshop-installation-row > div { min-width: 0; }
.workshop-installation-row p { margin: 5px 0 0; font-size: calc(11px * var(--workshop-font-scale, 1)); }
.workshop-text-link { color: var(--workshop-primary); padding: 0; text-align: left; border: 0; font: 600 calc(13px * var(--workshop-font-scale, 1))/1.5 var(--font-sans); background: transparent; cursor: pointer; }
.workshop-text-link:hover { text-decoration: underline; }
.workshop-shortcut { display: flex; flex-direction: column; text-align: left; width: 100%; border: 0; border-top: 1px solid var(--line); background: transparent; padding: 9px 0; color: var(--text); font: inherit; cursor: pointer; }
.workshop-shortcut:hover { color: var(--workshop-primary); }
.workshop-shortcut strong { font-size: calc(12px * var(--workshop-font-scale, 1)); font-weight: 600; }
.workshop-shortcut .sub { font-size: calc(11px * var(--workshop-font-scale, 1)); margin-top: 4px; }
.workshop-sector-row { display: flex; justify-content: space-between; gap: 15px; padding: 10px 0; font-size: calc(12px * var(--workshop-font-scale, 1)); border-top: 1px solid var(--line); }
@media (max-width:1200px) { :root { --workshop-sidebar: 215px; } #appView { padding: 12px; } .workshop-stat { padding: 12px; } .workshop-home-grid { grid-template-columns: minmax(0,1.35fr) minmax(250px,1fr); } }
@media (max-width:900px) {
  :root { --workshop-header-height: 56px; --workshop-dock-height: 52px; --workshop-title-height: 44px; }
  body.workshop-authenticated .app { margin: 0; width: 100%; }
  body.workshop-authenticated .workshop-sidebar { display: none; top: var(--workshop-header-height); width: 270px; box-shadow: 12px 8px 35px #173e6826; }
  body:has(#adminNavPanel.is-mobile-open) .workshop-sidebar { display: flex; }
  #adminNavMobileToggle { display: block; border: 1px solid var(--line); border-radius: 7px; padding: 8px; background: var(--workshop-paper); color: var(--text); min-height: 38px; font-size: calc(12px * var(--workshop-font-scale, 1)); }
  #appHeader { min-height: var(--workshop-header-height); gap: 8px; padding: 6px 10px; }
  #appHeader .app-header-search { min-width: 90px; }
  #appHeader .app-header-search input { font-size: calc(16px * var(--workshop-font-scale, 1)); padding: 7px; }
  #appAccountMenuToggle { padding-left: 5px; }
  #appView { padding: 12px 10px 24px; }
  .workshop-stats { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
  .workshop-home-grid { grid-template-columns: minmax(0,1fr); }
  #adminNavDropdownMenu { max-width: calc(100vw - 26px); max-height: calc(100dvh - 100px); overflow-y: auto; }
  .workshop-sidebar-foot { margin-top: 20px; }
  #flash { margin-inline: 16px; }
  #loginView { margin: 35px 16px; width: auto; }
  .grid { grid-template-columns: minmax(0,1fr); }
  .row-inline { flex-wrap: wrap; }
  .row-inline > * { max-width: 100%; }
  .panel { padding: 12px; }
  .btn, #adminNavMobileToggle, #adminNavPanel .admin-nav-group-toggle { min-height: 40px; }
  input, select { min-height: 40px; }
  .table-wrap { max-width: 100%; overflow-x: auto; }
  .workshop-card-toolbar { flex-direction: column; }
  .workshop-page-heading h1 { font-size: calc(22px * var(--workshop-font-scale, 1)); }
  .workshop-page-heading .btn { flex-shrink: 0; }
  .workshop-card { padding: 12px; }
}
@media (prefers-reduced-motion:reduce) { *, *::before, *::after { transition: none !important; scroll-behavior: auto !important; } }
/* Harmonise les composants natifs avec la palette de l’atelier. */
:root[data-theme="light"] .btn, :root[data-theme="light"] input,
:root[data-theme="light"] select, :root[data-theme="light"] textarea,
:root[data-theme="light"] .table-wrap, :root[data-theme="light"] .pill {
  background: var(--workshop-paper); border-color: var(--line); box-shadow: none;
}
:root[data-theme="light"] th { background: var(--workshop-surface); color: var(--muted); }
:root[data-theme="light"] td, :root[data-theme="light"] th { border-color: var(--line); }
:root[data-theme="light"] tr.active, :root[data-theme="light"] tr:hover { background: var(--workshop-soft); }
:root[data-theme="light"] .btn-primary, :root[data-theme="light"] .btn-success, :root[data-theme="light"] .btn.primary { background: var(--workshop-primary); color: #fff; }
:root[data-theme="light"] .admin-tab-active { background: var(--workshop-soft) !important; color: var(--workshop-primary) !important; box-shadow: none; }
#workshopSidebar .admin-nav-group-toggle { justify-content: flex-start; }
#flash.ok { background: var(--workshop-soft); color: var(--text); border: 1px solid var(--line); }
#flash.error { background: #fff0ed; color: #922d28; border: 1px solid #efc9c2; }
#workshopSidebar .btn { box-shadow: none; }
#workshopSidebar .admin-nav-group-toggle > span:first-child { flex: 1; text-align: left; }
.workshop-stock-views { display: flex; gap: 6px; margin: 8px 0; }
.stock-gallery table, .stock-gallery tbody { display: block; width: 100%; }
.stock-gallery thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.stock-gallery tbody { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; padding: 12px; }
.stock-gallery tbody > tr { display: grid; grid-template-columns: 1fr auto; align-content: start; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; background: var(--workshop-paper); min-width: 0; }
.stock-gallery tbody > tr > td { display: block; padding: 8px 16px; border: 0; min-width: 0; white-space: normal; }
.stock-gallery tbody > tr > td:nth-child(1) { grid-column: 1 / -1; padding: 14px; background: var(--workshop-surface); }
.stock-gallery .stock-photo-button, .stock-gallery .stock-photo-thumb, .stock-gallery .stock-photo-placeholder { width: 100%; height: 180px; min-width: 0; object-fit: contain; }
.stock-gallery tbody > tr > td:nth-child(2) { grid-column: 1 / -1; font-size: calc(11px * var(--workshop-font-scale, 1)); color: var(--muted); }
.stock-gallery tbody > tr > td:nth-child(3) { grid-column: 1 / -1; font-size: calc(15px * var(--workshop-font-scale, 1)); font-weight: 650; padding-top: 0; }
.stock-gallery tbody > tr > td:nth-child(4) { grid-column: 1 / -1; font-size: calc(11px * var(--workshop-font-scale, 1)); color: var(--muted); }
.stock-gallery tbody > tr > td:nth-child(5), .stock-gallery tbody > tr > td:nth-child(6) { font-size: calc(11px * var(--workshop-font-scale, 1)); }
.stock-gallery tbody > tr > td:nth-child(5)::before { content: 'Prix : '; color: var(--muted); }
.stock-gallery tbody > tr > td:nth-child(6)::before { content: 'Emplacement : '; color: var(--muted); }
.stock-gallery tbody > tr > td:nth-child(7) { font-size: calc(16px * var(--workshop-font-scale, 1)); font-weight: 650; }
.stock-gallery tbody > tr > td:nth-child(7)::after { content: ' pièces'; font-size: calc(11px * var(--workshop-font-scale, 1)); font-weight: 400; }
.stock-gallery tbody > tr:has(td[colspan]) { grid-column: 1 / -1; display: block; padding: 20px; }
@media(max-width:1200px) { .stock-gallery tbody { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) { .stock-gallery tbody { grid-template-columns: minmax(0,1fr); } }
/* Une fiche et une liste distinctes, en conservant sélection et filtres natifs. */
#installationsPanel.workshop-sheet-mode.workshop-detail-open > #workshopInstallationList,
#installationsPanel.workshop-sheet-mode:not(.workshop-detail-open) > #workshopInstallationDetail { display: none; }
.workshop-back-to-list { display: none; margin-bottom: 8px; }
.workshop-sheet-mode.workshop-detail-open .workshop-back-to-list { display: inline-flex; }

.stock-gallery .stock-photo-button { max-width: none; display: flex; align-items: center; justify-content: center; }
.stock-gallery .stock-photo-thumb { max-width: 100%; }
.workshop-stock-views [aria-pressed="true"] { background: var(--workshop-soft); color: var(--workshop-primary); border-color: var(--workshop-primary); }

/* Le bouton reste dans l’en-tête lorsque le menu latéral est masqué. */
@media (min-width: 901px) {
  #adminNavMobileToggle { display: block; border: 1px solid var(--line); border-radius: 7px; padding: 8px 12px; background: var(--workshop-paper); color: var(--text); min-height: 38px; }
  :root.workshop-sidebar-collapsed { --workshop-sidebar: 0px; }
  .workshop-sidebar-collapsed body.workshop-authenticated .workshop-sidebar { display: none; }
}

/* Les titres et aides gardent leur place sans cumuler de larges marges. */
#appView .panel > h3 { margin-block: 8px; }
#appView .panel > .sub { margin-block: 6px 10px; }
#appView .panel .panel { padding: 10px; }

/* Liste des installations : une seule barre, options en surimpression. */
.workshop-visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
#workshopInstallationList { padding: 6px; display: flex; flex-direction: column; gap: 6px; min-height: 0; }
.workshop-installation-toolbar { display: flex; align-items: center; gap: 5px; position: relative; flex: none; min-width: 0; }
.workshop-installation-search { flex: 1; min-width: 60px; margin: 0; }
.workshop-installation-search input { width: 100%; margin: 0; }
.workshop-installation-filters { flex: none; }
.workshop-installation-filters summary { cursor: pointer; list-style: none; display: flex; align-items: center; }
.workshop-installation-filters summary::-webkit-details-marker { display: none; }
.workshop-installation-icon { width: 34px; flex: none; padding-inline: 0; font-size: calc(18px * var(--workshop-font-scale, 1)); }
.workshop-installation-filter-panel { position: absolute; top: calc(100% + 6px); right: 0; z-index: 10; width: min(310px, 100%); padding: 12px; display: grid; gap: 10px; background: var(--workshop-paper); border: 1px solid var(--line); border-radius: 8px; box-shadow: 0 8px 24px #0003; max-height: calc(100dvh - 80px); overflow: auto; }
.workshop-installation-filter-panel label { display: grid; gap: 4px; margin: 0; }
.workshop-installation-filter-actions { display: flex; justify-content: space-between; gap: 8px; }
#workshopInstallationList .installation-list-table-wrap { flex: 1; min-height: 0; max-height: none; overflow: auto; }
/* Une ligne par installation ; le texte complet reste accessible au survol. */
#workshopInstallationList .installation-list-table td {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
#workshopInstallationList thead th { position: sticky; top: 0; z-index: 1; }
.workshop-embedded #installationsPanel.workshop-sheet-mode:not(.workshop-detail-open) { height: calc(100dvh - 16px); display: block; }
.workshop-embedded #installationsPanel.workshop-sheet-mode:not(.workshop-detail-open) #workshopInstallationList { height: 100%; }
@media (max-width: 900px) {
  .workshop-installation-icon { width: 40px; }
  .workshop-installation-filter-panel { max-height: calc(100dvh - 90px); }
}

/* Recherche par colonne, sans deuxième ligne d'en-têtes ni perte de hauteur. */
#workshopInstallationList th:has(.workshop-column-trigger) { padding: 3px 6px; }
.workshop-column-trigger { display: flex; align-items: center; gap: 5px; width: 100%; min-width: 0; min-height: 28px; padding: 2px 0; border: 0; border-radius: 4px; background: transparent; color: inherit; font: inherit; font-weight: 600; text-align: left; cursor: pointer; }
.workshop-column-trigger > span:first-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.workshop-column-mark { margin-left: auto; opacity: .6; }
.workshop-column-trigger:hover, .workshop-column-trigger.is-filtered { color: var(--workshop-primary); background: var(--workshop-soft); }
.workshop-column-trigger:focus-visible { outline: 2px solid var(--workshop-primary); outline-offset: 1px; }
.workshop-column-filter { position: fixed; z-index: 120; padding: 10px; display: grid; gap: 8px; max-height: calc(100dvh - 16px); overflow: auto; background: var(--workshop-paper); color: var(--text); border: 1px solid var(--line); border-radius: 8px; box-shadow: 0 8px 24px #0003; }
.workshop-column-filter[hidden] { display: none; }
.workshop-column-filter label { margin: 0; font-weight: 600; }
.workshop-column-filter input { width: 100%; min-width: 0; }
#workshopColumnSuggestions { display: grid; max-height: min(230px, 32dvh); overflow: auto; }
#workshopColumnSuggestions button { border: 0; border-radius: 4px; background: transparent; color: inherit; padding: 7px 8px; text-align: left; font: inherit; cursor: pointer; overflow-wrap: anywhere; }
#workshopColumnSuggestions button:hover, #workshopColumnSuggestions [aria-selected="true"] { background: var(--workshop-soft); }
.workshop-column-status { margin: 0; font-size: calc(12px * var(--workshop-font-scale, 1)); color: var(--muted); }
@media (max-width: 760px) {
  .workshop-column-trigger { min-height: 34px; }
  #workshopColumnSuggestions button { min-height: 40px; }
}

/* Une fiche garde ses parents et leurs événements, mais masque la liste voisine. */
.workshop-record-path > :not(.workshop-record-path):not(.workshop-record-content):not(#flash) { display: none !important; }
.workshop-record-path { display: block !important; grid-template-columns: minmax(0, 1fr) !important; }
.workshop-record-content { width: 100%; margin-top: 0 !important; }
.workshop-record-content .table-wrap { max-height: none; }
.workshop-record-background { display: none !important; }
.workshop-record-modal { position: static !important; display: block; padding: 8px !important; background: transparent !important; }
.workshop-record-modal > div { width: 100% !important; max-width: none !important; max-height: none !important; }
#mobileLogsDetail.workshop-record-content { max-height: none !important; }

/* Secteurs : une liste et une fenêtre indépendante par secteur.
   Le dialogue de création/renommage reste disponible hors du panneau. */
#adminInstallationSectorsPanel .installation-sectors-layout {
  grid-template-columns: minmax(0, 1fr);
}
#adminInstallationSectorsPanel:not(.workshop-sector-detail) [aria-labelledby="installationSectorInstallationsTitle"],
#adminInstallationSectorsPanel.workshop-sector-detail [aria-labelledby="installationSectorListTitle"],
#adminInstallationSectorsPanel.workshop-sector-detail .installation-sectors-heading > div {
  display: none !important;
}

/* Filtres de listes : les contrôles natifs sont ouverts hors du flux du tableau. */
.workshop-filter-source { display: none !important; }
.workshop-list-filters .workshop-filter-content {
  display: grid !important; grid-template-columns: minmax(0, 1fr) !important;
  gap: 8px; margin: 0; min-width: 0; width: 100%;
}
.workshop-list-filters .row-inline { display: grid; grid-template-columns: minmax(0, 1fr) !important; gap: 8px; }
.workshop-list-filters label { display: grid; gap: 4px; min-width: 0; }
.workshop-list-filters select { width: 100%; min-width: 0; }
.workshop-filter-toggle { justify-self: start; align-self: start; }
.workshop-filter-suggestions { display: grid; gap: 3px; max-height: 180px; overflow: auto; }
.workshop-filter-suggestions .btn { text-align: left; white-space: normal; }
.workshop-column-trigger { max-width: 240px; overflow: hidden; text-overflow: ellipsis; }

.workshop-embedded #workshopInstallationDetail:has(> #installationAllReportsPanel:not(.hidden)):not(.workshop-record-path) {
  height: calc(100dvh - 16px); display: flex; flex-direction: column; padding: 6px; gap: 4px;
}
.workshop-embedded #workshopInstallationDetail:has(> #installationAllReportsPanel:not(.hidden)):not(.workshop-record-path) > h2 {
  position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%);
}
.workshop-embedded #installationAllReportsPanel:not(.hidden):not(.workshop-record-path) {
  flex: 1; min-height: 0; display: flex; flex-direction: column; gap: 4px;
}
.workshop-embedded #installationAllReportsPanel:not(.workshop-record-path) > .installation-all-reports-toolbar {
  display: flex; align-items: center; flex-wrap: nowrap; gap: 8px;
}
#installationAllReportsFiltersSummary { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.workshop-embedded #installationAllReportsPanel:not(.workshop-record-path) #installationAllReportsTableWrap {
  flex: 1; min-height: 0; max-height: none;
}
.workshop-embedded #installationAllReportsPanel:not(.workshop-record-path) > .sub:not(#installationAllReportsPager) { display: none; }
#installationAllReportsTableWrap th:has(.workshop-column-trigger) { padding: 3px 6px; }
#installationAllReportsTableWrap thead th { position: sticky; top: 0; z-index: 1; }
#installationAllReportsTableWrap td {
  padding: 4px 6px;
  max-width: 260px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
#installationAllReportsTableWrap td > br { display: none; }
#installationAllReportsTableWrap .installation-all-reports-sync-chip { margin: 0 0 0 6px; }
#installationAllReportsTableWrap .btn { padding: 3px 6px; white-space: nowrap; }
@media (pointer: fine) {
  #installationAllReportsTableWrap .btn { min-height: 24px; }
}

.workshop-embedded #adminInstallationSectorsPanel:not(.hidden) { height: calc(100dvh - 16px); display: flex; flex-direction: column; gap: 6px; }
.workshop-embedded #adminInstallationSectorsPanel .installation-sectors-layout { flex: 1; min-height: 0; }
.workshop-embedded #adminInstallationSectorsPanel .installation-sector-card { min-height: 0; display: flex; flex-direction: column; }
.workshop-embedded #adminInstallationSectorsPanel .table-wrap { flex: 1; min-height: 0; max-height: none; }

/* Accents bleus lisibles, y compris au survol et au clavier. */
.btn-primary, .btn-success, .btn.primary { color: var(--workshop-on-primary); }
.btn-primary:hover, .btn-success:hover, .btn.primary:hover,
:root[data-theme="light"] .btn-primary:hover, :root[data-theme="light"] .btn-success:hover,
:root[data-theme="light"] .btn.primary:hover {
  background: var(--workshop-primary-hover);
  border-color: var(--workshop-primary-hover);
  color: var(--workshop-on-primary);
}
input, select, textarea,
:root[data-theme="light"] input, :root[data-theme="light"] select, :root[data-theme="light"] textarea {
  border-color: var(--workshop-input-border);
}
#appHeader, #workshopSidebar { border-color: var(--line); }
:root[data-theme="light"] #workshopSidebar { background: #f7fbff; }
#adminNavPanel .admin-nav-group-items > .btn.admin-tab-active {
  box-shadow: inset 3px 0 var(--workshop-primary);
}
th, :root[data-theme="light"] th { background: var(--workshop-chrome); color: var(--text); }

:root .btn-danger, :root[data-theme="light"] .btn-danger {
  background: #aa373c; border-color: #aa373c; color: #fff;
}
:root .btn-danger:hover, :root[data-theme="light"] .btn-danger:hover {
  background: #902e35; border-color: #902e35; color: #fff;
}
