:root{--fondo:#F4F5F2;--tarjeta:#fff;--tinta:#16201C;--suave:#5B6660;--linea:#E2E5E0;--acento:#0F6B5C;--acento-suave:#E3F0EC;--acento-osc:#0A4E43;--alerta:#7A3A06;--alerta-fondo:#FDF1E4;--peligro:#9B2C14;--menu:#10201B}
*{box-sizing:border-box}
body{margin:0;background:var(--fondo);color:var(--tinta);font:15px/1.5 'IBM Plex Sans',system-ui,sans-serif}
a{color:var(--acento)}
.app{display:flex;flex-wrap:wrap;min-height:100vh}
.menu{flex:1 1 232px;max-width:100%;background:var(--menu);color:#E8EEEA;padding:24px 16px;display:flex;flex-direction:column;gap:4px}
.marca{display:flex;align-items:center;gap:10px;padding:0 8px 20px;font-weight:600;font-size:16px}
.logo{width:32px;height:32px;border-radius:8px;background:#2BB596;color:var(--menu);font-weight:700;display:grid;place-items:center}
.etiqueta{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#9FB2A9;padding:0 8px}
.menu select{margin:4px 8px 16px;padding:10px 12px;border-radius:8px;border:1px solid #2E4A40;background:#182D26;color:#E8EEEA;font:inherit;font-size:14px;min-height:44px}
.menu a{display:flex;justify-content:space-between;align-items:center;padding:11px 12px;border-radius:8px;color:#C9D6D0;text-decoration:none;font-size:14px}
.menu a.activo{background:#1E3A31;color:#fff;font-weight:500}
.menu hr{border:0;border-top:1px solid #2E4A40;margin:12px 8px;width:auto}
.contador{background:#F2994A;color:var(--menu);font-size:12px;font-weight:700;border-radius:10px;padding:1px 8px}
.pie{margin-top:auto;padding:16px 8px 0;font-size:12px;color:#9FB2A9;word-break:break-all}
.vista{flex:999 1 560px;min-width:0;padding:32px 40px 48px;display:flex;flex-direction:column;gap:20px;outline:none}
@media (max-width:700px){.vista{padding:20px 16px 40px}.menu{flex-basis:100%}}
h1{margin:0;font-size:26px;font-weight:600}
h2{margin:0 0 10px;font-size:16px;font-weight:600}
.sub{font-size:13px;color:var(--suave)}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}
.tarjeta{background:var(--tarjeta);border:1px solid var(--linea);border-radius:12px;padding:20px}
.tarjeta.alerta{background:var(--alerta-fondo);border-color:#F3D3B0;color:var(--alerta)}
.cifra{font-family:'IBM Plex Mono',monospace;font-size:32px;margin-top:6px}
.fila{display:flex;flex-wrap:wrap;gap:20px;align-items:flex-start}
.fila>*{flex:1 1 320px;min-width:0}
.barra{display:grid;grid-template-columns:120px 1fr 44px;gap:10px;align-items:center;font-size:14px;margin:6px 0}
.barra i{display:block;height:20px;border-radius:6px;background:var(--acento)}
.mono{font-family:'IBM Plex Mono',monospace}
.chip{display:inline-block;font-size:12px;padding:2px 9px;border-radius:999px;background:#F1F2EF;color:#2E3933}
.chip.foodpos{background:#FBEDE4;color:#8A3209}.chip.posgo{background:#E2F4EC;color:#04573F}.chip.goblyz{background:#EEEAFB;color:#46309A}
.chip.escalado{background:#FBE7E2;color:var(--peligro)}
button,.boton{min-height:44px;padding:0 16px;border-radius:8px;border:1px solid #C8CEC9;background:#fff;color:var(--tinta);font:inherit;font-size:14px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center}
button.primario,.boton.primario{background:var(--acento);border-color:var(--acento);color:#fff;font-weight:600}
button.peligro{color:var(--peligro);border-color:#E8B4A8}
button:disabled{opacity:.5;cursor:wait}
.acciones{display:flex;flex-wrap:wrap;gap:8px}
.lista{background:#fff;border:1px solid var(--linea);border-radius:12px;overflow:hidden}
.item{display:block;width:100%;text-align:left;border:0;border-bottom:1px solid var(--linea);border-radius:0;padding:14px 18px;min-height:0;background:#fff;font:inherit;color:inherit;cursor:pointer}
.item.sel{background:var(--acento-suave);box-shadow:inset 4px 0 0 var(--acento)}
.item .meta{display:flex;justify-content:space-between;font-size:12px;color:var(--suave)}
.item strong{display:block;margin-top:2px}
.vacio{padding:24px;color:var(--suave)}
.burbuja{max-width:80%;padding:10px 14px;border-radius:12px;font-size:14px;white-space:pre-wrap}
.burbuja.entrante{align-self:flex-start;background:#F1F2EF;border-radius:12px 12px 12px 4px}
.burbuja.saliente{align-self:flex-end;background:var(--acento-suave);border-radius:12px 12px 4px 12px}
.burbuja small{display:block;color:var(--suave);font-size:11px;margin-top:4px}
.conv{display:flex;flex-direction:column;gap:10px;max-height:360px;overflow:auto}
textarea,input,select.campo{width:100%;border:1px solid #C8CEC9;border-radius:8px;padding:10px 12px;font:inherit;font-size:14px;background:#fff;color:var(--tinta)}
input,select.campo{min-height:44px}
label.campo{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--suave)}
.form{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.check{display:flex;gap:8px;align-items:center;font-size:14px}
.check input{width:20px;min-height:20px}
.kanban{overflow-x:auto;padding-bottom:8px}
.kanban>div{display:grid;grid-template-columns:repeat(8,minmax(200px,1fr));gap:12px;min-width:1640px}
.col{background:#EBEDE8;border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:8px}
.col h2{font-size:14px;display:flex;justify-content:space-between;margin:4px}
.tk{background:#fff;border:1px solid var(--linea);border-radius:10px;padding:10px;font-size:13px;text-decoration:none;color:inherit;display:block}
.tk strong{display:block;font-size:14px}
table{width:100%;border-collapse:collapse;font-size:14px}
th,td{text-align:left;padding:10px 12px;border-top:1px solid var(--linea);vertical-align:top}
th{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--suave);border-top:0}
.scroll{overflow-x:auto}
pre.informe{white-space:pre-wrap;font:inherit;margin:0}
.aviso{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--tinta);color:#fff;padding:12px 18px;border-radius:10px;font-size:14px;max-width:90vw}
.banda{background:var(--alerta-fondo);border:1px solid #F3D3B0;color:var(--alerta);border-radius:10px;padding:10px 14px;font-size:13px}
.cargando{color:var(--suave)}
[hidden]{display:none!important}
