/* Apps del personal: más anchas, más densas, mismos colores. */
.apps { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 14px; }
.app-card {
  display: flex; flex-direction: column; gap: 6px; padding: 18px; min-height: 150px;
  border-radius: var(--radio); background: var(--noche-2); border: 1px solid var(--linea);
  color: var(--tinta); text-decoration: none;
}
a.app-card:hover { border-color: var(--oro); }
.app-card h2 { font-size: 1.25rem; }
.app-card p { font-size: 0.9rem; color: var(--tinta-2); flex: 1; }
.app-card .chip { align-self: flex-start; }
.app-card.inactiva { opacity: .6; }

.pestanas { display: flex; gap: 6px; border-bottom: 1px solid var(--linea); margin: 8px 0 20px; overflow-x: auto; }
.pestanas button { flex: none; background: none; border: 0; padding: 12px 14px; cursor: pointer; color: var(--tinta-2); font-family: var(--display); font-weight: 600; font-size: 1rem; border-bottom: 3px solid transparent; }
.pestanas button[aria-selected="true"] { color: var(--tinta); border-bottom-color: var(--oro); }

.cifras { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 12px; }
.cifra { padding: 16px; border-radius: var(--radio); background: var(--noche-2); border: 1px solid var(--linea); }
.cifra b { display: block; font-family: var(--display); font-size: 1.8rem; font-weight: 600; color: var(--oro-claro); }
.cifra span { font-size: 0.875rem; color: var(--tinta-2); }

.tabla-wrap { overflow-x: auto; border: 1px solid var(--linea); border-radius: var(--radio); }
table { width: 100%; border-collapse: collapse; font-size: 0.92rem; }
th, td { text-align: left; padding: 10px 14px; border-bottom: 1px solid var(--linea); white-space: nowrap; }
th { font-weight: 700; color: var(--tinta-2); background: rgba(255,246,229,.04); position: sticky; top: 0; }
tr:last-child td { border-bottom: 0; }
td.num, th.num { text-align: right; font-variant-numeric: tabular-nums; }
.barra { width: 140px; height: 8px; border-radius: 8px; background: rgba(255,246,229,.1); overflow: hidden; display: inline-block; vertical-align: middle; margin-right: 8px; }
.barra i { display: block; height: 100%; background: var(--oro); }
code { font-family: var(--display); font-weight: 600; letter-spacing: .05em; color: var(--oro-claro); }

.fila-form { display: grid; grid-template-columns: 1fr 1fr auto; gap: 12px; align-items: end; }
@media (max-width: 640px) { .fila-form { grid-template-columns: 1fr; } }

/* App de acceso */
.escaner { position: relative; border-radius: var(--radio); overflow: hidden; background: #000; aspect-ratio: 4 / 3; }
.escaner video { width: 100%; height: 100%; object-fit: cover; }
.escaner .marco { position: absolute; inset: 18%; border: 3px solid var(--oro); border-radius: 18px; box-shadow: 0 0 0 999px rgba(0,0,0,.35); }
.resultado { position: fixed; inset: 0; z-index: 40; display: grid; place-items: center; text-align: center; padding: 24px; }
.resultado.ok { background: #0F7A4A; }
.resultado.mal { background: #A3172A; }
.resultado.alerta { background: #9A6A00; }
.resultado .icono { font-size: 5rem; line-height: 1; font-weight: 800; }
.resultado h1 { font-size: 2.4rem; margin-top: 12px; }
.resultado p { font-size: 1.2rem; margin-top: 8px; }
.resultado .btn { margin-top: 28px; background: rgba(255,255,255,.95); color: #111; min-width: 240px; }
.contador { font-family: var(--display); font-size: 1.1rem; }

/* Inicio de turno */
.empezar { position: fixed; inset: 0; z-index: 60; display: grid; place-items: center; padding: 24px; text-align: center; background: var(--noche); }
.empezar > * { width: 100%; max-width: 420px; }

/* Cocina (KDS) */
.kds { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; }
.comanda { display: flex; flex-direction: column; gap: 10px; padding: 16px; border-radius: var(--radio); background: var(--crema); color: var(--noche); border-top: 8px solid var(--oro); }
.comanda.preparando { border-top-color: #4C8DFF; }
.comanda.tarde { border-top-color: var(--rojo); box-shadow: 0 0 0 3px var(--rojo); }
.comanda header { display: flex; justify-content: space-between; align-items: baseline; }
.comanda .mesa { font-family: var(--display); font-weight: 600; font-size: 2rem; }
.comanda .tiempo { font-family: var(--display); font-size: 1.3rem; font-variant-numeric: tabular-nums; }
.comanda.tarde .tiempo { color: var(--rojo); font-weight: 700; }
.comanda ul { font-size: 1.15rem; flex: 1; }
.comanda li + li { margin-top: 4px; }
.comanda .small { color: #4B4566; }
.comanda .btn-borde { color: var(--noche); border-color: rgba(20,15,46,.35); }

/* Meseros */
.entrega { padding: 18px; border-radius: var(--radio); background: var(--noche-2); border: 1px solid var(--linea); display: grid; gap: 12px; }
.entrega.mia { border-color: var(--oro); background: rgba(246,185,59,.1); }
.entrega .mesa { font-family: var(--display); font-weight: 600; font-size: 2rem; color: var(--oro-claro); }

/* Restaurante */
.llegada { padding: 18px; border-radius: var(--radio); text-align: center; }
.llegada.ok { background: #0F7A4A; }
.llegada.alerta { background: #9A6A00; }
.llegada.mal { background: #A3172A; }
.llegada .grande { font-family: var(--display); font-weight: 600; font-size: 2.2rem; }
.qr-mesas { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 14px; }
.qr-mesa { display: grid; justify-items: center; gap: 8px; padding: 14px; border-radius: 12px; background: var(--crema); color: var(--noche); text-align: center; }
.qr-mesa b { font-family: var(--display); font-size: 1.4rem; }
.qr-mesa svg { width: 120px; height: 120px; }
.qr-mesa span { font-size: .8rem; }
.solo-imprimir { display: none; }

@media print {
  @page { margin: 10mm; }
  body { background: #fff !important; color: #000; }
  .no-imprimir, .demo-banner, .top, .pestanas { display: none !important; }
  .solo-imprimir { display: block; color: #000; }
  .wrap { max-width: none; padding: 0; }
  .tabla-wrap { border-color: #999; overflow: visible; }
  th, td { color: #000 !important; background: #fff !important; border-color: #bbb; white-space: normal; }
  .qr-mesas { grid-template-columns: repeat(3, 1fr); }
  .qr-mesa { border: .3mm solid #999; break-inside: avoid; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}

/* Food trucks y tiendas */
.enlace { background: none; border: 0; color: var(--oro-claro); cursor: pointer; text-decoration: underline; }
.fila-stock { display: inline-flex; gap: 6px; align-items: center; }
.fila-stock input, td input[type=number] { min-height: 38px; padding: 0 8px; border-radius: 8px; border: 1px solid var(--linea); background: var(--noche); color: var(--tinta); }
.fila-stock .btn { min-height: 38px; padding: 0 14px; }
td input[type=checkbox] { width: 22px; height: 22px; accent-color: var(--oro); }
.grilla-producto { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; }
.zona-gradas { font-family: var(--display); font-weight: 600; font-size: 1.25rem; line-height: 1.2; }
.modo-garzon { display: flex; gap: 8px; margin-top: 18px; }
.modo-garzon button { flex: 1; }

/* Ingreso con usuario y contraseña */
.ingreso { max-width: 420px; padding-top: 48px; text-align: center; }
.ingreso img { margin: 0 auto; border-radius: 20px; }
.ingreso form { text-align: left; }
.sesion { display: inline-flex; gap: 10px; align-items: center; }

/* Panel: piezas comunes */
.btn-chico { min-height: 36px; padding: 0 14px; font-size: .9rem; }
.fila-botones { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.fila-botones input { flex: 1; min-width: 160px; min-height: 44px; padding: 0 12px; border-radius: 10px; border: 1px solid var(--linea); background: var(--noche); color: var(--tinta); }
.fila-pedido { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.stack-sm > * + * { margin-top: 6px; }
.interruptor { display: inline-flex; gap: 8px; align-items: center; cursor: pointer; }
.interruptor input { width: 20px; height: 20px; accent-color: var(--oro); }
.pestanas-sub { margin-top: 0; }
tr.inactivo td { opacity: .55; }
td.motivo { white-space: normal; min-width: 180px; font-size: .85rem; color: var(--tinta-2); }
select, textarea { font: inherit; }
.campo select, .campo textarea { width: 100%; min-height: 48px; padding: 10px 12px; border-radius: 12px; border: 1px solid var(--linea); background: var(--noche-2); color: var(--tinta); }

/* Locales */
.local-celda { display: inline-flex; align-items: center; gap: 10px; }
.local-celda img, .logo-vacio { width: 36px; height: 36px; border-radius: 10px; object-fit: cover; flex: none; }
.logo-vacio { display: grid; place-items: center; background: var(--escenario); font-family: var(--display); font-weight: 600; }
.foto-producto { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.foto-producto img, .foto-producto .sin-foto { width: 120px; height: 120px; border-radius: 14px; object-fit: cover; }
.foto-producto label input[type=file] { display: none; }
.sin-foto { display: grid; place-items: center; background: rgba(255,246,229,.06); border: 1px dashed var(--linea); color: var(--tinta-2); font-size: .8rem; text-align: center; }
.producto-admin { display: grid; grid-template-columns: 88px 1fr; gap: 14px; padding: 14px; border-radius: var(--radio); background: var(--noche-2); border: 1px solid var(--linea); }
.producto-admin > img, .producto-admin > .sin-foto { width: 88px; height: 88px; border-radius: 12px; object-fit: cover; }
.producto-admin .precio { color: var(--oro-claro); }
.controles-producto { display: flex; flex-wrap: wrap; gap: 10px 14px; align-items: center; margin-top: 8px; }
.categorias { display: flex; flex-wrap: wrap; gap: 8px; }
.chip-cat { display: inline-flex; align-items: center; gap: 6px; font-size: .9rem; padding: 6px 6px 6px 12px; background: rgba(246,185,59,.14); color: var(--oro-claro); }
.chip-cat button { background: rgba(255,246,229,.12); border: 0; color: inherit; width: 22px; height: 22px; border-radius: 50%; cursor: pointer; line-height: 1; }
@media (max-width: 520px) { .producto-admin { grid-template-columns: 64px 1fr; } .producto-admin > img, .producto-admin > .sin-foto { width: 64px; height: 64px; } }

/* Autorizaciones */
.aprobaciones { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 14px; }
.aprob-cuerpo { display: grid; grid-template-columns: 96px 1fr; gap: 14px; align-items: start; }
.aprob-cuerpo img, .aprob-cuerpo .sin-foto { width: 96px; height: 96px; border-radius: 12px; object-fit: cover; }
.aprob-cuerpo li { display: grid; grid-template-columns: 88px 1fr; gap: 8px; }
.aprob-cuerpo li.cambia { color: var(--oro-claro); }
.aprob-cuerpo s { color: var(--tinta-2); }

/* Carga de wallet */
.resultado-cliente { width: 100%; display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 12px; background: var(--noche); border: 1px solid var(--linea); color: var(--tinta); cursor: pointer; text-align: left; }
.resultado-cliente span { display: grid; }
.cliente-elegido { display: grid; grid-template-columns: 1fr auto; gap: 6px 14px; align-items: center; padding: 14px; border-radius: 12px; background: var(--crema); color: var(--noche); }
.cliente-elegido > div { display: grid; }
.cliente-elegido .muted { color: #5B5578; }
.cliente-elegido b { font-family: var(--display); font-size: 1.2rem; }
.cliente-elegido .enlace { color: var(--escenario); justify-self: start; }
.saldo-mini { text-align: right; }
.montos-rapidos { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.montos-rapidos .btn { min-height: 40px; padding: 0 6px; font-size: .9rem; }
.producto-admin > div { min-width: 0; }
.fila-stock input { width: 76px; }
.aprobacion .fila-botones input { order: 3; flex-basis: 100%; }
.aprob-cuerpo li { grid-template-columns: 82px 1fr; }
.linea-pago { display: flex; justify-content: space-between; align-items: baseline; gap: 14px; padding: 10px 0; border-bottom: 1px solid var(--linea); }
.linea-pago:last-child { border-bottom: 0; }
.linea-pago > b { white-space: nowrap; }
.carga-masiva label.btn input[type=file] { display: none; }
tr.fila-error td { background: rgba(214,40,57,.10); }
.error-txt { color: #FF9AA4; }
.aviso-ok { padding: 12px 14px; border-radius: 12px; background: rgba(61,214,140,.12); border: 1px solid rgba(61,214,140,.35); color: #BFF5DA; }
details.panel summary { cursor: pointer; }

/* Personal y accesos */
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.grupos-personas { display: flex; flex-wrap: wrap; gap: 8px; }
.grupos-personas button {
  display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 14px; border-radius: 999px;
  border: 1px solid var(--linea); background: var(--noche-2); color: var(--tinta); font: inherit; font-weight: 700; cursor: pointer;
}
.grupos-personas button.activo { background: var(--oro); border-color: var(--oro); color: var(--noche); }
.grupos-personas .cuenta { min-width: 22px; padding: 1px 7px; border-radius: 999px; background: rgba(255,246,229,.12); font-size: .8rem; text-align: center; }
.grupos-personas button.activo .cuenta { background: rgba(20,15,46,.15); }
.buscar-personas input { width: 100%; }
.personas { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 14px; }
.persona { display: grid; gap: 12px; align-content: start; padding: 16px; border-radius: var(--radio); background: var(--noche-2); border: 1px solid var(--linea); }
.persona.inactivo { opacity: .6; }
.persona.editando { border-color: var(--oro); }
.persona-cabeza { display: flex; align-items: center; gap: 12px; }
.persona-cabeza > div { display: grid; flex: 1; min-width: 0; }
.persona-cabeza b { font-family: var(--display); font-size: 1.1rem; }
.avatar { width: 42px; height: 42px; flex: none; display: grid; place-items: center; border-radius: 50%; background: var(--escenario); font-family: var(--display); font-weight: 600; }
.persona-datos { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 14px; margin: 0; }
.persona-datos div.ancho { grid-column: 1 / -1; }
.persona-datos dt { font-size: .75rem; color: var(--tinta-2); }
.persona-datos dd { margin: 0; overflow-wrap: anywhere; }
.persona-datos a { color: var(--oro-claro); }
.persona .fila-botones input { min-width: 120px; }

/* App del garzón (tipo delivery) */
.garzon { padding-bottom: 140px; }
.estado-garzon { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-top: 16px; }
.estado-garzon .chip { font-size: .95rem; padding: 6px 14px; }
.zonas-garzon { display: flex; flex-wrap: wrap; gap: 6px; }
.aviso-zona { padding: 18px; border-radius: var(--radio); background: var(--oro); color: var(--noche); display: grid; gap: 8px; animation: latir 1.2s ease-in-out 3; }
.aviso-zona h2 { font-size: 1.5rem; }
.aviso-zona .btn { background: var(--noche); color: var(--crema); }
.pausa-garzon { padding: 22px; border-radius: var(--radio); background: #2C2266; border: 2px solid var(--oro); text-align: center; display: grid; gap: 8px; }
.cuenta-pausa { font-family: var(--display); font-size: 3.4rem; line-height: 1; color: var(--oro-claro); font-variant-numeric: tabular-nums; }
.pausa-garzon .btn { background: var(--oro); color: var(--noche); }
.esperando { text-align: center; padding: 30px 10px; display: grid; gap: 10px; justify-items: center; }
.radar { width: 86px; height: 86px; border-radius: 50%; background: radial-gradient(circle, var(--oro) 0 14px, transparent 15px); position: relative; }
.radar::after { content: ''; position: absolute; inset: 0; border-radius: 50%; border: 3px solid var(--oro); animation: radar 1.8s ease-out infinite; }
@keyframes radar { from { transform: scale(.3); opacity: 1; } to { transform: scale(1.4); opacity: 0; } }
@keyframes latir { 50% { transform: scale(1.02); } }
@media (prefers-reduced-motion: reduce) { .radar::after, .aviso-zona { animation: none; } }
.entrega-garzon { padding: 18px; border-radius: var(--radio); background: var(--noche-2); border: 1px solid var(--linea); display: grid; gap: 12px; }
.entrega-garzon.principal { background: var(--crema); color: var(--noche); border: 0; box-shadow: 0 14px 34px rgba(0,0,0,.35); }
.entrega-garzon.principal .muted { color: #5B5578; }
.paso { display: grid; gap: 2px; padding-left: 14px; border-left: 4px solid var(--linea); }
.paso > span:first-child { font-size: .78rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; opacity: .75; }
.paso b { font-family: var(--display); font-weight: 600; font-size: 1.25rem; line-height: 1.2; }
.paso.activo { border-left-color: var(--oro); }
.principal .paso.activo b { font-size: 1.6rem; }
.paso.hecho { opacity: .5; }
.paso.hecho b { text-decoration: line-through; }
.items-entrega li { padding: 2px 0; }
.btn-grande { min-height: 60px; font-size: 1.15rem; }
.acciones-garzon { position: fixed; left: 0; right: 0; bottom: 0; z-index: 9; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; padding: 12px 16px calc(12px + env(safe-area-inset-bottom)); background: linear-gradient(to top, var(--noche) 75%, rgba(20,15,46,0)); }
.acciones-garzon .btn { min-height: 52px; font-size: .95rem; }
.acciones-garzon .btn:only-child { grid-column: 1 / -1; }
.aviso-error { padding: 12px 14px; border-radius: 12px; background: rgba(214,40,57,.16); border: 1px solid rgba(214,40,57,.5); color: #FFC2C8; }
.zonas-toggle { display: flex; flex-wrap: wrap; gap: 6px; }
.zonas-toggle button { min-height: 36px; padding: 0 12px; border-radius: 999px; border: 1px solid var(--linea); background: transparent; color: var(--tinta-2); font: inherit; font-size: .88rem; font-weight: 700; cursor: pointer; }
.zonas-toggle button.activo { background: rgba(246,185,59,.18); border-color: var(--oro); color: var(--oro-claro); }
.zona-fila { display: grid; grid-template-columns: minmax(160px, 1fr) 2fr auto auto; gap: 8px; align-items: center; }
.zona-fila input { min-height: 42px; padding: 0 12px; border-radius: 10px; border: 1px solid var(--linea); background: var(--noche); color: var(--tinta); }
@media (max-width: 700px) { .zona-fila { grid-template-columns: 1fr; } }
.principal .chip-oro { background: var(--oro); color: var(--noche); }
.principal .chip-verde { background: #0F7A4A; color: #fff; }
.persona-cabeza { flex-wrap: wrap; }
.persona-cabeza > div { min-width: 150px; }
.lote-creado { border-color: var(--oro); }
.link-lote { display: block; padding: 12px 14px; border-radius: 10px; background: var(--noche); overflow-wrap: anywhere; font-size: .95rem; }
.activar-sonido { display: grid; gap: 4px; width: 100%; margin-top: 16px; padding: 16px; border: 0; border-radius: var(--radio); background: var(--rojo); color: #fff; font: inherit; text-align: center; cursor: pointer; animation: latir 1.2s ease-in-out infinite; }
.activar-sonido b { font-family: var(--display); font-size: 1.2rem; }
.activar-sonido span { font-size: .85rem; opacity: .9; }
@media (prefers-reduced-motion: reduce) { .activar-sonido { animation: none; } }
.confirmar-entrega { padding-top: 6px; border-top: 1px dashed rgba(20,15,46,.25); }
.fila-codigo { display: grid; grid-template-columns: 1fr auto; gap: 10px; }
.fila-codigo input { min-height: 56px; padding: 0 14px; border-radius: 12px; border: 2px solid rgba(20,15,46,.25); background: #fff; color: var(--noche); font-family: var(--display); font-size: 1.6rem; letter-spacing: .3em; text-align: center; }
.principal .escaner + .btn, .principal .confirmar-entrega .btn-oro { min-height: 56px; }
.entrega-garzon, .entrega-garzon > *, .confirmar-entrega > * { min-width: 0; }
.fila-codigo input { width: 100%; min-width: 0; }
.por-liquidar { color: var(--oro-claro); }
.liquidacion .fila-botones input { min-width: 180px; }
.pago-masivo { border-color: var(--oro); }
.archivo-banco { display: grid; gap: 8px; padding: 12px 14px; border-radius: 12px; background: var(--noche); border: 1px solid var(--linea); }
.archivo-banco input { min-height: 38px; }
.aviso-error ul { margin: 6px 0; }

/* Área de artistas */
.chips-elegir { display: flex; flex-wrap: wrap; gap: 6px; }
.chips-elegir button { min-height: 36px; padding: 0 12px; border-radius: 999px; border: 1px solid var(--linea); background: transparent; color: var(--tinta-2); font: inherit; font-size: .88rem; font-weight: 700; cursor: pointer; }
.chips-elegir button.activo { background: rgba(246,185,59,.18); border-color: var(--oro); color: var(--oro-claro); }
.grilla-tallas { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; }
.dia-agenda h3 { margin-top: 10px; color: var(--oro-claro); }
.agenda-item { display: grid; grid-template-columns: 74px 1fr auto; gap: 14px; align-items: start; padding: 14px; border-radius: var(--radio); background: var(--noche-2); border: 1px solid var(--linea); border-left: 5px solid var(--oro); }
.agenda-item.almuerzo { border-left-color: #3DD68C; }
.agenda-item.funcion { border-left-color: var(--rojo); }
.agenda-item.hoy { box-shadow: 0 0 0 2px rgba(246,185,59,.45); }
.agenda-item .hora { display: grid; text-align: center; }
.agenda-item .hora b { font-family: var(--display); font-size: 1.3rem; }
.agenda-item .hora span { font-size: .75rem; color: var(--tinta-2); }
.coreos { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 14px; }
.video-coreo { width: 100%; aspect-ratio: 16 / 9; border: 0; border-radius: 12px; background: #000; }
.notas-coreo { white-space: pre-wrap; padding: 10px 12px; border-radius: 10px; background: var(--noche); font-size: .92rem; }
.aviso.fijo { border-color: var(--oro); }
.saludo-artista { display: flex; align-items: center; gap: 14px; margin-top: 20px; }
.saludo-artista img { width: 64px; height: 64px; border-radius: 50%; object-fit: cover; border: 3px solid var(--oro); }
.avatar.foto { object-fit: cover; padding: 0; }
.btn.peligro { color: #FF9AA4; border-color: rgba(214,40,57,.5); }
.campo textarea { width: 100%; }
.separador-aprobacion { margin-top: 10px; padding-top: 14px; border-top: 1px dashed var(--linea); }
.solicitud { border-color: var(--oro); }
.cambios-solicitud li { display: grid; grid-template-columns: minmax(150px, 220px) 1fr; gap: 10px; }
.cambios-solicitud s { color: var(--tinta-2); }
.solicitud .fila-botones input { flex: 1; min-width: 160px; }
.aviso-horario { padding: 12px 14px; border-radius: 12px; background: rgba(255,246,229,.06); border: 1px solid var(--linea); }
.acceso-artista { padding: 14px 16px; border-radius: 14px; background: rgba(246,185,59,.08); border: 1px solid rgba(246,185,59,.45); }
.acceso-artista .fila-botones input { flex: 1; min-width: 180px; min-height: 40px; }

/* PDF de coreografías */
.docs-coreo { display: flex; flex-wrap: wrap; gap: 8px; }
.fila-doc { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.fila-doc input { flex: 1; min-width: 0; }
label.btn > input[type=file] { display: none; }
.progreso-subida { display: flex; align-items: center; gap: 10px; flex: 1; min-width: 0; }
.progreso-subida progress { flex: 1; min-width: 120px; height: 14px; accent-color: var(--oro, #f5b83d); }

/* ---------- Control del show ---------- */
.alertas-show { padding: 14px 16px; border-radius: 14px; background: rgba(246,185,59,.12); border: 1px solid rgba(246,185,59,.45); }
.alertas-show.hay-rojo { background: rgba(214,40,57,.14); border-color: rgba(214,40,57,.55); }
.alertas-show h2 { font-size: 1.05rem; margin: 0 0 6px; }
.alertas-show ul { margin: 0 0 8px; padding-left: 20px; }
.alertas-show li { margin: 3px 0; }
.alerta-rojo { color: #FFC2C8; }
.alerta-oro { color: var(--oro-claro); }
.barra-ancha { width: 100%; margin: 6px 0 0; }
.filtros-show { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.filtros-show .buscar-show { flex: 1; min-width: 200px; }
.grupos-show { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); gap: 14px; align-items: start; }
.grupo-show.completo { border-color: rgba(61,214,140,.4); }
.grupo-show h3 { margin: 0; }
.items-show { display: flex; flex-direction: column; gap: 10px; margin-top: 10px; }
.item-show { padding: 10px 12px; border-radius: 12px; background: rgba(255,246,229,.04); border-left: 4px solid var(--linea); display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.item-show.est-falta { border-left-color: #D62839; }
.item-show.est-confeccion { border-left-color: var(--oro); }
.item-show.est-listo { border-left-color: #3DD68C; opacity: .85; }
.item-show.est-reparacion { border-left-color: #FF6B6B; background: rgba(214,40,57,.08); }
.item-show.atrasado { box-shadow: inset 0 0 0 1px rgba(214,40,57,.55); }
.item-show-cabeza { display: flex; gap: 10px; align-items: flex-start; }
.item-show-texto { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0; overflow-wrap: anywhere; }
.item-show-foto { width: 48px; height: 48px; border-radius: 8px; object-fit: cover; flex-shrink: 0; }
.item-show-foto.grande { width: 72px; height: 72px; }
.item-show .cantidad { color: var(--oro-claro); }
.nota-item { font-style: italic; opacity: .85; }
.texto-rojo { color: #FF9AA4; font-weight: 600; }
.item-show .quien { font-size: .75rem; }
.estados-item { display: grid; grid-template-columns: repeat(4, 1fr); gap: 4px; }
.estados-item button { min-height: 36px; padding: 4px 2px; border-radius: 8px; border: 1px solid var(--linea); background: transparent; color: var(--tinta); font: inherit; font-size: .8rem; cursor: pointer; min-width: 0; }
.estados-item button.activo { font-weight: 700; border-color: transparent; }
.estados-item button.activo.est-falta, .chip.est-falta { background: rgba(214,40,57,.85); color: #fff; }
.estados-item button.activo.est-confeccion, .chip.est-confeccion { background: var(--oro); color: var(--noche); }
.estados-item button.activo.est-listo, .chip.est-listo { background: #0F7A4A; color: #fff; }
.estados-item button.activo.est-reparacion, .chip.est-reparacion { background: #B3261E; color: #fff; }
.contador-listas { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; padding: 8px 10px; border-radius: 10px; background: rgba(255,246,229,.05); }
.contador-listas .fila-botones { margin-left: auto; }
.contador-listas .btn-chico { min-width: 44px; }
.puntos-listas { display: inline-flex; gap: 4px; flex-wrap: wrap; }
.puntos-listas i { width: 12px; height: 12px; border-radius: 50%; border: 2px solid rgba(255,246,229,.35); }
.puntos-listas i.on { background: #3DD68C; border-color: #3DD68C; }
.chips-tabla { display: flex; flex-wrap: wrap; gap: 4px; }
label.check { display: flex; gap: 8px; align-items: flex-start; }
label.check input { margin-top: 4px; width: 18px; height: 18px; flex-shrink: 0; }
.accesos-persona { border-top: 1px solid var(--linea); padding-top: 8px; }
.accesos-persona summary { cursor: pointer; font-weight: 600; font-size: .9rem; color: var(--oro-claro); }
.accesos-persona[open] summary { margin-bottom: 6px; }
.accesos-persona .zonas-toggle { margin-top: 6px; }

/* Carta del restaurante (panel) */
.carta-admin { display: grid; gap: 10px; }
.item-carta { display: flex; align-items: center; gap: 12px; padding: 12px; border-radius: 14px; background: var(--noche-2); border: 1px solid var(--linea); flex-wrap: wrap; }
.item-carta img { width: 56px; height: 56px; border-radius: 10px; object-fit: cover; flex-shrink: 0; }
.item-carta > .stack-sm { flex: 1; min-width: 160px; display: flex; flex-direction: column; gap: 2px; }
.item-carta .precio { color: var(--oro-claro); font-weight: 700; }
.item-carta.oculto { opacity: .55; }
.tarjeta-restaurante { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.tarjeta-restaurante .icono { font-size: 2rem; width: 52px; height: 52px; display: grid; place-items: center; border-radius: 14px; background: rgba(246,185,59,.14); }
.tarjeta-restaurante > .stack-sm { flex: 1; min-width: 200px; display: flex; flex-direction: column; gap: 2px; }
.recordatorio-datos { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin: 4px 0 16px; padding: 14px; border-radius: 14px; background: rgba(246,185,59,.14); border: 1px solid rgba(246,185,59,.5); }
.recordatorio-datos .icono { font-size: 1.6rem; }
.recordatorio-datos > div { flex: 1; min-width: 200px; display: flex; flex-direction: column; gap: 2px; }
.recordatorio-datos > div span { font-size: .9rem; opacity: .9; }

/* Tarjetas de personas: los nombres y usuarios largos se cortan dentro de la tarjeta */
.personas { grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); }
.persona { min-width: 0; }
.persona-cabeza > div, .persona-cabeza b, .persona-cabeza span { overflow-wrap: anywhere; word-break: break-word; }
.persona select, .persona input { min-width: 0; max-width: 100%; }
.persona .fila-botones input { flex: 1 1 140px; }

/* Aceptar o rechazar pedidos (locales) */
.cuenta-aceptar { display: flex; align-items: center; gap: 10px; }
.barra-aceptar { flex: 1; height: 8px; border-radius: 8px; background: rgba(255,246,229,.12); overflow: hidden; }
.barra-aceptar i { display: block; height: 100%; background: var(--oro); transition: width 1s linear; }
.fila-botones.dos { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.rechazo-pedido input { width: 100%; }
.fila-botones.dos .btn { white-space: nowrap; padding-left: 10px; padding-right: 10px; }
.estado-cocina { margin: 0; padding: 10px 12px; border-radius: 10px; background: rgba(20,15,46,.08); color: #4a4070; font-weight: 600; text-align: center; }
.estado-cocina.listo { background: #DDF6E8; color: #0F7A4A; }
.comanda.preparado { box-shadow: inset 0 6px 0 #3DD68C; }
.diag-reparto ol { margin: 0; padding-left: 22px; }
.diag-reparto ul { margin: 4px 0 0; padding-left: 20px; }

/* Retiro en el local con código del garzón */
.retiro-local { border: 2px solid var(--oro, #F5B700); border-radius: 14px; padding: 14px; }
.retiro-confirmar { border: 2px solid var(--verde, #2E9E5B); }
.retiro-numero { font-size: 1.8rem; font-weight: 800; letter-spacing: .08em; margin: 0; }
.retiro-hallado + .retiro-hallado { border-top: 1px solid rgba(127,127,127,.3); padding-top: 10px; }
.tabla-retiro td { overflow-wrap: anywhere; }
.retiro-garzon { border: 2px dashed var(--oro, #F5B700); border-radius: 12px; padding: 10px; display: grid; gap: 8px; }
.retiro-fila { display: flex; gap: 14px; align-items: center; }
.retiro-fila > div:last-child { display: grid; gap: 2px; }
.retiro-qr { width: 120px; flex: none; background: #FFF6E5; border-radius: 8px; padding: 4px; }
.retiro-qr svg { width: 100%; height: auto; display: block; }
.retiro-codigo { font-size: 2.6rem; letter-spacing: .15em; line-height: 1; }
