:root{
  --fondo:#F3F2EE; --panel:#FFFFFF; --panel-2:#F7F6F2; --linea:#E3E1DA; --texto:#1E1E1C; --suave:#6B6A64; --tenue:#9A988F;
  --verde:#0F6E56; --verde-claro:#E1F5EE; --ambar:#BA7517; --ambar-claro:#FAEEDA; --ambar-texto:#633806;
  --ok:#639922; --gris:#888780; --rojo:#A32D2D;
  --piso:#E9E6DD; --piso-borde:#D6D2C6;
  --buscar:#CDEFE3; --crear:#E3E0FA; --vender:#FBE6C4; --medir:#D7E8F8; --frente:#EEEAE0;
  --radio:12px;
  --fuente:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif; --titulo:'Fraunces',Georgia,serif; --mono:ui-monospace,Consolas,monospace;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --fondo:#171716; --panel:#211F1E; --panel-2:#2A2826; --linea:#3A3835; --texto:#EDEBE5; --suave:#B0AEA6; --tenue:#85837C;
  --verde-claro:#0B3B30; --ambar-claro:#3D2A0B; --ambar-texto:#FAC775;
  --piso:#2B2926; --piso-borde:#3E3B36; --buscar:#164638; --crear:#2E2B5A; --vender:#4A3410; --medir:#16334F; --frente:#34312C;
}}
*{box-sizing:border-box}
html,body{margin:0;background:var(--fondo);color:var(--texto);font-family:var(--fuente);font-size:15px;line-height:1.45}
button{font:inherit;cursor:pointer;border-radius:8px;border:1px solid var(--linea);background:var(--panel);color:var(--texto);padding:7px 12px}
button:hover{border-color:var(--tenue)}
button:focus-visible,select:focus-visible,textarea:focus-visible,input:focus-visible{outline:2px solid var(--verde);outline-offset:2px}
.primario{background:var(--verde);color:#fff;border-color:var(--verde)}
.oscuro{background:var(--texto);color:var(--fondo);border-color:var(--texto)}
select,textarea,input{font:inherit;color:var(--texto);background:var(--panel);border:1px solid var(--linea);border-radius:8px;padding:9px 10px;width:100%}
.mono{font-family:var(--mono);font-size:12px;color:var(--suave)}
.oculto{display:none!important}

/* Arriba */
.barra{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:var(--panel);border:1px solid var(--linea);border-radius:var(--radio);padding:12px 16px;margin:12px}
.saludo{font-family:var(--titulo);font-size:22px}
.cuenta{font-size:13px;color:var(--suave)}
.cuenta b{color:var(--ambar);font-weight:600}
.tiendas{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.chip{font-size:13px;padding:4px 12px;border-radius:999px;border:1px solid var(--linea);background:var(--panel)}
.chip[aria-pressed="true"]{background:var(--texto);color:var(--fondo);border-color:var(--texto)}

/* Cuerpo */
.cuerpo{display:grid;grid-template-columns:300px minmax(0,1fr);gap:12px;margin:0 12px 12px}
.caja{background:var(--panel);border:1px solid var(--linea);border-radius:var(--radio);padding:14px 16px}
.caja h2{font-size:14px;font-weight:600;margin:0 0 6px;display:flex;justify-content:space-between;align-items:center}
.contador{background:var(--ambar-claro);color:var(--ambar-texto);font-size:12px;padding:1px 9px;border-radius:999px}
.item{border-top:1px solid var(--linea);padding:12px 0}
.item:first-of-type{border-top:none}
.item .titulo{font-weight:600}
.item .resumen{font-size:13px;color:var(--suave);margin-top:2px}
.item .acciones{display:flex;gap:6px;margin-top:8px}
.etq{font-size:11px;padding:1px 7px;border-radius:999px;background:var(--panel-2);color:var(--suave)}
.vacio{color:var(--suave);font-size:13px;padding:10px 0}
.proximo{font-size:13px;color:var(--suave);border-top:1px solid var(--linea);padding-top:10px;margin-top:6px}

.sala{position:relative}
.sala svg{display:block;width:100%;height:auto}
.leyenda{display:flex;gap:14px;font-size:12px;color:var(--suave);justify-content:center;margin:4px 0 8px}
.punto{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px;vertical-align:1px}
.area{cursor:pointer}
.area:hover polygon.losa{filter:brightness(.97)}
.actividad .linea{font-size:13px;padding:3px 0}
.actividad .mono{margin-right:6px}

/* Panel lateral y diálogo */
.velo{position:fixed;inset:0;background:rgba(0,0,0,.4);display:flex;align-items:center;justify-content:center;padding:16px;z-index:10}
.dialogo{background:var(--panel);border-radius:16px;padding:20px;width:100%;max-width:480px;max-height:90vh;overflow:auto}
.dialogo h3{font-family:var(--titulo);font-weight:500;font-size:22px;margin:0 0 4px}
.dialogo .sub{font-size:13px;color:var(--suave);margin:0 0 14px}
.dialogo label{display:block;font-size:12px;color:var(--suave);margin:12px 0 4px}
.dialogo .pie{display:flex;gap:8px;margin-top:16px}
.dialogo .pie button{flex:1;padding:10px}
.detalle{white-space:pre-wrap;font-size:14px;background:var(--panel-2);border-radius:8px;padding:10px;margin-top:10px}
.error{color:var(--rojo);font-size:13px;margin-top:6px}
.agente-fila{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--linea);padding:9px 0;font-size:14px}

/* Pestañas (celular) */
.pestanas{display:none}
@media (max-width:820px){
  .barra{margin:8px}
  .cuerpo{grid-template-columns:1fr;margin:0 8px 80px}
  .pestanas{display:flex;position:fixed;bottom:0;left:0;right:0;background:var(--panel);border-top:1px solid var(--linea);z-index:5}
  .pestanas button{flex:1;border:none;border-radius:0;padding:12px 4px;font-size:13px;background:none}
  .pestanas button[aria-selected="true"]{color:var(--verde);font-weight:600}
  [data-vista]{display:none}
  [data-vista].activa{display:block}
  .item .acciones button{flex:1;padding:10px}
}

/* Login */
.login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px}
.login .dialogo{max-width:380px;text-align:center}
.login input{text-align:center;font-size:24px;letter-spacing:8px;font-family:var(--mono)}
