:root{--bg:#ffffff;--ink:#111;--muted:#6b7280;--border:#e5e7eb;--primary:#111827}
*{box-sizing:border-box}
body{margin:0;font-family:ui-sans-serif,system-ui,Arial;color:var(--ink);background:var(--bg)}
.topbar{position:sticky;top:0;z-index:10;background:#fff;border-bottom:1px solid var(--border);padding:12px 16px;display:flex;align-items:center;justify-content:space-between}
.brand{font-weight:800;letter-spacing:.5px}
.actions{display:flex;gap:8px;align-items:center}
.wrap{max-width:1200px;margin:0 auto;padding:16px;display:grid;grid-template-columns:1.2fr .8fr;gap:16px}
.col .panel{border:1px solid var(--border);border-radius:12px;overflow:hidden;background:#fff}
.panel__header{padding:12px 12px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}
.lista{max-height:70vh;overflow:auto}
.item{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;padding:10px 12px;border-bottom:1px solid var(--border)}
.item .name{font-weight:600}
.item .price{min-width:110px;text-align:right}
.item .add{min-width:100px}
.input{padding:10px;border:1px solid var(--border);border-radius:10px;min-width:220px}
.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.row.end{justify-content:flex-end}
.btn{padding:10px 14px;border:1px solid var(--border);border-radius:10px;background:#fff;cursor:pointer}
.btn:hover{filter:brightness(0.98)}
.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}
.btn.outline{background:#fff;color:#111}
.btn.sm{padding:8px 10px}
.muted{color:var(--muted);font-size:12px}
.foot{border-top:1px solid var(--border);padding:12px 16px;color:var(--muted);text-align:center}
.carrito__tabla{padding:8px 12px}
.thead,.tbody .rowg{display:grid;grid-template-columns:70px 1fr 140px 120px 60px;gap:8px;align-items:center}
.thead{font-size:12px;color:var(--muted);padding:6px 0;border-bottom:1px solid var(--border)}
.rowg{padding:10px 0;border-bottom:1px solid var(--border)}
.qtyCtl{display:flex;gap:6px;align-items:center}
.qtyCtl .btn{padding:6px 10px}
.totales{padding:8px 12px}
.totales .line{display:flex;justify-content:space-between;padding:4px 0}
.totales .total{border-top:1px dashed var(--border);margin-top:6px;padding-top:6px;font-size:18px}
.form{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:12px}
.form textarea{grid-column:1/-1}
@media (max-width: 920px){.wrap{grid-template-columns:1fr}.lista{max-height:none}}
/* Bloque de categorías lindo */
.panel__body{ display:block; }

.panel__body .catwrap{
  grid-column: 1 / -1;
  width: 100%;
}

/* --- Bloque de categorías (grid compacto) --- */
/* --- CATEGORÍAS (grid compacto, ancho y sin superposiciones) --- */
.catwrap{
    display:grid;
    grid-template-areas:
      "label"
      "bar";
    grid-template-columns: 1fr;
    gap:8px;
    margin:8px 12px 10px;
  }
  
  .catlabel{
    grid-area: label;
    font-weight:700;
    color:var(--muted);
    padding:2px 2px 0 2px;
  }
  
  .catbar{
    grid-area: bar;
    display:grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); /* ancho de cada chip */
    justify-items:start;
    align-items:start;
    align-content:start;                 /* evita solapamientos verticales */
    gap:8px;
    padding:8px;
    border:1px solid var(--border);
    border-radius:10px;
    background:linear-gradient(#fafafa,#fbfbfb);
    grid-auto-rows:minmax(36px, auto);  /* altura mínima por chip */
  }
  
  .catbar .chip{
    width:max-content;        /* ancho según texto */
    max-width:100%;           /* no excede su celda */
    white-space:nowrap;       /* no pasa a 2 líneas */
    overflow:hidden;          /* evita desborde */
    text-overflow:ellipsis;   /* agrega “…” si no entra */
  }
  
  .chip{
    border:1px solid var(--border);
    border-radius:999px;
    padding:6px 10px;
    background:#fff;
    cursor:pointer;
    font-weight:600;
    font-size:.9rem;
    line-height:1.1;
    text-align:center;
    transition:transform .05s, box-shadow .15s, background .15s;
  }
  .chip:hover{ transform:translateY(-1px); box-shadow:0 3px 8px rgba(0,0,0,.06); }
  .chip.active{ background:var(--primary); color:#fff; border-color:var(--primary); }
  
  /* Responsive más apretado */
  @media (max-width:700px){
    .catwrap{ gap:6px; margin:6px 10px 8px; }
    .catbar{
      grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
      gap:6px; padding:6px;
    }
    .chip{ padding:5px 9px; font-size:.88rem; }
  }

/* Estilo uniforme para el <select> del horario */
select.input{
  width:100%;
  height:42px;                 /* igual que tus inputs */
  padding:10px 36px 10px 12px; /* espacio para la flecha */
  border:1px solid var(--border);
  border-radius:10px;
  background:#fff;
  font:inherit;
  color:inherit;

  /* quitar apariencia nativa y usar flecha propia */
  -webkit-appearance:none;
  -moz-appearance:none;
  appearance:none;

  /* flechita (SVG embebido) */
  background-image: url("data:image/svg+xml;utf8,\
<svg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23111827' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
  background-repeat:no-repeat;
  background-position: right 10px center;
}

select.input:focus{
  outline:none;
  box-shadow:0 0 0 3px rgba(17,24,39,.08);
  border-color: var(--primary);
}

/* Opcional: placeholder gris cuando no hay valor */
select.input option[disabled][selected]{
  color: var(--muted);
}
