/* Te Busco Comandas — interfaz */
*{box-sizing:border-box}
:root{--bg:#111113;--bg2:#1b1b1f;--bg3:#26262c;--tx:#f4f4f5;--tx2:#a1a1aa;--ln:#33333a;--ok:#22c55e;--warn:#f59e0b;--bad:#ef4444;--info:#3b82f6;--r:14px;--acc:#c8a24a}
body.tema-claro{--bg:#f6f6f4;--bg2:#fff;--bg3:#ececea;--tx:#18181b;--tx2:#5f5f66;--ln:#dcdcd8}
html,body{margin:0;background:var(--bg);color:var(--tx);font:16px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;-webkit-tap-highlight-color:transparent}
a{color:var(--acc)}
button,input,select,textarea{font:inherit;color:inherit}
.cargando{padding:60px 20px;text-align:center;color:var(--tx2)}
.credito{text-align:center;font-size:12px;color:var(--tx2);padding:18px 16px 110px}
.tbcm-panel .credito{padding-bottom:24px}
.credito a{color:var(--tx2);text-decoration:underline}
.oculto{display:none!important}
.mut{color:var(--tx2)}
.peq{font-size:13px}
.fila{display:flex;gap:10px;align-items:center}
.fila.sep{justify-content:space-between}
.envolver{flex-wrap:wrap}
.crece{flex:1}
.centro{text-align:center}

/* Botones */
.btn{appearance:none;border:0;border-radius:12px;padding:12px 16px;font-weight:700;background:var(--bg3);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;text-decoration:none;color:var(--tx);transition:transform .08s,opacity .2s}
.btn:active{transform:scale(.97)}
.btn[disabled]{opacity:.45;pointer-events:none}
.btn.p{background:var(--acc);color:#111}
.btn.ok{background:var(--ok);color:#06240f}
.btn.bad{background:var(--bad);color:#fff}
.btn.info{background:var(--info);color:#fff}
.btn.warn{background:var(--warn);color:#271700}
.btn.lin{background:transparent;border:1px solid var(--ln)}
.btn.blq{width:100%}
.btn.chico{min-height:36px;padding:7px 12px;font-size:14px;border-radius:10px}
.btn.xl{min-height:58px;font-size:18px}
.ico{width:20px;height:20px;flex:none}

/* Cabecera cliente */
.cab{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--ln)}
.cab-in{display:flex;align-items:center;gap:12px;padding:10px 16px;max-width:900px;margin:0 auto}
.cab img{width:44px;height:44px;border-radius:50%;object-fit:cover;background:#000}
.cab h1{font-size:18px;margin:0;line-height:1.1}
.cab .sub{font-size:13px;color:var(--tx2)}
.chips{display:flex;gap:8px;overflow-x:auto;padding:8px 16px 10px;max-width:900px;margin:0 auto;scrollbar-width:none}
.chips::-webkit-scrollbar{display:none}
.chip{flex:none;border:1px solid var(--ln);border-radius:999px;padding:7px 14px;font-size:14px;background:var(--bg2);cursor:pointer;white-space:nowrap}
.chip.on{background:var(--acc);color:#111;border-color:var(--acc);font-weight:700}

.cont{max-width:900px;margin:0 auto;padding:12px 16px}
.cat-t{font-size:20px;margin:22px 0 10px;scroll-margin-top:120px}
.platos{display:grid;gap:10px}
@media(min-width:700px){.platos{grid-template-columns:1fr 1fr}}
.plato{display:flex;gap:12px;background:var(--bg2);border:1px solid var(--ln);border-radius:var(--r);padding:12px;align-items:flex-start}
.plato.agot{opacity:.5}
.plato img{width:78px;height:78px;border-radius:10px;object-fit:cover;flex:none}
.plato .nm{font-weight:700}
.plato .ds{font-size:13px;color:var(--tx2);margin-top:2px}
.plato .pr{font-weight:800;color:var(--acc);margin-top:6px}
.al{display:flex;gap:4px;flex-wrap:wrap;margin-top:6px}
.al span{font-size:11px;border:1px solid var(--ln);border-radius:6px;padding:1px 6px;color:var(--tx2)}
.badge{display:inline-block;font-size:12px;font-weight:700;border-radius:999px;padding:2px 9px;background:var(--bg3)}
.badge.ok{background:color-mix(in srgb,var(--ok) 22%,transparent);color:var(--ok)}
.badge.bad{background:color-mix(in srgb,var(--bad) 22%,transparent);color:var(--bad)}
.badge.warn{background:color-mix(in srgb,var(--warn) 22%,transparent);color:var(--warn)}
.badge.info{background:color-mix(in srgb,var(--info) 22%,transparent);color:#7fb0ff}
.badge.acc{background:color-mix(in srgb,var(--acc) 25%,transparent);color:var(--acc)}
.mas{margin-left:auto;flex:none;width:42px;height:42px;border-radius:50%;border:0;background:var(--acc);color:#111;font-size:24px;font-weight:800;cursor:pointer;display:flex;align-items:center;justify-content:center}
.mas[disabled]{background:var(--bg3);color:var(--tx2)}

/* Barra inferior */
.barra{position:fixed;left:0;right:0;bottom:0;z-index:30;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:linear-gradient(transparent,var(--bg) 30%)}
.barra .btn{max-width:868px;margin:0 auto;display:flex;width:100%;justify-content:space-between}
.acciones-mesa{display:flex;gap:8px;max-width:868px;margin:0 auto 8px}
.acciones-mesa .btn{flex:1;min-height:42px;font-size:14px}

/* Hoja / modal */
.velo{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:50;display:flex;align-items:flex-end;justify-content:center;animation:fd .15s}
@media(min-width:700px){.velo{align-items:center}}
.hoja{background:var(--bg2);width:100%;max-width:560px;max-height:92vh;overflow:auto;border-radius:20px 20px 0 0;padding:18px 18px calc(18px + env(safe-area-inset-bottom));animation:up .2s}
@media(min-width:700px){.hoja{border-radius:20px}}
.hoja h2{margin:0 0 12px;font-size:20px}
.hoja .cerrar{float:right;background:none;border:0;font-size:26px;line-height:1;cursor:pointer;color:var(--tx2)}
@keyframes up{from{transform:translateY(30px);opacity:0}}
@keyframes fd{from{opacity:0}}

.linea{display:flex;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--ln)}
.cant{display:flex;align-items:center;gap:6px}
.cant button{width:34px;height:34px;border-radius:50%;border:1px solid var(--ln);background:var(--bg3);font-weight:800;cursor:pointer;font-size:18px}
.cant b{min-width:22px;text-align:center}
.tot{display:flex;justify-content:space-between;font-size:18px;font-weight:800;padding:12px 0}

/* Formularios */
label.c{display:block;font-size:13px;color:var(--tx2);margin:12px 0 4px}
.in,select.in,textarea.in{width:100%;background:var(--bg);border:1px solid var(--ln);border-radius:10px;padding:12px;min-height:46px;outline:none}
.in:focus{border-color:var(--acc)}
textarea.in{min-height:70px;resize:vertical}
.chk{display:flex;gap:10px;align-items:flex-start;margin:10px 0;font-size:14px}
.chk input{width:20px;height:20px;margin-top:1px;accent-color:var(--acc);flex:none}
.opciones{display:grid;gap:8px;grid-template-columns:1fr 1fr}
.opc{border:2px solid var(--ln);border-radius:12px;padding:12px;cursor:pointer;background:var(--bg)}
.opc.on{border-color:var(--acc)}
.opc b{display:block}
.opc small{color:var(--tx2)}
.codigo{letter-spacing:8px;text-align:center;font-size:24px;font-weight:800}
.aviso{border-radius:12px;padding:12px 14px;background:var(--bg3);font-size:14px;margin:10px 0}
.aviso.bad{background:color-mix(in srgb,var(--bad) 18%,var(--bg2))}
.aviso.ok{background:color-mix(in srgb,var(--ok) 18%,var(--bg2))}
.aviso.warn{background:color-mix(in srgb,var(--warn) 18%,var(--bg2))}

/* Seguimiento */
.pasos{display:flex;justify-content:space-between;margin:20px 0;position:relative}
.pasos:before{content:"";position:absolute;top:15px;left:6%;right:6%;height:3px;background:var(--ln)}
.paso{position:relative;text-align:center;flex:1;font-size:12px;color:var(--tx2)}
.paso i{display:block;width:32px;height:32px;border-radius:50%;margin:0 auto 6px;background:var(--bg3);border:3px solid var(--bg)}
.paso.on{color:var(--tx)}
.paso.on i{background:var(--acc)}
.grande{font-size:44px;font-weight:900;letter-spacing:1px}

/* Toast */
.toast{position:fixed;left:50%;top:16px;transform:translateX(-50%);z-index:90;background:#000;color:#fff;padding:12px 18px;border-radius:12px;font-weight:600;box-shadow:0 10px 30px rgba(0,0,0,.4);max-width:92vw;animation:fd .2s}
.toast.bad{background:var(--bad)}
.toast.ok{background:#14532d}

/* ===================== PANEL ===================== */
.p-top{position:sticky;top:0;z-index:20;background:var(--bg2);border-bottom:1px solid var(--ln);display:flex;align-items:center;gap:10px;padding:8px 12px}
.p-top img{width:34px;height:34px;border-radius:50%;object-fit:cover}
.p-top .t{font-weight:800}
.p-tabs{display:flex;gap:4px;overflow-x:auto;padding:6px 10px;background:var(--bg);border-bottom:1px solid var(--ln);scrollbar-width:none;position:sticky;top:51px;z-index:19}
.p-tabs button{flex:none;border:0;background:none;padding:9px 13px;border-radius:10px;font-weight:700;color:var(--tx2);cursor:pointer;position:relative}
.p-tabs button.on{background:var(--bg3);color:var(--tx)}
.p-tabs .num{position:absolute;top:2px;right:0;background:var(--bad);color:#fff;font-size:11px;border-radius:999px;padding:0 5px;min-width:18px;text-align:center}
.p-main{padding:12px;max-width:1500px;margin:0 auto}
.login{max-width:380px;margin:8vh auto;padding:24px;background:var(--bg2);border-radius:20px;border:1px solid var(--ln)}
.login img{display:block;width:84px;height:84px;border-radius:50%;margin:0 auto 10px;object-fit:cover}
.login h1{text-align:center;font-size:22px;margin:0 0 6px}

/* Cocina */
.tablero{display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr));align-items:start}
@media(max-width:900px){.tablero{grid-template-columns:1fr}}
.col h3{margin:4px 0 10px;font-size:15px;text-transform:uppercase;letter-spacing:.5px;color:var(--tx2);display:flex;gap:8px;align-items:center}
.tk{background:var(--bg2);border:1px solid var(--ln);border-left:6px solid var(--info);border-radius:var(--r);padding:12px;margin-bottom:10px}
.tk.nuevo{border-left-color:var(--bad);animation:pulso 1.6s 3}
.tk.preparacion{border-left-color:var(--warn)}
.tk.listo{border-left-color:var(--ok)}
.tk.por_confirmar{border-left-color:#a855f7}
.tk .cab-tk{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px}
.tk .num{font-size:22px;font-weight:900}
.tk .dnd{font-weight:800;font-size:17px}
.tk ul{list-style:none;margin:6px 0;padding:0}
.tk li{padding:5px 0;border-bottom:1px dashed var(--ln);font-size:17px}
.tk li b{display:inline-block;min-width:30px}
.tk li .nt{display:block;color:var(--warn);font-size:14px;padding-left:30px}
.tk li.otra{opacity:.4;font-size:14px}
.tk .notas{background:color-mix(in srgb,var(--warn) 18%,transparent);border-radius:8px;padding:6px 8px;font-size:14px;margin:6px 0}
.tk .btns{display:flex;gap:8px;margin-top:8px}
.tk .btns .btn{flex:1}
.tiempo{font-weight:800;font-variant-numeric:tabular-nums}
.tiempo.tarde{color:var(--bad)}
@keyframes pulso{50%{box-shadow:0 0 0 4px color-mix(in srgb,var(--bad) 50%,transparent)}}

/* Sala */
.mesas{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}
.mesa{background:var(--bg2);border:2px solid var(--ln);border-radius:var(--r);padding:12px;cursor:pointer;min-height:86px}
.mesa.abierta{border-color:var(--acc)}
.mesa.aviso{border-color:var(--bad);animation:pulso 1.6s infinite}
.mesa .n{font-weight:800;font-size:17px}
.aviso-c{display:flex;gap:10px;align-items:center;background:var(--bg2);border:1px solid var(--bad);border-radius:var(--r);padding:12px;margin-bottom:8px}

/* Admin */
.kpis{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));margin-bottom:12px}
.kpi{background:var(--bg2);border:1px solid var(--ln);border-radius:var(--r);padding:14px}
.kpi .v{font-size:26px;font-weight:900;margin-top:2px}
.kpi .l{font-size:13px;color:var(--tx2)}
.kpi .d{font-size:12px;font-weight:700}
.kpi .d.up{color:var(--ok)}.kpi .d.down{color:var(--bad)}
.tarjeta{background:var(--bg2);border:1px solid var(--ln);border-radius:var(--r);padding:14px;margin-bottom:12px}
.tarjeta h3{margin:0 0 10px;font-size:16px}
.rejilla2{display:grid;gap:12px;grid-template-columns:1fr 1fr}
@media(max-width:900px){.rejilla2{grid-template-columns:1fr}}
canvas.graf{width:100%;height:220px;display:block}
.tabla{width:100%;border-collapse:collapse;font-size:14px}
.tabla th,.tabla td{text-align:left;padding:9px 8px;border-bottom:1px solid var(--ln);vertical-align:middle}
.tabla th{color:var(--tx2);font-weight:600;font-size:12px;text-transform:uppercase}
.tabla tr.clic{cursor:pointer}
.tabla tr.clic:hover{background:var(--bg3)}
.scroll-x{overflow-x:auto}
.barras .b{display:flex;align-items:center;gap:8px;margin:5px 0;font-size:14px}
.barras .b span:first-child{width:42%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.barras .b i{display:block;height:10px;border-radius:6px;background:var(--acc)}
.sw{position:relative;width:46px;height:28px;flex:none}
.sw input{opacity:0;width:0;height:0}
.sw span{position:absolute;inset:0;background:var(--bg3);border-radius:999px;cursor:pointer;transition:.2s;border:1px solid var(--ln)}
.sw span:before{content:"";position:absolute;width:20px;height:20px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s}
.sw input:checked+span{background:var(--ok)}
.sw input:checked+span:before{transform:translateX(18px)}
.stock-l{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--ln)}
.stock-l .in{width:86px;min-height:38px;padding:6px 8px;text-align:center}
.qrs{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}
.qr-c{background:#fff;color:#111;border-radius:14px;padding:14px;text-align:center}
.qr-c canvas{width:170px;height:170px;image-rendering:pixelated}
.qr-c .n{font-weight:900;font-size:20px}
.ajustes-g{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.var-l{display:flex;gap:6px;margin-bottom:6px}
.var-l .in{min-height:40px;padding:8px}
.al-sel{display:flex;flex-wrap:wrap;gap:6px}
.al-sel label{border:1px solid var(--ln);border-radius:8px;padding:5px 9px;font-size:13px;cursor:pointer;display:flex;gap:5px;align-items:center}
.al-sel input{accent-color:var(--acc)}
.pausa-on{background:var(--bad)!important;color:#fff!important}

@media print{
  body{background:#fff;color:#000}
  .p-top,.p-tabs,.credito,.no-print,.btn{display:none!important}
  .qr-c{break-inside:avoid;border:1px solid #000}
  .tk{border:1px solid #000;break-inside:avoid}
}

/* ===== Táctil, móvil y tablet ===== */
button,.btn,a,.chip,.opc,.mesa,[data-add]{touch-action:manipulation}
.btn{-webkit-user-select:none;user-select:none}
.barra-nueva{position:fixed;left:0;right:0;bottom:0;z-index:40;display:flex;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:var(--bg2);border-top:1px solid var(--ln);box-shadow:0 -8px 24px rgba(0,0,0,.35)}
.barra-nueva .btn{min-height:54px}
.tbcm-panel .p-main{padding-bottom:calc(96px + env(safe-area-inset-bottom))}
.hoja{-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
.hoja .btn.blq.xl,.hoja .btn.xl.crece{position:sticky;bottom:0;z-index:2;box-shadow:0 -10px 16px var(--bg2)}
.cant button{width:44px;height:44px}
.tk .btns .btn{min-height:52px}
@media(max-width:1000px){
  .p-top{position:static;flex-wrap:wrap;gap:6px}
  .p-top .btn.chico{min-height:40px;font-size:13px;padding:6px 10px}
  #b-fs{display:none}
  .p-tabs{top:0}
  .rejilla2{grid-template-columns:1fr}
  .rejilla2 .tarjeta[style*="sticky"]{position:static!important}
}
@media(min-width:1001px){.barra-nueva{display:none}.tbcm-panel .p-main{padding-bottom:24px}}
@media(max-width:600px){
  .p-main{padding:10px}
  .kpis{grid-template-columns:1fr 1fr}
  .kpi .v{font-size:21px}
  .tabla{font-size:13px}
  .tk li{font-size:16px}
  .mesas{grid-template-columns:repeat(auto-fill,minmax(105px,1fr))}
  .hoja{max-height:94vh;padding:16px 14px calc(16px + env(safe-area-inset-bottom))}
  .opciones{grid-template-columns:1fr 1fr}
  .stock-l .in{width:72px}
}
/* Altura real visible en móvil (la barra del navegador ya no tapa los botones) */
.hoja{max-height:92vh;max-height:92dvh}
@media(max-width:600px){.hoja{max-height:94vh;max-height:94dvh}}
.velo{height:100vh;height:100dvh}
/* La barra de enviar comanda se ve siempre, en cualquier tamaño */
@media(min-width:1001px){.barra-nueva{display:flex}.tbcm-panel .p-main{padding-bottom:calc(96px + env(safe-area-inset-bottom))}}
