/* The Depot · catalogue · interface d'achat professionnelle
   Chargee uniquement sur /catalogue/ (apres site.css, commerce.css, quality.css).
   Proprietaire : brand-ui (phase 2). Jetons de tokens.css uniquement.
   01 cadence de page · 02 barre d'outils · 03 langage naturel · 04 disposition
   05 rail de facettes · 06 entete de resultats · 07 bandeau editorial · 08 cartes
   09 tableau ERP · 10 comparateur · 11 dialogues · 12 listes · 13 maillage
   14 etats · 15 mobile · 16 impression */

.td-cat{
  --cat-head:95px;
  --cat-bar:60px;
  --cat-rail:248px;
  --cat-gap:clamp(18px,2vw,28px);
  --cat-accent:var(--td-sceau);
  position:relative;
  padding-bottom:8px;
}

/* 01 · cadence : la page commence tout de suite, les produits avant la ligne de flottaison */
.td-section:has(> .td-wrap > .td-cat){padding-block-start:clamp(4px,1vw,12px)}
.td-page-head:has(+ .td-section) {padding-block-end:clamp(10px,1.4vw,16px)}
.td-page-head{padding-block-start:clamp(6px,1vw,12px)}
.td-page-head h1{font-size:clamp(1.95rem,3.4vw,2.7rem)}
.td-page-head__lead{margin-top:8px;max-width:70ch}
.td-cat-presets{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:8px}
.td-cat-presets__label{flex:none}
.td-cat-preset{min-height:28px;padding:3px 10px;font-family:var(--td-mono);font-size:.625rem;letter-spacing:.08em;text-transform:uppercase;color:var(--td-texte-2)}
.td-cat-preset:hover{color:var(--td-texte);border-color:var(--td-texte)}
.td-cat-preset[aria-pressed="true"]{color:var(--td-couche)}
.td-cat-preset[aria-pressed="true"]::before{width:6px;height:6px}

/* 02 · barre d'outils : un outil qu'on a envie de toucher */
.td-cat-bar{
  position:sticky;top:var(--cat-head);z-index:40;
  display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;
  padding:7px 0;margin-top:0;
  background:color-mix(in srgb,var(--td-fond) 94%,transparent);
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
  border-bottom:1px solid var(--td-filet-fort);
}
.td-cat-bar__search{
  display:flex;align-items:center;gap:8px;height:42px;padding:0 12px;min-width:0;
  border:1px solid var(--td-filet-fort);border-radius:var(--td-radius-s);
  background:var(--td-surface);transition:border-color var(--td-dur-glisse),background-color var(--td-dur-glisse)
}
.td-cat-bar__search:hover{border-color:var(--td-texte)}
.td-cat-bar__search:focus-within{border-color:var(--td-texte);outline:1px solid var(--td-texte);outline-offset:-1px}
.td-cat-bar__search svg{width:16px;height:16px;color:var(--td-texte-2);flex:none}
.td-cat-bar__search input{flex:1;min-width:0;height:100%;border:0;background:none;font-family:var(--td-mono);
  font-size:.875rem;letter-spacing:.005em;color:var(--td-texte)}
.td-cat-bar__search input::placeholder{color:var(--td-texte-2)}
.td-cat-bar__search input:focus{outline:none}
.td-cat-bar__search .td-kbd{flex:none;font-size:.5625rem;color:var(--td-texte-2);padding:2px 5px}

.td-cat-seg{display:inline-flex;height:44px;border:1px solid var(--td-filet-fort);border-radius:var(--td-radius-s);overflow:hidden;background:var(--td-surface)}
.td-cat-seg button{min-width:68px;padding:0 12px;font-family:var(--td-mono);font-size:.625rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--td-texte-2);transition:background-color 150ms var(--td-ease-carton),color 150ms}
.td-cat-seg button+button{border-left:1px solid var(--td-filet)}
.td-cat-seg button:hover{color:var(--td-texte);background:var(--td-surface-2)}
.td-cat-seg button[aria-pressed="true"]{background:var(--td-encre);color:var(--td-couche)}
.td-cat-seg button:focus-visible{outline-offset:-3px}

.td-cat-bar__actions{display:inline-flex;align-items:center;gap:0;justify-self:end;
  border:1px solid var(--td-filet-fort);border-radius:var(--td-radius-s);background:var(--td-surface);overflow:hidden}
.td-cat-bar__actions>*+*{border-left:1px solid var(--td-filet)}
.td-cat-act{height:44px;padding:0 13px;border:0;border-radius:0;
  background:transparent;font-family:var(--td-mono);font-size:.625rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--td-texte);display:inline-flex;align-items:center;gap:8px;
  transition:background-color 150ms var(--td-ease-carton),color 150ms}
.td-cat-act:hover{background:var(--td-encre);color:var(--td-couche)}
.td-cat-act:focus-visible{outline-offset:2px}
.td-cat-act svg{width:16px;height:16px}
.td-cat-act--icon{width:46px;padding:0;justify-content:center}
.td-cat-n{display:inline-grid;place-items:center;min-width:16px;height:16px;padding:0 4px;
  background:var(--td-encre);color:var(--td-couche);font-size:.5625rem;line-height:1;font-variant-numeric:tabular-nums}
.td-cat-act:hover .td-cat-n{background:var(--td-couche);color:var(--td-encre)}
.td-cat-mobilefilters{display:none;height:44px;padding:0 14px;border:1px solid var(--td-encre);border-radius:var(--td-radius-s);
  font-family:var(--td-mono);font-size:.625rem;letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:8px;color:var(--td-texte)}

/* 03 · langage naturel : un champ de recherche premium, pas un formulaire */
.td-cat-ai{
  display:block;margin-top:10px;padding:0;border:1px solid var(--td-filet-fort);
  border-radius:var(--td-radius-s);background:var(--td-surface);
  transition:border-color var(--td-dur-glisse)
}
.td-cat-ai:focus-within{border-color:var(--td-texte)}
.td-cat-ai__row{display:flex;align-items:center;gap:0;min-height:44px;padding:0 5px 0 0}
.td-cat-ai__label{flex:none;display:flex;align-items:center;align-self:stretch;padding:0 14px;margin-right:2px;
  font-family:var(--td-mono);font-size:.5625rem;letter-spacing:.14em;text-transform:uppercase;color:var(--td-texte-2);
  border-right:1px solid var(--td-filet)}
.td-cat-ai input{flex:1;min-width:0;height:42px;padding:0 12px;border:0;background:none;
  font-family:var(--td-font);font-size:1rem;color:var(--td-texte);font-variation-settings:"wdth" 100}
.td-cat-ai input::placeholder{color:var(--td-texte-2);font-size:.9375rem}
.td-cat-ai input:focus{outline:none}
.td-cat-ai .td-btn{flex:none;min-height:36px;height:36px;padding:0 16px;margin-right:6px;
  font-family:var(--td-mono);font-size:.625rem;letter-spacing:.08em;text-transform:uppercase;
  background:var(--td-encre);border-color:var(--td-encre);color:var(--td-couche)}
.td-cat-ai .td-btn:hover{background:var(--td-kraft-fonce);border-color:var(--td-kraft-fonce);color:var(--td-couche)}
.td-cat-ai__help{display:block;padding:0 14px 6px;font-size:.5rem;letter-spacing:.05em;color:var(--td-texte-2);
  white-space:normal;overflow-wrap:anywhere;line-height:1.35}
.td-cat-ai__help::before{content:"";display:inline-block;width:14px;height:1px;background:var(--td-filet-fort);margin-right:8px;vertical-align:3px}
.td-cat-ai__out{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-top:8px;
  font-family:var(--td-mono);font-size:.5625rem;letter-spacing:.1em;text-transform:uppercase;color:var(--td-texte-2)}
.td-cat-ai__out .td-cat-chip{background:var(--td-surface-2);border-color:var(--td-filet);height:26px;font-size:.5625rem}
.td-cat-ai__out .td-cat-reset{font-size:.5625rem}
.td-cat-ai__out:empty{display:none}
.td-cat-chip{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 4px 0 10px;
  border:1px solid var(--td-encre);background:var(--td-surface);border-radius:var(--td-radius-s);
  font-family:var(--td-mono);font-size:.625rem;letter-spacing:.04em;color:var(--td-texte)}
.td-cat-chip button{width:22px;height:28px;display:grid;place-items:center;font-size:14px;line-height:1;color:var(--td-texte-2)}
.td-cat-chip button:hover{color:var(--td-sceau-texte)}
.td-cat-chip--ai{background:var(--td-encre);color:var(--td-couche);border-color:var(--td-encre)}
.td-cat-chip--ai button{color:var(--td-couche)}

/* 04 · disposition */
.td-cat-layout{display:grid;grid-template-columns:var(--cat-rail) minmax(0,1fr);
  gap:var(--cat-gap);align-items:start;margin-top:10px}
.td-cat-main{min-width:0}

/* 05 · rail de facettes : dense, net, coche franche */
.td-cat-facets{position:sticky;top:calc(var(--cat-head) + var(--cat-bar) + 14px);
  max-height:calc(100vh - var(--cat-head) - var(--cat-bar) - 30px);overflow:auto;
  padding-right:2px;scrollbar-width:thin;scrollbar-color:var(--td-filet-fort) transparent}
.td-cat-facets::-webkit-scrollbar{width:4px}
.td-cat-facets::-webkit-scrollbar-thumb{background:var(--td-filet-fort)}
.td-cat-facets__head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;
  padding:0 0 8px;border-bottom:1px solid var(--td-encre)}
.td-cat-facets__head .td-label{font-size:.625rem;letter-spacing:.16em;color:var(--td-texte);font-weight:600}
.td-cat-facets__head::after{content:"";flex:1;height:1px;background:var(--td-filet);margin:0 10px;align-self:center;order:1}
.td-cat-facets__head .td-label{order:0}
.td-cat-reset{order:2}
.td-cat-reset{font-family:var(--td-mono);font-size:.5625rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--td-texte-2);text-decoration:underline;text-underline-offset:3px;min-height:24px}
.td-cat-reset:hover{color:var(--td-texte)}
.td-cat-facets details{border-bottom:1px solid var(--td-filet);padding:0}
.td-cat-facets details:first-of-type{border-top:0}
.td-cat-facets summary{display:flex;justify-content:space-between;align-items:center;cursor:pointer;
  min-height:36px;padding:8px 0;font-family:var(--td-mono);font-size:.5625rem;letter-spacing:.13em;
  text-transform:uppercase;color:var(--td-texte)}
.td-cat-facets summary::-webkit-details-marker{display:none}
.td-cat-facets summary::after{content:"+";font-size:13px;line-height:1;color:var(--td-texte-2)}
.td-cat-facets details[open] summary::after{content:"\2212"}
.td-cat-facets summary:hover{color:var(--td-kraft-texte)}
.td-cat-opts{display:flex;flex-direction:column;gap:0;padding:0 0 8px}
.td-cat-opt{display:flex;align-items:center;gap:9px;min-height:28px;padding:2px 0;font-size:.8125rem;
  color:var(--td-texte);cursor:pointer;border-radius:0}
.td-cat-opt:hover span{color:var(--td-kraft-texte)}
.td-cat-opt input{appearance:none;-webkit-appearance:none;width:14px;height:14px;flex:none;margin:0;
  border:1px solid var(--td-filet-fort);background:var(--td-surface);position:relative;cursor:pointer;
  transition:background-color 120ms var(--td-ease-carton),border-color 120ms}
.td-cat-opt:hover input{border-color:var(--td-texte)}
.td-cat-opt input:checked{background:var(--td-encre);border-color:var(--td-encre)}
.td-cat-opt input:checked::after{content:"";position:absolute;left:3px;top:0;width:5px;height:9px;
  border:2px solid var(--td-couche);border-top:0;border-left:0;transform:rotate(42deg)}
.td-cat-opt input:focus-visible{outline:2px solid var(--td-trace);outline-offset:2px}
.td-cat-opt span{flex:1;min-width:0;line-height:1.3}
.td-cat-opt em{font-family:var(--td-mono);font-size:.625rem;font-style:normal;color:var(--td-texte-2);
  font-variant-numeric:tabular-nums;min-width:2ch;text-align:right}
.td-cat-opt[data-empty="true"]{opacity:.4}
.td-cat-opt[data-empty="true"] input{background:transparent;border-style:dashed}
.td-cat-opt input:checked+span{font-weight:520}
.td-cat-price{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:0 0 8px}
.td-cat-price label{display:flex;flex-direction:column;gap:3px;font-family:var(--td-mono);
  font-size:.5rem;letter-spacing:.12em;text-transform:uppercase;color:var(--td-texte-2)}
.td-cat-price input{height:30px;padding:0 7px;border:1px solid var(--td-filet-fort);border-radius:0;
  background:var(--td-surface);font-family:var(--td-mono);font-size:.75rem;color:var(--td-texte)}
.td-cat-price input:focus{outline:2px solid var(--td-trace);outline-offset:-1px;border-color:transparent}
.td-cat-quickprices{display:flex;gap:3px;flex-wrap:wrap;padding-bottom:10px}
.td-cat-quickprices button{height:26px;padding:0 7px;border:1px solid var(--td-filet);background:transparent;
  font-family:var(--td-mono);font-size:.5625rem;color:var(--td-texte-2)}
.td-cat-quickprices button:hover{border-color:var(--td-texte);color:var(--td-texte)}

/* 06 · entete de resultats */
.td-cat-active{display:flex;gap:6px;flex-wrap:wrap;align-items:center;min-height:0;padding-bottom:8px}
.td-cat-active:empty{display:none}
.td-cat-active .td-cat-reset{font-size:.5625rem}
.td-cat-head{display:flex;justify-content:space-between;align-items:center;gap:12px;
  padding-bottom:6px;border-bottom:1px solid var(--td-encre);margin-bottom:10px;flex-wrap:wrap}
.td-cat-count{font-family:var(--td-mono);font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--td-texte);margin:0}
.td-cat-count strong{font-weight:600}
.td-cat-sort{display:inline-flex;align-items:center;gap:8px;font-family:var(--td-mono);font-size:.5625rem;
  letter-spacing:.12em;text-transform:uppercase;color:var(--td-texte-2)}
.td-cat-sort select{height:32px;padding:0 26px 0 9px;border:1px solid var(--td-filet-fort);border-radius:0;
  background-color:var(--td-surface);font-family:var(--td-mono);font-size:.6875rem;color:var(--td-texte);
  appearance:none;-webkit-appearance:none;
  background-image:linear-gradient(45deg,transparent 50%,var(--td-texte) 50%),linear-gradient(135deg,var(--td-texte) 50%,transparent 50%);
  background-position:calc(100% - 13px) 14px,calc(100% - 8px) 14px;
  background-size:5px 5px,5px 5px;background-repeat:no-repeat}
.td-cat-sort select:hover{border-color:var(--td-texte)}

/* 07 · bandeau editorial : une accroche, pas une boite de plus */
.td-cat-feature{display:grid;grid-template-columns:minmax(0,1.14fr) repeat(3,minmax(0,1fr));
  border:1px solid var(--td-encre);margin-bottom:clamp(14px,2vw,22px);background:var(--td-couche)}
.td-cat-feature__text{display:flex;flex-direction:column;justify-content:center;gap:4px;padding:12px 18px;
  background:var(--td-encre);color:var(--td-couche)}
.td-cat-feature__text .td-label{font-size:.5625rem;letter-spacing:.14em;color:var(--td-dorure-sur-encre)}
.td-cat-feature__title{font-family:var(--td-serif);font-style:italic;font-weight:400;text-transform:none;
  font-size:clamp(1.1rem,1.4vw,1.3rem);line-height:1.05;letter-spacing:-.01em;color:var(--td-couche);
  font-variation-settings:normal;max-width:24ch}
.td-cat-feature__body{font-size:.6875rem;line-height:1.4;color:rgba(251,250,248,.68);max-width:42ch;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.td-cat-feature__item{display:grid;grid-template-columns:74px minmax(0,1fr);grid-template-rows:auto auto;
  column-gap:10px;align-content:center;align-items:start;padding:8px 12px;
  border-left:1px solid var(--td-filet);transition:background-color 160ms var(--td-ease-carton)}
.td-cat-feature__item:hover{background:var(--td-surface-2)}
.td-cat-feature__item img{grid-row:1/3;width:60px;height:60px;aspect-ratio:1/1;object-fit:contain;align-self:center;
  background:var(--td-carton-gris);padding:6%;transition:transform 320ms var(--td-ease-carton);
  box-shadow:inset 0 0 0 1px rgba(52,48,47,.08)}
.td-cat-feature__item:hover img{transform:translateY(-2px)}
.td-cat-feature__item span{font-size:.6875rem;font-weight:620;line-height:1.28;color:var(--td-texte);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-top:2px}
.td-cat-feature__item em{font-family:var(--td-mono);font-size:.6875rem;font-style:normal;font-weight:500;
  color:var(--td-texte);font-variant-numeric:tabular-nums;align-self:start}
@media (max-width:1100px){.td-cat-feature__item{grid-template-columns:64px minmax(0,1fr);padding:8px}
  .td-cat-feature__item img{width:64px;height:64px}}

/* 08 · cartes : le produit d'abord, la fiche ensuite, deux lignes serrees */
.td-cat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  gap:clamp(16px,1.7vw,24px) clamp(12px,1.4vw,20px);align-items:stretch}
.td-cat[data-view="table"] .td-cat-grid{display:none}
.td-cat[data-view="table"] .td-cat-tablewrap[hidden]{display:block!important}
.td-cat[data-view="grid"] .td-cat-tablewrap{display:none}
@media (max-width:1220px){.td-cat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:860px){.td-cat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:420px){.td-cat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}}

.td-cat-card{position:relative;display:flex;flex-direction:column;min-width:0;
  border-top:1px solid var(--td-filet-fort);padding-top:8px;container-type:inline-size;
  transition:border-color 160ms var(--td-ease-carton)}
.td-cat-card:hover,.td-cat-card:focus-within{border-top-color:var(--td-texte)}
.td-cat-card .td-card__media{position:relative;display:block;aspect-ratio:1/1;overflow:hidden;
  background:var(--td-couche);padding:5%;box-shadow:inset 0 0 0 1px var(--td-filet)}
.td-cat-card .td-card__media::after{content:"";position:absolute;inset:0;pointer-events:none;
  box-shadow:inset 0 0 0 1px rgba(52,48,47,.07)}
.td-cat-card .td-card__media img{width:100%;height:100%;object-fit:contain;
  transition:transform 420ms var(--td-ease-carton);will-change:transform}
.td-cat-card:hover .td-card__media img,.td-cat-card:focus-within .td-card__media img{transform:translateY(-3px) scale(1.015)}
.td-cat-card .td-card__flags{position:absolute;top:7px;left:7px;display:flex;gap:3px;flex-wrap:wrap;
  max-width:calc(100% - 42px);z-index:2}
.td-cat-card .td-card__flags .td-pill{font-size:.4375rem;padding:2px 4px;gap:3px;letter-spacing:.05em;
  background:color-mix(in srgb,var(--td-couche) 90%,transparent)!important;color:var(--td-texte)!important;
  border:1px solid var(--td-filet-fort);font-weight:500}
.td-cat-card .td-card__flags .td-pill::before{display:none}
.td-cat-card .td-card__flags .td-pill--new{background:var(--td-encre)!important;color:var(--td-couche)!important;
  border-color:var(--td-encre)}
.td-cat-card .td-card__flags .td-pill--grade{border-style:solid;color:var(--td-texte-2)!important}
.td-pill--grade{background:color-mix(in srgb,var(--td-couche) 82%,transparent)!important;
  color:var(--td-texte-2)!important;border:1px solid var(--td-filet-fort);font-variant-numeric:tabular-nums}
.td-cat-compare-toggle--float{position:absolute;top:7px;right:7px;z-index:3;display:grid;place-items:center;
  width:26px;height:26px;margin:0;background:color-mix(in srgb,var(--td-couche) 90%,transparent);
  border:1px solid var(--td-filet-fort);opacity:0;transition:opacity 150ms var(--td-ease-carton),border-color 150ms}
.td-cat-card:hover .td-cat-compare-toggle--float,
.td-cat-compare-toggle--float:focus-within,
.td-cat-compare-toggle--float:has(input:checked){opacity:1}
.td-cat-compare-toggle--float:hover{border-color:var(--td-texte);background:var(--td-couche)}
.td-cat-compare-toggle{display:inline-flex;align-items:center;gap:5px;font-family:var(--td-mono);
  font-size:.5625rem;letter-spacing:.06em;text-transform:uppercase;color:var(--td-texte-2);cursor:pointer}
.td-cat-compare-toggle input{appearance:none;-webkit-appearance:none;width:14px;height:14px;margin:0;
  border:1px solid var(--td-filet-fort);background:var(--td-surface);position:relative;cursor:pointer}
.td-cat-compare-toggle input:checked{background:var(--td-encre);border-color:var(--td-encre)}
.td-cat-compare-toggle input:checked::after{content:"";position:absolute;left:3px;top:0;width:5px;height:9px;
  border:2px solid var(--td-couche);border-top:0;border-left:0;transform:rotate(42deg)}
.td-cat-compare-toggle--float input:checked{background:var(--td-sceau);border-color:var(--td-sceau)}

.td-cat-card .td-card__body{display:flex;flex-direction:column;gap:0;padding-top:8px;flex:1}
/* la collection devient une legende posee sur la photo (aucune ligne de texte en plus) */
@supports (container-type:inline-size){
  .td-cat-card .td-card__collection{position:absolute;z-index:3;left:7px;top:calc(7px + 100cqw - 26px);
    max-width:calc(100% - 14px);padding:2px 5px;background:var(--td-couche);
    border:1px solid var(--td-filet);color:var(--td-kraft-texte);
    font-family:var(--td-mono);font-size:.4375rem;letter-spacing:.1em;text-transform:uppercase;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.4}
}
@supports not (container-type:inline-size){
  .td-cat-card .td-card__collection{order:1;align-self:flex-start;font-family:var(--td-mono);
    font-size:.5rem;letter-spacing:.13em;text-transform:uppercase;color:var(--td-kraft-texte);white-space:nowrap}
}
.td-cat-card .td-card__body>a{order:2;display:block;min-width:0;margin-top:2px}
.td-cat-card .td-card__name{font-family:var(--td-font);font-size:.9375rem;font-weight:620;line-height:1.2;
  letter-spacing:-.005em;font-variation-settings:"wdth" 96,"wght" 620;text-transform:none;color:var(--td-texte);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:0}
.td-cat-card:hover .td-card__name{text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px}
.td-cat-card .td-card__meta{order:3;margin-top:3px;font-family:var(--td-mono);font-size:.5625rem;
  letter-spacing:.01em;color:var(--td-texte-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.td-cat-card__meta{order:4;display:flex;align-items:center;justify-content:space-between;gap:4px;
  margin-top:6px;padding-top:6px;border-top:1px solid var(--td-filet);min-height:22px;min-width:0;
  flex-wrap:nowrap;overflow:hidden}
.td-cat-card__meta .td-pill{flex:1 1 auto;min-width:0;overflow:hidden;white-space:nowrap;
  display:inline-block;line-height:1.5;padding:1px 5px;letter-spacing:0}
.td-cat-card__meta .td-pill::before{display:none}
.td-cat-card__meta .td-pill{font-size:.5625rem;padding:2px 6px;gap:3px;letter-spacing:.04em}
.td-cat-card__meta .td-card__price{flex:none;font-family:var(--td-mono);font-size:.8125rem;font-weight:600;
  line-height:1;white-space:nowrap;font-variant-numeric:tabular-nums;letter-spacing:-.015em}
.td-cat-card__meta .td-card__price .td-mono{font-size:.5rem;font-weight:400;color:var(--td-texte-2);letter-spacing:0}
.td-cat-card__actions{order:5;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:stretch;
  gap:4px;margin-top:7px}
.td-cat-qty{display:inline-flex;align-items:center;height:30px;border:1px solid var(--td-filet-fort);
  border-radius:0;background:var(--td-surface)}
.td-cat-qty button{width:22px;height:100%;display:grid;place-items:center;font-size:12px;line-height:1;
  color:var(--td-texte-2)}
.td-cat-qty button:hover{color:var(--td-texte);background:var(--td-surface-2)}
.td-cat-qty input{width:34px;height:100%;border:0;border-inline:1px solid var(--td-filet);background:none;
  text-align:center;font-family:var(--td-mono);font-size:.75rem;color:var(--td-texte);
  -moz-appearance:textfield;appearance:textfield;padding:0}
.td-cat-qty input::-webkit-outer-spin-button,.td-cat-qty input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.td-cat-addbtn{height:30px;min-width:0;padding:0 8px;border:1px solid var(--td-texte);border-radius:0;
  background:transparent;color:var(--td-texte);font-family:var(--td-mono);font-size:.625rem;
  letter-spacing:.07em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  transition:background-color 140ms var(--td-ease-carton),color 140ms}
.td-cat-addbtn:hover{background:var(--td-encre);color:var(--td-couche)}
.td-cat-addbtn:active{transform:translateY(1px)}
@media (hover:none){.td-cat-compare-toggle--float{opacity:1}}

/* 09 · tableau ERP : dense, aligne, lisible a 58 references */
.td-cat-tablewrap{overflow:visible;border-top:1px solid var(--td-encre);border-bottom:1px solid var(--td-encre);
  background:var(--td-surface);margin-top:2px}
.td-cat-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:.8125rem}
.td-cat-table colgroup col:nth-child(1){width:78px!important}
.td-cat-table colgroup col:nth-child(3){width:112px!important}
.td-cat-table colgroup col:nth-child(4){width:46px!important}
.td-cat-table colgroup col:nth-child(5){width:118px!important}
.td-cat-table colgroup col:nth-child(6){width:86px!important}
.td-cat-table colgroup col:nth-child(7){width:66px!important}
.td-cat-table colgroup col:nth-child(8){width:42px!important}
.td-cat-table colgroup col:nth-child(9){width:32px!important}
.td-cat-table thead th{position:sticky;top:calc(var(--cat-head) + var(--cat-bar) + 1px);z-index:5;
  background:var(--td-encre);color:var(--td-couche);font-family:var(--td-mono);font-size:.5rem;
  letter-spacing:.14em;text-transform:uppercase;font-weight:500;text-align:left;padding:9px 10px;
  white-space:nowrap;border-right:1px solid rgba(251,250,248,.1)}
.td-cat-table thead th:last-child{border-right:0}
.td-cat-table__num{text-align:right}
.td-cat-table tbody td{padding:0 10px;height:50px;border-bottom:1px solid var(--td-filet);
  vertical-align:middle;overflow:hidden}
.td-cat-table tbody tr:nth-child(even) td{background:color-mix(in srgb,var(--td-couche) 55%,var(--td-surface))}
.td-cat-table tbody tr:hover td{background:var(--td-couche)}
.td-cat-table tbody tr:hover .td-cat-ref{color:var(--td-kraft-texte);border-bottom-color:currentColor}
.td-cat-table tbody tr:hover td:first-child{box-shadow:inset 2px 0 0 var(--td-encre)}
.td-cat-table tbody tr:last-child td{border-bottom:0}
.td-cat-ref{font-family:var(--td-mono);font-size:.6875rem;font-weight:500;letter-spacing:.02em;
  color:var(--td-texte);text-decoration:none;border-bottom:1px solid transparent;white-space:nowrap}
.td-cat-sub{display:block;margin-top:2px;font-family:var(--td-mono);font-size:.5625rem;color:var(--td-texte-2);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.td-cat-table strong{display:block;font-weight:620;font-size:.8125rem;line-height:1.2;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.td-cat-table .td-mono{font-size:.6875rem}
.td-cat-table__num .td-mono{font-size:.75rem;font-weight:600;font-variant-numeric:tabular-nums}
.td-cat-table .td-pill{font-size:.5rem;padding:2px 5px;gap:3px}
.td-cat-qty-input{width:56px;height:28px;padding:0 5px;border:1px solid var(--td-filet-fort);border-radius:0;
  background:var(--td-couche);font-family:var(--td-mono);font-size:.6875rem;text-align:center;color:var(--td-texte)}
.td-cat-qty-input:focus{outline:2px solid var(--td-trace);outline-offset:-1px}
.td-cat-add{width:28px;height:28px;display:grid;place-items:center;border:1px solid var(--td-texte);
  border-radius:0;font-size:15px;line-height:1;color:var(--td-texte);
  transition:background-color 140ms var(--td-ease-carton),color 140ms}
.td-cat-add:hover{background:var(--td-encre);color:var(--td-couche)}
.td-cat-table input[type="checkbox"]{appearance:none;-webkit-appearance:none;width:14px;height:14px;margin:0;
  border:1px solid var(--td-filet-fort);background:var(--td-couche);position:relative;cursor:pointer}
.td-cat-table input[type="checkbox"]:checked{background:var(--td-encre);border-color:var(--td-encre)}
.td-cat-table input[type="checkbox"]:checked::after{content:"";position:absolute;left:3px;top:0;width:5px;height:9px;
  border:2px solid var(--td-couche);border-top:0;border-left:0;transform:rotate(42deg)}

/* 10 · comparateur */
.td-cat-compare{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);z-index:60;
  display:flex;align-items:center;gap:16px;padding:8px 10px 8px 12px;background:var(--td-encre);
  color:var(--td-couche);border:1px solid var(--td-encre);max-width:calc(100vw - 32px);
  box-shadow:0 24px 48px -28px rgba(30,27,26,.7)}
.td-cat-compare__items{display:flex;gap:4px;align-items:center}
.td-cat-compare__items figure{width:36px;height:36px;margin:0;overflow:hidden;
  border:1px solid rgba(251,250,248,.24);background:var(--td-surface-2)}
.td-cat-compare__items img{width:100%;height:100%;object-fit:cover}
.td-cat-compare__actions{display:flex;gap:6px;align-items:center}
.td-cat-compare__open{height:32px;padding:0 14px;background:var(--td-couche);color:var(--td-encre);
  border-radius:0;font-family:var(--td-mono);font-size:.5625rem;letter-spacing:.1em;text-transform:uppercase;
  font-weight:600;transition:background-color 150ms}
.td-cat-compare__open:hover{background:var(--td-dorure)}
.td-cat-compare__clear{width:32px;height:32px;display:grid;place-items:center;border:1px solid rgba(251,250,248,.3);
  color:var(--td-couche);font-size:16px;line-height:1}
.td-cat-compare__clear:hover{border-color:var(--td-couche)}
.td-cat-compare__empty{font-family:var(--td-mono);font-size:.625rem;letter-spacing:.08em;text-transform:uppercase;opacity:.7}
.td-cat-compare__table{overflow-x:auto;margin:4px 0 0;border-top:1px solid var(--td-encre)}
.td-cat-compare__table table{width:100%;border-collapse:collapse;font-size:.8125rem;table-layout:fixed;min-width:640px}
.td-cat-compare__table th,.td-cat-compare__table td{padding:9px 10px;border-bottom:1px solid var(--td-filet);
  border-right:1px solid var(--td-filet);text-align:left;vertical-align:top;overflow-wrap:anywhere}
.td-cat-compare__table thead th{font-family:var(--td-mono);font-size:.5625rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--td-texte-2);font-weight:500;border-bottom:1px solid var(--td-encre)}
.td-cat-compare__table tbody th{position:sticky;left:0;z-index:2;width:132px;
  font-family:var(--td-mono);font-size:.5625rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--td-texte-2);font-weight:500;white-space:nowrap;background:var(--td-surface)}
.td-cat-compare__table td{font-family:var(--td-mono);font-size:.75rem}
.td-cat-compare__table img{width:100%;max-width:104px;aspect-ratio:1/1;object-fit:contain;padding:6%;
  background:var(--td-carton-gris)}
.td-cat-compare__table thead th{background:var(--td-couche)}

/* 11 · dialogues : feuilles de saisie, pas des fenetres */
.td-cat-dialog{border:1px solid var(--td-encre);border-radius:0;padding:0;width:min(620px,calc(100vw - 32px));
  max-height:calc(100vh - 48px);background:var(--td-couche);color:var(--td-texte);box-shadow:0 32px 80px -48px rgba(0,0,0,.7)}
.td-cat-dialog--wide{width:min(920px,calc(100vw - 32px))}
.td-cat-dialog::backdrop{background:rgba(52,48,47,.6);backdrop-filter:blur(2px)}
.td-cat-dialog__form{display:flex;flex-direction:column;gap:12px;padding:20px 20px 18px;margin:0}
.td-cat-dialog h2{font-size:1.5rem;line-height:.98;letter-spacing:-.015em;text-transform:uppercase}
.td-cat-dialog__lead{color:var(--td-texte-2);font-size:.8125rem;max-width:56ch;line-height:1.5}
.td-cat-dialog textarea{width:100%;min-height:150px;padding:10px 12px;border:1px solid var(--td-filet-fort);
  border-radius:0;background:var(--td-fond);font-family:var(--td-mono);font-size:.75rem;line-height:1.7;
  color:var(--td-texte);resize:vertical}
.td-cat-dialog textarea:focus{outline:2px solid var(--td-trace);outline-offset:-1px;border-color:transparent}
.td-cat-dialog__hint{color:var(--td-texte-2);font-size:.5625rem;letter-spacing:.02em}
.td-cat-dialog__actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding-top:12px;
  border-top:1px solid var(--td-filet);margin-top:2px}
.td-cat-dialog__actions .td-btn{flex:0 0 auto}
.td-cat-dialog__close{font-family:var(--td-mono);font-size:.5625rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--td-texte-2);text-decoration:underline;text-underline-offset:3px;min-height:40px;padding:0 8px;margin-left:auto}
.td-cat-dialog__close:hover{color:var(--td-texte)}
.td-cat-quickres{display:flex;flex-direction:column;gap:0;max-height:200px;overflow:auto;
  border-top:1px solid var(--td-filet)}
.td-cat-quickres:empty{display:none}
.td-cat-qr{display:grid;grid-template-columns:78px minmax(0,1fr) auto;gap:10px;align-items:center;
  padding:7px 2px;border-bottom:1px solid var(--td-filet);font-size:.75rem}
.td-cat-qr code{font-family:var(--td-mono);font-size:.6875rem;color:var(--td-texte);letter-spacing:.02em}
.td-cat-qr small{display:block;margin-top:2px;font-family:var(--td-mono);font-size:.5625rem;color:var(--td-texte-2)}
.td-cat-qr>span.td-mono{font-size:.6875rem;white-space:nowrap;font-variant-numeric:tabular-nums}
.td-cat-qr--err code{color:var(--td-sceau-texte);text-decoration:line-through}
.td-cat-qr--err span{color:var(--td-texte-2);font-size:.75rem;line-height:1.35}

/* 12 · listes sauvegardees */
.td-cat-lists__new{display:flex;gap:6px}
.td-cat-lists__new input{flex:1;min-width:0;height:38px;padding:0 10px;border:1px solid var(--td-filet-fort);
  border-radius:0;background:var(--td-fond);font-family:var(--td-mono);font-size:.75rem;color:var(--td-texte)}
.td-cat-lists__new input:focus{outline:2px solid var(--td-trace);outline-offset:-1px}
.td-cat-lists{display:flex;flex-direction:column;gap:0;max-height:240px;overflow:auto;border-top:1px solid var(--td-filet)}
.td-cat-lists:empty::before{content:attr(data-empty);display:block;padding:12px 0;color:var(--td-texte-2);
  font-family:var(--td-mono);font-size:.6875rem}
.td-cat-list{display:flex;align-items:center;gap:10px;padding:9px 2px;border-bottom:1px solid var(--td-filet)}
.td-cat-list__name{flex:1;min-width:0;font-size:.8125rem;font-weight:600}
.td-cat-list__meta{font-family:var(--td-mono);font-size:.625rem;color:var(--td-texte-2)}
.td-cat-list button{font-family:var(--td-mono);font-size:.5625rem;letter-spacing:.06em;text-transform:uppercase;
  border-bottom:1px solid currentColor;padding-bottom:1px;min-height:28px}

/* 13 · maillage */
.td-cat-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,3vw,40px);
  margin-top:clamp(28px,4vw,48px);padding-top:clamp(20px,3vw,32px);border-top:1px solid var(--td-filet-fort)}
.td-cat-links h3{font-family:var(--td-mono);font-size:.5625rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--td-texte-2);margin-bottom:8px;font-weight:500;font-variation-settings:normal}
.td-cat-links ul{list-style:none;display:flex;flex-direction:column}
.td-cat-links a{display:flex;justify-content:space-between;gap:8px;padding:5px 0;font-size:.8125rem;
  border-bottom:1px solid var(--td-filet)}
.td-cat-links a:hover{color:var(--td-kraft-texte)}
.td-cat-links em{font-family:var(--td-mono);font-size:.625rem;font-style:normal;color:var(--td-texte-2);
  font-variant-numeric:tabular-nums}

/* 14 · etats */
.td-cat-empty{padding:clamp(32px,5vw,56px) 16px;text-align:center;border-top:1px solid var(--td-encre);
  border-bottom:1px solid var(--td-encre);display:flex;flex-direction:column;align-items:center;gap:10px}
.td-cat-empty__title{font-family:var(--td-font);font-size:1.2rem;font-weight:800;
  font-variation-settings:"wdth" 72,"wght" 800;text-transform:uppercase;line-height:1}
.td-cat-empty__text{color:var(--td-texte-2);max-width:44ch;font-size:.875rem}
.td-cat :focus-visible{outline:2px solid var(--td-trace);outline-offset:2px}
.td-cat button:disabled,.td-cat [aria-disabled="true"]{opacity:.38;pointer-events:none}

/* 15 · mobile : la barre reste utilisable, les facettes deviennent un tiroir */
@media (max-width:900px){
  .td-cat{--cat-rail:0px;--cat-gap:0px;--cat-bar:0px}
  .td-cat-presets{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:2px;margin-right:calc(var(--td-gut) * -1);padding-right:var(--td-gut)}
  .td-cat-presets::-webkit-scrollbar{display:none}
  .td-cat-preset{flex:none}
  .td-page-head h1{font-size:clamp(1.9rem,7.4vw,2.5rem)}
  .td-page-head__lead{font-size:.9375rem;line-height:1.5;margin-top:8px}
  .td-cat-ai__help{font-size:.5rem;padding:0 12px 7px}
  .td-cat-bar{grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:8px 0;top:var(--cat-head)}
  .td-cat-bar__search{grid-column:1/-1;height:44px}
  .td-cat-seg{height:40px}
  .td-cat-seg button{min-width:60px;padding:0 10px}
  .td-cat-bar__actions{display:none}
  .td-cat-mobilefilters{display:inline-flex;justify-self:end;height:40px}
  .td-cat-layout{grid-template-columns:minmax(0,1fr);margin-top:12px}
  .td-cat:has(.td-cat-facets[data-open="true"]) .td-cat-bar{position:fixed;top:var(--cat-head);left:0;right:0;
    z-index:130;padding:8px var(--td-gut);background:var(--td-fond);border-bottom:1px solid var(--td-encre);
    box-shadow:0 10px 24px -20px rgba(30,27,26,.4)}
  .td-cat-facets{position:fixed;left:0;right:0;bottom:0;top:calc(var(--cat-head) + 112px);z-index:120;
    width:auto;max-height:none;background:var(--td-fond);padding:0 var(--td-gut) 28px;overflow:auto;
    border-top:1px solid var(--td-encre);transform:translateY(10px);opacity:0;
    transition:transform var(--td-dur-pli) var(--td-ease-carton),opacity 200ms var(--td-ease-carton);
    visibility:hidden;pointer-events:none;box-shadow:none}
  .td-cat-facets[data-open="true"]{transform:none;opacity:1;visibility:visible;pointer-events:auto;
    box-shadow:0 -18px 40px -28px rgba(30,27,26,.5)}
  .td-cat:has(.td-cat-facets[data-open="true"]) .td-cat-bar{z-index:130}
  .td-cat-facets__head{position:sticky;top:0;background:var(--td-fond);padding:12px 0 8px;z-index:2;border-bottom:1px solid var(--td-encre)}
  .td-cat-facets__head .td-label{color:var(--td-texte)}
  .td-cat-facets details{border-bottom:1px solid var(--td-filet)}
  .td-cat-facets summary{padding:10px 0}
  .td-cat-opts{padding-bottom:10px}
  .td-cat-opt{min-height:38px;font-size:.875rem}
  .td-cat-facets summary{min-height:44px}
  .td-cat-opt{min-height:40px}
  .td-cat-opt input{width:18px;height:18px}
  .td-cat-ai{margin-top:10px}
  .td-cat-ai input{font-size:.9375rem}
  .td-cat-ai__label{display:none}
  .td-cat-ai .td-btn{height:32px;min-height:32px}
  .td-cat-ai__help{padding-top:2px}
  .td-cat-feature{grid-template-columns:minmax(0,1fr);border-bottom:0}
  .td-cat-feature__text{padding:12px 14px}
  .td-cat-feature__item{border-left:0;border-top:1px solid var(--td-filet);display:grid;grid-template-columns:64px minmax(0,1fr);
    align-items:center;gap:10px;padding:8px 12px}
  .td-cat-feature__item img{width:56px;height:56px;margin:0}
  .td-cat-feature__item span{-webkit-line-clamp:2;font-size:.8125rem}
  .td-cat-feature__item em{margin-left:auto}
  .td-cat-head{position:relative}
  .td-cat-table thead{display:none}
}
@media (max-width:520px){
  .td-cat-card{padding-top:6px}
  .td-cat-card .td-card__body{padding-top:6px}
  .td-cat-card .td-card__name{font-size:.8125rem;-webkit-line-clamp:2}
  .td-cat-card .td-card__meta{font-size:.5rem}
  .td-cat-card__meta{gap:4px;margin-top:4px;padding-top:4px}
  .td-cat-card__meta .td-pill{font-size:.4375rem;padding:1px 3px;letter-spacing:0}
  .td-cat-card__meta .td-card__price{font-size:.625rem;letter-spacing:-.02em}
  .td-cat-card__meta .td-card__price .td-mono{display:none}
  .td-cat-addbtn{font-size:.5rem;padding:0 5px}
  .td-cat-qty button{width:20px}
  .td-cat-qty input{width:28px;font-size:.6875rem}
  .td-cat-card .td-card__collection{font-size:.375rem;padding:1px 4px;top:calc(6px + 100cqw - 22px)}
}
@media (max-width:760px){
  .td-cat-tablewrap{border:0;background:transparent;overflow:visible}
  .td-cat-table{min-width:0}
  .td-cat-table,.td-cat-table tbody,.td-cat-table tr,.td-cat-table td{display:block;width:100%}
  .td-cat-table colgroup{display:none}
  .td-cat-table thead{display:none}
  .td-cat-table tbody tr{border-top:1px solid var(--td-filet-fort);padding:10px 0;background:transparent}
  .td-cat-table tbody tr:nth-child(even) td{background:transparent}
  .td-cat-table tbody td{height:auto;padding:3px 0;border:0;display:flex;justify-content:space-between;
    align-items:center;gap:10px;background:transparent!important}
  .td-cat-table tbody td::before{content:attr(data-label);font-family:var(--td-mono);font-size:.5rem;
    letter-spacing:.12em;text-transform:uppercase;color:var(--td-texte-2);flex:none}
  .td-cat-table tbody td:first-child{padding-bottom:6px}
  .td-cat-table tbody td:first-child::before{display:none}
  .td-cat-table tbody td:last-child{justify-content:flex-end}
  .td-cat-table tbody td:last-child::before{display:none}
  .td-cat-compare{bottom:calc(68px + env(safe-area-inset-bottom,0px));width:calc(100vw - 24px);
    justify-content:space-between;gap:10px}
  .td-cat-dialog{width:calc(100vw - 16px);max-height:calc(100dvh - 24px)}
  .td-cat-dialog__form{padding:16px 14px 14px}
  .td-cat-dialog h2{font-size:1.25rem}
  .td-cat-dialog__actions{gap:6px}
  .td-cat-dialog__actions .td-btn{padding:0 12px;font-size:.6875rem}
  .td-cat-compare__table table{min-width:0}
  .td-cat-compare__table tbody th{position:static;width:96px;white-space:normal;font-size:.5rem}
  .td-cat-compare__items figure{width:32px;height:32px}
}

@media (max-width:1240px){
  .td-cat-tablewrap{overflow-x:auto;overflow-y:visible}
  .td-cat-table{min-width:900px}
  .td-cat-table thead th{position:static}
}
/* 15b · garde-fous */
.td-cat-grid,.td-cat-main,.td-cat-card{min-width:0}
.td-cat-card .td-card__media img{max-width:100%}

/* 16 · impression */
@media print{
  .td-cat-bar,.td-cat-ai,.td-cat-ai__out,.td-cat-facets,.td-cat-compare,.td-cat-seg,.td-cat-mobilefilters,
  .td-cat-card__actions,.td-cat-dialog,.td-cat-feature,.td-cat-presets,.td-cat-links{display:none!important}
  .td-cat-layout{grid-template-columns:1fr}
  .td-cat-grid{display:none!important}
  .td-cat-tablewrap{display:block!important;border:0;overflow:visible}
  .td-cat-table thead th{position:static;background:none;color:#000;border-color:#999}
  .td-cat-table tbody td{height:auto;padding:4px 6px}
  .td-cat-compare-toggle{display:none}
}