/* QLOA admin v3 — ligne de filtres des vues liste (mode SERVI, cf. qloa-grid-tools.js).
   Aucun nouveau jeton : champs `.control` et `.icon-btn` existants, couleurs var(--surface/--line/--subtle). */
.wb-grid .qgt-filter-row th{top:38px;height:36px;padding:3px 4px;background:var(--surface);z-index:3;overflow:visible}
.wb-grid .qgt-filter-row th.wb-sticky{z-index:5}
.qgt-filter-row .control{display:block;width:100%;height:28px;min-height:28px;padding:0 6px;font-size:12px;box-sizing:border-box}
.qgt-filter-row select.control{padding-right:2px}
.qgt-filter-row .control[aria-invalid=true]{border-color:#c2354b}
.qgt-range{display:flex;gap:4px}.qgt-range .control{min-width:0;flex:1}
.qgt-filter-off{display:block;color:var(--subtle);padding:0 8px;font-size:12px;cursor:help}
.qgt-filter-row .icon-btn{width:28px;height:28px;min-height:28px}
.qgt-filter-row .icon-btn svg{width:14px;height:14px}
.wb-grid th.qgt-renaming{overflow:visible}
.wb-grid th .qgt-rename{display:block;width:100%;height:38px;border:0;padding:0 10px;font:inherit;font-weight:500;color:var(--ink);background:var(--base);box-sizing:border-box;outline:2px solid #4587a7;outline-offset:-2px}
/* Liste du Pipeline (mode servi) : mêmes valeurs que la grille du répertoire (crm-workbench.css). */
.ps-table.qgt-grid thead tr:first-child th{height:38px;padding:0 16px}
.ps-table.qgt-grid .qgt-sort{display:flex;align-items:center;gap:6px;height:38px;width:100%;padding:0;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}
.ps-table.qgt-grid .qgt-sort svg{width:14px;height:14px;flex:none}
.ps-table.qgt-grid .qgt-filter-row th{position:sticky;top:38px;z-index:1;height:36px;padding:3px 4px;background:var(--surface);overflow:visible}
.ps-table.qgt-grid td[data-pl-cell][tabindex]{cursor:cell}
.ps-table.qgt-grid td[data-pl-cell]:focus{outline:2px solid #4587a7;outline-offset:-2px}
.ps-table.qgt-grid td.editing{padding:0;outline:2px solid #4587a7;outline-offset:-2px}
.ps-table.qgt-grid td.editing>input,.ps-table.qgt-grid td.editing>select{display:block;width:100%;height:71px;border:0;padding:0 16px;background:var(--base);color:var(--ink);font:inherit;outline:none;box-sizing:border-box}
.ps-table.qgt-grid td.editing [aria-invalid=true]{box-shadow:inset 0 0 0 2px #c2354b}
.ps-table.qgt-grid td.qgt-picker-cell{padding:4px 8px;overflow:visible}
.ps-table.qgt-grid td.qgt-picker-cell .qmp>span:first-child{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.ps-table.qgt-grid td.qgt-picker-cell .qmp-pop{position:fixed;right:auto}
/* En-tête de groupe avec sommes (répertoire, mode servi) : une cellule par colonne au lieu d'un colspan. */
.wb-grid .wb-group.qgt-agg td{position:relative;left:auto}
.wb-grid .wb-group.qgt-agg td.wb-sticky{position:sticky}
.wb-grid .wb-group.qgt-agg .wb-group-sum{font-variant-numeric:tabular-nums}
.wb-grid .wb-group.qgt-agg .wb-group-sum small{color:var(--muted);font-weight:500;margin-right:4px}
/* Menu de colonne (QloaViewMenu existant) : séparateur + largeur resserrée sur ordinateur. */
.qgt-col-menu .qgt-menu-sep{border:0;border-top:1px solid var(--line);margin:4px 0}
.qgt-col-menu .btn:disabled{opacity:.45}
@media(min-width:769px){.qgt-col-menu-dialog.qvm-menu{width:260px}}
.ps-table.qgt-grid .qgt-th{display:flex;align-items:center;gap:2px}
.ps-table.qgt-grid .qgt-th .qgt-sort{flex:1;min-width:0}
.ps-table.qgt-grid .qgt-th-menu{width:24px;height:24px;min-width:24px;min-height:24px}
.ps-table.qgt-grid .qgt-th-menu svg{width:12px;height:12px}
/* « + » Ajouter une colonne : dernière colonne, collée à droite pendant le défilement horizontal. */
.wb-grid .qgt-add-col{position:sticky;right:0;width:44px;padding:0;text-align:center;background:var(--surface);z-index:2}
.wb-grid thead .qgt-add-col{z-index:5}
.wb-grid tbody td.qgt-add-col{background:var(--base)}
.wb-grid .qgt-add-col .icon-btn{width:28px;height:28px;min-height:28px;margin:auto}
.qgt-add-col-form{padding:4px 8px 8px;gap:10px}
.qgt-add-col-actions{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.qgt-add-col-actions .btn-ghost{padding-inline:4px;font-size:12px;color:var(--muted)}
/* Onglets de vues (répertoire, Espaces) : classes .tabs / .tab existantes, masquées sous 1050 px par styles.css. */
.wb-view-tabs{padding:6px 16px;border-bottom:1px solid var(--line);gap:2px;flex:none}
.wb-view-tabs .tab{gap:6px;border:0;background:none;font:inherit;font-size:13px;cursor:pointer}
.wb-view-tabs .tab.active{background:var(--elevated)}
.wb-view-tabs .tab svg{width:14px;height:14px}
.wb-view-tab{display:flex;align-items:center;flex-shrink:0}
.wb-view-tab .icon-btn{width:24px;height:24px;min-height:24px;margin-left:-4px}
.wb-view-tab .icon-btn svg{width:12px;height:12px}
.wb-view-tabs .wb-view-new{color:var(--muted)}
/* Espaces (qloa-spaces.js) : grille et tiroir existants ; seuls l'en-tête de liste et les étapes d'import sont posés ici. */
.sp-app .sp-th{display:block;padding:0 10px;line-height:38px}
.sp-app .sp-title{font-size:14px;font-weight:600}
.sp-app .grow{flex:1}
.sp-steps{display:flex;gap:16px;list-style:none;margin:0 0 16px;padding:0;font-size:12px;color:var(--muted)}
.sp-steps [aria-current]{color:var(--ink);font-weight:600}
.sp-import-map .control{width:100%;min-width:140px}
.sp-app .sp-title{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
