/* Herramienta «Cesta» (static/cart.js). Colores, radios y tipografía de static/style.css.
   Pop-up compacto (1200 × 640) en tres columnas finas: resultados · ficha del producto · cesta.
   En móvil se apilan y la cesta es una hoja fija abajo. Escala de espacios 4/6/8/10/12/14/16. */
.cart-scrim,.cart-settings,.cart-dpick {
  --c-ink:#242a34; --c-muted:#6b6f78; --c-line:#e3e5ea; --c-line-strong:#d8dde5; --c-sunk:#f5f6f8; --c-surface:#fff;
  --c-accent:#2864c5; --c-accent-soft:#eaf1fc; --c-accent-ink:#fff; --c-accent-line:#bcd0ee;
  --c-ok:#1d7a3c; --c-ok-soft:#e5f4ea; --c-ok-line:#9cd0ae; --c-warn:#a15c07; --c-warn-soft:#fff4e0; --c-bad:#c00000; --c-bad-soft:#fdecea;
}
.cart-scrim { position:fixed; inset:0; z-index:60; display:grid; place-items:center; padding:16px; background:#0009; }
.cart-scrim[hidden] { display:none; }
.cart-modal [hidden] { display:none !important; }
/* Tamaño fijo: no cambia mientras cargan búsqueda, ficha o vista previa. */
.cart-modal { position:relative; width:min(1200px,100%); height:min(640px, calc(100dvh - 32px)); display:grid; grid-template-rows:50px minmax(0,1fr);
  overflow:hidden; background:var(--c-surface); color:var(--c-ink); border:1px solid #dddde3; border-radius:14px; box-shadow:0 24px 70px #0006;
  font-size:13px; line-height:1.35; }
.cart-modal svg,.cart-settings svg { width:16px; height:16px; flex:none; fill:none; stroke:currentColor; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; }
.cart-modal button { font-weight:600; }
.cart-sr { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%); white-space:nowrap; }
.cart-spacer { flex:1; }
.cart-note { color:var(--c-muted); font-size:12px; }
.cart-note.bad { color:var(--c-bad); }
.cart-label { color:var(--c-muted); font-size:11px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; }
.cart-iconbtn { display:inline-grid; place-items:center; width:30px; height:30px; padding:0; background:transparent; color:var(--c-muted); border:0; border-radius:8px; }
.cart-iconbtn:hover:not(:disabled),.cart-iconbtn[aria-expanded="true"] { background:var(--c-sunk); color:var(--c-ink); filter:none; }
.cart-iconbtn svg { width:17px; height:17px; }

/* Cabecera: título, búsqueda y cerrar en una sola línea. */
.cart-head { display:flex; align-items:center; gap:14px; min-width:0; padding:0 10px 0 16px; border-bottom:1px solid var(--c-line); }
.cart-titles { display:grid; line-height:1.15; flex:none; }
.cart-head h2 { margin:0; font-size:16px; }
.cart-who { color:var(--c-muted); font-size:11px; }
.cart-search { flex:1; max-width:560px; min-width:0; display:flex; align-items:center; gap:8px; height:34px; padding:0 10px;
  border:1px solid var(--c-line-strong); border-radius:9px; background:var(--c-sunk); cursor:text; }
.cart-search:focus-within { background:#fff; border-color:var(--c-accent); box-shadow:0 0 0 3px #2864c522; }
.cart-search > svg { color:#9aa1ab; }
.cart-search input { flex:1; min-width:0; height:100%; padding:0; border:0; background:transparent; color:var(--c-ink); font-size:14px; outline:none; }
.cart-search input:focus-visible { outline:none; }
.cart-q-status { flex:none; color:var(--c-muted); font-size:11.5px; white-space:nowrap; }
.cart-q-status.busy { color:var(--c-accent); }
.cart-x { margin-left:auto; }
/* «Cestas guardadas»: siempre a la vista junto al buscador, con cuántas hay. */
.cart-saved-btn { flex:none; display:inline-flex; align-items:center; gap:6px; height:34px; padding:0 12px; background:#fff; color:#1b4f9f;
  border:1px solid var(--c-accent-line); border-radius:9px; font-size:13px; white-space:nowrap; }
.cart-saved-btn:hover,.cart-saved-btn[aria-expanded="true"] { background:var(--c-accent-soft); filter:none; }
.cart-saved-btn svg { width:15px; height:15px; }
.cart-saved-count { display:inline-grid; place-items:center; min-width:18px; height:18px; padding:0 5px; border-radius:9px; background:var(--c-accent-soft);
  color:#1b4f9f; font-size:11px; font-weight:700; }

/* Cuerpo: tres columnas. */
.cart-body { position:relative; display:grid; grid-template-columns:400px minmax(0,1fr) 300px; grid-template-rows:minmax(0,1fr); min-height:0; }
.cart-left { grid-column:1; grid-row:1; }
.cart-info { grid-column:2; grid-row:1; }
.cart-tray { grid-column:3; grid-row:1; }

/* Columna 1: resultados. */
.cart-left { min-width:0; min-height:0; overflow:auto; padding:4px 6px; border-right:1px solid var(--c-line); }
.cart-list { display:grid; align-content:start; }
.cart-list.stale { opacity:.55; transition:opacity .12s ease; }
.cart-list-hint { display:grid; gap:6px; padding:8px; }
.cart-list-hint p { margin:0; }
.cart-row { display:grid; grid-template-columns:40px minmax(0,1fr); gap:8px; padding:7px 8px; border-radius:10px; }
.cart-row + .cart-row { box-shadow:0 -1px 0 var(--c-line); }
.cart-row.viewing { background:var(--c-accent-soft); box-shadow:inset 3px 0 0 var(--c-accent); }
.cart-row.viewing + .cart-row { box-shadow:none; }
.cart-row.oos .cart-name,.cart-row.oos .cart-thumb { opacity:.55; }
.cart-thumb-btn { align-self:start; padding:0; background:transparent; border:0; border-radius:8px; }
.cart-thumb-btn:hover { filter:none; }
.cart-row-main { display:grid; min-width:0; }
.cart-row-top { display:flex; align-items:baseline; gap:10px; min-width:0; }
.cart-name { flex:1; min-width:0; padding:0; overflow:hidden; text-align:left; text-overflow:ellipsis; white-space:nowrap; background:transparent; color:var(--c-ink);
  border:0; border-radius:4px; font-size:13px; line-height:1.35; }
.cart-modal .cart-name { font-weight:600; }
.cart-name:hover { color:var(--c-accent); text-decoration:underline; text-underline-offset:2px; filter:none; }
.cart-price-col { flex:none; font-size:13px; font-weight:700; font-variant-numeric:tabular-nums; white-space:nowrap; }
.cart-price-col small { color:var(--c-muted); font-size:11px; font-weight:500; }
.cart-row .cart-chips { margin-top:5px; }
/* Chip de formato: un clic añade. Verde con ✓ si ya está; tachado si está agotado. */
.cart-chips { display:flex; flex-wrap:wrap; gap:5px; }
.cart-chip { display:grid; grid-template-columns:auto auto; grid-template-rows:auto auto; align-items:center; column-gap:4px; padding:2px 5px 2px 7px;
  text-align:left; background:#fff; color:var(--c-ink); border:1px solid var(--c-line-strong); border-radius:7px; line-height:1.2; }
.cart-modal .cart-chip { font-weight:400; }
.cart-chip b { font-size:12px; font-weight:650; }
.cart-chip small { grid-row:2; display:inline-flex; align-items:center; color:var(--c-muted); font-size:10.5px; white-space:nowrap; font-variant-numeric:tabular-nums; }
.cart-chip svg { grid-column:2; grid-row:1 / 3; width:13px; height:13px; color:var(--c-accent); }
.cart-chip:hover:not(:disabled) { border-color:#9fb6dc; background:#f7faff; filter:none; }
.cart-chip.in { background:var(--c-ok-soft); border-color:var(--c-ok-line); }
.cart-chip.in svg { color:var(--c-ok); }
.cart-chip.in:hover:not(:disabled) { background:#d9efe0; border-color:#7fc196; }
.cart-chip:disabled { cursor:not-allowed; }
.cart-chip.in:disabled { background:var(--c-ok-soft); color:var(--c-ink); border:1px solid var(--c-ok-line); opacity:.75; }
.cart-chip.off { padding-right:8px; background:var(--c-sunk); color:#8a919b; border:1px dashed var(--c-line-strong); }
.cart-chip.off b { text-decoration:line-through; }
/* Stock PAT: nada si sobra; el número en rojo si quedan pocas; «agotado» en rojo. */
.cart-low { display:inline-grid; place-items:center; min-width:15px; height:15px; margin-left:5px; padding:0 4px; border-radius:8px; background:var(--c-bad-soft);
  color:var(--c-bad); font-size:10.5px; font-weight:700; line-height:1; font-variant-numeric:tabular-nums; }
.cart-stock { font-size:11.5px; font-weight:600; white-space:nowrap; }
.cart-stock.out { color:var(--c-bad); }
.cart-stock.unknown { color:var(--c-muted); }
.cart-chip small .cart-stock { font-size:inherit; }
.cart-need { margin-top:5px; padding:4px 8px; border-radius:7px; background:var(--c-warn-soft); color:var(--c-warn); font-size:11.5px; }

/* Fotos: hueco fijo con la huella desde el primer momento; la foto se ve solo cuando ha cargado. */
.cart-thumb { position:relative; width:40px; height:40px; flex:none; display:grid; place-items:center; overflow:hidden; border:1px solid var(--c-line); border-radius:8px; background:#fff; font-size:16px; }
.cart-thumb img,.cart-photo-img img,.cart-lb-mini img { position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:contain; }
.cart-ph { position:relative; }
.cart-ph::before { content:'🐾'; opacity:.45; filter:grayscale(1); }
.cart-ph img { opacity:0; transition:opacity .15s ease; }
.cart-ph.cart-loaded::before { content:none; }
.cart-ph.cart-loaded img { opacity:1; }
.cart-thumb.small { width:36px; height:36px; border-radius:7px; font-size:14px; }
.cart-thumb.mini { width:26px; height:26px; border-radius:6px; font-size:11px; }
.cart-pill { display:inline-flex; align-items:center; padding:1px 8px; border-radius:15px; font-size:11.5px; font-weight:600; white-space:nowrap; }
.cart-pill.ok { background:var(--c-ok-soft); color:var(--c-ok); }
.cart-pill.warn { background:var(--c-warn-soft); color:var(--c-warn); }
.cart-pill.bad { background:var(--c-bad-soft); color:var(--c-bad); }
.cart-pill.n { background:#f0f0f3; color:#55555d; }

/* Columna 2: ficha. La descripción completa ocupa el resto y se desplaza por dentro. */
.cart-info { position:relative; display:flex; flex-direction:column; min-width:0; min-height:0; overflow:auto; padding:12px 16px; outline:none; }
.cart-info > * { flex:none; }
.cart-info-close { position:absolute; top:8px; right:8px; z-index:1; }
.cart-info-empty { display:flex; align-items:flex-start; gap:12px; padding:12px 14px; border:1px dashed var(--c-line-strong); border-radius:12px; color:var(--c-muted); font-size:12.5px; line-height:1.45; }
.cart-info-empty p { margin:0; }
.cart-info-empty b { color:var(--c-ink); }
.cart-info-icon { display:grid; place-items:center; width:34px; height:34px; flex:none; border-radius:10px; background:var(--c-accent-soft); color:var(--c-accent); }
.cart-tips { display:grid; gap:3px; margin:6px 0 0; padding-left:16px; font-size:12px; }
.cart-phd { display:grid; grid-template-columns:auto minmax(0,1fr); gap:14px; align-items:start; margin-bottom:10px; padding-right:30px; }
.cart-photo { position:relative; display:block; width:112px; height:112px; padding:0; overflow:hidden; background:#fff; border:1px solid var(--c-line); border-radius:10px; cursor:zoom-in; }
.cart-photo:hover:not(:disabled) { border-color:#9fb6dc; filter:none; }
.cart-photo:disabled { cursor:default; background:#fff; border:1px solid var(--c-line); }
.cart-photo-img { position:absolute; inset:0; display:grid; place-items:center; font-size:30px; }
.cart-zoom { position:absolute; left:5px; bottom:5px; display:inline-flex; align-items:center; gap:4px; padding:2px 7px 2px 5px; border-radius:6px; background:#242a34d9; color:#fff; font-size:11px; font-weight:600; }
.cart-zoom svg { width:12px; height:12px; }
.cart-pcount { position:absolute; right:5px; top:5px; padding:0 5px; border:1px solid var(--c-line); border-radius:5px; background:#fffd; color:var(--c-muted); font-size:10.5px; font-weight:600; }
.cart-phd-t { min-width:0; }
.cart-brand { color:var(--c-muted); font-size:11px; font-weight:600; letter-spacing:.07em; text-transform:uppercase; }
.cart-pname { margin:2px 0 3px; font-size:15.5px; line-height:1.25; }
.cart-pmeta { margin-bottom:6px; color:var(--c-muted); font-size:11.5px; overflow-wrap:anywhere; }
.cart-open { display:inline-flex; align-items:center; gap:5px; color:var(--c-accent); font-size:12.5px; font-weight:600; text-decoration:none; white-space:nowrap; }
.cart-open:hover { text-decoration:underline; }
.cart-open svg { width:14px; height:14px; }
.cart-links { display:flex; flex-wrap:wrap; align-items:center; gap:4px 14px; }
.cart-copywrap { display:inline-flex; align-items:center; gap:6px; }
.cart-copy { display:inline-flex; align-items:center; gap:5px; padding:0; background:none; color:var(--c-accent); border:0; font-size:12.5px; }
.cart-copy:hover { text-decoration:underline; filter:none; }
.cart-copy svg { width:14px; height:14px; }
.cart-copy:disabled { color:var(--c-muted, #888); cursor:not-allowed; text-decoration:none; }
.cart-copied { color:var(--c-ok); font-size:12px; font-weight:600; opacity:0; transition:opacity .35s ease; }
.cart-copied.show { opacity:1; }
.cart-copied.fade { opacity:0; }
.cart-copied.bad { color:var(--c-bad); }

.cart-fmts { display:grid; gap:4px; margin-bottom:8px; }
.cart-frow { display:flex; align-items:center; gap:8px; min-height:34px; padding:3px 6px 3px 10px; border:1px solid var(--c-line-strong); border-radius:8px; }
.cart-frow.sel { border-color:var(--c-accent); background:var(--c-accent-soft); }
.cart-frow input[type="radio"] { width:14px; height:14px; margin:0; flex:none; accent-color:var(--c-accent); }
.cart-frow-label { flex:1; min-width:0; display:flex; align-items:baseline; gap:12px; cursor:pointer; }
.cart-frow-label b { font-size:13px; }
.cart-num { font-weight:700; font-variant-numeric:tabular-nums; white-space:nowrap; }
.cart-frow.off .cart-frow-label { color:#8a919b; }
.cart-frow.off .cart-frow-label b { text-decoration:line-through; }
.cart-in { display:inline-flex; align-items:center; gap:2px; color:var(--c-ok); font-size:11.5px; font-weight:700; }
.cart-in svg { width:13px; height:13px; }
.cart-frow .cart-low { margin-left:0; }
.cart-add { flex:none; padding:3px 10px; background:#fff; color:var(--c-accent); border:1px solid var(--c-accent-line); border-radius:7px; font-size:12px; }
.cart-add:hover:not(:disabled) { background:var(--c-accent-soft); filter:none; }
.cart-add:disabled { padding:3px 10px; }
.cart-desc { margin:0 0 8px; color:#3a414c; font-size:12.5px; line-height:1.45; }
.cart-desc p,.cart-long p { margin:0 0 5px; white-space:pre-line; }
.cart-desc ul,.cart-long ul { margin:0 0 5px; padding-left:16px; }
.cart-desc li,.cart-long li { margin:1px 0; }
.cart-long-wrap { display:flex; flex-direction:column; min-height:0; padding-top:7px; border-top:1px solid var(--c-line); color:#3a414c; font-size:12.5px; line-height:1.45; }
.cart-long-wrap[open] { flex:1 1 auto; min-height:140px; }
.cart-long-wrap summary { flex:none; margin-bottom:4px; color:var(--c-ink); font-weight:600; cursor:pointer; }
.cart-long { flex:1; min-height:0; overflow:auto; padding-right:6px; outline-offset:2px; }
.cart-long h4 { margin:8px 0 3px; color:var(--c-ink); font-size:12px; }
.cart-facts { display:grid; grid-template-columns:auto 1fr; gap:3px 14px; margin:0; font-size:12px; }
.cart-facts dt { color:var(--c-muted); }
.cart-facts dd { margin:0; overflow-wrap:anywhere; font-variant-numeric:tabular-nums; }

/* Columna 3: cesta. Cabecera y pie fijos; lo de en medio se desplaza. */
.cart-tray { display:grid; grid-template-rows:auto minmax(0,1fr) auto; min-width:0; min-height:0; border-left:1px solid var(--c-line); background:#fbfbfc; }
.cart-bhead { display:flex; align-items:center; gap:8px; height:42px; padding:0 8px 0 14px; border-bottom:1px solid var(--c-line); }
.cart-bhead h3 { margin:0; font-size:14px; outline:none; }
.cart-count { display:inline-grid; place-items:center; min-width:18px; height:18px; padding:0 5px; border-radius:9px; background:var(--c-accent); color:#fff;
  font-size:11px; font-weight:700; font-variant-numeric:tabular-nums; }
.cart-sheet-toggle { display:none; }
.cart-modal .cart-bscroll { min-height:0; overflow:auto; }
.cart-bscroll { min-height:0; overflow:auto; }
.cart-items { margin:0; padding:0 14px; list-style:none; }
.cart-item { display:grid; grid-template-columns:28px minmax(0,1fr); align-items:center; gap:8px; padding:5px 0; }
.cart-item + .cart-item { border-top:1px solid var(--c-line); }
.cart-item.bad { margin:0 -14px; padding:5px 14px; background:var(--c-bad-soft); box-shadow:inset 3px 0 0 var(--c-bad); }
.cart-item .cart-thumb.small { width:28px; height:28px; border-radius:6px; font-size:12px; }
.cart-item-main { display:grid; gap:2px; min-width:0; }
/* El nombre se recorta con «…»; el formato se ve siempre a su lado. */
.cart-item-name { display:flex; min-width:0; font-size:12.5px; line-height:1.3; white-space:nowrap; }
.cart-item-title { min-width:0; overflow:hidden; font-weight:600; text-overflow:ellipsis; }
.cart-item-fmt { flex:none; color:var(--c-muted); white-space:pre; }
.cart-item-ctl { display:flex; align-items:center; gap:6px; min-width:0; }
.cart-item-ctl .cart-low,.cart-item-ctl .cart-stock { margin-left:0; font-size:11px; }
.cart-qty { display:inline-flex; align-items:center; height:22px; overflow:hidden; border:1px solid var(--c-line-strong); border-radius:7px; background:#fff; font-variant-numeric:tabular-nums; }
.cart-qty button { width:22px; height:22px; padding:0; background:#fff; color:var(--c-ink); border:0; border-radius:0; }
.cart-qty button:hover:not(:disabled) { background:var(--c-sunk); filter:none; }
.cart-qty button:disabled { background:#fff; color:#b6bcc5; border:0; }
.cart-qty-n { min-width:22px; text-align:center; font-weight:600; }
.cart-sum { font-size:12.5px; font-weight:700; font-variant-numeric:tabular-nums; white-space:nowrap; }
.cart-del { width:24px; height:24px; }
.cart-del svg { width:15px; height:15px; }
.cart-del:hover:not(:disabled) { color:var(--c-bad); }
.cart-empty { margin:6px 0; color:var(--c-muted); font-size:12.5px; }
.cart-items > .cart-empty { padding:6px 0; }
.cart-opts { grid-template-columns:minmax(0,1fr); min-width:0; display:grid; gap:7px; align-content:start; padding:8px 14px 10px; border-top:1px solid var(--c-line); }
.cart-bscroll > .cart-note,.cart-bscroll > .cart-block { margin:0 14px 10px; }
/* Qué se envía: control segmentado (radiogroup). */
.cart-actions { display:flex; padding:2px; border:1px solid var(--c-line); border-radius:9px; background:var(--c-sunk); }
.cart-action { flex:1; padding:4px 10px; background:transparent; color:var(--c-muted); border:0; border-radius:7px; font-size:12px; white-space:nowrap; }
.cart-action:hover:not(:disabled) { color:var(--c-ink); filter:none; }
.cart-action[aria-checked="true"] { background:#fff; color:var(--c-accent); box-shadow:0 1px 2px #0002; }
.cart-action:disabled { background:transparent; color:#a3a9b2; border:0; text-decoration:line-through; }
.cart-coupon { display:grid; gap:3px; min-width:0; }
.cart-select { display:flex; align-items:center; gap:6px; height:30px; padding:0 8px; border:1px solid var(--c-line-strong); border-radius:8px; background:#fff; }
.cart-select:focus-within { border-color:var(--c-accent); box-shadow:0 0 0 3px #2864c522; }
.cart-select svg { width:14px; height:14px; color:var(--c-muted); }
.cart-select select { flex:1; width:100%; min-width:0; text-overflow:ellipsis; height:100%; padding:0; border:0; background:transparent; color:var(--c-ink); font-size:12.5px; outline:none; }
.cart-compose { display:grid; gap:5px; min-width:0; }
.cart-tray-head { display:flex; align-items:center; justify-content:space-between; gap:8px; min-height:18px; }
.cart-intro { width:100%; min-height:54px; max-height:120px; resize:vertical; padding:7px 9px; border:1px solid var(--c-line-strong); border-radius:8px; background:#fff;
  color:var(--c-ink); font:inherit; font-size:12.5px; line-height:1.4; }
.cart-intro:focus-visible { outline:2px solid var(--c-accent); outline-offset:1px; }
.cart-msg { padding:7px 9px; border-radius:9px; background:var(--c-sunk); color:#3d434d; font-size:12px; line-height:1.4; overflow-wrap:anywhere; white-space:pre-wrap; }
.cart-intro-warn[hidden] { display:none; }
.cart-bfoot { display:grid; gap:7px; padding:8px 14px 12px; border-top:1px solid var(--c-line); background:#fff; }
.cart-total { display:flex; align-items:baseline; justify-content:space-between; gap:8px; color:var(--c-muted); font-size:11.5px; font-variant-numeric:tabular-nums; }
.cart-total b { color:var(--c-ink); font-size:17px; }
.cart-go-hint { margin:0; }
.cart-saved-note { color:var(--c-ok); font-weight:600; }
/* Guardar como cesta (desde el menú ⋯), arriba de la columna. */
.cart-save { display:grid; gap:6px; padding:10px 14px; border-bottom:1px solid var(--c-line); background:var(--c-sunk); }
.cart-save-title { font-size:12.5px; }
.cart-save input,.cart-save select { width:100%; padding:6px 9px; border:1px solid var(--c-line-strong); border-radius:7px; background:#fff; font-size:12.5px; }
.cart-save-actions { display:flex; align-items:center; justify-content:flex-end; gap:8px; }
/* Botones: uno principal por zona; los secundarios, discretos. */
.cart-btn { padding:9px 14px; border-radius:8px; font-size:13px; }
.cart-btn.ghost { background:#fff; color:#334155; border:1px solid var(--c-line-strong); }
.cart-btn.quiet { padding:7px 12px; background:transparent; color:#334155; border:1px solid var(--c-line); font-size:13px; font-weight:600; }
.cart-btn.ghost:disabled,.cart-btn.quiet:disabled { background:#eceef1; color:#8a919b; border-color:#e0e3e8; box-shadow:none; }
.cart-btn[aria-busy="true"] { cursor:progress; }
.cart-go-row { display:flex; gap:8px; }
.cart-go-row #cart-insert { flex:1; }
.cart-go-row { min-width:0; }
.cart-go-row .cart-btn { min-width:0; overflow:hidden; padding:9px 8px; font-size:12.5px; text-overflow:ellipsis; white-space:nowrap; }
.cart-go-row .cart-btn.ghost { flex:none; }
.cart-save .cart-btn { padding:6px 14px; }
.cart-linkbtn { padding:2px 4px; background:none; border:0; color:var(--c-accent); font-size:12px; font-weight:600; text-decoration:underline; text-underline-offset:2px; }
.cart-linkbtn:hover { filter:none; color:#1b4f9f; }
.cart-linkbtn[hidden] { display:none; }
.cart-block { margin:0; padding:7px 9px; border-radius:8px; background:var(--c-bad-soft); color:var(--c-bad); font-size:12px; }
.cart-block[hidden] { display:none; }

/* Cestas guardadas: panel encima de la ficha y la cesta (desde el menú ⋯); los resultados siguen a la vista. */
.cart-overlay { grid-column:1 / -1; grid-row:1; position:relative; z-index:4; display:grid; grid-template-rows:auto minmax(0,1fr); min-height:0; background:#fff; }
/* Con las guardadas abiertas, el resto del cuerpo no se ve ni recibe el foco (la cesta sigue igual). */
.cart-modal[data-view="saved"] .cart-left,.cart-modal[data-view="saved"] .cart-info,.cart-modal[data-view="saved"] .cart-tray { visibility:hidden; }
.cart-ov-head { display:flex; flex-wrap:wrap; align-items:center; gap:6px 14px; padding:10px 16px; border-bottom:1px solid var(--c-line); }
.cart-ov-head h3 { margin:0; font-size:15px; }
.cart-saved-search { max-width:360px; height:32px; margin-left:auto; }
.cart-ov-count { flex:none; min-width:60px; }
.cart-back { display:inline-flex; align-items:center; gap:4px; padding:5px 10px 5px 6px; }
.cart-saved { display:grid; gap:6px; align-content:start; overflow:auto; padding:10px 16px 16px; }
.cart-saved-item { overflow:hidden; background:#fff; border:1px solid var(--c-line); border-radius:10px; }
.cart-saved-item.sel { border-color:var(--c-accent); box-shadow:inset 0 0 0 1px var(--c-accent); }
.cart-card { display:grid; grid-template-columns:minmax(0,1fr) auto 76px 20px; align-items:center; gap:12px; width:100%; padding:7px 12px; text-align:left;
  background:transparent; color:var(--c-ink); border:0; border-radius:0; }
.cart-modal .cart-card { font-weight:400; }
.cart-card:hover { background:#fafbfc; filter:none; }
.cart-saved-item.sel .cart-card { background:var(--c-accent-soft); }
.cart-card-main { display:grid; gap:1px; min-width:0; }
.cart-card-head { display:flex; flex-wrap:wrap; align-items:center; gap:8px; min-width:0; }
.cart-card-head b { font-size:13px; }
.cart-card-total { font-size:13px; font-weight:700; text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
.cart-chev { display:grid; place-items:center; color:var(--c-muted); }
.cart-tag { color:var(--c-accent); font-size:12.5px; font-weight:650; }
.cart-desc-line { color:#3d434d; font-size:12.5px; }
.cart-minithumbs { display:flex; align-items:center; gap:4px; }
.cart-more { min-width:26px; height:26px; display:inline-grid; place-items:center; padding:0 4px; border-radius:6px; background:var(--c-sunk); color:var(--c-muted); font-size:11px; font-weight:700; }
.cart-card-detail { display:grid; gap:8px; padding:8px 12px 12px; border-top:1px solid var(--c-line); }
.cart-card-detail p { margin:0; }
.cart-card-sum { display:flex; align-items:baseline; gap:12px; }
.cart-card-sum .cart-total { gap:10px; }
.cart-card-actions { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.cart-card-actions .cart-btn { padding:7px 12px; font-size:12.5px; }
.cart-confirm { flex:1; color:var(--c-bad); font-size:12.5px; font-weight:600; }
.cart-btn.danger { background:var(--c-bad); color:#fff; }
.cart-linkbtn.danger { color:var(--c-bad); }
.cart-saved-lines { display:grid; gap:4px; margin:0; padding:0; list-style:none; }
.cart-saved-lines li { display:grid; grid-template-columns:28px minmax(0,1fr) auto 72px; align-items:center; gap:10px; font-size:12.5px; }
.cart-saved-lines .cart-thumb.small { width:28px; height:28px; border-radius:6px; font-size:12px; }
.cart-saved-name { display:flex; min-width:0; white-space:nowrap; }
.cart-saved-lines .cart-sum { text-align:right; }
.cart-saved-qty { font-weight:600; font-variant-numeric:tabular-nums; }

/* Visor de fotos: encima de todo el pop-up. */
.cart-lb { position:absolute; inset:0; z-index:10; }
.cart-lb-scrim { position:absolute; inset:0; background:#0f172a99; }
.cart-lightbox { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); display:grid; gap:6px; width:min(560px, calc(100% - 24px)); max-height:calc(100% - 24px);
  padding:10px 14px 14px; background:#fff; border-radius:14px; box-shadow:0 20px 60px #0006; }
.cart-lb-h { display:flex; align-items:center; gap:10px; min-width:0; }
.cart-lb-h b { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.cart-lb-h .cart-note { flex:none; }
.cart-lb-main { display:grid; grid-template-columns:36px minmax(0,1fr) 36px; align-items:center; gap:6px; min-height:0; }
.cart-lb-img { position:relative; display:grid; place-items:center; height:min(400px, 52dvh); font-size:48px; }
.cart-lb-img img { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; }
.cart-lb-img .cart-note { position:relative; }
.cart-lb-arrow { display:grid; place-items:center; width:34px; height:34px; padding:0; background:#fff; color:var(--c-ink); border:1px solid var(--c-line-strong); border-radius:50%; }
.cart-lb-arrow:hover { background:var(--c-sunk); filter:none; }
.cart-lb-thumbs { display:flex; flex-wrap:wrap; justify-content:center; gap:8px; }
.cart-lb-th { position:relative; width:52px; height:52px; padding:0; overflow:hidden; background:#fff; border:1px solid var(--c-line); border-radius:8px; }
.cart-lb-th[aria-current="true"] { border:2px solid var(--c-accent); }
.cart-lb-th:hover { filter:none; border-color:#9fb6dc; }
.cart-lb-mini { position:absolute; inset:0; display:grid; place-items:center; font-size:14px; }
.cart-toast { position:fixed; left:50%; bottom:24px; z-index:70; transform:translateX(-50%); padding:8px 14px; border-radius:9px; background:#242a34; color:#fff; font-size:13px; }
.cart-toast[hidden] { display:none; }

/* Ventanas medianas: las tres columnas, más estrechas. */
@media (max-width:1100px) {
  .cart-body { grid-template-columns:minmax(260px,340px) minmax(0,1fr) 280px; }
  .cart-phd { grid-template-columns:minmax(0,1fr); }
  .cart-photo { width:96px; height:96px; }
}
/* Móvil: resultados → ficha → cesta, en una sola columna que se desplaza; la cesta es una hoja
   fija abajo (plegada: total e «Insertar»; desplegada: todo). */
@media (max-width:760px) {
  .cart-scrim { padding:0; }
  .cart-modal { width:100%; height:100dvh; grid-template-rows:auto minmax(0,1fr); border:0; border-radius:0; }
  .cart-head { flex-wrap:wrap; gap:8px 10px; padding:8px 8px 8px 14px; }
  .cart-search { order:3; flex:1 0 100%; max-width:none; height:38px; }
  .cart-saved-btn { margin-left:auto; height:32px; padding:0 10px; }
  .cart-saved-btn + .cart-x { margin-left:0; }
  .cart-saved-search { order:3; flex:1 0 100%; max-width:none; margin-left:0; }
  .cart-search input { font-size:16px; }
  .cart-body { display:flex; flex-direction:column; overflow:auto; }
  .cart-left { flex:none; overflow:visible; border-right:0; }
  .cart-row { grid-template-columns:44px minmax(0,1fr); }
  .cart-row .cart-thumb { width:44px; height:44px; }
  .cart-chip { padding:4px 6px 4px 8px; }
  .cart-info { display:none; flex:none; overflow:visible; border-top:6px solid var(--c-sunk); }
  .cart-body.info-open .cart-info { display:flex; }
  .cart-long-wrap[open] { min-height:0; }
  .cart-long { max-height:50dvh; }
  .cart-tray { position:sticky; bottom:0; z-index:3; flex:none; margin-top:auto; border-left:0; border-top:1px solid var(--c-line-strong); border-radius:14px 14px 0 0;
    box-shadow:0 -10px 28px #0000001f; grid-template-rows:auto auto auto; }
  .cart-sheet-toggle { display:inline-grid; }
  .cart-sheet-toggle svg { transition:transform .15s ease; }
  .cart-tray.sheet-open .cart-sheet-toggle svg { transform:rotate(180deg); }
  .cart-bscroll { display:none; }
  .cart-tray.sheet-open .cart-bscroll { display:block; max-height:58dvh; }
    .cart-lb { position:fixed; }
  .cart-overlay { position:fixed; inset:0; }
  .cart-lb { position:fixed; }
  .cart-saved { padding:10px 12px 16px; }
  .cart-card { grid-template-columns:minmax(0,1fr) auto 20px; }
  .cart-card .cart-minithumbs { grid-column:1; grid-row:2; }
  .cart-lb-img { height:min(360px, 46dvh); }
  .cart-lb-main { grid-template-columns:30px minmax(0,1fr) 30px; }
  .cart-lb-arrow { width:30px; height:30px; }
}
@media (prefers-reduced-motion:no-preference) {
  .cart-modal { animation:cart-pop .16s ease-out; }
  @keyframes cart-pop { from { transform:translateY(6px); opacity:.6; } to { transform:none; opacity:1; } }
}
/* Selector $ en el cuadro de mensaje (como las sugerencias de emoji). */
.cart-dpick-host { position:relative; }
.cart-dpick { position:absolute; left:0; right:0; bottom:calc(100% + 6px); z-index:30; display:grid; gap:2px; max-height:300px; overflow:auto; padding:5px;
  background:#fff; border:1px solid #d8dde5; border-radius:9px; box-shadow:0 8px 24px #15223826; }
.cart-dpick[hidden] { display:none; }
.cart-dpick-hd { padding:4px 8px; color:#5c606b; font-size:11px; font-weight:700; letter-spacing:.03em; text-transform:uppercase; }
.cart-dpick button { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:10px; padding:6px 8px; text-align:left;
  background:transparent; color:#202127; border:0; border-radius:6px; font-weight:400; }
.cart-dpick button.on,.cart-dpick button:hover:not(:disabled) { background:#e8f0fc; filter:none; }
.cart-dpick button:disabled { opacity:.6; background:transparent; border:0; }
.cart-tg { color:#2864c5; font-weight:700; }
.cart-ds { display:block; color:#6b6f78; font-size:12px; }
/* Configuración y Mi cuenta. */
.cart-settings { display:grid; gap:10px; margin:18px 0; }
.cart-settings h3 { margin:0; font-size:15px; }
.cart-settings-list { display:grid; gap:0; border:1px solid #e3e5ea; border-radius:10px; overflow:hidden; }
.cart-settings-row { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; padding:10px 12px; border-bottom:1px solid #eceef1; }
.cart-settings-row:last-child { border-bottom:0; }
.cart-settings-actions { display:flex; flex-wrap:wrap; align-items:center; gap:6px; }
.cart-editor { display:grid; gap:8px; padding:12px; border:1px solid #e3e5ea; border-radius:10px; background:#fafbfc; }
.cart-editor label { display:grid; gap:4px; font-size:12px; color:#55555d; }
.cart-editor input,.cart-editor select { padding:6px 9px; border:1px solid #d8dde5; border-radius:7px; background:#fff; }
.cart-editor-row { display:flex; flex-wrap:wrap; align-items:end; gap:8px; }
.cart-editor-items,.cart-editor-results { display:grid; gap:4px; }
.cart-editor-item,.cart-editor-result { display:flex; align-items:center; gap:8px; font-size:13px; }
.cart-editor-item input { width:64px; }
/* Interruptor «Enlaces de cesta» (Configuración → Funcionamiento) */
.cart-switch { display:inline-flex; align-items:center; gap:10px; padding:4px 6px; border:0; background:none; font:inherit; color:inherit; cursor:pointer; border-radius:8px; }
.cart-switch:focus-visible { outline:2px solid #2f6fde; outline-offset:2px; }
.cart-switch:disabled { opacity:.6; cursor:progress; }
.cart-switch-track { position:relative; width:36px; height:20px; border-radius:10px; background:#b9bec6; transition:background .15s; flex:none; }
.cart-switch-track::after { content:''; position:absolute; top:2px; left:2px; width:16px; height:16px; border-radius:50%; background:#fff; transition:transform .15s; }
.cart-switch[aria-checked="true"] .cart-switch-track { background:#1f8a4c; }
.cart-switch[aria-checked="true"] .cart-switch-track::after { transform:translateX(16px); }
/* Configuración → Funcionamiento */
.cart-operation .hint { margin:2px 0 0; }
.cart-op-row { display:grid; gap:4px; padding:10px 12px; border:1px solid #e3e5ea; border-radius:10px; }
.cart-op-head { display:flex; align-items:center; flex-wrap:wrap; gap:10px; }
.cart-op-on { color:#1d7a3c; font-size:13px; }
.cart-op-off { color:#a15c07; font-size:13px; }
.cart-switch-label { font-weight:600; }
/* Configuración pinta todos sus botones en marrón: el interruptor y el enlace no lo son. */
.settings-center-main .cart-settings button.cart-switch,.settings-center-main .cart-settings button.cart-switch:hover:not(:disabled) { padding:4px 6px; background:transparent; border-color:transparent; color:inherit; font-weight:600; }
.settings-center-main .cart-settings button:disabled { opacity:.5; cursor:not-allowed; }
.cart-op-row textarea { width:100%; padding:7px 9px; border:1px solid #d8dde5; border-radius:7px; font:inherit; font-size:13px; resize:vertical; }
.cart-op-actions { display:flex; align-items:center; gap:8px; }
.cart-op-row .cart-block[hidden] { display:none; }
/* Configuración → Cupones. */
.cart-coupons .cart-settings-list { border-radius:12px; }
.cart-coupon-row { align-items:center; }
.cart-coupon-main { display:grid; gap:2px; min-width:0; }
.cart-coupon-title { display:flex; align-items:center; gap:8px; }
.cart-coupon-new { margin:6px 0 0; font-size:13px; }
.cart-coupon-grid { display:grid; grid-template-columns:150px minmax(0,1fr) 170px 170px; gap:8px 12px; }
.cart-coupon-grid label.wide { grid-column:span 2; }
.cart-coupon-form input[type="date"] { min-height:32px; }
@media (max-width:820px) { .cart-coupon-grid { grid-template-columns:minmax(0,1fr); } .cart-coupon-row { flex-wrap:wrap; } }
